Skip to content

Commit 9ff19f2

Browse files
committed
Add date and time format settings for clock.
1 parent 48fcf0c commit 9ff19f2

14 files changed

Lines changed: 332 additions & 12 deletions

File tree

LibreDiagnostics.Language/Resources/Resources.Designer.cs

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LibreDiagnostics.Language/Resources/Resources.de-DE.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,4 +888,16 @@
888888
<data name="SettingsVerticalContentMarginTooltip" xml:space="preserve">
889889
<value>Erhöht oder verringert den Abstand ober- und unterhalb des Inhalts.</value>
890890
</data>
891+
<data name="SettingsDateFormat" xml:space="preserve">
892+
<value>Datumsformat</value>
893+
</data>
894+
<data name="SettingsTimeFormat" xml:space="preserve">
895+
<value>Zeitformat</value>
896+
</data>
897+
<data name="SettingsDateFormatTooltip" xml:space="preserve">
898+
<value>Datumsformat das für die Uhr verwendet wird.</value>
899+
</data>
900+
<data name="SettingsTimeFormatTooltip" xml:space="preserve">
901+
<value>Zeitformat das für die Uhr verwendet wird.</value>
902+
</data>
891903
</root>

LibreDiagnostics.Language/Resources/Resources.es-ES.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,4 +888,16 @@
888888
<data name="SettingsVerticalContentMarginTooltip" xml:space="preserve">
889889
<value>Aumenta o reduce el espacio vacío por encima y por debajo del contenido.</value>
890890
</data>
891+
<data name="SettingsDateFormat" xml:space="preserve">
892+
<value>Formato de fecha</value>
893+
</data>
894+
<data name="SettingsTimeFormat" xml:space="preserve">
895+
<value>Formato de hora</value>
896+
</data>
897+
<data name="SettingsDateFormatTooltip" xml:space="preserve">
898+
<value>Formato de fecha que se utilizará para el reloj.</value>
899+
</data>
900+
<data name="SettingsTimeFormatTooltip" xml:space="preserve">
901+
<value>Formato de hora que se utilizará para el reloj.</value>
902+
</data>
891903
</root>

LibreDiagnostics.Language/Resources/Resources.ja-JP.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,4 +888,16 @@
888888
<data name="SettingsVerticalContentMarginTooltip" xml:space="preserve">
889889
<value>コンテンツの上下の空きスペースを増減します。</value>
890890
</data>
891+
<data name="SettingsDateFormat" xml:space="preserve">
892+
<value>日付形式</value>
893+
</data>
894+
<data name="SettingsTimeFormat" xml:space="preserve">
895+
<value>時刻形式</value>
896+
</data>
897+
<data name="SettingsDateFormatTooltip" xml:space="preserve">
898+
<value>時計に使用する日付形式。</value>
899+
</data>
900+
<data name="SettingsTimeFormatTooltip" xml:space="preserve">
901+
<value>時計に使用する時刻形式。</value>
902+
</data>
891903
</root>

LibreDiagnostics.Language/Resources/Resources.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,4 +888,16 @@
888888
<data name="SettingsVerticalContentMarginTooltip" xml:space="preserve">
889889
<value>Increases or decreases the empty space above and below the content.</value>
890890
</data>
891+
<data name="SettingsDateFormat" xml:space="preserve">
892+
<value>Date format</value>
893+
</data>
894+
<data name="SettingsTimeFormat" xml:space="preserve">
895+
<value>Time format</value>
896+
</data>
897+
<data name="SettingsDateFormatTooltip" xml:space="preserve">
898+
<value>Date format to be used for the clock.</value>
899+
</data>
900+
<data name="SettingsTimeFormatTooltip" xml:space="preserve">
901+
<value>Time format to be used for the clock.</value>
902+
</data>
891903
</root>

LibreDiagnostics.Language/Resources/Resources.zh-CN.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,4 +888,16 @@
888888
<data name="SettingsVerticalContentMarginTooltip" xml:space="preserve">
889889
<value>增加或减少内容上方和下方的空白间距。</value>
890890
</data>
891+
<data name="SettingsDateFormat" xml:space="preserve">
892+
<value>日期格式</value>
893+
</data>
894+
<data name="SettingsTimeFormat" xml:space="preserve">
895+
<value>时间格式</value>
896+
</data>
897+
<data name="SettingsDateFormatTooltip" xml:space="preserve">
898+
<value>用于时钟的日期格式。</value>
899+
</data>
900+
<data name="SettingsTimeFormatTooltip" xml:space="preserve">
901+
<value>用于时钟的时间格式。</value>
902+
</data>
891903
</root>

LibreDiagnostics.Language/Resources/Resources.zh-TW.resx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -888,4 +888,16 @@
888888
<data name="SettingsVerticalContentMarginTooltip" xml:space="preserve">
889889
<value>增加或減少內容上方與下方的空白間距。</value>
890890
</data>
891+
<data name="SettingsDateFormat" xml:space="preserve">
892+
<value>日期格式</value>
893+
</data>
894+
<data name="SettingsTimeFormat" xml:space="preserve">
895+
<value>時間格式</value>
896+
</data>
897+
<data name="SettingsDateFormatTooltip" xml:space="preserve">
898+
<value>用於時鐘的日期格式。</value>
899+
</data>
900+
<data name="SettingsTimeFormatTooltip" xml:space="preserve">
901+
<value>用於時鐘的時間格式。</value>
902+
</data>
891903
</root>

LibreDiagnostics.MVVM/Utilities/MessageBro.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
using BlackSharp.MVVM.Dialogs;
1111
using BlackSharp.MVVM.Dialogs.Enums;
12+
using LibreDiagnostics.Models.Helper;
1213
using LibreDiagnostics.Models.Platform;
1314

