┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-05-05 20:53:14 +0000
committerPeter Penz <[email protected]>2007-05-05 20:53:14 +0000
commitd00a89513183157ce9e1b63913de7a525ad7588a (patch)
tree7236c94ce493ec896e2ff20105d3d28184326632 /src
parentbe7f817875e533cd9dabde7115febfc1fd6a37f6 (diff)
let the settings dialog be a singleton (thanks to Max Blazejak for the patch!)
svn path=/trunk/KDE/kdebase/apps/; revision=661508
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp4
-rw-r--r--src/dolphinsettingsdialog.cpp38
-rw-r--r--src/dolphinsettingsdialog.h8
3 files changed, 29 insertions, 21 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 489a99327..2057c05d5 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -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()
diff --git a/src/dolphinsettingsdialog.cpp b/src/dolphinsettingsdialog.cpp
index 909fd6f28..3ac70de02 100644
--- a/src/dolphinsettingsdialog.cpp
+++ b/src/dolphinsettingsdialog.cpp
@@ -25,12 +25,31 @@
#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();
diff --git a/src/dolphinsettingsdialog.h b/src/dolphinsettingsdialog.h
index 95150dab8..3a13dd0bd 100644
--- a/src/dolphinsettingsdialog.h
+++ b/src/dolphinsettingsdialog.h
@@ -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