diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 489a993271..2057c05d5b 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 909fd6f28a..3ac70de028 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 + +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 95150dab89..3a13dd0bde 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