From 54d28c178d2ef96bd10ee502b98a6bb5e62549e7 Mon Sep 17 00:00:00 2001 From: Till Adam Date: Wed, 21 Dec 2005 16:19:27 +0000 Subject: [PATCH] Make sure the kmail config is reloaded when a kcm based dialog changes one of our settings, by hooking up to the KSettings::dispatcher. Nicely solves proko2 issue 967. svn path=/branches/kdepim/proko2/kdepim/; revision=490359 --- kmail_part.cpp | 16 ++++++++++------ kmail_part.h | 2 +- kmkernel.h | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/kmail_part.cpp b/kmail_part.cpp index 3b2453e1a..93fb91481 100644 --- a/kmail_part.cpp +++ b/kmail_part.cpp @@ -50,6 +50,8 @@ using KRecentAddress::RecentAddresses; #include #include #include +#include + #include @@ -82,15 +84,15 @@ KMailPart::KMailPart(QWidget *parentWidget, const char *widgetName, kapp->dcopClient()->suspend(); // Don't handle DCOP requests yet //local, do the init - KMKernel *kmailKernel = new KMKernel(); - kmailKernel->init(); - kmailKernel->setXmlGuiInstance( KMailFactory::instance() ); + KMKernel *mKMailKernel = new KMKernel(); + mKMailKernel->init(); + mKMailKernel->setXmlGuiInstance( KMailFactory::instance() ); // and session management - kmailKernel->doSessionManagement(); + mKMailKernel->doSessionManagement(); // any dead letters? - kmailKernel->recoverDeadLetters(); + mKMailKernel->recoverDeadLetters(); kmsetSignalHandler(kmsignalHandler); kapp->dcopClient()->resume(); // Ok. We are ready for DCOP requests. @@ -143,6 +145,9 @@ KMailPart::KMailPart(QWidget *parentWidget, const char *widgetName, KGlobal::iconLoader()->addAppDir( "kmail" ); setXMLFile( "kmmainwin.rc" ); #endif + + KSettings::Dispatcher::self()->registerInstance( KMailFactory::instance(), mKMailKernel, + SLOT( slotConfigChanged() ) ); } KMailPart::~KMailPart() @@ -246,6 +251,5 @@ KMainWindow * KMailStatusBarExtension::mainWindow() const return static_cast( mParent->parentWidget() ); } - #include "kmail_part.moc" diff --git a/kmail_part.h b/kmail_part.h index 50da99d11..ee3b1ed10 100644 --- a/kmail_part.h +++ b/kmail_part.h @@ -76,7 +76,7 @@ class KMailPart: public KParts::ReadOnlyPart, virtual public KMailPartIface virtual void guiActivateEvent(KParts::GUIActivateEvent *e); private: - KMKernel *kmailKernel; + KMKernel *mKMailKernel; KMMainWidget *mainWidget; ActionManager *mActionManager; KMailBrowserExtension *m_extension; diff --git a/kmkernel.h b/kmkernel.h index e658d6863..732d056e7 100644 --- a/kmkernel.h +++ b/kmkernel.h @@ -285,11 +285,11 @@ public slots: void slotShowConfigurationDialog(); void slotRunBackgroundTasks(); + void slotConfigChanged(); protected slots: void slotDataReq(KIO::Job*,QByteArray&); void slotResult(KIO::Job*); - void slotConfigChanged(); signals: void configChanged();