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