22 #include "contactgroupeditordialog.h"
24 #include "contactgroupeditor.h"
25 #include "contactgroupeditor_p.h"
27 #include <akonadi/collectioncombobox.h>
28 #include <akonadi/item.h>
29 #include <kabc/contactgroup.h>
31 #include <kpushbutton.h>
32 #include <klineedit.h>
34 #include <QGridLayout>
37 using namespace Akonadi;
39 class ContactGroupEditorDialog::Private
43 : q( qq ), mAddressBookBox( 0 ), mEditor( 0 ), mMode( mode )
47 void slotGroupNameChanged(
const QString& name )
49 bool isValid = !( name.contains( QLatin1Char(
'@' ) ) || name.contains( QLatin1Char(
'.' ) ) );
50 q->button( Ok )->setEnabled( !name.isEmpty() && isValid );
51 mEditor->groupNameIsValid( isValid );
61 : KDialog( parent ), d( new Private( this, mode ) )
63 KGlobal::locale()->insertCatalog( QLatin1String(
"akonadicontact" ) );
64 setCaption( mode ==
CreateMode ? i18n(
"New Contact Group" ) : i18n(
"Edit Contact Group" ) );
65 setButtons( Ok | Cancel );
69 button( Ok )->setAutoDefault(
false );
70 button( Cancel )->setAutoDefault(
false );
72 QWidget *mainWidget =
new QWidget(
this );
73 setMainWidget( mainWidget );
75 QGridLayout *layout =
new QGridLayout( mainWidget );
82 QLabel *label =
new QLabel( i18n(
"Add to:" ), mainWidget );
85 d->mAddressBookBox->setMimeTypeFilter( QStringList() << KABC::ContactGroup::mimeType() );
88 layout->addWidget( label, 0, 0 );
89 layout->addWidget( d->mAddressBookBox, 0, 1 );
92 layout->addWidget( d->mEditor, 1, 0, 1, 2 );
93 layout->setColumnStretch( 1, 1 );
97 connect( d->mEditor->d->mGui.groupName, SIGNAL(textChanged(QString)),
98 this, SLOT(slotGroupNameChanged(QString)) );
100 button( Ok )->setEnabled( !d->mEditor->d->mGui.groupName->text().isEmpty() );
102 setInitialSize( QSize( 470, 400 ) );
112 d->mEditor->loadContactGroup( group );
121 d->mAddressBookBox->setDefaultCollection( addressbook );
129 void ContactGroupEditorDialog::slotButtonClicked(
int button )
131 if ( button == KDialog::Ok ) {
132 if ( d->mAddressBookBox ) {
136 if ( d->mEditor->saveContactGroup() ) {
139 }
else if ( button == KDialog::Cancel ) {
144 #include "moc_contactgroupeditordialog.cpp"