#include "dolphin_iconsmodesettings.h"
#include "dolphinfontrequester.h"
#include "global.h"
+#include "settings/viewmodes/viewmodesettings.h"
#include "views/zoomlevelinfo.h"
#include <KLocalizedString>
+#include <KFormat>
#include <QApplication>
#include <QCheckBox>
m_widthBox(nullptr),
m_maxLinesBox(nullptr),
m_expandableFolders(nullptr),
- m_recursiveDirectorySizeLimit(nullptr)
+ m_recursiveDirectorySizeLimit(nullptr),
+ m_useRelatetiveDates(nullptr),
+ m_useShortDates(nullptr)
{
QFormLayout* topLayout = new QFormLayout(this);
sortingModeGroup->addButton(m_sizeOfContents);
m_recursiveDirectorySizeLimit = new QSpinBox();
- connect(m_recursiveDirectorySizeLimit, QOverload<int>::of(&QSpinBox::valueChanged), this, [this](int value) {
+ connect(m_recursiveDirectorySizeLimit, &QSpinBox::valueChanged, this, [this](int value) {
m_recursiveDirectorySizeLimit->setSuffix(i18np(" level deep", " levels deep", value));
});
m_recursiveDirectorySizeLimit->setRange(1, 20);
topLayout->addRow(i18nc("@title:group", "Folder size displays:"), m_numberOfItems);
topLayout->addRow(QString(), contentsSizeLayout);
#endif
+
+ QDateTime thirtyMinutesAgo = QDateTime::currentDateTime().addSecs(-30 * 60);
+ QLocale local;
+ KFormat formatter(local);
+
+ m_useRelatetiveDates = new QRadioButton(i18nc(
+ "option:radio as in relative date", "Relative (e.g. '%1')", formatter.formatRelativeDateTime(thirtyMinutesAgo, QLocale::ShortFormat))
+ );
+ m_useShortDates = new QRadioButton(
+ i18nc("option:radio as in absolute date", "Absolute (e.g. '%1')", local.toString(thirtyMinutesAgo, QLocale::ShortFormat))
+ );
+
+ QButtonGroup* dateFormatGroup = new QButtonGroup(this);
+ dateFormatGroup->addButton(m_useRelatetiveDates);
+ dateFormatGroup->addButton(m_useShortDates);
+
+ topLayout->addRow(i18nc("@title:group", "Date style:"), m_useRelatetiveDates);
+ topLayout->addRow(QString(), m_useShortDates);
+
break;
}
switch (m_mode) {
case IconsMode:
- connect(m_widthBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ViewSettingsTab::changed);
- connect(m_maxLinesBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ViewSettingsTab::changed);
+ connect(m_widthBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed);
+ connect(m_maxLinesBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed);
break;
case CompactMode:
- connect(m_widthBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &ViewSettingsTab::changed);
+ connect(m_widthBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed);
break;
case DetailsMode:
connect(m_expandableFolders, &QCheckBox::toggled, this, &ViewSettingsTab::changed);
#ifndef Q_OS_WIN
- connect(m_recursiveDirectorySizeLimit, QOverload<int>::of(&QSpinBox::valueChanged), this, &ViewSettingsTab::changed);
+ connect(m_recursiveDirectorySizeLimit, &QSpinBox::valueChanged, this, &ViewSettingsTab::changed);
connect(m_numberOfItems, &QRadioButton::toggled, this, &ViewSettingsTab::changed);
connect(m_sizeOfContents, &QRadioButton::toggled, this, [=]() {
m_recursiveDirectorySizeLimit->setEnabled(m_sizeOfContents->isChecked());
});
#endif
+ connect(m_useRelatetiveDates, &QRadioButton::toggled, this, &ViewSettingsTab::changed);
+ connect(m_useShortDates, &QRadioButton::toggled, this, &ViewSettingsTab::changed);
break;
default:
break;
DetailsModeSettings::setDirectorySizeCount(m_numberOfItems->isChecked());
DetailsModeSettings::setRecursiveDirectorySizeLimit(m_recursiveDirectorySizeLimit->value());
#endif
+ DetailsModeSettings::setUseShortRelativeDates(m_useRelatetiveDates->isChecked());
break;
default:
break;
}
- ViewModeSettings settings(viewMode());
+ ViewModeSettings settings(m_mode);
const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(m_defaultSizeSlider->value());
const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(m_previewSizeSlider->value());
settings.setPreviewSize(previewSize);
settings.setUseSystemFont(useSystemFont);
- settings.setFontFamily(font.family());
- settings.setFontSize(font.pointSizeF());
- settings.setItalicFont(font.italic());
- settings.setFontWeight(font.weight());
+ settings.setViewFont(font);
settings.save();
}
void ViewSettingsTab::restoreDefaultSettings()
{
- KConfigSkeleton* settings = nullptr;
- switch (m_mode) {
- case IconsMode: settings = IconsModeSettings::self(); break;
- case CompactMode: settings = CompactModeSettings::self(); break;
- case DetailsMode: settings = DetailsModeSettings::self(); break;
- default: Q_ASSERT(false); break;
- }
-
- settings->useDefaults(true);
+ ViewModeSettings settings(m_mode);
+ settings.useDefaults(true);
loadSettings();
- settings->useDefaults(false);
+ settings.useDefaults(false);
}
void ViewSettingsTab::loadSettings()
}
m_recursiveDirectorySizeLimit->setValue(DetailsModeSettings::recursiveDirectorySizeLimit());
#endif
+ m_useRelatetiveDates->setChecked(DetailsModeSettings::useShortRelativeDates());
+ m_useShortDates->setChecked(!DetailsModeSettings::useShortRelativeDates());
break;
default:
break;
}
- const ViewModeSettings settings(viewMode());
+ const ViewModeSettings settings(m_mode);
const QSize iconSize(settings.iconSize(), settings.iconSize());
m_defaultSizeSlider->setValue(ZoomLevelInfo::zoomLevelForIconSize(iconSize));
? DolphinFontRequester::SystemFont
: DolphinFontRequester::CustomFont);
- QFont font(settings.fontFamily(), qRound(settings.fontSize()));
- font.setItalic(settings.italicFont());
- font.setWeight(settings.fontWeight());
- font.setPointSizeF(settings.fontSize());
+ QFont font(settings.viewFont());
m_fontRequester->setCustomFont(font);
}
-ViewModeSettings::ViewMode ViewSettingsTab::viewMode() const
-{
- ViewModeSettings::ViewMode mode;
-
- switch (m_mode) {
- case ViewSettingsTab::IconsMode: mode = ViewModeSettings::IconsMode; break;
- case ViewSettingsTab::CompactMode: mode = ViewModeSettings::CompactMode; break;
- case ViewSettingsTab::DetailsMode: mode = ViewModeSettings::DetailsMode; break;
- default: mode = ViewModeSettings::IconsMode;
- Q_ASSERT(false);
- break;
- }
-
- return mode;
-}
-
-
void ViewSettingsTab::slotDefaultSliderMoved(int value)
{
showToolTip(m_defaultSizeSlider, value);