X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d00a89513183157ce9e1b63913de7a525ad7588a..ac73af7bedeebe2afa451249e8a6500651a6ec00:/src/dolphinsettingsdialog.cpp diff --git a/src/dolphinsettingsdialog.cpp b/src/dolphinsettingsdialog.cpp index 3ac70de02..1bbbbde55 100644 --- a/src/dolphinsettingsdialog.cpp +++ b/src/dolphinsettingsdialog.cpp @@ -19,53 +19,59 @@ ***************************************************************************/ #include "dolphinsettingsdialog.h" -#include -#include -#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 +#include +#include DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) : - KPageDialog(), - m_mainWindow(mainWindow) + KPageDialog(mainWindow) { const QSize minSize = minimumSize(); setMinimumSize(QSize(512, minSize.height())); setFaceType(List); - setCaption(i18n("Dolphin Preferences")); - setButtons(Ok | Apply | Cancel); + setCaption(i18nc("@title:window", "Dolphin Preferences")); + setButtons(Ok | Apply | Cancel | Default); setDefaultButton(Ok); m_generalSettingsPage = new GeneralSettingsPage(mainWindow, this); - KPageWidgetItem* generalSettingsFrame = addPage(m_generalSettingsPage, i18n("General")); - generalSettingsFrame->setIcon(KIcon("exec")); + KPageWidgetItem* generalSettingsFrame = addPage(m_generalSettingsPage, + i18nc("@title:group", "General")); + generalSettingsFrame->setIcon(KIcon("system-run")); m_viewSettingsPage = new ViewSettingsPage(mainWindow, this); - KPageWidgetItem* viewSettingsFrame = addPage(m_viewSettingsPage, i18n("View Modes")); + KPageWidgetItem* viewSettingsFrame = addPage(m_viewSettingsPage, + i18nc("@title:group", "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); +} + +void DolphinSettingsDialog::slotButtonClicked(int button) +{ + if ((button == Ok) || (button == Apply)) { + applySettings(); + } else if (button == Default) { + const QString text(i18nc("@info", "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 +81,11 @@ void DolphinSettingsDialog::applySettings() DolphinApplication::app()->refreshMainWindows(); } +void DolphinSettingsDialog::restoreDefaults() +{ + m_generalSettingsPage->restoreDefaults(); + m_viewSettingsPage->restoreDefaults(); + DolphinApplication::app()->refreshMainWindows(); +} + #include "dolphinsettingsdialog.moc"