Up to date#69
Merged
Merged
Conversation
Integrate shared WPF component library for design system reuse. Guidelines v1.0.0 with Apache 2.0 license. Next steps: Add project references and update App.xaml to use shared styles. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add Guidelines project to solution - Reference ZBitSystems.Wpf.UI in Windows project - Update App.xaml to use shared design system via pack URIs - Remove migrated files: DesignTokens, ThemeSemanticColors, ComponentStyles, CopyTextBoxHelper - Keep LayoutTemplates.xaml (OSDP-specific, not migrated) - Update CLAUDE.md with submodule workflow documentation Phase 1 Complete: Design system and CopyTextBoxHelper migrated to shared library. All pages render correctly, theme switching works, no visual regressions. Build: Success (0 errors, 13 warnings - all XML docs in Guidelines library) Code Inspection: Clean (no new warnings in OSDP-Bench code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
StyleGuide.md is now maintained in the Guidelines shared library at: lib/Guidelines/src/ZBitSystems.Wpf.UI/Styles/StyleGuide.md ExampleImplementation.md remains in OSDP-Bench as it contains application-specific implementation examples. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Clarify that ComponentStyles is now in Guidelines library - Add reference to ExampleImplementation.md for OSDP-specific guidance - Organize documentation references into shared vs OSDP-specific sections - Improve clarity on where to find different types of styling documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
LayoutTemplates.xaml was trying to load DesignTokens.xaml and ComponentStyles.xaml from local Styles directory, but these files were migrated to Guidelines library. These resources are now loaded via App.xaml from the Guidelines library, so LayoutTemplates.xaml inherits them automatically through WPF's resource lookup hierarchy. Fixes runtime error: Cannot locate resource 'styles/designtokens.xaml' Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Converters migrated (5): - BooleanToVisibilityConverter - InverseBoolConverter - NullToVisibilityConverter - StringToVisibilityConverter - IndexToVisibilityConverter StatusLevelConverter remains in OSDP-Bench (application-specific). Changes: - Update Guidelines submodule to include converters and tests - Remove migrated converter files from OSDP-Bench - Update converter namespace in 4 XAML files to reference Guidelines library - Add dual namespace support for shared and local converters in ConfigurationPage Build: Success (0 errors, 0 warnings) Tests: All 39 Guidelines library tests passing Application: Verified running successfully Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Phase 3 complete: Adds interface-based localization system with full test coverage (56 tests total). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Update Guidelines submodule to include window/theme management - Create UserSettingsWindowStateAdapter to keep Core UI-independent - Refactor MainWindow to use WindowStateManager from Guidelines - Refactor InfoPage to use ThemeManager from Guidelines - Remove custom window state persistence code (now in Guidelines) Architecture improvement: - Core project remains UI-independent (targets net10.0) - Adapter pattern used to bridge Core types with Guidelines interfaces Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Comprehensive WPF-UI usage guide now available - README simplified with quick start focus Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Fix Azure DevOps pipeline to checkout Git submodules - Add `submodules: true` to all checkout steps - Resolves build failures from missing Guidelines library - Update README with current project information - Correct .NET version references (8.0 → 10.0) - Add submodule clone instructions - Add Guidelines library documentation reference - Fix CLAUDE.md path - Update Guidelines submodule to latest version - Includes comprehensive Git submodule CI/CD documentation - Documents Azure DevOps submodule checkout requirements Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove outdated localization documentation files - Remove UI Style Guide link (covered by Guidelines library) - Update Guidelines link to GitHub repository URL - Simplify documentation structure Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move InvertEffect, version/copyright helpers, and license display pattern to the shared Guidelines library. Replace inline CardExpander blocks with reusable LicenseExpander control. Simplify InfoPage code-behind by using ApplicationInfoHelper for assembly metadata. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Eliminate duplicated JSON persistence logic and the UserSettingsWindowStateAdapter by leveraging Guidelines' UserSettings base class, JsonUserSettingsService, and IWindowStateStorage. Core's IUserSettingsService is now a lean interface exposing only app-specific properties (PreferredCulture, SkipLanguageMismatchCheck), while the Windows project provides AppSettings extending Guidelines' UserSettings and AppUserSettingsService wrapping JsonUserSettingsService. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set LocalizationService.Provider before Host.Start() so it is available when XAML markup extensions are evaluated during window and page construction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… tokens Apply new Guidelines styles (Text.PageMessage, Text.Stat.Label/Value, Margin.Card, Margin.ContentCenter) across pages. Add ComboBox.Standard to unstyled ComboBoxes and Card.Standard to inline-styled Cards. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded Red DropShadowEffect color with a binding to the LED fill color so the glow always matches. Add AutomationProperties.Name to DataGrids, ProgressBar, Image, and Ellipse controls that lacked screen reader context. Give the expand column a localized header instead of an empty string. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…pervision Add 35 new tests covering previously commented-out and missing test areas: - MonitorViewModel: trace entry statistics, display filtering, line quality, buffer management, session lifecycle, and export commands - ManageViewModel: trace entry activity indicators, supervision tracking (tamper, power, online status), and clear supervision history - ConfigurationViewModel: trace entry activity indicators, USB device monitoring with port preservation, and cancel discovery - Shared TraceEntryTestHelper with valid OSDP packet constants (Poll, ACK, NAK, ID Report) using correct CRC-16 checksums Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce automated UI testing using FlaUI to verify the WPF application works end-to-end, with Moq-based service mocking to simulate OSDP device connections without real hardware. Refactor App.xaml.cs to support testable service registration via an overridable ConfigureServices method. Add AutomationId properties to key XAML controls for reliable element discovery. Add a separate non-blocking UI test stage to the CI pipeline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The DotNetCoreCLI@2 test task adds these automatically, causing the "expects a single argument but 2 were provided" error. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 18 new test scenarios across Configuration (advanced), Manage, Monitor, and Info pages. Replace Thread.Sleep calls with NavigateToPage helpers that use element polling or dispatcher flush, reducing test runtime by 42%. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move ButtonPanel to Grid row 2 in narrow responsive mode to avoid colliding with the Discover/Manual radio buttons in row 1. Switch connection-mode radio buttons from StackPanel to WrapPanel so "Passive Mode" text wraps instead of being clipped. Add UI guideline about Grid row collisions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MonitorPage: Use WrapPanel for buffer status row so text and progress bar wrap at narrow widths; add TextWrapping to trace details TextBox. InfoPage: Use WrapPanel for language selection to prevent overflow. ManagePage: Use WrapPanel for vendor info display; replace hardcoded pixel margins with design token references. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…and layout fixes Disable passive mode security key when default key is checked, add empty serial ports warning message, add placeholder text to security key fields, align UpdateSourceTrigger on both key fields, replace empty label spacer with proper alignment, and add MinWidth to action buttons for layout stability. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded "Three Quick Beeps" buzzer action with configurable parameters (tone code, reader number, on/off time, count) and add capability checking that disables actions when the device doesn't support the required capability. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expose all 13 ReaderLedControl parameters via a TabControl with Temporary and Permanent tabs, replacing the single color dropdown. Color ComboBoxes show colored squares next to plain English labels matching ACUConsole. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ting Real-time visual feedback (red border + red character count) when the security key is invalid, with Connect/Start buttons disabled until valid. Fix bug where passive mode UseDefaultKey checkbox couldn't be unchecked because the guard immediately re-checked it when the key was empty. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…validation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Buzzer ON time must be non-zero unless tone code is Off. LED timing validation only applies when the mode actively sets a state (not NOP). Validation uses SemanticErrorBrush styling and disables the Send button. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ests Fix buzzer and LED controls not updating validation UI by implementing INotifyPropertyChanged interface. Wrap NumberBox controls in Border elements for error highlighting since NumberBox ignores direct style setters. Add validation error text messages and UI tests for all validation behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New Crowdin updates
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.