diff --git a/kaddressbookpart.cpp b/kaddressbookpart.cpp index 9ad25573f55a08f8843d6e487ccfc2fe60ebc7a3..0ecfb28fc82b0f526fd07999a93170c7a0ec0748 100644 --- a/kaddressbookpart.cpp +++ b/kaddressbookpart.cpp @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include @@ -41,7 +43,6 @@ KAddressBookPart::KAddressBookPart( QWidget *parentWidget, QObject *parent, setComponentData( KAddressBookFactory::componentData() ); KIconLoader::global()->addAppDir( "kaddressbook" ); - setXMLFile( "kaddressbookui.rc" ); // create a canvas to insert our widget QWidget *canvas = new QWidget( parentWidget ); canvas->setFocusPolicy( Qt::ClickFocus ); @@ -49,9 +50,19 @@ KAddressBookPart::KAddressBookPart( QWidget *parentWidget, QObject *parent, QVBoxLayout *topLayout = new QVBoxLayout( canvas ); mMainWidget = new MainWidget( this, canvas ); + initAction(); topLayout->addWidget( mMainWidget ); topLayout->setMargin(0); + setXMLFile( "kaddressbookui.rc" ); +} + +void KAddressBookPart::initAction() +{ + KAction *action = new KAction( KIcon( "configure" ), i18n( "&Configure KAddressBook..." ), this ); + actionCollection()->addAction( "kaddressbook_configure", action ); + connect( action, SIGNAL(triggered(bool)), mMainWidget, + SLOT(configure()) ); } void KAddressBookPart::newContact() diff --git a/kaddressbookpart.h b/kaddressbookpart.h index 95cc7d3cb5003e14257933ef7af927c5e81a19b7..ce36e06ba75139ed995a4be17b25270be27e9552 100644 --- a/kaddressbookpart.h +++ b/kaddressbookpart.h @@ -41,7 +41,7 @@ class KAddressBookPart: public KParts::ReadOnlyPart protected: virtual bool openFile(); virtual void guiActivateEvent( KParts::GUIActivateEvent * ); - + void initAction(); private: MainWidget *mMainWidget; }; diff --git a/kaddressbookui.rc b/kaddressbookui.rc index ec676ae24e4847fd4290970e74420232f55429f5..2c1469d80dcda913965624adbf5acc1fe311a9c7 100644 --- a/kaddressbookui.rc +++ b/kaddressbookui.rc @@ -1,5 +1,5 @@ - + &File @@ -47,6 +47,11 @@ &Settings + + + + + diff --git a/mainwidget.cpp b/mainwidget.cpp index c72b87e397eb70143989e465a31d73b5e4dce56b..b149149f489cbd4d53081b2195e5fbc4fb681e39 100644 --- a/mainwidget.cpp +++ b/mainwidget.cpp @@ -68,6 +68,7 @@ #include #include #include +#include #include #include @@ -256,6 +257,15 @@ MainWidget::MainWidget( KXMLGUIClient *guiClient, QWidget *parent ) QMetaObject::invokeMethod( this, "delayedInit", Qt::QueuedConnection ); } +void MainWidget::configure() +{ + KCMultiDialog dlg( this ); + dlg.addModule( "akonadicontact_actions.desktop" ); + dlg.addModule( "kcmldap.desktop" ); + + dlg.exec(); +} + void MainWidget::delayedInit() { // restore previous state diff --git a/mainwidget.h b/mainwidget.h index eff2d663b35d5285605ff4cc5d768df2c0ca7ccb..f83bc62c04bf312e53bf06325da43fd3c899e804 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -61,6 +61,7 @@ class KADDRESSBOOK_EXPORT MainWidget : public QWidget void newContact(); void newGroup(); void print(); + void configure(); private Q_SLOTS: void delayedInit(); diff --git a/mainwindow.cpp b/mainwindow.cpp index 7397972bfedd53ae7f64a6a08431edf5bb7181a6..6ee361713155ec0d68bdcdaf66a94cddd616848c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -23,11 +23,11 @@ #include #include -#include #include #include #include #include +#include MainWindow::MainWindow() : KXmlGuiWindow( 0 ) @@ -68,11 +68,7 @@ void MainWindow::initActions() void MainWindow::configure() { - KCMultiDialog dlg( this ); - dlg.addModule( "akonadicontact_actions.desktop" ); - dlg.addModule( "kcmldap.desktop" ); - - dlg.exec(); + mMainWidget->configure(); } void MainWindow::configureKeyBindings()