From 8acb68ed2835410af934459073048339c7b262a0 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sat, 17 Jan 2009 18:42:06 +0000 Subject: Relayout of the settings dialog, so that all Dolphin KPart relevant settings can be made available in Konqueror's settings dialog too. Further cleanups and layout fixes are required and will be done during the next week. svn path=/trunk/KDE/kdebase/apps/; revision=912587 --- src/settings/generalsettingspage.cpp | 162 +++++++++-------------------------- 1 file changed, 42 insertions(+), 120 deletions(-) (limited to 'src/settings/generalsettingspage.cpp') diff --git a/src/settings/generalsettingspage.cpp b/src/settings/generalsettingspage.cpp index 86b6f1939..6b7d5917c 100644 --- a/src/settings/generalsettingspage.cpp +++ b/src/settings/generalsettingspage.cpp @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2006 by Peter Penz (peter.penz@gmx.at) and * - * and Patrice Tremblay * + * Copyright (C) 2006 by Peter Penz * + * peter.penz@gmx.at * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -15,99 +15,60 @@ * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "generalsettingspage.h" -#include "settings/dolphinsettings.h" - -#include "dolphin_generalsettings.h" +#include "behaviorsettingspage.h" +#include "contextmenusettingspage.h" +#include "previewssettingspage.h" +#include "settingspagebase.h" +#include "statusbarsettingspage.h" #include #include -#include +#include +#include -#include -#include -#include #include -GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) : +GeneralSettingsPage::GeneralSettingsPage(const KUrl& url, QWidget* parent) : SettingsPageBase(parent), - m_confirmMoveToTrash(0), - m_confirmDelete(0), - m_showDeleteCommand(0), - m_showCopyMoveMenu(0), - m_showZoomSlider(0), - m_showSpaceInfo(0), - m_browseThroughArchives(0), - m_renameInline(0), - m_autoExpandFolders(0) + m_pages() { - Q_UNUSED(mainWin); - - const int spacing = KDialog::spacingHint(); - QVBoxLayout* topLayout = new QVBoxLayout(this); - KVBox* vBox = new KVBox(this); - vBox->setSpacing(spacing); - - // create 'Ask Confirmation For' group - QGroupBox* confirmBox = new QGroupBox(i18nc("@title:group", "Ask For Confirmation When"), vBox); - m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check Ask for Confirmation When", - "Moving files or folders to trash"), confirmBox); - connect(m_confirmMoveToTrash, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for Confirmation When", - "Deleting files or folders"), confirmBox); - connect(m_confirmDelete, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - - QVBoxLayout* confirmBoxLayout = new QVBoxLayout(confirmBox); - confirmBoxLayout->addWidget(m_confirmMoveToTrash); - confirmBoxLayout->addWidget(m_confirmDelete); - - QGroupBox* contextMenuBox = new QGroupBox(i18nc("@title:group", "Context Menu"), vBox); - - // create 'Show the command 'Delete' in context menu' checkbox - m_showDeleteCommand = new QCheckBox(i18nc("@option:check", "Show 'Delete' command"), contextMenuBox); - connect(m_showDeleteCommand, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - - m_showCopyMoveMenu = new QCheckBox(i18nc("@option:check", "Show 'Copy To' and 'Move To' commands"), contextMenuBox); - connect(m_showCopyMoveMenu, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - - QVBoxLayout* contextMenuBoxLayout = new QVBoxLayout(contextMenuBox); - contextMenuBoxLayout->addWidget(m_showDeleteCommand); - contextMenuBoxLayout->addWidget(m_showCopyMoveMenu); + topLayout->setMargin(0); + topLayout->setSpacing(KDialog::spacingHint()); - QGroupBox* statusBarBox = new QGroupBox(i18nc("@title:group", "Status Bar"), vBox); + KTabWidget* tabWidget = new KTabWidget(this); - m_showZoomSlider = new QCheckBox(i18nc("@option:check", "Show zoom slider"), statusBarBox); - connect(m_showZoomSlider, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // initialize 'Behavior' tab + BehaviorSettingsPage* behaviorPage = new BehaviorSettingsPage(url, tabWidget); + tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior")); + connect(behaviorPage, SIGNAL(changed()), this, SIGNAL(changed())); - m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), statusBarBox); - connect(m_showSpaceInfo, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // initialize 'Previews' tab + PreviewsSettingsPage* previewsPage = new PreviewsSettingsPage(tabWidget); + tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews")); + connect(previewsPage, SIGNAL(changed()), this, SIGNAL(changed())); - QVBoxLayout* statusBarBoxLayout = new QVBoxLayout(statusBarBox); - statusBarBoxLayout->addWidget(m_showZoomSlider); - statusBarBoxLayout->addWidget(m_showSpaceInfo); + // initialize 'Context Menu' tab + ContextMenuSettingsPage* contextMenuPage = new ContextMenuSettingsPage(tabWidget); + tabWidget->addTab(contextMenuPage, i18nc("@title:tab Context Menu settings", "Context Menu")); + connect(contextMenuPage, SIGNAL(changed()), this, SIGNAL(changed())); - m_browseThroughArchives = new QCheckBox(i18nc("@option:check", "Browse through archives"), vBox); - connect(m_browseThroughArchives, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // initialize 'Status Bar' tab + StatusBarSettingsPage* statusBarPage = new StatusBarSettingsPage(tabWidget); + tabWidget->addTab(statusBarPage, i18nc("@title:tab Status Bar settings", "Status Bar")); + connect(statusBarPage, SIGNAL(changed()), this, SIGNAL(changed())); - m_renameInline = new QCheckBox(i18nc("@option:check", "Rename inline"), vBox); - connect(m_renameInline, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + m_pages.append(behaviorPage); + m_pages.append(previewsPage); + m_pages.append(contextMenuPage); + m_pages.append(statusBarPage); - m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"), vBox); - connect(m_autoExpandFolders, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - - // Add a dummy widget with no restriction regarding - // a vertical resizing. This assures that the dialog layout - // is not stretched vertically. - new QWidget(vBox); - - topLayout->addWidget(vBox); - - loadSettings(); + topLayout->addWidget(tabWidget, 0, 0); } GeneralSettingsPage::~GeneralSettingsPage() @@ -116,55 +77,16 @@ GeneralSettingsPage::~GeneralSettingsPage() void GeneralSettingsPage::applySettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - - KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig("kiorc", KConfig::NoGlobals); - KConfigGroup confirmationGroup(kioConfig, "Confirmations"); - confirmationGroup.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked()); - confirmationGroup.writeEntry("ConfirmDelete", m_confirmDelete->isChecked()); - confirmationGroup.sync(); - - KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); - KConfigGroup configGroup(globalConfig, "KDE"); - configGroup.writeEntry("ShowDeleteCommand", m_showDeleteCommand->isChecked()); - configGroup.sync(); - - settings->setShowCopyMoveMenu(m_showCopyMoveMenu->isChecked()); - settings->setShowZoomSlider(m_showZoomSlider->isChecked()); - settings->setShowSpaceInfo(m_showSpaceInfo->isChecked()); - settings->setBrowseThroughArchives(m_browseThroughArchives->isChecked()); - settings->setRenameInline(m_renameInline->isChecked()); - settings->setAutoExpandFolders(m_autoExpandFolders->isChecked()); + foreach (SettingsPageBase* page, m_pages) { + page->applySettings(); + } } void GeneralSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - settings->setDefaults(); - - // TODO: reset default settings for trash and show delete command... - - loadSettings(); -} - -void GeneralSettingsPage::loadSettings() -{ - KSharedConfig::Ptr kioConfig = KSharedConfig::openConfig("kiorc", KConfig::IncludeGlobals); - const KConfigGroup confirmationGroup(kioConfig, "Confirmations"); - m_confirmMoveToTrash->setChecked(confirmationGroup.readEntry("ConfirmTrash", false)); - m_confirmDelete->setChecked(confirmationGroup.readEntry("ConfirmDelete", true)); - - KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::IncludeGlobals); - KConfigGroup configGroup(globalConfig, "KDE"); - m_showDeleteCommand->setChecked(configGroup.readEntry("ShowDeleteCommand", false)); - - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - m_showCopyMoveMenu->setChecked(settings->showCopyMoveMenu()); - m_showZoomSlider->setChecked(settings->showZoomSlider()); - m_showSpaceInfo->setChecked(settings->showSpaceInfo()); - m_browseThroughArchives->setChecked(settings->browseThroughArchives()); - m_renameInline->setChecked(settings->renameInline()); - m_autoExpandFolders->setChecked(settings->autoExpandFolders()); + foreach (SettingsPageBase* page, m_pages) { + page->restoreDefaults(); + } } #include "generalsettingspage.moc" -- cgit v1.3