]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinsettingsdialog.cpp
Adapt Dolphin Nepomuk support to namespace changes.
[dolphin.git] / src / dolphinsettingsdialog.cpp
index 3ac70de028f00588cff43934ed938347ee53f038..998f6b4d26cd3c7a750528c9b20a749893ef97e0 100644 (file)
  ***************************************************************************/
 
 #include "dolphinsettingsdialog.h"
-#include <klocale.h>
-#include <kicon.h>
-#include "generalsettingspage.h"
-#include "viewsettingspage.h"
+
 #include "dolphinapplication.h"
 #include "dolphinmainwindow.h"
+#include "generalsettingspage.h"
+#include "viewsettingspage.h"
 
-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);
-}
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kicon.h>
 
 DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
     KPageDialog(),
@@ -56,7 +38,7 @@ DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
 
     setFaceType(List);
     setCaption(i18n("Dolphin Preferences"));
-    setButtons(Ok | Apply | Cancel);
+    setButtons(Ok | Apply | Cancel | Default);
     setDefaultButton(Ok);
 
     m_generalSettingsPage = new GeneralSettingsPage(mainWindow, this);
@@ -66,6 +48,29 @@ DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
     m_viewSettingsPage = new ViewSettingsPage(mainWindow, this);
     KPageWidgetItem* viewSettingsFrame = addPage(m_viewSettingsPage, i18n("View Modes"));
     viewSettingsFrame->setIcon(KIcon("view-choose"));
+
+    const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog");
+    restoreDialogSize(dialogConfig);
+}
+
+DolphinSettingsDialog::~DolphinSettingsDialog()
+{
+    KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog");
+    saveDialogSize(dialogConfig, KConfigFlags::Persistent);
+}
+
+void DolphinSettingsDialog::slotButtonClicked(int button)
+{
+    if ((button == Ok) || (button == Apply)) {
+        applySettings();
+    } else if (button == Default) {
+        const QString text(i18n("All settings will be reset to default values. Do you want to continue?"));
+        if (KMessageBox::questionYesNo(this, text) == KMessageBox::Yes) {
+            restoreDefaults();
+        }
+    }
+
+    KPageDialog::slotButtonClicked(button);
 }
 
 void DolphinSettingsDialog::applySettings()
@@ -75,4 +80,11 @@ void DolphinSettingsDialog::applySettings()
     DolphinApplication::app()->refreshMainWindows();
 }
 
+void DolphinSettingsDialog::restoreDefaults()
+{
+    m_generalSettingsPage->restoreDefaults();
+    m_viewSettingsPage->restoreDefaults();
+    DolphinApplication::app()->refreshMainWindows();
+}
+
 #include "dolphinsettingsdialog.moc"