mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-02 03:28:28 -04:00
time: add follow-locale option and squash separate greeter time options
port 1.5
This commit is contained in:
@@ -36,12 +36,14 @@ Singleton {
|
||||
property string customThemeFile: ""
|
||||
property var registryThemeVariants: ({})
|
||||
property string matugenScheme: "scheme-tonal-spot"
|
||||
property bool use24HourClock: true
|
||||
property string clockFormat: "auto"
|
||||
readonly property bool localeUses24Hour: {
|
||||
const fmt = Qt.locale().timeFormat(Locale.ShortFormat).replace(/'[^']*'/g, "");
|
||||
return !/[aA]/.test(fmt);
|
||||
}
|
||||
readonly property bool use24HourClock: clockFormat === "24h" ? true : (clockFormat === "12h" ? false : localeUses24Hour)
|
||||
property bool showSeconds: false
|
||||
property bool padHours12Hour: false
|
||||
property bool greeterUse24HourClock: true
|
||||
property bool greeterShowSeconds: false
|
||||
property bool greeterPadHours12Hour: false
|
||||
property string greeterLockDateFormat: ""
|
||||
property string greeterFontFamily: ""
|
||||
property string greeterWallpaperFillMode: ""
|
||||
@@ -112,12 +114,9 @@ Singleton {
|
||||
customThemeFile = settings.customThemeFile !== undefined ? settings.customThemeFile : "";
|
||||
registryThemeVariants = settings.registryThemeVariants !== undefined ? settings.registryThemeVariants : ({});
|
||||
matugenScheme = settings.matugenScheme !== undefined ? settings.matugenScheme : "scheme-tonal-spot";
|
||||
use24HourClock = settings.use24HourClock !== undefined ? settings.use24HourClock : true;
|
||||
clockFormat = settings.clockFormat !== undefined ? settings.clockFormat : (settings.use24HourClock !== undefined ? (settings.use24HourClock ? "24h" : "12h") : "auto");
|
||||
showSeconds = settings.showSeconds !== undefined ? settings.showSeconds : false;
|
||||
padHours12Hour = settings.padHours12Hour !== undefined ? settings.padHours12Hour : false;
|
||||
greeterUse24HourClock = settings.greeterUse24HourClock !== undefined ? settings.greeterUse24HourClock : use24HourClock;
|
||||
greeterShowSeconds = settings.greeterShowSeconds !== undefined ? settings.greeterShowSeconds : showSeconds;
|
||||
greeterPadHours12Hour = settings.greeterPadHours12Hour !== undefined ? settings.greeterPadHours12Hour : padHours12Hour;
|
||||
greeterLockDateFormat = settings.greeterLockDateFormat !== undefined ? settings.greeterLockDateFormat : "";
|
||||
greeterFontFamily = settings.greeterFontFamily !== undefined ? settings.greeterFontFamily : "";
|
||||
greeterWallpaperFillMode = settings.greeterWallpaperFillMode !== undefined ? settings.greeterWallpaperFillMode : "";
|
||||
@@ -182,9 +181,9 @@ Singleton {
|
||||
}
|
||||
|
||||
function getEffectiveTimeFormat() {
|
||||
const use24 = greeterUse24HourClock;
|
||||
const secs = greeterShowSeconds;
|
||||
const pad = greeterPadHours12Hour;
|
||||
const use24 = use24HourClock;
|
||||
const secs = showSeconds;
|
||||
const pad = padHours12Hour;
|
||||
if (use24)
|
||||
return secs ? "hh:mm:ss" : "hh:mm";
|
||||
if (pad)
|
||||
|
||||
@@ -547,42 +547,6 @@ Item {
|
||||
onFontSelected: family => SettingsData.set("greeterFontFamily", family)
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: I18n.tr("Time Format")
|
||||
font.pixelSize: Theme.fontSizeMedium
|
||||
font.weight: Font.Medium
|
||||
color: Theme.surfaceText
|
||||
topPadding: Theme.spacingM
|
||||
width: parent.width
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
settingKey: "greeterUse24Hour"
|
||||
tags: ["greeter", "time", "24hour"]
|
||||
text: I18n.tr("24-hour clock")
|
||||
description: I18n.tr("Greeter only — does not affect main clock")
|
||||
checked: SettingsData.greeterUse24HourClock
|
||||
onToggled: checked => SettingsData.set("greeterUse24HourClock", checked)
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
settingKey: "greeterShowSeconds"
|
||||
tags: ["greeter", "time", "seconds"]
|
||||
text: I18n.tr("Show Seconds")
|
||||
checked: SettingsData.greeterShowSeconds
|
||||
onToggled: checked => SettingsData.set("greeterShowSeconds", checked)
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
settingKey: "greeterPadHours"
|
||||
tags: ["greeter", "time", "12hour"]
|
||||
text: I18n.tr("Pad hours (02:00 vs 2:00)")
|
||||
visible: !SettingsData.greeterUse24HourClock
|
||||
checked: SettingsData.greeterPadHours12Hour
|
||||
onToggled: checked => SettingsData.set("greeterPadHours12Hour", checked)
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: I18n.tr("Date format on greeter")
|
||||
font.pixelSize: Theme.fontSizeMedium
|
||||
|
||||
@@ -46,14 +46,37 @@ Item {
|
||||
settingKey: "timeFormat"
|
||||
iconName: "schedule"
|
||||
|
||||
SettingsToggleRow {
|
||||
SettingsDropdownRow {
|
||||
tab: "time"
|
||||
tags: ["time", "24hour", "format"]
|
||||
settingKey: "use24HourClock"
|
||||
text: I18n.tr("24-Hour Format")
|
||||
tags: ["time", "24hour", "12hour", "format", "locale"]
|
||||
settingKey: "clockFormat"
|
||||
text: I18n.tr("Time Format")
|
||||
description: I18n.tr("Use 24-hour time format instead of 12-hour AM/PM")
|
||||
checked: SettingsData.use24HourClock
|
||||
onToggled: checked => SettingsData.set("use24HourClock", checked)
|
||||
readonly property var _sample: new Date(2000, 0, 1, 13, 0, 0)
|
||||
readonly property string _twelve: Qt.formatTime(_sample, "h:mm AP")
|
||||
readonly property string _twentyFour: Qt.formatTime(_sample, "HH:mm")
|
||||
options: [I18n.tr("System Default"), _twelve, _twentyFour]
|
||||
currentValue: {
|
||||
switch (SettingsData.clockFormat) {
|
||||
case "12h":
|
||||
return _twelve;
|
||||
case "24h":
|
||||
return _twentyFour;
|
||||
default:
|
||||
return I18n.tr("System Default");
|
||||
}
|
||||
}
|
||||
onValueChanged: value => {
|
||||
if (value === _twelve) {
|
||||
SettingsData.set("clockFormat", "12h");
|
||||
return;
|
||||
}
|
||||
if (value === _twentyFour) {
|
||||
SettingsData.set("clockFormat", "24h");
|
||||
return;
|
||||
}
|
||||
SettingsData.set("clockFormat", "auto");
|
||||
}
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
|
||||
Reference in New Issue
Block a user