X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/bf50ced73473a225d681de6b62bc05571d969664..11289b4fc3efbc074b668d4516cd896f8ade9761:/src/generalsettingspage.cpp diff --git a/src/generalsettingspage.cpp b/src/generalsettingspage.cpp index 6994af052..a6775df19 100644 --- a/src/generalsettingspage.cpp +++ b/src/generalsettingspage.cpp @@ -20,88 +20,85 @@ #include "generalsettingspage.h" -#include -//Added by qt3to4: -#include -#include -#include -#include +#include "dolphinsettings.h" + +#include "dolphin_generalsettings.h" -#include -#include +#include #include -#include -#include -#include -#include -#include #include -#include "dolphinsettings.h" -#include "dolphinmainwindow.h" -#include "dolphinview.h" -#include "dolphin_generalsettings.h" +#include +#include +#include +#include -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_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) { - Q3VBoxLayout* topLayout = new Q3VBoxLayout(this, 2, KDialog::spacingHint()); + Q_UNUSED(mainWin); const int spacing = KDialog::spacingHint(); - const int margin = KDialog::marginHint(); - const QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); - - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + QVBoxLayout* topLayout = new QVBoxLayout(this); KVBox* vBox = new KVBox(this); - vBox->setSizePolicy(sizePolicy); vBox->setSpacing(spacing); - vBox->setMargin(margin); - vBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Ignored); - - // create 'Home Url' editor - Q3GroupBox* homeGroup = new Q3GroupBox(1, Qt::Horizontal, i18n("Home Folder"), vBox); - homeGroup->setSizePolicy(sizePolicy); - homeGroup->setMargin(margin); - - KHBox* homeUrlBox = new KHBox(homeGroup); - homeUrlBox->setSizePolicy(sizePolicy); - homeUrlBox->setSpacing(spacing); - - new QLabel(i18n("Location:"), homeUrlBox); - m_homeUrl = new QLineEdit(settings->homeUrl(), homeUrlBox); - - QPushButton* selectHomeUrlButton = new QPushButton(SmallIcon("folder"), QString::null, homeUrlBox); - connect(selectHomeUrlButton, SIGNAL(clicked()), - this, SLOT(selectHomeUrl())); - KHBox* buttonBox = new KHBox(homeGroup); - buttonBox->setSizePolicy(sizePolicy); - 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(useDefaulLocation())); - - QGroupBox* startBox = new QGroupBox(i18n("Start"), 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()); - - QVBoxLayout* startBoxLayout = new QVBoxLayout(startBox); - startBoxLayout->addWidget(m_startSplit); - startBoxLayout->addWidget(m_startEditable); + // 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())); + + m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), statusBarBox); + connect(m_showSpaceInfo, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + + QVBoxLayout* statusBarBoxLayout = new QVBoxLayout(statusBarBox); + statusBarBoxLayout->addWidget(m_showZoomSlider); + statusBarBoxLayout->addWidget(m_showSpaceInfo); + + 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())); + + 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 @@ -109,8 +106,9 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin,QWidget* par new QWidget(vBox); topLayout->addWidget(vBox); -} + loadSettings(); +} GeneralSettingsPage::~GeneralSettingsPage() { @@ -120,34 +118,53 @@ 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_startSplit->isChecked()); - settings->setEditableUrl(m_startEditable->isChecked()); + 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()); } -void GeneralSettingsPage::selectHomeUrl() +void GeneralSettingsPage::restoreDefaults() { - const QString homeUrl(m_homeUrl->text()); - KUrl url(KFileDialog::getExistingUrl(homeUrl)); - if (!url.isEmpty()) { - m_homeUrl->setText(url.prettyUrl()); - } -} + GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + settings->setDefaults(); -void GeneralSettingsPage::useCurrentLocation() -{ - const DolphinView* view = m_mainWindow->activeView(); - m_homeUrl->setText(view->url().prettyUrl()); + // TODO: reset default settings for trash and show delete command... + + loadSettings(); } -void GeneralSettingsPage::useDefaulLocation() +void GeneralSettingsPage::loadSettings() { - m_homeUrl->setText("file://" + QDir::homePath()); + 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()); } #include "generalsettingspage.moc"