X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9f3b083b3a5ee598c09c5eff8bf6ba9fde72d951..b3beb9e0c2ff8cdc77f9a48e3416877e5bad0918:/src/dolphinsettingsdialog.cpp diff --git a/src/dolphinsettingsdialog.cpp b/src/dolphinsettingsdialog.cpp index e3561af48..7b1e23266 100644 --- a/src/dolphinsettingsdialog.cpp +++ b/src/dolphinsettingsdialog.cpp @@ -15,58 +15,100 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "dolphinsettingsdialog.h" -#include -#include + +#include "dolphinapplication.h" +#include "dolphinmainwindow.h" #include "generalsettingspage.h" +#include "startupsettingspage.h" #include "viewsettingspage.h" -#include "bookmarkssettingspage.h" -#include "dolphin.h" -//Added by qt3to4: -#include -DolphinSettingsDialog::DolphinSettingsDialog() : - KPageDialog() +#include +#include +#include + +DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) : + KPageDialog(mainWindow), + m_pages() + { - setFaceType( List); - setCaption(i18n("Dolphin Preferences")); - setButtons(Ok|Apply|Cancel); + const QSize minSize = minimumSize(); + setMinimumSize(QSize(512, minSize.height())); + + setFaceType(List); + setCaption(i18nc("@title:window", "Dolphin Preferences")); + setButtons(Ok | Apply | Cancel | Default); + enableButtonApply(false); setDefaultButton(Ok); - m_generalSettingsPage = new GeneralSettingsPage(this); - KPageWidgetItem* generalSettingsFrame = addPage(m_generalSettingsPage, i18n("General")); - generalSettingsFrame->setIcon(KIcon("exec")); + StartupSettingsPage* startupSettingsPage = new StartupSettingsPage(mainWindow, this); + KPageWidgetItem* startupSettingsFrame = addPage(startupSettingsPage, + i18nc("@title:group", "Startup")); + startupSettingsFrame->setIcon(KIcon("go-home")); + connect(startupSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + + ViewSettingsPage* viewSettingsPage = new ViewSettingsPage(mainWindow, this); + KPageWidgetItem* viewSettingsFrame = addPage(viewSettingsPage, + i18nc("@title:group", "View Modes")); + viewSettingsFrame->setIcon(KIcon("view-choose")); + connect(viewSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); + + GeneralSettingsPage* generalSettingsPage = new GeneralSettingsPage(mainWindow, this); + KPageWidgetItem* generalSettingsFrame = addPage(generalSettingsPage, + i18nc("@title:group General settings", "General")); + generalSettingsFrame->setIcon(KIcon("system-run")); + connect(generalSettingsPage, SIGNAL(changed()), this, SLOT(enableApply())); - m_viewSettingsPage = new ViewSettingsPage(this); - KPageWidgetItem* viewSettingsFrame = addPage(m_viewSettingsPage, i18n("View Modes")); - viewSettingsFrame->setIcon(KIcon("view_choose")); + const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog"); + restoreDialogSize(dialogConfig); - m_bookmarksSettingsPage = new BookmarksSettingsPage(this); - KPageWidgetItem* bookmarksSettingsFrame = addPage(m_bookmarksSettingsPage, i18n("Bookmarks")); - bookmarksSettingsFrame->setIcon(KIcon("bookmark")); + m_pages.append(startupSettingsPage); + m_pages.append(viewSettingsPage); + m_pages.append(generalSettingsPage); } DolphinSettingsDialog::~DolphinSettingsDialog() { + KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "SettingsDialog"); + saveDialogSize(dialogConfig); } void DolphinSettingsDialog::slotButtonClicked(int button) { - if (button==Ok || button==Apply) { + 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::enableApply() +{ + enableButtonApply(true); +} + void DolphinSettingsDialog::applySettings() { - m_generalSettingsPage->applySettings(); - m_viewSettingsPage->applySettings(); - m_bookmarksSettingsPage->applySettings(); - Dolphin::mainWin().refreshViews(); + foreach (SettingsPageBase* page, m_pages) { + page->applySettings(); + } + DolphinApplication::app()->refreshMainWindows(); +} + +void DolphinSettingsDialog::restoreDefaults() +{ + foreach (SettingsPageBase* page, m_pages) { + page->restoreDefaults(); + } + DolphinApplication::app()->refreshMainWindows(); } #include "dolphinsettingsdialog.moc"