X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/623c19e042cd19c147bc27f50b62c22b4986e6b6..5d9a7d1ad376912ac75a6853485fd8e299754d9a:/src/generalsettingspage.cpp diff --git a/src/generalsettingspage.cpp b/src/generalsettingspage.cpp index 8ac1a37ea..f856de1b1 100644 --- a/src/generalsettingspage.cpp +++ b/src/generalsettingspage.cpp @@ -20,6 +20,13 @@ #include "generalsettingspage.h" +#include "dolphinsettings.h" +#include "dolphinmainwindow.h" +#include "dolphinview.h" +#include "dolphinviewcontainer.h" + +#include "dolphin_generalsettings.h" + #include #include #include @@ -32,47 +39,43 @@ #include #include -#include "dolphinsettings.h" -#include "dolphinmainwindow.h" -#include "dolphinview.h" - -#include "dolphin_generalsettings.h" - -GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* parent) : +GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) : SettingsPageBase(parent), m_mainWindow(mainWin), m_homeUrl(0), - m_startSplit(0), - m_startEditable(0), - m_showDeleteCommand(0) + m_splitView(0), + m_editableUrl(0), + m_filterBar(0), + m_showDeleteCommand(0), + m_confirmMoveToTrash(0), + m_confirmDelete(0) { const int spacing = KDialog::spacingHint(); - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); 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); + QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox); KHBox* homeUrlBox = new KHBox(homeBox); homeUrlBox->setSpacing(spacing); - new QLabel(i18n("Location:"), homeUrlBox); - m_homeUrl = new QLineEdit(settings->homeUrl(), homeUrlBox); + new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox); + m_homeUrl = new QLineEdit(homeUrlBox); - QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder"), QString(), 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); + QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox); connect(useCurrentButton, SIGNAL(clicked()), this, SLOT(useCurrentLocation())); - QPushButton* useDefaultButton = new QPushButton(i18n("Use default location"), buttonBox); + QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox); connect(useDefaultButton, SIGNAL(clicked()), this, SLOT(useDefaultLocation())); @@ -80,24 +83,31 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* par homeBoxLayout->addWidget(homeUrlBox); homeBoxLayout->addWidget(buttonBox); - QGroupBox* startBox = new QGroupBox(i18n("Start"), vBox); + QGroupBox* startBox = new QGroupBox(i18nc("@title:group", "Startup Settings"), vBox); - // create 'Start with split view' checkbox - m_startSplit = new QCheckBox(i18n("Start with split view"), startBox); - m_startSplit->setChecked(settings->splitView()); - - // create 'Start with editable navigation bar' checkbox - m_startEditable = new QCheckBox(i18n("Start with editable navigation bar"), startBox); - m_startEditable->setChecked(settings->editableUrl()); + // create 'Split view', 'Editable location' and 'Filter bar' checkboxes + m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), startBox); + m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), startBox); + m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"),startBox); QVBoxLayout* startBoxLayout = new QVBoxLayout(startBox); - startBoxLayout->addWidget(m_startSplit); - startBoxLayout->addWidget(m_startEditable); + startBoxLayout->addWidget(m_splitView); + startBoxLayout->addWidget(m_editableUrl); + startBoxLayout->addWidget(m_filterBar); - m_showDeleteCommand = new QCheckBox(i18n("Show the command 'Delete' 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)); + // 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); + m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for Confirmation When", + "Deleting files or folders"), confirmBox); + + QVBoxLayout* confirmBoxLayout = new QVBoxLayout(confirmBox); + confirmBoxLayout->addWidget(m_confirmMoveToTrash); + confirmBoxLayout->addWidget(m_confirmDelete); + + // create 'Show the command 'Delete' in context menu' checkbox + m_showDeleteCommand = new QCheckBox(i18nc("@option:check", "Show 'Delete' command in context menu"), vBox); // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout @@ -105,8 +115,9 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* par new QWidget(vBox); topLayout->addWidget(vBox); -} + loadSettings(); +} GeneralSettingsPage::~GeneralSettingsPage() { @@ -122,19 +133,35 @@ void GeneralSettingsPage::applySettings() settings->setHomeUrl(url.prettyUrl()); } - settings->setSplitView(m_startSplit->isChecked()); - settings->setEditableUrl(m_startEditable->isChecked()); + settings->setSplitView(m_splitView->isChecked()); + settings->setEditableUrl(m_editableUrl->isChecked()); + settings->setFilterBar(m_filterBar->isChecked()); - KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); - KConfigGroup kdeConfig(globalConfig, "KDE"); + 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(); + + KConfigGroup kdeConfig(KGlobal::config(), "KDE"); kdeConfig.writeEntry("ShowDeleteCommand", m_showDeleteCommand->isChecked()); kdeConfig.sync(); } +void GeneralSettingsPage::restoreDefaults() +{ + GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + settings->setDefaults(); + + // TODO: reset default settings for trash and show delete command... + + loadSettings(); +} + void GeneralSettingsPage::selectHomeUrl() { const QString homeUrl(m_homeUrl->text()); - KUrl url(KFileDialog::getExistingUrl(homeUrl)); + KUrl url(KFileDialog::getExistingDirectoryUrl(homeUrl)); if (!url.isEmpty()) { m_homeUrl->setText(url.prettyUrl()); } @@ -142,7 +169,7 @@ void GeneralSettingsPage::selectHomeUrl() void GeneralSettingsPage::useCurrentLocation() { - const DolphinView* view = m_mainWindow->activeView(); + const DolphinView* view = m_mainWindow->activeViewContainer()->view(); m_homeUrl->setText(view->url().prettyUrl()); } @@ -151,4 +178,21 @@ void GeneralSettingsPage::useDefaultLocation() m_homeUrl->setText("file://" + QDir::homePath()); } +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()); + + 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)); + + const KConfigGroup kdeConfig(KGlobal::config(), "KDE"); + m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false)); +} + #include "generalsettingspage.moc"