mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-07 14:08:29 -04:00
time: add follow-locale option and squash separate greeter time options
port 1.5
This commit is contained in:
@@ -190,7 +190,12 @@ Singleton {
|
|||||||
property int firstDayOfWeek: -1
|
property int firstDayOfWeek: -1
|
||||||
property bool showWeekNumber: false
|
property bool showWeekNumber: false
|
||||||
property string calendarBackend: "auto"
|
property string calendarBackend: "auto"
|
||||||
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 showSeconds: false
|
||||||
property bool padHours12Hour: false
|
property bool padHours12Hour: false
|
||||||
property bool useFahrenheit: false
|
property bool useFahrenheit: false
|
||||||
@@ -492,9 +497,6 @@ Singleton {
|
|||||||
property bool greeterEnableFprint: false
|
property bool greeterEnableFprint: false
|
||||||
property bool greeterEnableU2f: false
|
property bool greeterEnableU2f: false
|
||||||
property string greeterWallpaperPath: ""
|
property string greeterWallpaperPath: ""
|
||||||
property bool greeterUse24HourClock: true
|
|
||||||
property bool greeterShowSeconds: false
|
|
||||||
property bool greeterPadHours12Hour: false
|
|
||||||
property string greeterLockDateFormat: ""
|
property string greeterLockDateFormat: ""
|
||||||
property string greeterFontFamily: ""
|
property string greeterFontFamily: ""
|
||||||
property string greeterWallpaperFillMode: ""
|
property string greeterWallpaperFillMode: ""
|
||||||
@@ -1752,6 +1754,11 @@ Singleton {
|
|||||||
delete obj.lockScreenActiveMonitor;
|
delete obj.lockScreenActiveMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (obj?.use24HourClock !== undefined && obj?.clockFormat === undefined) {
|
||||||
|
obj.clockFormat = obj.use24HourClock ? "24h" : "12h";
|
||||||
|
delete obj.use24HourClock;
|
||||||
|
}
|
||||||
|
|
||||||
Store.parse(root, obj);
|
Store.parse(root, obj);
|
||||||
|
|
||||||
if (obj?.directionalAnimationMode === 3 && frameMode !== "connected")
|
if (obj?.directionalAnimationMode === 3 && frameMode !== "connected")
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ var SPEC = {
|
|||||||
firstDayOfWeek: { def: -1 },
|
firstDayOfWeek: { def: -1 },
|
||||||
showWeekNumber: { def: false },
|
showWeekNumber: { def: false },
|
||||||
calendarBackend: { def: "auto" },
|
calendarBackend: { def: "auto" },
|
||||||
use24HourClock: { def: true },
|
clockFormat: { def: "auto", onChange: "markGreeterSyncPending" },
|
||||||
showSeconds: { def: false },
|
showSeconds: { def: false, onChange: "markGreeterSyncPending" },
|
||||||
padHours12Hour: { def: false },
|
padHours12Hour: { def: false, onChange: "markGreeterSyncPending" },
|
||||||
useFahrenheit: { def: false },
|
useFahrenheit: { def: false },
|
||||||
windSpeedUnit: { def: "kmh" },
|
windSpeedUnit: { def: "kmh" },
|
||||||
nightModeEnabled: { def: false },
|
nightModeEnabled: { def: false },
|
||||||
@@ -230,9 +230,6 @@ var SPEC = {
|
|||||||
greeterEnableFprint: { def: false, onChange: "scheduleAuthApply" },
|
greeterEnableFprint: { def: false, onChange: "scheduleAuthApply" },
|
||||||
greeterEnableU2f: { def: false, onChange: "scheduleAuthApply" },
|
greeterEnableU2f: { def: false, onChange: "scheduleAuthApply" },
|
||||||
greeterWallpaperPath: { def: "", onChange: "markGreeterSyncPending" },
|
greeterWallpaperPath: { def: "", onChange: "markGreeterSyncPending" },
|
||||||
greeterUse24HourClock: { def: true, onChange: "markGreeterSyncPending" },
|
|
||||||
greeterShowSeconds: { def: false, onChange: "markGreeterSyncPending" },
|
|
||||||
greeterPadHours12Hour: { def: false, onChange: "markGreeterSyncPending" },
|
|
||||||
greeterLockDateFormat: { def: "", onChange: "markGreeterSyncPending" },
|
greeterLockDateFormat: { def: "", onChange: "markGreeterSyncPending" },
|
||||||
greeterFontFamily: { def: "", onChange: "markGreeterSyncPending" },
|
greeterFontFamily: { def: "", onChange: "markGreeterSyncPending" },
|
||||||
greeterWallpaperFillMode: { def: "", onChange: "markGreeterSyncPending" },
|
greeterWallpaperFillMode: { def: "", onChange: "markGreeterSyncPending" },
|
||||||
|
|||||||
@@ -36,12 +36,14 @@ Singleton {
|
|||||||
property string customThemeFile: ""
|
property string customThemeFile: ""
|
||||||
property var registryThemeVariants: ({})
|
property var registryThemeVariants: ({})
|
||||||
property string matugenScheme: "scheme-tonal-spot"
|
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 showSeconds: false
|
||||||
property bool padHours12Hour: false
|
property bool padHours12Hour: false
|
||||||
property bool greeterUse24HourClock: true
|
|
||||||
property bool greeterShowSeconds: false
|
|
||||||
property bool greeterPadHours12Hour: false
|
|
||||||
property string greeterLockDateFormat: ""
|
property string greeterLockDateFormat: ""
|
||||||
property string greeterFontFamily: ""
|
property string greeterFontFamily: ""
|
||||||
property string greeterWallpaperFillMode: ""
|
property string greeterWallpaperFillMode: ""
|
||||||
@@ -112,12 +114,9 @@ Singleton {
|
|||||||
customThemeFile = settings.customThemeFile !== undefined ? settings.customThemeFile : "";
|
customThemeFile = settings.customThemeFile !== undefined ? settings.customThemeFile : "";
|
||||||
registryThemeVariants = settings.registryThemeVariants !== undefined ? settings.registryThemeVariants : ({});
|
registryThemeVariants = settings.registryThemeVariants !== undefined ? settings.registryThemeVariants : ({});
|
||||||
matugenScheme = settings.matugenScheme !== undefined ? settings.matugenScheme : "scheme-tonal-spot";
|
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;
|
showSeconds = settings.showSeconds !== undefined ? settings.showSeconds : false;
|
||||||
padHours12Hour = settings.padHours12Hour !== undefined ? settings.padHours12Hour : 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 : "";
|
greeterLockDateFormat = settings.greeterLockDateFormat !== undefined ? settings.greeterLockDateFormat : "";
|
||||||
greeterFontFamily = settings.greeterFontFamily !== undefined ? settings.greeterFontFamily : "";
|
greeterFontFamily = settings.greeterFontFamily !== undefined ? settings.greeterFontFamily : "";
|
||||||
greeterWallpaperFillMode = settings.greeterWallpaperFillMode !== undefined ? settings.greeterWallpaperFillMode : "";
|
greeterWallpaperFillMode = settings.greeterWallpaperFillMode !== undefined ? settings.greeterWallpaperFillMode : "";
|
||||||
@@ -182,9 +181,9 @@ Singleton {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getEffectiveTimeFormat() {
|
function getEffectiveTimeFormat() {
|
||||||
const use24 = greeterUse24HourClock;
|
const use24 = use24HourClock;
|
||||||
const secs = greeterShowSeconds;
|
const secs = showSeconds;
|
||||||
const pad = greeterPadHours12Hour;
|
const pad = padHours12Hour;
|
||||||
if (use24)
|
if (use24)
|
||||||
return secs ? "hh:mm:ss" : "hh:mm";
|
return secs ? "hh:mm:ss" : "hh:mm";
|
||||||
if (pad)
|
if (pad)
|
||||||
|
|||||||
@@ -547,42 +547,6 @@ Item {
|
|||||||
onFontSelected: family => SettingsData.set("greeterFontFamily", family)
|
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 {
|
StyledText {
|
||||||
text: I18n.tr("Date format on greeter")
|
text: I18n.tr("Date format on greeter")
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
|||||||
@@ -46,14 +46,37 @@ Item {
|
|||||||
settingKey: "timeFormat"
|
settingKey: "timeFormat"
|
||||||
iconName: "schedule"
|
iconName: "schedule"
|
||||||
|
|
||||||
SettingsToggleRow {
|
SettingsDropdownRow {
|
||||||
tab: "time"
|
tab: "time"
|
||||||
tags: ["time", "24hour", "format"]
|
tags: ["time", "24hour", "12hour", "format", "locale"]
|
||||||
settingKey: "use24HourClock"
|
settingKey: "clockFormat"
|
||||||
text: I18n.tr("24-Hour Format")
|
text: I18n.tr("Time Format")
|
||||||
description: I18n.tr("Use 24-hour time format instead of 12-hour AM/PM")
|
description: I18n.tr("Use 24-hour time format instead of 12-hour AM/PM")
|
||||||
checked: SettingsData.use24HourClock
|
readonly property var _sample: new Date(2000, 0, 1, 13, 0, 0)
|
||||||
onToggled: checked => SettingsData.set("use24HourClock", checked)
|
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 {
|
SettingsToggleRow {
|
||||||
|
|||||||
@@ -412,23 +412,6 @@
|
|||||||
],
|
],
|
||||||
"description": "Select monitor to configure wallpaper"
|
"description": "Select monitor to configure wallpaper"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "use24HourClock",
|
|
||||||
"label": "24-Hour Format",
|
|
||||||
"tabIndex": 1,
|
|
||||||
"category": "Time & Weather",
|
|
||||||
"keywords": [
|
|
||||||
"24hour",
|
|
||||||
"clock",
|
|
||||||
"date",
|
|
||||||
"forecast",
|
|
||||||
"format",
|
|
||||||
"hour",
|
|
||||||
"time",
|
|
||||||
"weather"
|
|
||||||
],
|
|
||||||
"description": "Use 24-hour time format instead of 12-hour AM/PM"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "useAutoLocation",
|
"section": "useAutoLocation",
|
||||||
"label": "Auto Location",
|
"label": "Auto Location",
|
||||||
@@ -634,6 +617,25 @@
|
|||||||
],
|
],
|
||||||
"icon": "schedule"
|
"icon": "schedule"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"section": "clockFormat",
|
||||||
|
"label": "Time Format",
|
||||||
|
"tabIndex": 1,
|
||||||
|
"category": "Time & Weather",
|
||||||
|
"keywords": [
|
||||||
|
"12hour",
|
||||||
|
"24hour",
|
||||||
|
"clock",
|
||||||
|
"date",
|
||||||
|
"forecast",
|
||||||
|
"format",
|
||||||
|
"hour",
|
||||||
|
"locale",
|
||||||
|
"time",
|
||||||
|
"weather"
|
||||||
|
],
|
||||||
|
"description": "Use 24-hour time format instead of 12-hour AM/PM"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"section": "timeFormat",
|
"section": "timeFormat",
|
||||||
"label": "Time Format",
|
"label": "Time Format",
|
||||||
@@ -7676,27 +7678,6 @@
|
|||||||
],
|
],
|
||||||
"description": "Change the locale used for date and time formatting, independent of the interface language."
|
"description": "Change the locale used for date and time formatting, independent of the interface language."
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "greeterUse24Hour",
|
|
||||||
"label": "24-hour clock",
|
|
||||||
"tabIndex": 31,
|
|
||||||
"category": "Greeter",
|
|
||||||
"keywords": [
|
|
||||||
"24hour",
|
|
||||||
"affect",
|
|
||||||
"clock",
|
|
||||||
"display manager",
|
|
||||||
"does",
|
|
||||||
"greetd",
|
|
||||||
"greeter",
|
|
||||||
"hour",
|
|
||||||
"login",
|
|
||||||
"main",
|
|
||||||
"time",
|
|
||||||
"watch"
|
|
||||||
],
|
|
||||||
"description": "Greeter only — does not affect main clock"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "greeterAutoLogin",
|
"section": "greeterAutoLogin",
|
||||||
"label": "Auto-login on startup",
|
"label": "Auto-login on startup",
|
||||||
@@ -7875,24 +7856,6 @@
|
|||||||
],
|
],
|
||||||
"icon": "fingerprint"
|
"icon": "fingerprint"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "greeterPadHours",
|
|
||||||
"label": "Pad hours (02:00 vs 2:00)",
|
|
||||||
"tabIndex": 31,
|
|
||||||
"category": "Greeter",
|
|
||||||
"keywords": [
|
|
||||||
"(02:00",
|
|
||||||
"12hour",
|
|
||||||
"2:00)",
|
|
||||||
"display manager",
|
|
||||||
"greetd",
|
|
||||||
"greeter",
|
|
||||||
"hours",
|
|
||||||
"login",
|
|
||||||
"pad",
|
|
||||||
"time"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "greeterRememberLastSession",
|
"section": "greeterRememberLastSession",
|
||||||
"label": "Remember last session",
|
"label": "Remember last session",
|
||||||
@@ -7929,21 +7892,6 @@
|
|||||||
],
|
],
|
||||||
"description": "Pre-fill the last successful username on the greeter"
|
"description": "Pre-fill the last successful username on the greeter"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "greeterShowSeconds",
|
|
||||||
"label": "Show Seconds",
|
|
||||||
"tabIndex": 31,
|
|
||||||
"category": "Greeter",
|
|
||||||
"keywords": [
|
|
||||||
"display manager",
|
|
||||||
"greetd",
|
|
||||||
"greeter",
|
|
||||||
"login",
|
|
||||||
"seconds",
|
|
||||||
"show",
|
|
||||||
"time"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "muxType",
|
"section": "muxType",
|
||||||
"label": "Multiplexer",
|
"label": "Multiplexer",
|
||||||
|
|||||||
Reference in New Issue
Block a user