00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#include <qlineedit.h>
00025
#include <qpushbutton.h>
00026
#include <kdebug.h>
00027
#include <qlistview.h>
00028
00029
#include <kglobal.h>
00030
#include <klocale.h>
00031
#ifndef KORG_NOKABC
00032
#include <kabc/addresseedialog.h>
00033
#endif
00034
#include <libkcal/attendee.h>
00035
00036
#include "koprefs.h"
00037
#include "publishdialog.h"
00038
#include "publishdialog_base.h"
00039
00040 PublishDialog::PublishDialog(
QWidget* parent,
const char* name,
00041
bool modal )
00042 : KDialogBase( parent, name, modal,
00043 i18n("Select Addresses"), Ok|Cancel|Help, Ok, true )
00044 {
00045 mWidget =
new PublishDialog_base(
this,
"PublishFreeBusy" );
00046 setMainWidget( mWidget );
00047
00048 mWidget->mNameLineEdit->setEnabled(
false );
00049 mWidget->mEmailLineEdit->setEnabled(
false );
00050 connect( mWidget->mAddressListView, SIGNAL( selectionChanged(
QListViewItem *) ),
00051 SLOT(updateInput()));
00052 connect( mWidget->mNew, SIGNAL( clicked() ),
00053 SLOT( addItem() ) );
00054 connect( mWidget->mRemove, SIGNAL( clicked() ),
00055 SLOT( removeItem() ) );
00056 connect( mWidget->mSelectAddressee, SIGNAL( clicked() ),
00057 SLOT( openAddressbook() ) );
00058 connect( mWidget->mNameLineEdit, SIGNAL( textChanged(
const QString&) ),
00059 SLOT( updateItem() ) );
00060 connect( mWidget->mEmailLineEdit, SIGNAL( textChanged(
const QString&) ),
00061 SLOT( updateItem() ) );
00062 }
00063
00064 PublishDialog::~PublishDialog()
00065 {
00066 }
00067
00068
void PublishDialog::addAttendee( Attendee *attendee )
00069 {
00070 mWidget->mNameLineEdit->setEnabled(
true );
00071 mWidget->mEmailLineEdit->setEnabled(
true );
00072
QListViewItem *item =
new QListViewItem( mWidget->mAddressListView );
00073 item->setText( 0, attendee->name() );
00074 item->setText( 1, attendee->email() );
00075 mWidget->mAddressListView->insertItem( item );
00076 }
00077
00078
QString PublishDialog::addresses()
00079 {
00080
QString to =
"";
00081
QListViewItem *item;
00082
int i, count;
00083 count = mWidget->mAddressListView->childCount();
00084
for ( i=0; i<count; i++ ) {
00085 item = mWidget->mAddressListView->firstChild();
00086 mWidget->mAddressListView->takeItem( item );
00087 to += item->text( 1 );
00088
if ( i < count-1 ) {
00089 to +=
", ";
00090 }
00091 }
00092
return to;
00093 }
00094
00095
void PublishDialog::addItem()
00096 {
00097 mWidget->mNameLineEdit->setEnabled(
true );
00098 mWidget->mEmailLineEdit->setEnabled(
true );
00099
QListViewItem *item =
new QListViewItem( mWidget->mAddressListView );
00100 mWidget->mAddressListView->insertItem( item );
00101 mWidget->mAddressListView->setSelected( item,
true );
00102 mWidget->mNameLineEdit->setText( i18n(
"(EmptyName)") );
00103 mWidget->mEmailLineEdit->setText( i18n(
"(EmptyEmail)") );
00104 }
00105
00106
void PublishDialog::removeItem()
00107 {
00108 QListViewItem *item;
00109 item = mWidget->mAddressListView->selectedItem();
00110
if (!item)
return;
00111 mWidget->mAddressListView->takeItem( item );
00112 item = mWidget->mAddressListView->selectedItem();
00113
if ( !item ) {
00114 mWidget->mNameLineEdit->setText(
"" );
00115 mWidget->mEmailLineEdit->setText(
"" );
00116 mWidget->mNameLineEdit->setEnabled(
false );
00117 mWidget->mEmailLineEdit->setEnabled(
false );
00118 }
00119
if ( mWidget->mAddressListView->childCount() == 0 ) {
00120 mWidget->mNameLineEdit->setEnabled(
false );
00121 mWidget->mEmailLineEdit->setEnabled(
false );
00122 }
00123 }
00124
00125
void PublishDialog::openAddressbook()
00126 {
00127
#ifndef KORG_NOKABC
00128
KABC::Addressee::List addressList;
00129 addressList = KABC::AddresseeDialog::getAddressees(
this );
00130
00131 KABC::Addressee a = addressList.first();
00132
if ( !a.isEmpty() ) {
00133 uint i;
00134
for ( i=0; i<addressList.size(); i++ ) {
00135 a = addressList[i];
00136 mWidget->mNameLineEdit->setEnabled(
true );
00137 mWidget->mEmailLineEdit->setEnabled(
true );
00138 QListViewItem *item =
new QListViewItem( mWidget->mAddressListView );
00139 mWidget->mAddressListView->setSelected( item,
true );
00140 mWidget->mNameLineEdit->setText( a.realName() );
00141 mWidget->mEmailLineEdit->setText( a.preferredEmail() );
00142 mWidget->mAddressListView->insertItem( item );
00143 }
00144 }
00145
#endif
00146
}
00147
00148
void PublishDialog::updateItem()
00149 {
00150 QListViewItem *item;
00151 item = mWidget->mAddressListView->selectedItem();
00152
if (!item)
return;
00153 item->setText( 0, mWidget->mNameLineEdit->text() );
00154 item->setText( 1, mWidget->mEmailLineEdit->text() );
00155 }
00156
00157
void PublishDialog::updateInput()
00158 {
00159 QListViewItem *item;
00160 item = mWidget->mAddressListView->selectedItem();
00161
if (!item)
return;
00162 mWidget->mNameLineEdit->setEnabled(
true );
00163 mWidget->mEmailLineEdit->setEnabled(
true );
00164
QString mail = item->text( 1 );
00165 mWidget->mNameLineEdit->setText( item->text( 0 ) );
00166 mWidget->mEmailLineEdit->setText( mail );
00167 }
00168
00169
#include "publishdialog.moc"