]> cloud.milkyroute.net Git - dolphin.git/commitdiff
let the settings dialog be a singleton (thanks to Max Blazejak for the patch!)
authorPeter Penz <peter.penz19@gmail.com>
Sat, 5 May 2007 20:53:14 +0000 (20:53 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 5 May 2007 20:53:14 +0000 (20:53 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=661508

src/dolphinmainwindow.cpp
src/dolphinsettingsdialog.cpp
src/dolphinsettingsdialog.h

index 489a99327116801dc8b6b1866c6e210aef12550b..2057c05d5ba6b8aa05bc24d2d3da683d3c19fe80 100644 (file)
@@ -950,9 +950,7 @@ void DolphinMainWindow::compareFiles()
 
 void DolphinMainWindow::editSettings()
 {
-    // TODO: make a static method for opening the settings dialog
-    DolphinSettingsDialog dlg(this);
-    dlg.exec();
+    DolphinSettingsDialog::instance(this).exec();
 }
 
 void DolphinMainWindow::init()
index 909fd6f28a9184f71239615bf63543d3d6e7fed8..3ac70de028f00588cff43934ed938347ee53f038 100644 (file)
 #include "viewsettingspage.h"
 #include "dolphinapplication.h"
 #include "dolphinmainwindow.h"
-//Added by qt3to4:
-#include <QFrame>
+
+DolphinSettingsDialog& DolphinSettingsDialog::instance(DolphinMainWindow* mainWindow)
+{
+    static DolphinSettingsDialog* instance = 0;
+    if (instance == 0) {
+        instance = new DolphinSettingsDialog(mainWindow);
+    }
+    return *instance;
+}
+
+DolphinSettingsDialog::~DolphinSettingsDialog()
+{
+}
+
+void DolphinSettingsDialog::slotButtonClicked(int button)
+{
+    if (button == Ok || button == Apply) {
+        applySettings();
+    }
+    KPageDialog::slotButtonClicked(button);
+}
 
 DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
-        KPageDialog(),
-        m_mainWindow(mainWindow)
+    KPageDialog(),
+    m_mainWindow(mainWindow)
 {
     const QSize minSize = minimumSize();
     setMinimumSize(QSize(512, minSize.height()));
@@ -49,17 +68,6 @@ DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
     viewSettingsFrame->setIcon(KIcon("view-choose"));
 }
 
-DolphinSettingsDialog::~DolphinSettingsDialog()
-{}
-
-void DolphinSettingsDialog::slotButtonClicked(int button)
-{
-    if (button == Ok || button == Apply) {
-        applySettings();
-    }
-    KPageDialog::slotButtonClicked(button);
-}
-
 void DolphinSettingsDialog::applySettings()
 {
     m_generalSettingsPage->applySettings();
index 95150dab8900e96c40ba1314fdede27f965191c3..3a13dd0bde6630cfdd70e4c2f37ab5b924a84e5b 100644 (file)
@@ -39,18 +39,20 @@ class DolphinSettingsDialog : public KPageDialog
     Q_OBJECT
 
 public:
-    explicit DolphinSettingsDialog(DolphinMainWindow* mainWindow);
+    static DolphinSettingsDialog& instance(DolphinMainWindow* mainWindow);
     virtual ~DolphinSettingsDialog();
 
 protected slots:
     virtual void slotButtonClicked(int button);
 
+private:
+    DolphinSettingsDialog(DolphinMainWindow* mainWindow);
+    void applySettings();
+
 private:
     DolphinMainWindow* m_mainWindow;
     GeneralSettingsPage* m_generalSettingsPage;
     ViewSettingsPage* m_viewSettingsPage;
-
-    void applySettings();
 };
 
 #endif