diff options
| author | Peter Penz <[email protected]> | 2007-05-05 20:53:14 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2007-05-05 20:53:14 +0000 |
| commit | d00a89513183157ce9e1b63913de7a525ad7588a (patch) | |
| tree | 7236c94ce493ec896e2ff20105d3d28184326632 /src | |
| parent | be7f817875e533cd9dabde7115febfc1fd6a37f6 (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.cpp | 4 | ||||
| -rw-r--r-- | src/dolphinsettingsdialog.cpp | 38 | ||||
| -rw-r--r-- | src/dolphinsettingsdialog.h | 8 |
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 |
