00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "emailselectdialog.h"
00022 #include "addresseedialog.h"
00023
00024 #include <klocale.h>
00025
00026 #include <QtCore/QPointer>
00027 #include <QtGui/QButtonGroup>
00028 #include <QtGui/QGroupBox>
00029 #include <QtGui/QLayout>
00030 #include <QtGui/QRadioButton>
00031
00032 #include "emailselectdialog.moc"
00033
00034 using namespace KABC;
00035
00036 class EmailSelectDialog::Private
00037 {
00038 public:
00039 QButtonGroup *mButtonGroup;
00040 };
00041
00042 EmailSelectDialog::EmailSelectDialog( const QStringList &emails,
00043 const QString ¤t,
00044 QWidget *parent )
00045 : KDialog( parent ), d( new Private )
00046 {
00047 setCaption( i18n( "Select Email Address" ) );
00048 setButtons( Ok );
00049 setDefaultButton( Ok );
00050
00051 QFrame *topFrame = new QFrame( this );
00052 setMainWidget( topFrame );
00053
00054 QBoxLayout *topLayout = new QVBoxLayout( topFrame );
00055 QGroupBox *box = new QGroupBox( i18n( "Email Addresses" ) );
00056 d->mButtonGroup = new QButtonGroup( box );
00057 d->mButtonGroup->setExclusive( true );
00058 topLayout->addWidget( box );
00059 QVBoxLayout *layout = new QVBoxLayout;
00060
00061 QStringList::ConstIterator it;
00062 for ( it = emails.begin(); it != emails.end(); ++it ) {
00063 QRadioButton *button = new QRadioButton( *it, box );
00064 d->mButtonGroup->addButton( button );
00065 layout->addWidget( button );
00066 if ( (*it) == current ) {
00067 button->setChecked( true );
00068 }
00069 }
00070 layout->addStretch( 1 );
00071 box->setLayout( layout );
00072 }
00073
00074 EmailSelectDialog::~EmailSelectDialog()
00075 {
00076 delete d;
00077 }
00078
00079 QString EmailSelectDialog::selected()
00080 {
00081 QAbstractButton *button = d->mButtonGroup->checkedButton();
00082 if ( button ) {
00083 return button->text();
00084 }
00085 return QString();
00086 }
00087
00088 QString EmailSelectDialog::getEmail( const QStringList &emails, const QString ¤t,
00089 QWidget *parent )
00090 {
00091 QPointer<EmailSelectDialog> dlg = new EmailSelectDialog( emails, current, parent );
00092
00093 QString result;
00094 if ( dlg->exec() && dlg ) {
00095 result = dlg->selected();
00096 }
00097
00098 delete dlg;
00099
00100 return result;
00101 }
00102
00103 class EditEntryItem : public QTreeWidgetItem
00104 {
00105 public:
00106 EditEntryItem( QTreeWidget *parent, const Addressee &addressee,
00107 const QString &email=QString() ) :
00108 QTreeWidgetItem( parent ),
00109 mAddressee( addressee ),
00110 mEmail( email )
00111 {
00112 setText( 0, addressee.realName() );
00113 if ( email.isEmpty() ) {
00114 setText( 1, addressee.preferredEmail() );
00115 setText( 2, i18nc( "this the preferred email address", "Yes" ) );
00116 } else {
00117 setText( 1, email );
00118 setText( 2, i18nc( "this is not preferred email address", "No" ) );
00119 }
00120 }
00121
00122 Addressee addressee() const
00123 {
00124 return mAddressee;
00125 }
00126
00127 QString email() const
00128 {
00129 return mEmail;
00130 }
00131
00132 private:
00133 Addressee mAddressee;
00134 QString mEmail;
00135 };