Skip to content

refactor: native patterns for feedback window, shortcut recorder, popover, query split#908

Merged
datlechin merged 1 commit into
mainfrom
refactor/native-patterns-v2
Apr 27, 2026
Merged

refactor: native patterns for feedback window, shortcut recorder, popover, query split#908
datlechin merged 1 commit into
mainfrom
refactor/native-patterns-v2

Conversation

@datlechin

Copy link
Copy Markdown
Member

Summary

  • FeedbackWindowController: NSPanel → NSWindow (NSPanel is for floating utilities, not dialogs)
  • ShortcutRecorderView: replaced manual NSBezierPath draw() with CALayer-backed rendering + NSTextField
  • PopoverPresenter: default behavior from .semitransient → .transient (standard macOS), added behavior parameter
  • QuerySplitView: bare NSSplitView → NSSplitViewController with native NSSplitViewItem collapse

Net: -138 lines. All 4 changes replace custom implementations with native macOS APIs.

Test plan

  • Help > Report an Issue — feedback window opens, closes, reopens correctly
  • Settings > Keyboard Shortcuts — recorder captures shortcuts, shows live modifiers, clears with Delete, cancels with Escape
  • Cell editing popovers (date picker, type picker, autocomplete) — open and close correctly with click-outside dismiss
  • Query tab — results panel collapses/expands smoothly with Cmd+Opt+R, divider position persists

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 841d6a13fa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

relativeTo bounds: NSRect,
of view: NSView,
preferredEdge: NSRectEdge = .maxY,
behavior: NSPopover.Behavior = .transient,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep semitransient default for in-place suggestion popovers

Changing the default NSPopover behavior to .transient breaks the autocomplete flow in FilterValueTextField: that popover is shown while the user keeps typing in the same text field, but .transient auto-closes on interactions outside the popover (the field editor). The coordinator only clears suggestionPopover in dismissSuggestions() and uses suggestionPopover != nil as the gate in updateSuggestions, so once auto-closed it can stay in a stale non-nil state and stop reopening/updating suggestions during the same edit session.

Useful? React with 👍 / 👎.

@datlechin
datlechin force-pushed the refactor/native-patterns-v2 branch from 841d6a1 to f64fd1c Compare April 27, 2026 09:46
@datlechin
datlechin merged commit 8d95647 into main Apr 27, 2026
2 checks passed
@datlechin
datlechin deleted the refactor/native-patterns-v2 branch April 27, 2026 09:48
datlechin added a commit that referenced this pull request Apr 27, 2026
datlechin added a commit that referenced this pull request Apr 27, 2026
…ell instances (#907)

* fix: use NSViewControllerRepresentable for proper view controller hierarchy, add CHANGELOG (#908)

* refactor(datagrid): window-level shared field editor instead of per-cell instances
datlechin added a commit that referenced this pull request Apr 27, 2026
datlechin added a commit that referenced this pull request Apr 27, 2026
… calls for row actions (#916)

* fix: use NSViewControllerRepresentable for proper view controller hierarchy, add CHANGELOG (#908)

* refactor(datagrid): replace NotificationCenter dispatch with delegate calls for row actions

* fix(perf): eliminate full NSTableView reload on delete, debounce lazy-load and inspector
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