Skip to content

Redesign settings window#102

Open
danielchalmers wants to merge 35 commits intomasterfrom
wrap-settings-cards
Open

Redesign settings window#102
danielchalmers wants to merge 35 commits intomasterfrom
wrap-settings-cards

Conversation

@danielchalmers
Copy link
Owner

No description provided.

…e 58) so dense sections use wrapping card grids instead of long single-column stacks. The reusable WrapPanel/card styles are defined near the top, then applied to Window and the font dropdown cluster in Typography (DesktopClock/SettingsWindow.xaml (line 193), DesktopClock/SettingsWindow.xaml (line 282)), plus Tools, Shortcuts, Links, and Credits (DesktopClock/SettingsWindow.xaml (line 546), DesktopClock/SettingsWindow.xaml (line 582), DesktopClock/SettingsWindow.xaml (line 639), DesktopClock/SettingsWindow.xaml (line 706)). The tile widths are fixed enough to stay readable, but they now wrap to use extra horizontal space on larger windows.
…them so they are more individually distinct as groups
Moved the remaining form-style settings into cards in DesktopClock/SettingsWindow.xaml (line 85). There are now three reusable card sizes: the default card, a new wider interactive card for controls with extra actions like Browse..., Reset, color pickers, or multiline text, and a compact card for the credits list (DesktopClock/SettingsWindow.xaml (line 85), DesktopClock/SettingsWindow.xaml (line 96), DesktopClock/SettingsWindow.xaml (line 102)).

Display, Countdown, Typography, Appearance, and Alerts now all render as wrapping card collections, so every setting behaves like the sections you liked earlier while still expanding across wider windows (DesktopClock/SettingsWindow.xaml (line 143), DesktopClock/SettingsWindow.xaml (line 189), DesktopClock/SettingsWindow.xaml (line 342), DesktopClock/SettingsWindow.xaml (line 438), DesktopClock/SettingsWindow.xaml (line 581)).

I attempted to rerun dotnet test, but the required escalated run was rejected, so I could not re-verify compilation after this XAML change.
Reworked the settings UI in DesktopClock/SettingsWindow.xaml (line 149) around larger task-based cards instead of one-setting-per-card. The main pass now groups things the way users are likely to think about them: Clock, Timers & Alerts, Window, Text, and Background, with merged cards like countdown + countdown sound behavior, alert sound + repeat interval, font controls together, text color + opacity together, and background fill/outline controls together (DesktopClock/SettingsWindow.xaml (line 191), DesktopClock/SettingsWindow.xaml (line 285), DesktopClock/SettingsWindow.xaml (line 351), DesktopClock/SettingsWindow.xaml (line 423)).

I also added a new extra-large card size so the more complex interactive cards can stay readable while still wrapping naturally on wider windows (DesktopClock/SettingsWindow.xaml (line 108)).
… categorization

Reworked the settings layout in DesktopClock/SettingsWindow.xaml (line 143) so the top-level group boxes do the main categorization again: Clock, Countdown, Alerts, Window, Text, and Background. Inside each group, the cards are now smaller and more local, instead of acting like secondary categories.
…ning helper-description lines where the control or card title can carry the meaning directly. I kept the settings grouped the same way, but made labels more explicit, especially in the utility areas: tools now use clearer button text, shortcuts are single-line action labels, and links use more descriptive titles without subtitles. I also trimmed a few redundant headings like Font, Fill, and Countdown sound.
Refreshed the settings window into a preview-first customization surface without changing the settings schema. The main shift is in SettingsWindow.xaml:264, where the old flat stack of group boxes is replaced with a two-column layout, section nav, a live hero preview, and clearer sections for display, countdown, appearance, window behavior, and tools. The font controls are now grouped into a single “Type editor” in SettingsWindow.xaml:689, and countdown/sound behavior is organized as one workflow in SettingsWindow.xaml:540.

To support the more visual workflow, SettingsWindow.xaml.cs:284 now maintains live preview state, switches between time and countdown preview modes, and recomputes sample text from the existing settings properties via the existing formatter in SettingsWindow.xaml.cs:422. I also added sidebar section scrolling in SettingsWindow.xaml.cs:49 and cleaned up disposal for the preview timer/subscriptions on close.
Simplified the settings window rendering in SettingsWindow.xaml and SettingsWindow.xaml.cs with two main changes.

First, I removed the worst source of churn: the settings view model no longer runs a DispatcherTimer that invalidated preview bindings every second while the window was open. The preview text is now recalculated only when settings actually change in SettingsWindow.xaml.cs:243 and SettingsWindow.xaml.cs:312. I also removed dead preview/navigation code that was left over after the top hero was deleted.

Second, I simplified some heavier layout sections in SettingsWindow.xaml:240, SettingsWindow.xaml:636, and SettingsWindow.xaml:718 by replacing several WrapPanel-driven areas with fixed Grid layouts and trimming unused resources. That reduces re-measure work during scrolling.
Changed the samples so they no longer recompute during scroll or from live clock ticks. In SettingsWindow.xaml.cs, PreviewTimeText and PreviewCountdownText are now cached backing properties, seeded from a fixed reference time instead of DateTime.Now, and refreshed only when these settings change
Rewrote the helper text in SettingsWindow.xaml to be task-oriented instead of redesign/PR-oriented. The copy now explains what each section or control does, with examples where useful, and removes lines that were effectively trying to sell the new layout.

Updated the shared button styles in SettingsWindow.xaml so the settings buttons have a consistent minimum size and no longer clip text. The fix was mainly in the template: it now applies the button’s Padding correctly, uses consistent content alignment, and sets a shared MinWidth/MinHeight across the button variants.

Reduced the shared corner radii in SettingsWindow.xaml so the settings UI is less pill-shaped:
…xaml and SettingsWindow.xaml.cs.

The clock format area is now a single editor with a live sample, the editable format string, ready-made examples, and insert buttons for common tokens like time, day, date, year, and zone. The countdown area now has a real target editor with a live preview, raw target value, date picker, hour/minute selectors, and quick presets like +1 hour, Tonight 6 PM, and Tomorrow 9 AM. I also added a countdown format editor with common insertable pieces so users do less raw hand-editing there too.
…he window background, while keeping the inner editor cards where they still help group controls. the background should use the default window color
…d the advanced path is lower-friction instead of front-and-center.
…o always-visible layouts. The goal is the same simplification, but achieved with grouping and copy instead of disclosure.
…related fields. they are too wordy/complex/overwhelming. We need to be smarter about how we lay them out because we still need easy customizability and presets.
it feels too busy, too visually noisy, not discoverable, and not optimized for different screen sizes. i think most users will find this very hard to use. i need complete and total redesign from scratch. you can see in the screenshots how it looks now.
Do a pass on ALL text in the settings window to make sure its appropriate, informative, and user friendly. I'm talking about everything, so that includes titles, descriptions, check boxes text, insert piece textes, preset buttons, shortcuts, etc. do not change ones that are already ok, only improve ones that need it.

I tightened the settings-window copy in SettingsWindow.xaml (line 204) and left the strings that were already reading well alone. The changes focus on clearer section leads, better labels for token insertions and presets, less ambiguous checkbox text, more helpful sound/background hints, and cleaner shortcut wording. I also replaced a couple of raw option values with user-facing labels for letter case and image fit in the same window.

I cleaned up the related dialog/status text in SettingsWindow.xaml.cs (line 149), including the Notepad/settings-file messages, the “create new clock” confirmation, and the countdown parse status. To support clearer combo-box labels without changing behavior, I added a small option wrapper in SettingsWindow.xaml.cs (line 519).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant