From 934e2ab3c28a30920c6325782b7a7dc8c2d21c92 Mon Sep 17 00:00:00 2001 From: Dai Date: Sat, 23 Jan 2021 01:06:53 -0800 Subject: [PATCH 1/6] Updating TogglDesktop.csproj to support multiple versions of the Windows 10 SDK. --- .../TogglDesktop/TogglDesktop.csproj | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/ui/windows/TogglDesktop/TogglDesktop/TogglDesktop.csproj b/src/ui/windows/TogglDesktop/TogglDesktop/TogglDesktop.csproj index 63a7288c7b..a5e324eeb7 100644 --- a/src/ui/windows/TogglDesktop/TogglDesktop/TogglDesktop.csproj +++ b/src/ui/windows/TogglDesktop/TogglDesktop/TogglDesktop.csproj @@ -156,16 +156,17 @@ - - C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd - - - C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd - False - - - C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0\Windows.Foundation.UniversalApiContract\5.0.0.0\Windows.Foundation.UniversalApiContract.winmd - False + + C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd + C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.19041.0\Windows.winmd + + + C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0\Windows.Foundation.FoundationContract\3.0.0.0\Windows.Foundation.FoundationContract.winmd + C:\Program Files (x86)\Windows Kits\10\References\10.0.19041.0\Windows.Foundation.FoundationContract\4.0.0.0\Windows.Foundation.FoundationContract.winmd + + + C:\Program Files (x86)\Windows Kits\10\References\10.0.16299.0\Windows.Foundation.UniversalApiContract\5.0.0.0\Windows.Foundation.UniversalApiContract.winmd + C:\Program Files (x86)\Windows Kits\10\References\10.0.19041.0\Windows.Foundation.UniversalApiContract\10.0.0.0\Windows.Foundation.UniversalApiContract.winmd From 5e2e751f06d47ab23f4c425b004518156edbea62 Mon Sep 17 00:00:00 2001 From: Dai Date: Sat, 23 Jan 2021 01:54:31 -0800 Subject: [PATCH 2/6] Adding `endDatePicker` to EditView.xaml. Updating layout. --- .../TogglDesktop/ui/views/EditView.xaml | 93 +++++++++++++------ 1 file changed, 64 insertions(+), 29 deletions(-) diff --git a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml index 5c654eeb35..93ffcd2dcb 100644 --- a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml +++ b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml @@ -193,46 +193,81 @@ - - - + + + - - - - + + + - - 10:12 min + + + + + + + + + + 12:45 - - 12:55 - + + + + + + + 12:55 + + + + + 10:12 min From 7a9e4bc117648a8ce5b6e50d5595e3371367057a Mon Sep 17 00:00:00 2001 From: Dai Date: Sat, 23 Jan 2021 02:56:52 -0800 Subject: [PATCH 3/6] Integrating the End-Date-Picker with EditView.xaml.cs. --- .../TogglDesktop/ui/views/EditView.xaml.cs | 157 ++++++++++++++++-- 1 file changed, 139 insertions(+), 18 deletions(-) diff --git a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs index bdbbeb7677..f1b1bc2089 100644 --- a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs +++ b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs @@ -29,7 +29,7 @@ public partial class EditView private ulong selectedClientId; private string selectedClientName; private bool isCreatingProject; - private bool dateSet = false; + private bool startDateSet = false; public EditView() { this.DataContext = this; @@ -75,7 +75,7 @@ private void onTimeEntryEditor(bool open, Toggl.TogglTimeEntryView timeEntry, st using (Performance.Measure("filling edit view from OnTimeEntryEditor")) { - this.dateSet = false; + this.startDateSet = false; if (timeEntry.Locked) { open = true; @@ -110,17 +110,27 @@ private void onTimeEntryEditor(bool open, Toggl.TogglTimeEntryView timeEntry, st this.endTimeTextBox.IsEnabled = !isCurrentlyRunning; this.startDatePicker.IsEnabled = !isCurrentlyRunning; + this.endDatePicker.IsEnabled = !isCurrentlyRunning; var startDateTime = Toggl.DateTimeFromUnix(timeEntry.Started); var endDateTime = Toggl.DateTimeFromUnix(timeEntry.Ended); setText(this.descriptionTextBox, timeEntry.Description, open); - setTime(this.durationTextBox, timeEntry.Duration, open); + + // Start: setTime(this.startTimeTextBox, timeEntry.StartTimeString, open); this.startTimeTextBox.ToolTip = startDateTime.ToString("T", CultureInfo.CurrentCulture); + this.startDatePicker.SelectedDate = startDateTime; + + // End: setTime(this.endTimeTextBox, timeEntry.EndTimeString, open); this.endTimeTextBox.ToolTip = endDateTime.ToString("T", CultureInfo.CurrentCulture); - this.startDatePicker.SelectedDate = startDateTime; + this.endDatePicker.SelectedDate = endDateTime; + + // Duration: + setTime(this.durationTextBox, timeEntry.Duration, open); + + if (isDifferentTimeEntry) { this.clearUndoHistory(); @@ -128,6 +138,7 @@ private void onTimeEntryEditor(bool open, Toggl.TogglTimeEntryView timeEntry, st if (isCurrentlyRunning) { + this.endDatePicker.SelectedDate = DateTime.Now; this.endTimeTextBox.Text = ""; } @@ -165,7 +176,7 @@ private void onTimeEntryEditor(bool open, Toggl.TogglTimeEntryView timeEntry, st ? "Create a new project" : string.Empty; } - this.dateSet = true; + this.startDateSet = true; } } @@ -187,6 +198,13 @@ private static void setText(ExtendedTextBox textBox, string text, bool evenIfFoc } } + /// + /// When is not focused, or has an empty property value, or when is , this method stores into 's property.
+ /// Otherwise, this method does nothing. + ///
+ /// + /// + /// private static void setTime(ExtendedTextBox textBox, string time, bool evenIfFocused) { if (evenIfFocused @@ -205,9 +223,9 @@ private static void setTime(ExtendedTextBox textBox, string time, bool evenIfFoc #region duration auto update - private void durationUpdateTimerTick(object sender, string s) + private void durationUpdateTimerTick(object sender, string durationText) { - if (this.TryBeginInvoke(durationUpdateTimerTick, sender, s)) + if (this.TryBeginInvoke(durationUpdateTimerTick, sender, durationText)) return; if (!this.hasTimeEntry() || this.timeEntry.DurationInSeconds >= 0) @@ -222,8 +240,8 @@ private void durationUpdateTimerTick(object sender, string s) var caret = this.durationTextBox.CaretIndex; - this.durationTextBox.SetText(s); - this.durationTextBox.Tag = s; + this.durationTextBox.SetText(durationText); + this.durationTextBox.Tag = durationText; this.durationTextBox.CaretIndex = caret; } @@ -351,7 +369,8 @@ private void saveStartTimeIfChanged() } private void saveEndTimeIfChanged() { - this.setTimeEntryTimeIfChanged(this.endTimeTextBox, Toggl.SetTimeEntryEnd, "end time"); +// this.setTimeEntryTimeIfChanged(this.endTimeTextBox, Toggl.SetTimeEntryEnd, "end time"); + this.setTimeEntryEndTimestampIfChanged(); } private void saveDurationIfChanged() { @@ -367,18 +386,97 @@ private void setTimeEntryTimeIfChanged(TextBox textBox, Func x.DurationText).Subscribe(x => durationUpdateTimerTick(this, x)); + timer.ViewModel.WhenValueChanged(x => x.DurationText).Subscribe(durationText => this.durationUpdateTimerTick(this, durationText)); } public void FocusField(string focusedFieldName) From cec74cf6574253a67f7acf8ac8d1198c527abef5 Mon Sep 17 00:00:00 2001 From: Dai Date: Sat, 23 Jan 2021 03:02:53 -0800 Subject: [PATCH 4/6] Tidying up. --- .../TogglDesktop/ui/views/EditView.xaml.cs | 68 ++++--------------- 1 file changed, 12 insertions(+), 56 deletions(-) diff --git a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs index f1b1bc2089..8533e36fd8 100644 --- a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs +++ b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml.cs @@ -202,9 +202,6 @@ private static void setText(ExtendedTextBox textBox, string text, bool evenIfFoc /// When is not focused, or has an empty property value, or when is , this method stores into 's property.
/// Otherwise, this method does nothing. /// - /// - /// - /// private static void setTime(ExtendedTextBox textBox, string time, bool evenIfFocused) { if (evenIfFocused @@ -369,7 +366,6 @@ private void saveStartTimeIfChanged() } private void saveEndTimeIfChanged() { -// this.setTimeEntryTimeIfChanged(this.endTimeTextBox, Toggl.SetTimeEntryEnd, "end time"); this.setTimeEntryEndTimestampIfChanged(); } private void saveDurationIfChanged() @@ -377,7 +373,6 @@ private void saveDurationIfChanged() this.setTimeEntryTimeIfChanged(this.durationTextBox, Toggl.SetTimeEntryDuration, "duration"); } - private void setTimeEntryTimeIfChanged(TextBox textBox, Func apiCall, string timeType) { if (!this.hasTimeEntry()) @@ -394,7 +389,6 @@ private void setTimeEntryTimeIfChanged(TextBox textBox, Func Date: Sat, 23 Jan 2021 03:20:56 -0800 Subject: [PATCH 5/6] More tabs-to-spaces. --- .../TogglDesktop/ui/views/EditView.xaml | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml index 93ffcd2dcb..699b19f3c3 100644 --- a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml +++ b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml @@ -1,4 +1,4 @@ - + Grid.Row="0" Grid.Column="0" + VerticalAlignment="Center" + Margin="0 0 10 8" + Text="Start" /> @@ -223,24 +223,24 @@ 12:45 + Grid.Row="1" Grid.Column="0" + VerticalAlignment="Center" + Margin="0 0 10 8" + Text="End"/> @@ -249,22 +249,22 @@ 12:55 + Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" + VerticalAlignment="Center" + Margin="0 0 10 10" + Text="Duration" /> 10:12 min From 83f002d4e27305f8087d96ce1df4e916c935c7c4 Mon Sep 17 00:00:00 2001 From: Dai Date: Sat, 23 Jan 2021 03:22:58 -0800 Subject: [PATCH 6/6] Supporting variable-width durationTextBox. --- .../TogglDesktop/TogglDesktop/ui/views/EditView.xaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml index 699b19f3c3..061bb9a9a2 100644 --- a/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml +++ b/src/ui/windows/TogglDesktop/TogglDesktop/ui/views/EditView.xaml @@ -1,4 +1,4 @@ - - - - + + + @@ -262,10 +262,11 @@ Margin="0 0 10 10" Text="Duration" /> - 10:12 min