feat/ui-polish #2

Merged
agj merged 6 commits from feat/ui-polish into master 2026-10-12 08:15:30 +00:00
Contributor
No description provided.
The editor applies a style sheet made of the colors of its theme (resources/style/graphedit.qss): flat, rounded tool
buttons and push buttons (the default button in the accent color, dialog buttons without icons), flat tabs with an
accent underline, menus with padding, thin splitters (one pixel, the grab area stays five pixels wide) and thin
scroll bars. Checked buttons show their icons in the accent color, so the selected tool stands out.

- The tools of the editor toolbar are centered between the syntax and the zoom controls.
- Tabs have flat close buttons with an icon of the theme.
- The side panel shows the title of the shown panel above it; the buttons of hidden panels are muted, the button of
  the shown panel has an accent bar.
- The lints panel has its own icon (the debug panel had the same), the debug panel and the plugins panel have space
  around their rows of controls, and the columns of the plugin lists fit their contents.
- Toasts have a background of their own (the style sheet made them transparent).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rPA3pJXqKf2QPa6xt2RhG
Shift+Tab in an editor focuses the editor of the next open model (the tabs, then the detached editors, wrapping
around). It is bound in the editors only, so that Shift+Tab still moves the focus back in forms. Ctrl+Tab and
Ctrl+Shift+Tab (View > Next Model, Previous Model) switch forward and back from anywhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rPA3pJXqKf2QPa6xt2RhG
The command palette (View > Command Palette..., Ctrl+Shift+P) lists every item of the menus (with its shortcut),
showing the side panels and opening the models of the project. Typing filters them fuzzily: the characters must
appear in order, matches at the starts of words and consecutive matches rank higher, and the matched characters are
highlighted. Enter or a click runs the selected command, Escape or focusing something else closes the palette. It
opens over the window that the user works in, which may be the window of a detached editor.

The matching (fuzzy_match, in graphedit/util) finds the best match of a pattern in a text, scored like fzf does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rPA3pJXqKf2QPa6xt2RhG
The editors are in groups of tabs (editor_group), which are split next to and below each other (editor_area), in the
main window and in windows of their own (editor_window, which now hold several groups as well). A buffer can have
several editors, e.g. to see two parts of a large model at once.

- Dragging a tab onto the tabs of a group moves it there, into the middle of a group moves it into the group, and to
  an edge of a group moves it into a new group at that edge; a marker shows where it goes. This works between windows
  (it is drag and drop), so detached editors are docked again by dragging their tab back. Dropping a tab outside of
  the groups moves it into a window of its own, as before.
- Split Right (Ctrl+\) and Split Down open another editor of the model next to its group, which shows the same part
  of the model. The tab menu also moves editors into a new window or back into the main window.
- Closing a tab closes its editor; the last editor of a buffer closes the buffer (asking to save it). Empty groups
  are removed (the main window keeps one), windows without editors are closed.
- New editors open in the group that was used last.
- The editor toolbar centers the tools only while it is wide enough, and the button of the tools that do not fit has
  an icon of the theme (the style's was invisible on the dark theme, and too narrow for the style sheet).

The drag runs Qt's local event loop of drag and drop (QDrag::exec), so drags start from a queued call of editor_tabs
and drops are applied once the drag is over.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rPA3pJXqKf2QPa6xt2RhG
Every group of editors has a button at the right of its tabs that shows the model of the current tab in a new group
on the right (as Split Right does), so that split views are found without the menus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rPA3pJXqKf2QPa6xt2RhG
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rPA3pJXqKf2QPa6xt2RhG
agj merged commit 9bad5dbec7 into master 2026-10-12 08:15:30 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gtz-agent/graphedit-qt!2
No description provided.