diff options
| author | Peter Penz <[email protected]> | 2009-01-17 18:42:06 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2009-01-17 18:42:06 +0000 |
| commit | 8acb68ed2835410af934459073048339c7b262a0 (patch) | |
| tree | 6558bc2eb08ae365994dd05870bf9acb853f984e /src/settings/generalsettingspage.cpp | |
| parent | 9e6b85cd6e31dd7f530d68b744af1f1b1e2f8968 (diff) | |
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
Diffstat (limited to 'src/settings/generalsettingspage.cpp')
| -rw-r--r-- | src/settings/generalsettingspage.cpp | 162 |
1 files changed, 42 insertions, 120 deletions
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 ([email protected]) and * - * and Patrice Tremblay * + * Copyright (C) 2006 by Peter Penz * + * [email protected] * * * * 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 <kdialog.h> #include <klocale.h> -#include <kvbox.h> +#include <kiconloader.h> +#include <ktabwidget.h> -#include <QCheckBox> -#include <QGroupBox> -#include <QLabel> #include <QVBoxLayout> -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); - - QGroupBox* statusBarBox = new QGroupBox(i18nc("@title:group", "Status Bar"), vBox); - - m_showZoomSlider = new QCheckBox(i18nc("@option:check", "Show zoom slider"), statusBarBox); - connect(m_showZoomSlider, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + topLayout->setMargin(0); + topLayout->setSpacing(KDialog::spacingHint()); - m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), statusBarBox); - connect(m_showSpaceInfo, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + KTabWidget* tabWidget = new KTabWidget(this); - QVBoxLayout* statusBarBoxLayout = new QVBoxLayout(statusBarBox); - statusBarBoxLayout->addWidget(m_showZoomSlider); - statusBarBoxLayout->addWidget(m_showSpaceInfo); + // 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_browseThroughArchives = new QCheckBox(i18nc("@option:check", "Browse through archives"), vBox); - connect(m_browseThroughArchives, 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())); - m_renameInline = new QCheckBox(i18nc("@option:check", "Rename inline"), vBox); - connect(m_renameInline, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // 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_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"), vBox); - connect(m_autoExpandFolders, 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())); - // Add a dummy widget with no restriction regarding - // a vertical resizing. This assures that the dialog layout - // is not stretched vertically. - new QWidget(vBox); + m_pages.append(behaviorPage); + m_pages.append(previewsPage); + m_pages.append(contextMenuPage); + m_pages.append(statusBarPage); - 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" |
