Conversation
Introduces a "Brand" feature for saving, applying, and managing reusable sets of QR code settings (colors, error correction, logo, etc.). Adds BrandItem model with JSON serialization, including nullable color support. Implements BrandStorageHelper for local persistence. Updates MainViewModel and UI to support brand creation, selection, and deletion. Replaces error correction ComboBox with DropDownButton and improves option display. Adds BrandRowItem control and supporting serialization files. Updates ErrorCorrectionOptions for short/long descriptions.
Introduce BrandEditDialog for editing brand details with full UI and MVVM support. Add ColorPickerButton user control for color selection. Update BrandRowItem to display a default brand icon. Integrate supporting converters and resources for color, image, and visibility binding.
Introduced a new boolean property, IsDefault, to the BrandItem class with a default value of false. This property can be used to indicate whether a brand item is the default selection.
Introduce SelectedBrand property and async ApplyBrand method in MainViewModel. Add support for editing, deleting, and setting default brands with new commands and UI handlers. Update MainPage XAML with a ComboBox for brand selection and context menu actions in the brand ListView. Ensure atomic property updates when applying brands and auto-apply default brand on navigation. Improve binding readability throughout.
Enable selecting and editing QR code error correction levels in both the brand edit dialog and new brand form. Update UI and view models to support enabling/disabling error correction and choosing the level. Improve ComboBox selection logic and clean up property change handling. Minor naming and code consistency improvements.
Revised FAQ entries to cover the new Brands feature and in-app logo controls. Updated BrandPickerComboBox width and Brands button tooltip. Added "Learn more about Brands" link in the Brands flyout with handler to open the relevant FAQ section.
Update raster logo loading to copy Bitmap from stream, ensuring no internal reference remains after stream disposal. This prevents Save() failures caused by disposed streams.
Introduces a new UserControl that enables users to pick an image, preview it letterboxed, and select colors directly from the image via pointer interaction. The control displays a crosshair and color preview on hover, and suggests dominant colors as clickable swatches. Supports Color and DefaultImagePath dependency properties and uses ImageMagick for color extraction.
Added a segmented control to ColorPickerButton for switching between color and image modes. Introduced DefaultImagePath property to support image color picking. Updated BrandEditDialog to pass LogoPath as DefaultImagePath. Changed AllCorrectionLevels to a property and fixed ComboBox binding. Updated logic to handle color changes from both pickers. Added required CommunityToolkit.WinUI controls packages.
Modernize BrandEditDialog UI using CommunityToolkit.WinUI SettingsCard and SettingsExpander controls. Replace CheckBoxes with ToggleSwitches, streamline logo image picker, and add dynamic slider descriptions. Update code-behind for property notifications and add required NuGet package. Update settings.local.json for new tools.
Modernize SettingsPage.xaml using CommunityToolkit's SettingsExpander and SettingsCard for a more organized, categorized, and visually appealing layout. Group settings into collapsible sections with icons and descriptions. Apply minor XAML formatting and property order improvements to BrandRowItem.xaml, ColorPickerButton.xaml, and ImageColorPickerControl.xaml. No business logic changes; all updates are UI/UX enhancements.
Introduced a FeedbackDialog for user feedback via email or copy. Updated SettingsPage with a "Rate and Review" card using RatingControl. High ratings prompt a Microsoft Store review; lower ratings open the feedback dialog. Project file updated to include new dialog resources.
Added commands to open Microsoft Store pages for Simple Icon FileMaker and TextGrab in SettingsViewModel. Updated SettingsPage with a new expander listing these apps and a link to the developer's website. Added an empty SettingsExpander_Expanded handler.
Enhanced color picking by increasing thumbnail size and quantization count, filtering out transparent and unsaturated colors, and selecting up to 6 visually distinct, saturated mid-tones using HSL and RGB distance. Added helper methods for HSL conversion and color distance.
Added a check to avoid reassigning IsDefault when the selected brand is already set as default. This ensures only one brand is marked as default and reduces unnecessary property 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.
Summary
BrandItemmodel with JSON serialization (including nullable color support viaColorJsonConverter)BrandStorageHelperfor local persistence of brand presetsBrandEditDialogandColorPickerButtoncontrols for creating/editing brandsBrandRowItemcontrol for displaying brands in a list with a default brand indicatorMainViewModelupdated with brand selection, apply, edit, delete, and set-default commandsMainPageupdated with a brand ComboBox, context menu actions, and auto-apply of the default brand on navigationDropDownButtonand adds short/long description support toErrorCorrectionOptionsTest plan
🤖 Generated with Claude Code