Skip to content

Onboarding: first-run welcome, wizard clarity, Getting started guide - #138

Merged
devnull03 merged 11 commits into
mainfrom
onboarding
Sep 28, 2026
Merged

devnull03 merged 11 commits into
mainfrom
onboarding

Conversation

@devnull03

@devnull03 devnull03 commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Implements the onboarding design handoff (launcher, wizard and workspace frames).

  • Launcher: with no recent projects, the list becomes a short welcome with an "Explore an example project" card. The sample collection is compiled in and unpacked to qrate's data folder on first use.
  • Wizard: the Files step gets "Link a files folder" / "Add files later" cards, a breakdown of partial matches and a collapsed Advanced block. The Columns step gets a note when files are deferred. The Create step shows the .qrate path, the number of rows it will create, and a note that media stays in its folder.
  • Getting started guide: now in its own onboarding crate, plugged in through a new workspace::extension hook. A floating card offers three tasks picked from the project type. Below a 640×360 centre, or after "Show me later", it folds into a status-bar label. Also: one-time tips, Dismiss with Undo, Help ▸ Getting Started, and a tip the first time you export.
  • Chrome: a wrapper around the library's dock skin gives single-panel title rows a tinted strip with a border under it. Details fields are a full-width striped table. The status bar says "No problems" when there are none. The view switcher shows Table and Gallery labels. The title bar says "Editing as ".

cargo fmt, clippy with -D warnings and cargo test --workspace pass. Not yet checked visually in a running app.

Generated by Claude Code

claude and others added 6 commits September 26, 2026 01:28
…es/Columns/Create

From the onboarding design (frames 1b, 3, 4a, 5a):

- Launcher: with no recent projects, the empty list becomes a short welcome —
  no account needed, media stays in its folder, an "Explore an example
  project" card, and a separate "Open an existing .qrate project" button.
- Example project: the repo's sample/ collection is compiled in, unpacked to
  qrate's data folder the first time, and reopened (with any edits) after.
- Files step: "Link a files folder" / "Add files later" cards replace the
  checkbox at the bottom; a partial match explains each group; folder rows,
  description standard and duplicates fold into one Advanced block.
- Columns step: a note under File when files are deferred.
- Create step: the full .qrate path, a Records row, a "media stays in its
  folder" note, and a hint that a Getting started card follows.
- settings::onboarding holds the guide's keys; a new project writes them so
  the workspace opens with its Getting started card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mg1nNrSAaj2A33ZNXkzYy
…chrome

The workspace guide from the onboarding design (frames 6a/6c, 7-11) lives in
a new `onboarding` crate that plugs into `workspace` through a small
extension point (workspace::extension): attach, centre/window overlays, view
changes and centre resizes. The workspace no longer knows onboarding exists.

- A floating card of three tasks picked from what the project was made from
  (blank / spreadsheet / linked media), ticked from the grid's own state
  (table::guide_facts). Folds into a status-bar label below a 640x360 centre
  or on "Show me later"; Dismiss shows a 6 s note with Undo.
- One-time tips (Title cell, add a field, Problems, Gallery, Details moved)
  and a first-export tip. Help > Getting Started reopens the card, or the
  launcher when no project is open.

Chrome from the same design:
- Dock skin wrapper: a lone panel's title row gets the tab-bar tint and a
  rule under it, like a tab strip already has.
- Details: fields as a full-width striped table with a fixed label column.
- Status bar: "No problems" instead of two zero counts.
- View switcher: Table / Gallery labels beside their icons.
- Title bar: "Editing as <name>" instead of "Author: <name>".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mg1nNrSAaj2A33ZNXkzYy
CI's clippy (-D warnings) rejected the two nested if-lets in the app
settings writer thread (collapsible_if), and the preview test added for
forgetting a file still built ThumbProbe with one field after it gained
the cover/contain flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013mg1nNrSAaj2A33ZNXkzYy
@devnull03
devnull03 marked this pull request as ready for review September 27, 2026 00:35
Each recent project remembers its thumbnail and the folder it came from,
so the launcher no longer walks every files folder (often an external
drive) each time it opens. An unreachable folder is never scanned.
Skips the tip when export returns early (no project, Google disabled),
and drops the Google hint when the integration is already on.
@devnull03
devnull03 merged commit 4792fca into main Sep 28, 2026
3 checks passed
@devnull03
devnull03 deleted the onboarding branch September 28, 2026 17:30
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.

2 participants