22 #include "contacteditordialog.h"
24 #include "contacteditor.h"
26 #include <akonadi/collectioncombobox.h>
27 #include <akonadi/item.h>
29 #include <kabc/addressee.h>
33 #include <QtGui/QGridLayout>
34 #include <QtGui/QLabel>
36 using namespace Akonadi;
38 class ContactEditorDialog::Private
41 Private( ContactEditorDialog::Mode mode, AbstractContactEditorWidget *editorWidget,
42 ContactEditorDialog *parent )
43 : q( parent ), mAddressBookBox( 0 ), mMode( mode )
45 KGlobal::locale()->insertCatalog( QLatin1String(
"akonadicontact" ) );
46 q->setCaption( mode == ContactEditorDialog::CreateMode ? i18n(
"New Contact" ) : i18n(
"Edit Contact" ) );
47 q->setButtons( ContactEditorDialog::Ok | ContactEditorDialog::Cancel );
49 QWidget *mainWidget =
new QWidget( q );
50 q->setMainWidget( mainWidget );
52 QGridLayout *layout =
new QGridLayout( mainWidget );
55 mEditor =
new ContactEditor( mode == ContactEditorDialog::CreateMode ? ContactEditor::CreateMode : ContactEditor::EditMode, editorWidget, q );
57 mEditor =
new ContactEditor( mode == ContactEditorDialog::CreateMode ? ContactEditor::CreateMode : ContactEditor::EditMode, q );
59 if ( mode == ContactEditorDialog::CreateMode ) {
60 QLabel *label =
new QLabel( i18n(
"Add to:" ), mainWidget );
62 mAddressBookBox =
new CollectionComboBox( mainWidget );
63 mAddressBookBox->setMimeTypeFilter( QStringList() << KABC::Addressee::mimeType() );
64 mAddressBookBox->setAccessRightsFilter( Collection::CanCreateItem );
66 layout->addWidget( label, 0, 0 );
67 layout->addWidget( mAddressBookBox, 0, 1 );
70 layout->addWidget( mEditor, 1, 0, 1, 2 );
71 layout->setColumnStretch( 1, 1 );
73 connect( mEditor, SIGNAL(contactStored(Akonadi::Item)),
74 q, SIGNAL(contactStored(Akonadi::Item)) );
76 connect( q, SIGNAL(okClicked()), q, SLOT(slotOkClicked()) );
77 connect( q, SIGNAL(cancelClicked()), q, SLOT(slotCancelClicked()) );
79 q->setInitialSize( QSize( 800, 500 ) );
84 if ( mAddressBookBox )
85 mEditor->setDefaultAddressBook( mAddressBookBox->currentCollection() );
87 if ( mEditor->saveContact() )
91 void slotCancelClicked()
96 ContactEditorDialog *q;
97 CollectionComboBox *mAddressBookBox;
98 ContactEditorDialog::Mode mMode;
99 ContactEditor *mEditor;
102 ContactEditorDialog::ContactEditorDialog( Mode mode, QWidget *parent )
103 : KDialog( parent ), d( new Private( mode, 0, this ) )
107 ContactEditorDialog::ContactEditorDialog( Mode mode, AbstractContactEditorWidget *editorWidget, QWidget *parent )
108 : KDialog( parent ), d( new Private( mode, editorWidget, this ) )
112 ContactEditorDialog::~ContactEditorDialog()
117 void ContactEditorDialog::setContact(
const Akonadi::Item &contact )
119 d->mEditor->loadContact( contact );
122 void ContactEditorDialog::setDefaultAddressBook(
const Akonadi::Collection &addressbook )
124 if ( d->mMode == EditMode )
127 d->mAddressBookBox->setDefaultCollection( addressbook );
130 ContactEditor* ContactEditorDialog::editor()
const
135 #include "contacteditordialog.moc"