Skip to content

Update: UpdaterDialog QML — states, changelog viewer, channel picker #449

Description

@fernandotonon

Parent epic: #439
Depends on: #441, #443.

Goal

A polished QML dialog covering every updater state, hosting the changelog and the per-flavor guidance.

Scope

  • New qml/UpdaterDialog.qml:
    • Single root Dialog (or Popup) styled to match PropertiesPanel.qml / MaterialEditorWindow.qml.
    • States bound to UpdaterController.state: Idle, Checking, UpToDate, UpdateAvailable, Downloading, Verifying, ReadyToInstall, Error, PackageManaged.
    • UpdateAvailable state: title + version + published date + Markdown changelog (use Qt.labs.qmlmodels + a TextArea with textFormat: TextEdit.MarkdownText).
    • Downloading: progress bar bound to UpdaterController.progress, cancel button.
    • PackageManaged: copy-pasteable command with copy button (per #Update: Install-flavor detection + package-manager passthrough UX #443).
    • "Remind me later" closes; "Skip this version" stores tag in QSettings so it doesn't re-prompt until a newer version appears.
  • qml/UpdaterSettings.qml panel embedded in the existing settings dialog (wherever the LLM settings live):
    • Channel picker (Stable/Beta/Nightly).
    • "Check on startup" toggle.
    • "Auto-download in background" toggle (default OFF).
    • "Last checked" timestamp + manual Check now button.
  • Help menu Verify Update renamed to Check for Updates… and routed to UpdaterController::checkForUpdates().

Acceptance criteria

  • All 9 states render correctly under qmllint and a snapshot/golden test.
  • Changelog Markdown renders inline.
  • Skip-this-version persists across restarts.
  • Settings persist via QSettings.
  • Sentry breadcrumb updater.dialog.* for state transitions.

Effort

~1 week.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-updateIn-app auto-updater (epic prefix: Update:)enhancementNew feature or requestuiux

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions