X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/18f99bf84e1d38ddd4c86d253ff81a178bc2fb22..e5eae108ca4511be9dae5f8bb4a4e1fbb0d89c7a:/src/settings/behaviorsettingspage.cpp diff --git a/src/settings/behaviorsettingspage.cpp b/src/settings/behaviorsettingspage.cpp index 144cc3f2f..2e558b7cb 100644 --- a/src/settings/behaviorsettingspage.cpp +++ b/src/settings/behaviorsettingspage.cpp @@ -23,6 +23,8 @@ #include "dolphinsettings.h" #include "dolphin_generalsettings.h" +#include "panels/information/kmetadataconfigurationdialog.h" + #include #include @@ -31,6 +33,7 @@ #include #include +#include #include #include #include @@ -47,7 +50,9 @@ BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : m_confirmDelete(0), m_renameInline(0), m_showToolTips(0), - m_showSelectionToggle(0) + m_configureToolTips(0), + m_showSelectionToggle(0), + m_naturalSorting(0) { const int spacing = KDialog::spacingHint(); @@ -87,15 +92,33 @@ BehaviorSettingsPage::BehaviorSettingsPage(const KUrl& url, QWidget* parent) : confirmBoxLayout->addWidget(m_confirmDelete); confirmBoxLayout->addWidget(m_confirmClosingMultipleTabs); + // 'Rename inline' m_renameInline = new QCheckBox(i18nc("@option:check", "Rename inline"), vBox); connect(m_renameInline, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips"), vBox); + // 'Show tooltips' + QWidget* toolTipContainer = new QWidget(vBox); + QHBoxLayout* toolTipsLayout = new QHBoxLayout(toolTipContainer); + toolTipsLayout->setMargin(0); + m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips"), toolTipContainer); connect(m_showToolTips, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(m_showToolTips, SIGNAL(toggled(bool)), this, SLOT(updateConfigureButton())); + + m_configureToolTips = new QLabel(toolTipContainer); + connect(m_configureToolTips, SIGNAL(linkActivated(const QString&)), + this, SLOT(configureToolTips())); + toolTipsLayout->addWidget(m_showToolTips); + toolTipsLayout->addWidget(m_configureToolTips, 1, Qt::AlignLeft); + + // 'Show selection marker' m_showSelectionToggle = new QCheckBox(i18nc("@option:check", "Show selection marker"), vBox); connect(m_showSelectionToggle, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // 'Natural sorting of items' + m_naturalSorting = new QCheckBox(i18nc("option:check", "Natural sorting of items"), vBox); + connect(m_naturalSorting, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout // is not stretched vertically. @@ -139,6 +162,13 @@ void BehaviorSettingsPage::applySettings() settings->setShowToolTips(m_showToolTips->isChecked()); settings->setShowSelectionToggle(m_showSelectionToggle->isChecked()); settings->writeConfig(); + + const bool naturalSorting = m_naturalSorting->isChecked(); + if (KGlobalSettings::naturalSorting() != naturalSorting) { + KConfigGroup group(KGlobal::config(), "KDE"); + group.writeEntry("NaturalSorting", naturalSorting, KConfig::Persistent | KConfig::Global); + KGlobalSettings::emitChange(KGlobalSettings::NaturalSortingChanged); + } } void BehaviorSettingsPage::restoreDefaults() @@ -151,6 +181,28 @@ void BehaviorSettingsPage::restoreDefaults() m_confirmDelete->setChecked(CONFIRM_DELETE); } +void BehaviorSettingsPage::updateConfigureButton() +{ + if (m_showToolTips->isChecked()) { + m_configureToolTips->setText("" + + i18nc("@action:button", "Configure...") + + ""); + } else { + m_configureToolTips->setText(QString()); + } +} + +void BehaviorSettingsPage::configureToolTips() +{ + KMetaDataConfigurationDialog* dialog = new KMetaDataConfigurationDialog(); + dialog->setDescription(i18nc("@label::textbox", + "Configure which data should be shown in the tooltip.")); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->show(); + dialog->raise(); + dialog->activateWindow(); +} + void BehaviorSettingsPage::loadSettings() { GeneralSettings* settings = DolphinSettings::instance().generalSettings(); @@ -169,6 +221,9 @@ void BehaviorSettingsPage::loadSettings() m_renameInline->setChecked(settings->renameInline()); m_showToolTips->setChecked(settings->showToolTips()); m_showSelectionToggle->setChecked(settings->showSelectionToggle()); + m_naturalSorting->setChecked(KGlobalSettings::naturalSorting()); + + updateConfigureButton(); } #include "behaviorsettingspage.moc"