X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/be9746e87bb6a42e641dbf36c528a60fb564420a..13b2fc55704fbc734cd4f9cbae56cfc2ef3ec0ce:/src/generalsettingspage.cpp diff --git a/src/generalsettingspage.cpp b/src/generalsettingspage.cpp index ccb06cd09..4a8230bb7 100644 --- a/src/generalsettingspage.cpp +++ b/src/generalsettingspage.cpp @@ -21,101 +21,66 @@ #include "generalsettingspage.h" #include "dolphinsettings.h" -#include "dolphinmainwindow.h" -#include "dolphinview.h" -#include "dolphinviewcontainer.h" #include "dolphin_generalsettings.h" #include -#include #include #include #include #include #include -#include -#include -#include +#include GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) : SettingsPageBase(parent), - m_mainWindow(mainWin), - m_homeUrl(0), - m_splitView(0), - m_editableUrl(0), - m_filterBar(0), - m_showDeleteCommand(0), m_confirmMoveToTrash(0), - m_confirmDelete(0) + m_confirmDelete(0), + m_showDeleteCommand(0), + m_showCopyMoveMenu(0), + m_browseThroughArchives(0), + m_renameInline(0) { + Q_UNUSED(mainWin); + const int spacing = KDialog::spacingHint(); QVBoxLayout* topLayout = new QVBoxLayout(this); KVBox* vBox = new KVBox(this); vBox->setSpacing(spacing); - // create 'Home URL' editor - QGroupBox* homeBox = new QGroupBox(i18n("Home Folder"), vBox); - - KHBox* homeUrlBox = new KHBox(homeBox); - homeUrlBox->setSpacing(spacing); - - new QLabel(i18n("Location:"), homeUrlBox); - m_homeUrl = new QLineEdit(homeUrlBox); - - QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox); - connect(selectHomeUrlButton, SIGNAL(clicked()), - this, SLOT(selectHomeUrl())); - - KHBox* buttonBox = new KHBox(homeBox); - buttonBox->setSpacing(spacing); - - QPushButton* useCurrentButton = new QPushButton(i18n("Use Current Location"), buttonBox); - connect(useCurrentButton, SIGNAL(clicked()), - this, SLOT(useCurrentLocation())); - QPushButton* useDefaultButton = new QPushButton(i18n("Use Default Location"), buttonBox); - connect(useDefaultButton, SIGNAL(clicked()), - this, SLOT(useDefaultLocation())); - - QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox); - homeBoxLayout->addWidget(homeUrlBox); - homeBoxLayout->addWidget(buttonBox); - - QGroupBox* startBox = new QGroupBox(i18n("Startup Settings"), vBox); - - // create 'Split view', 'Editable location' and 'Filter bar' checkboxes - m_splitView = new QCheckBox(i18n("Split view mode"), startBox); - m_editableUrl = new QCheckBox(i18n("Editable location bar"), startBox); - m_filterBar = new QCheckBox(i18n("Show filter bar"),startBox); - - QVBoxLayout* startBoxLayout = new QVBoxLayout(startBox); - startBoxLayout->addWidget(m_splitView); - startBoxLayout->addWidget(m_editableUrl); - startBoxLayout->addWidget(m_filterBar); - // create 'Ask Confirmation For' group - KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals); - const KConfigGroup trashConfig(konqConfig, "Trash"); - - QGroupBox* confirmBox = new QGroupBox(i18n("Ask For Confirmation When"), vBox); - - m_confirmMoveToTrash = new QCheckBox(i18n("Moving files or folders to trash"), confirmBox); - m_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false)); - - m_confirmDelete = new QCheckBox(i18n("Deleting files or folders"), confirmBox); - m_confirmDelete->setChecked(trashConfig.readEntry("ConfirmDelete", true)); + 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(i18n("Show 'Delete' command in context menu"), vBox); - const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); - const KConfigGroup kdeConfig(globalConfig, "KDE"); - m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false)); + 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); + + m_browseThroughArchives = new QCheckBox(i18nc("@option:check", "Browse through archives"), vBox); + connect(m_browseThroughArchives, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + + m_renameInline = new QCheckBox(i18nc("@option:check", "Rename inline"), vBox); + connect(m_renameInline, SIGNAL(toggled(bool)), this, SIGNAL(changed())); // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout @@ -135,25 +100,19 @@ void GeneralSettingsPage::applySettings() { GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - const KUrl url(m_homeUrl->text()); - KFileItem fileItem(S_IFDIR, KFileItem::Unknown, url); - if (url.isValid() && fileItem.isDir()) { - settings->setHomeUrl(url.prettyUrl()); - } - - settings->setSplitView(m_splitView->isChecked()); - settings->setEditableUrl(m_editableUrl->isChecked()); - settings->setFilterBar(m_filterBar->isChecked()); - KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals); KConfigGroup trashConfig(konqConfig, "Trash"); trashConfig.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked()); trashConfig.writeEntry("ConfirmDelete", m_confirmDelete->isChecked()); + trashConfig.sync(); - KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); - KConfigGroup kdeConfig(globalConfig, "KDE"); + KConfigGroup kdeConfig(KGlobal::config(), "KDE"); kdeConfig.writeEntry("ShowDeleteCommand", m_showDeleteCommand->isChecked()); kdeConfig.sync(); + + settings->setShowCopyMoveMenu(m_showCopyMoveMenu->isChecked()); + settings->setBrowseThroughArchives(m_browseThroughArchives->isChecked()); + settings->setRenameInline(m_renameInline->isChecked()); } void GeneralSettingsPage::restoreDefaults() @@ -162,41 +121,24 @@ void GeneralSettingsPage::restoreDefaults() settings->setDefaults(); // TODO: reset default settings for trash and show delete command... - //KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals); - //KConfigGroup trashConfig(konqConfig, "Trash"); - //KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); - //KConfigGroup kdeConfig(globalConfig, "KDE"); loadSettings(); } -void GeneralSettingsPage::selectHomeUrl() -{ - const QString homeUrl(m_homeUrl->text()); - KUrl url(KFileDialog::getExistingDirectoryUrl(homeUrl)); - if (!url.isEmpty()) { - m_homeUrl->setText(url.prettyUrl()); - } -} - -void GeneralSettingsPage::useCurrentLocation() +void GeneralSettingsPage::loadSettings() { - const DolphinView* view = m_mainWindow->activeViewContainer()->view(); - m_homeUrl->setText(view->url().prettyUrl()); -} + KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals); + const KConfigGroup trashConfig(konqConfig, "Trash"); + m_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false)); + m_confirmDelete->setChecked(trashConfig.readEntry("ConfirmDelete", true)); -void GeneralSettingsPage::useDefaultLocation() -{ - m_homeUrl->setText("file://" + QDir::homePath()); -} + const KConfigGroup kdeConfig(KGlobal::config(), "KDE"); + m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false)); -void GeneralSettingsPage::loadSettings() -{ GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - m_homeUrl->setText(settings->homeUrl()); - m_splitView->setChecked(settings->splitView()); - m_editableUrl->setChecked(settings->editableUrl()); - m_filterBar->setChecked(settings->filterBar()); + m_showCopyMoveMenu->setChecked(settings->showCopyMoveMenu()); + m_browseThroughArchives->setChecked(settings->browseThroughArchives()); + m_renameInline->setChecked(settings->renameInline()); } #include "generalsettingspage.moc"