X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5e7bae10b073c4975cdf01ed348c7f69af327b31..ec00f379dc42b00a64ab1af25bb4bb1a06bd7449:/src/generalsettingspage.cpp diff --git a/src/generalsettingspage.cpp b/src/generalsettingspage.cpp index 1f26d2659..4ba0e6b08 100644 --- a/src/generalsettingspage.cpp +++ b/src/generalsettingspage.cpp @@ -20,24 +20,25 @@ #include "generalsettingspage.h" -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - #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 + GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) : SettingsPageBase(parent), m_mainWindow(mainWin), @@ -45,35 +46,36 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* pa m_splitView(0), m_editableUrl(0), m_filterBar(0), - m_showDeleteCommand(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())); @@ -81,26 +83,38 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* pa homeBoxLayout->addWidget(homeUrlBox); homeBoxLayout->addWidget(buttonBox); - QGroupBox* startBox = new QGroupBox(i18n("Start"), vBox); - - // create 'Split view' checkbox - m_splitView = new QCheckBox(i18n("Split view"), startBox); - m_splitView->setChecked(settings->splitView()); - - // create 'Editable location' checkbox - m_editableUrl = new QCheckBox(i18n("Editable location"), startBox); - m_editableUrl->setChecked(settings->editableUrl()); + QGroupBox* startBox = new QGroupBox(i18nc("@title:group", "Startup Settings"), vBox); - // create 'Filter bar' checkbox - m_filterBar = new QCheckBox(i18n("Filter bar"),startBox); - m_filterBar->setChecked(settings->filterBar()); + // 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_splitView); startBoxLayout->addWidget(m_editableUrl); startBoxLayout->addWidget(m_filterBar); - m_showDeleteCommand = new QCheckBox(i18n("Show the command 'Delete' in context menu"), vBox); + // create 'Ask Confirmation For' group + KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals); + const KConfigGroup trashConfig(konqConfig, "Trash"); + + 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_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false)); + + m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for Confirmation When", + "Deleting files or folders"), confirmBox); + m_confirmDelete->setChecked(trashConfig.readEntry("ConfirmDelete", true)); + + 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); const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); const KConfigGroup kdeConfig(globalConfig, "KDE"); m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false)); @@ -111,11 +125,13 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* pa new QWidget(vBox); topLayout->addWidget(vBox); -} + loadSettings(); +} GeneralSettingsPage::~GeneralSettingsPage() -{} +{ +} void GeneralSettingsPage::applySettings() { @@ -131,12 +147,31 @@ void GeneralSettingsPage::applySettings() 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()); + KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); KConfigGroup kdeConfig(globalConfig, "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... + //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()); @@ -148,7 +183,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()); } @@ -157,4 +192,13 @@ 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()); +} + #include "generalsettingspage.moc"