1415
namespace LibreDiagnostics.MVVM.Utilities
@@ -68,6 +69,41 @@ public static List<ScreenModel> DoGetScreens()
6869
return GetScreens?.Invoke() ?? new();
6970
}
7071

72+
public static List<DateTimeFormat> DoGetDateFormats(DateTime? dateTimePreview = null)
73+
{
74+
var dt = dateTimePreview ?? DateTime.Now;
75+
76+
var list = new List<DateTimeFormat>()
77+
{
78+
DateTimeFormat.GetDefaultDateFormat(dt),
79+
new DateTimeFormat("dd.MM.yyyy"),
80+
new DateTimeFormat("yyyy.MM.dd"),
81+
new DateTimeFormat("MM.dd.yyyy"),
82+
};
83+
84+
list.ForEach(tvp => tvp.UpdatePreview(dt));
85+
86+
return list;
87+
}
88+
89+
public static List<DateTimeFormat> DoGetTimeFormats(DateTime? dateTimePreview = null)
90+
{
91+
var dt = dateTimePreview ?? DateTime.Now;
92+
93+
var list = new List<DateTimeFormat>()
94+
{
95+
DateTimeFormat.GetDefaultTimeFormat(dt),
96+
new DateTimeFormat("HH:mm:ss"),
97+
new DateTimeFormat("hh:mm:ss"),
98+
new DateTimeFormat("HH:mm"),
99+
new DateTimeFormat("hh:mm"),
100+
};
101+
102+
list.ForEach(tvp => tvp.UpdatePreview(dt));
103+
104+
return list;
105+
}
106+
71107
#endregion
72108

73109
#region Events

LibreDiagnostics.MVVM/ViewModels/SettingsViewModel.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,42 @@ public string FontFamilySelected
9494
set { SetField(ref _FontFamilySelected, value); Settings.FontFamily = _FontFamilySelected; }
9595
}
9696

97+
DateTimeFormat _DateFormatSelected;
98+
public DateTimeFormat DateFormatSelected
99+
{
100+
get { return _DateFormatSelected; }
101+
set
102+
{
103+
SetField(ref _DateFormatSelected, value);
104+
Settings.DateFormat = _DateFormatSelected.Format;
105+
}
106+
}
107+
108+
List<DateTimeFormat> _DateFormatList;
109+
public List<DateTimeFormat> DateFormatList
110+
{
111+
get { return _DateFormatList; }
112+
set { SetField(ref _DateFormatList, value); }
113+
}
114+
115+
DateTimeFormat _TimeFormatSelected;
116+
public DateTimeFormat TimeFormatSelected
117+
{
118+
get { return _TimeFormatSelected; }
119+
set
120+
{
121+
SetField(ref _TimeFormatSelected, value);
122+
Settings.TimeFormat = _TimeFormatSelected.Format;
123+
}
124+
}
125+
126+
List<DateTimeFormat> _TimeFormatList;
127+
public List<DateTimeFormat> TimeFormatList
128+
{
129+
get { return _TimeFormatList; }
130+
set { SetField(ref _TimeFormatList, value); }
131+
}
132+
97133
#endregion
98134

99135
Settings _Settings;
@@ -233,6 +269,14 @@ void InitializeConstantLists()
233269

234270
FontFamilyList = Global.FontManager.GetSystemFontFamilies();
235271
FontFamilySelected = Settings.FontFamily ?? Global.FontManager.GlobalFontFamily;
272+
273+
var sampleDateTime = new DateTime(2026, 12, 31, 23, 59, 59);
274+
275+
DateFormatList = MessageBro.DoGetDateFormats(sampleDateTime);
276+
DateFormatSelected = DateFormatList.FirstOrDefault(s => s.Format == Settings.DateFormat) ?? DateTimeFormat.GetDefaultDateFormat(sampleDateTime);
277+
278+
TimeFormatList = MessageBro.DoGetTimeFormats(sampleDateTime);
279+
TimeFormatSelected = TimeFormatList.FirstOrDefault(s => s.Format == Settings.TimeFormat) ?? DateTimeFormat.GetDefaultTimeFormat(sampleDateTime);
236280
}
237281

238282
#endregion

LibreDiagnostics.Models/Configuration/Settings.cs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@ public bool AutoUpdate
112112
set { SetField(ref _AutoUpdate, value); }
113113
}
114114

115+
bool _UseHardwareAcceleration = true;
116+
[JsonProperty]
117+
public bool UseHardwareAcceleration
118+
{
119+
get { return _UseHardwareAcceleration; }
120+
set { SetField(ref _UseHardwareAcceleration, value); }
121+
}
122+
115123
#endregion
116124

117125
#region Advanced
@@ -212,12 +220,20 @@ public bool ShowClock
212220
set { SetField(ref _ShowClock, value); }
213221
}
214222

215-
bool _UseHardwareAcceleration = true;
223+
string _DateFormat = "d. MMMM yyyy";
216224
[JsonProperty]
217-
public bool UseHardwareAcceleration
225+
public string DateFormat
218226
{
219-
get { return _UseHardwareAcceleration; }
220-
set { SetField(ref _UseHardwareAcceleration, value); }
227+
get => _DateFormat;
228+
set => SetField(ref _DateFormat, value);
229+
}
230+
231+
string _TimeFormat = "T";
232+
[JsonProperty]
233+
public string TimeFormat
234+
{
235+
get => _TimeFormat;
236+
set => SetField(ref _TimeFormat, value);
221237
}
222238

223239
#endregion

0 commit comments

Comments
 (0)