#include "dolphinsettings.h"
#include "dolphin_generalsettings.h"
+#include "filemetadataconfigurationdialog.h"
#include <viewproperties.h>
#include <QCheckBox>
#include <QGroupBox>
+#include <QHBoxLayout>
#include <QLabel>
#include <QRadioButton>
#include <QVBoxLayout>
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();
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.
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()
m_confirmDelete->setChecked(CONFIRM_DELETE);
}
+void BehaviorSettingsPage::updateConfigureButton()
+{
+ if (m_showToolTips->isChecked()) {
+ m_configureToolTips->setText("<a href=\"configure\">" +
+ i18nc("@action:button", "Configure...") +
+ "</a>");
+ } else {
+ m_configureToolTips->setText(QString());
+ }
+}
+
+void BehaviorSettingsPage::configureToolTips()
+{
+ FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog();
+ 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();
m_renameInline->setChecked(settings->renameInline());
m_showToolTips->setChecked(settings->showToolTips());
m_showSelectionToggle->setChecked(settings->showSelectionToggle());
+ m_naturalSorting->setChecked(KGlobalSettings::naturalSorting());
+
+ updateConfigureButton();
}
#include "behaviorsettingspage.moc"