[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kipi-plugins] common/libkipiplugins/dialogs: more private method and data
From:       Gilles Caulier <caulier.gilles () gmail ! com>
Date:       2012-04-11 10:57:07
Message-ID: 20120411105707.51B68A60A9 () git ! kde ! org
[Download RAW message or body]

Git commit 496849dcb9ab8fb96d900cbe5f207ab5f47e3eab by Gilles Caulier.
Committed on 11/04/2012 at 12:55.
Pushed by cgilles into branch 'master'.

more private method and data
factoring

M  +45   -59   common/libkipiplugins/dialogs/kptooldialog.cpp
M  +7    -5    common/libkipiplugins/dialogs/kptooldialog.h

http://commits.kde.org/kipi-plugins/496849dcb9ab8fb96d900cbe5f207ab5f47e3eab

diff --git a/common/libkipiplugins/dialogs/kptooldialog.cpp \
b/common/libkipiplugins/dialogs/kptooldialog.cpp index a437560..de1adb2 100644
--- a/common/libkipiplugins/dialogs/kptooldialog.cpp
+++ b/common/libkipiplugins/dialogs/kptooldialog.cpp
@@ -39,135 +39,121 @@
 namespace KIPIPlugins
 {
 
-static void setupHelpButton(KDialog* const dlg, KPAboutData* const about)
+class KPToolDialog::KPToolDialogPriv
 {
-    QObject::disconnect(dlg, SIGNAL(helpClicked()),
-                        dlg, SLOT(slotHelp()));
+public:
+
+    KPToolDialogPriv(KDialog* const dlg)
+    {
+        about  = 0;
+        dialog = dlg;
+    }
+
+    ~KPToolDialogPriv()
+    {
+        delete about;
+    }
+
+    void setupHelpButton(KPAboutData* const data);
+    void callHelpHandbook();
 
-    KHelpMenu* helpMenu = new KHelpMenu(dlg, about, false);
+public:
+
+    KPAboutData* about;
+    KDialog*     dialog;
+};
+
+void KPToolDialog::KPToolDialogPriv::setupHelpButton(KPAboutData* const data)
+{
+    if (!data) return;
+
+    about = data;
+
+    QObject::disconnect(dialog, SIGNAL(helpClicked()),
+                        dialog, SLOT(slotHelp()));
+
+    KHelpMenu* helpMenu = new KHelpMenu(dialog, about, false);
     helpMenu->menu()->removeAction(helpMenu->menu()->actions().first());
-    KAction* handbook   = new KAction(KIcon("help-contents"), i18n("Handbook"), \
dlg); +    KAction* handbook   = new KAction(KIcon("help-contents"), \
i18n("Handbook"), dialog);  
     QObject::connect(handbook, SIGNAL(triggered(bool)),
-                     dlg, SLOT(slotHelp()));
+                     dialog, SLOT(slotHelp()));
 
     helpMenu->menu()->insertAction(helpMenu->menu()->actions().first(), handbook);
-    dlg->button(KDialog::Help)->setMenu(helpMenu->menu());
+    dialog->button(KDialog::Help)->setMenu(helpMenu->menu());
 }
 
-static void callHelpHandbook(KPAboutData* const about)
+void KPToolDialog::KPToolDialogPriv::callHelpHandbook()
 {
     KToolInvocation::invokeHelp(about ? about->handbookEntry : QString(), \
"kipi-plugins");  }
 
 // -----------------------------------------------------------------------------------
  
-class KPToolDialog::KPToolDialogPriv
-{
-public:
-
-    KPToolDialogPriv()
-    {
-        about = 0;
-    }
-
-    KPAboutData* about;
-};
-
 KPToolDialog::KPToolDialog(QWidget* const parent)
-    : KDialog(parent), d(new KPToolDialogPriv)
+    : KDialog(parent), d(new KPToolDialogPriv(this))
 {
     setButtons(Help | Ok);
 }
 
 KPToolDialog::~KPToolDialog()
 {
-    delete d->about;
     delete d;
 }
 
 void KPToolDialog::setAboutData(KPAboutData* const about)
 {
-    d->about = about;
-    setupHelpButton(this, about);
+    d->setupHelpButton(about);
 }
 
 void KPToolDialog::slotHelp()
 {
-    callHelpHandbook(d->about);
+    d->callHelpHandbook();
 }
 
 // -----------------------------------------------------------------------------------
  
-class KPWizardDialog::KPWizardDialogPriv
-{
-public:
-
-    KPWizardDialogPriv()
-    {
-        about = 0;
-    }
-
-    KPAboutData* about;
-};
-
 KPWizardDialog::KPWizardDialog(QWidget* const parent)
-    : KAssistantDialog(parent), d(new KPWizardDialogPriv)
+    : KAssistantDialog(parent), d(new KPToolDialog::KPToolDialogPriv(this))
 {
 }
 
 KPWizardDialog::~KPWizardDialog()
 {
-    delete d->about;
     delete d;
 }
 
 void KPWizardDialog::setAboutData(KPAboutData* const about)
 {
-    d->about = about;
-    setupHelpButton(this, about);
+    d->setupHelpButton(about);
 }
 
 void KPWizardDialog::slotHelp()
 {
-    callHelpHandbook(d->about);
+    d->callHelpHandbook();
 }
 
 // -----------------------------------------------------------------------------------
  
-class KPPageDialog::KPPageDialogPriv
-{
-public:
-
-    KPPageDialogPriv()
-    {
-        about = 0;
-    }
-
-    KPAboutData* about;
-};
-
 KPPageDialog::KPPageDialog(QWidget* const parent)
-    : KPageDialog(parent), d(new KPPageDialogPriv)
+    : KPageDialog(parent), d(new KPToolDialog::KPToolDialogPriv(this))
 {
     setButtons(Help | Ok);
 }
 
 KPPageDialog::~KPPageDialog()
 {
-    delete d->about;
     delete d;
 }
 
 void KPPageDialog::setAboutData(KPAboutData* const about)
 {
-    d->about = about;
-    setupHelpButton(this, about);
+    d->setupHelpButton(about);
 }
 
 void KPPageDialog::slotHelp()
 {
-    callHelpHandbook(d->about);
+    d->callHelpHandbook();
 }
 
 } // namespace KIPIPlugins
diff --git a/common/libkipiplugins/dialogs/kptooldialog.h \
b/common/libkipiplugins/dialogs/kptooldialog.h index f3f57c7..7346e43 100644
--- a/common/libkipiplugins/dialogs/kptooldialog.h
+++ b/common/libkipiplugins/dialogs/kptooldialog.h
@@ -53,9 +53,13 @@ private Q_SLOTS:
 
     void slotHelp();
 
-private:
+public:
 
+    // Public because it's used by KPWizardDialog and KPPageDialog
     class KPToolDialogPriv;
+
+private:
+
     KPToolDialogPriv* const d;
 };
 
@@ -78,8 +82,7 @@ private Q_SLOTS:
 
 private:
 
-    class KPWizardDialogPriv;
-    KPWizardDialogPriv* const d;
+    KPToolDialog::KPToolDialogPriv* const d;
 };
 
 // -----------------------------------------------------------------------------------
 @@ -101,8 +104,7 @@ private Q_SLOTS:
 
 private:
 
-    class KPPageDialogPriv;
-    KPPageDialogPriv* const d;
+    KPToolDialog::KPToolDialogPriv* const d;
 };
 
 } // namespace KIPIPlugins


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic