Skip to content

refactor: rewrite filter system with native macOS controls#503

Merged
datlechin merged 4 commits intomainfrom
feat/filter-system-native-refactor
Mar 29, 2026
Merged

refactor: rewrite filter system with native macOS controls#503
datlechin merged 4 commits intomainfrom
feat/filter-system-native-refactor

Conversation

@datlechin
Copy link
Copy Markdown
Collaborator

Summary

  • Native macOS controls: Replace custom Menu dropdowns with Picker(.menu) (NSPopUpButton), remove card-style row backgrounds, use borderless +/− buttons following NSPredicateEditor pattern
  • Remove quick search: Delete "search all columns" feature entirely (QuickSearchField, buildQuickSearchQuery, buildCombinedQuery from protocol + all 8 plugins). Raw SQL filter row is the default instead
  • Fix filter persistence bugs: saveLastFilters now uses appliedFilters (not editing state), clearAll() resets visibility, restoreLastFilters only shows panel when valid applied filters exist
  • Clean architecture: Remove per-row checkboxes, "Select All", separate footer. Move Unset/Apply to header bar. Merge presets/settings/SQL preview into single options menu
  • HIG compliance: Accessibility labels, reduce motion support, MixedStateCheckbox (NSViewRepresentable), flexible SQL preview sheet, theme typography throughout
  • Navigation fix: Tables with active filters/sorting/edits open in new tab instead of replacing current tab

Test plan

  • Open filter panel (Cmd+F) → auto-adds empty Raw SQL row with focus
  • Type WHERE clause → press Enter → filters applied, data reloads
  • Click +/− to add/remove filter rows
  • Remove last filter row → panel closes, data reloads if filters were applied
  • Click Unset → clears all filters, closes panel, reloads data
  • Apply filter → close panel → close tab → reopen table → filters restored (with "Restore Last Filter" setting)
  • Apply filter → Unset → close tab → reopen → NO filters restored
  • Open filter panel without applying → close tab → reopen → NO panel shown
  • Switch between tabs → filter state preserved per tab
  • Filter a table → click another table in sidebar → opens new tab (not replace)
  • FK navigation → auto-applies equality filter on target table
  • Context menu "Duplicate Filter" and "Remove Filter" work
  • AND/OR picker appears only with 2+ filters
  • Options menu (⋯): SQL preview, presets, settings all accessible

@datlechin datlechin merged commit a06bbc1 into main Mar 29, 2026
1 check passed
@datlechin datlechin deleted the feat/filter-system-native-refactor branch March 29, 2026 14:10
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