Skip to content

Cleanup IDE Settings: add search, remove category icons#211

Merged
hendrikmennen merged 4 commits intomainfrom
copilot/cleanup-ide-settings
Apr 22, 2026
Merged

Cleanup IDE Settings: add search, remove category icons#211
hendrikmennen merged 4 commits intomainfrom
copilot/cleanup-ide-settings

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 22, 2026

The Application Settings window lacked a way to find settings, and category icons added visual noise without aiding navigation.

Search

  • New SearchText on ApplicationSettingsViewModel with live filtering (case-insensitive substring match over page/sub-category headers, TitledSetting.Title, and HoverDescription).
  • New ISearchableSettingsItem interface + IsVisibleBySearch on SettingsPageViewModel, SettingsCollectionViewModel, and SettingViewModel.
  • Sidebar TreeView and right-pane ListBox use ItemContainerTheme to bind IsVisible to IsVisibleBySearch. Individual settings combine search visibility with the existing Setting.IsVisibleObservable via MultiBinding + BoolConverters.And.
  • Matching pages auto-expand; selection jumps to the first match only when the currently selected item is no longer visible (preserves explicit sub-category selections).

Category icons removed

  • <Image> bindings removed from ApplicationSettingsView.axaml and SettingsCollectionView.axaml (sidebar tree + section headers).
  • Icon/IconKey on the VMs are retained and marked [Obsolete]. ISettingsService.RegisterSettingCategory(category, priority, iconKey) signature is unchanged — iconKey is still accepted and resource-resolved, just not rendered.

Usability polish

  • Window enlarged to 650×450, sidebar widened to 200px.
  • Search TextBox with magnifier glyph (VsImageLib.Search16XMd), "Search settings..." watermark, and UpdateSourceTrigger=PropertyChanged.
  • Section headers use a consistent 13px font without leading icon.
// New: live-filter the settings tree
public string SearchText
{
    get => _searchText;
    set { if (SetProperty(ref _searchText, value ?? string.Empty)) ApplyFilter(); }
}

Notes for reviewers

  • Full-solution build and running the Studio desktop are blocked in the sandbox by the pre-existing missing VtNetCore.Avalonia submodule; OneWare.Settings and OneWare.Core build cleanly in isolation.
  • Debouncing ApplyFilter (suggested in automated review) was left out intentionally — the settings tree is small and the throttle already present on the TreeView's selection side-effects is sufficient.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • av-build-tel-api-v1.avaloniaui.net
    • Triggering command: /usr/share/dotnet/dotnet dotnet exec --runtimeconfig /home/REDACTED/.nuget/packages/avalonia.buildservices/11.3.2/tools/netstandard2.0/runtimeconfig.json /home/REDACTED/.nuget/packages/avalonia.buildservices/11.3.2/tools/netstandard2.0/Avalonia.BuildServices.Collector.dll (dns block)
    • Triggering command: /usr/share/dotnet/dotnet dotnet exec --runtimeconfig /home/REDACTED/.nuget/packages/avalonia.buildservices/11.3.2/tools/netstandard2.0/runtimeconfig.json /home/REDACTED/.nuget/packages/avalonia.buildservices/11.3.2/tools/netstandard2.0/Avalonia.BuildServices.Collector.dll ACCEPT 64990E8E/missingpackages_workingdir cal/bin/git HooksPath (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI linked an issue Apr 22, 2026 that may be closed by this pull request
Copilot AI and others added 2 commits April 22, 2026 13:09
Copilot AI changed the title [WIP] Cleanup IDE settings for improved usability Cleanup IDE Settings: add search, remove category icons Apr 22, 2026
Copilot AI requested a review from hendrikmennen April 22, 2026 13:16
@hendrikmennen hendrikmennen marked this pull request as ready for review April 22, 2026 13:48
@hendrikmennen hendrikmennen merged commit 0c9a453 into main Apr 22, 2026
1 check passed
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.

Cleanup IDE Settings

2 participants