Skip to content

Lay the shell out like Redrob Canvas - #74

Merged
its-janghoon merged 5 commits into
developfrom
feat/canvas-ux
Oct 16, 2026
Merged

its-janghoon merged 5 commits into
developfrom
feat/canvas-ux

Conversation

@its-janghoon

Copy link
Copy Markdown
Member

What this changes

The window is laid out like Redrob Canvas. One theme owned by the shell (canvas's Pro tokens, dark and light grounds following the system with a Help > Theme override; Inter for the interface, JetBrains Mono for SQL and grid cells, a system CJK fallback), a thin top bar with File / Connection / Query / View / Help menus and a right slot (active connection with its read-only / read-write badge beside the Redrob account), the connections tree (grouped, connect-state dots, filter) and the active connection's schema tree (database > schema > tables > columns; double-click inserts; Select top 100 / Copy name / DDL) on the left, tabbed editors (Ctrl+T / Ctrl+W / Ctrl+1…9, tab shows connection + dirty dot) with Grid / Messages / Changes under a splitter, the Ask dock on the right (Ctrl+Shift+A), a status line at the bottom.

Run: Ctrl+Enter / F5 runs all / Esc cancels (Pending::cancel in the engine, the one core change). Errors go to the Messages tab and a red status line; no error dialog. Grid: monospace, header sort, column drag, cell select, Ctrl+C cell / rows as TSV, NULL dim italic, ellipsis + tooltip, row range + page controls. Changes tab shows a badge count and the SQL the engine will run before Apply. First run: empty state with New connection; the form is a modal with Test and inline errors. View > History (click to insert), Help > Shortcuts. All strings en + ko.

The release uploads redrob-query.png and passes launcher_icon to the shared publish job (needs redrob-labs/.github#14).

Why

The 0.3.0 shell was a first egui port with egui's stock look and a flat layout; Canvas sets the shape the product apps share.

How it was verified

cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace            # 100 passed, 7 ignored
cargo build --release -p redrob-query

Run once on :0 against a throwaway SQLite file (no PostgreSQL / MySQL / MongoDB on this host).

Checklist

  • No credentials, connection strings, or real database contents in the diff, the tests, or the commit messages.
  • Read-only guarantees preserved: typed queries still go through the engine's read-only gate, and writes only through reviewed edits and the structure forms.
  • Local-storage behaviour: language.json (Help > Language) and the theme key in workspace.json; README tables updated.
  • User-visible strings name Redrob Query.

One theme owned by the shell (canvas Pro tokens, dark and light, system-following
with a Help > Theme override; Inter + JetBrains Mono + system CJK fallback), a thin
top bar with File / Connection / Query / View / Help menus and a right slot (active
connection with read-only / read-write badge, Redrob account), the connections and
schema trees on the left, tabbed editors with Grid / Messages / Changes under a
splitter, the Ask dock on the right, a status line at the bottom. English and
Korean through i18n. F5 runs all, Esc cancels (Pending::cancel in the engine),
errors never open a dialog. The release uploads redrob-query.png and names it in
redrob-launcher.json.
@its-janghoon
its-janghoon merged commit b6fb9f1 into develop Oct 16, 2026
2 checks passed
@its-janghoon
its-janghoon deleted the feat/canvas-ux branch October 16, 2026 10:59
@its-janghoon its-janghoon mentioned this pull request Oct 16, 2026
its-janghoon added a commit that referenced this pull request Oct 16, 2026
Workspace version 0.3.0 -> 0.4.0; the CHANGELOG 0.4.0 section landed with #74.
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