Skip to content

Add option to start app in Home/Last project - #4638

Open
xkello wants to merge 1 commit into
masterfrom
feature/editable-user-spawner
Open

Add option to start app in Home/Last project#4638
xkello wants to merge 1 commit into
masterfrom
feature/editable-user-spawner

Conversation

@xkello

@xkello xkello commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Description

Currently the app always auto-loads the last-opened project on startup, with no way to change this. For users with large/complex projects, this means every launch pays the load cost of a project they may just want to switch away from.

This PR adds a setting under Settings -> General -> On app startup that lets the user pick between:

  • Recent project - jump back into the last project (default, unchanged behaviour)
  • Project home - go straight to the list of downloaded projects, skipping any project load

Fixes: #4621

What changed

  • app/appsettings.h / app/appsettings.cpp - new AppSettings::StartupBehaviour enum (StartupRecentProject / StartupProjectHome), exposed as startupBehaviour property, persisted under the startupBehaviour key, following the same pattern as the existing hapticsType setting.
  • app/qml/settings/components/MMSettingsDropdown.qml - added optional drawerTitle (falls back to the row's title, so existing usages are unaffected) and secondaryText support on drawer options, needed to show the per-option subtitles in the new drawer.
  • app/qml/settings/MMSettingsPage.qml - new On app startup row under the General section (first item, before About), opening an Open on startup drawer with the two options and their subtitles, mirroring the existing "Touch Feedback" / "Interval threshold type" dropdown rows.
  • app/qml/main.qml - Component.onCompleted now checks AppSettings.startupBehaviour first; if Project home is selected it skips loading the default project and goes straight to the projects list. The Recent project path is untouched.

Behaviour

  • Default is Recent project - existing users see no change.
  • Switching to Project home: on the next app launch, the app opens directly to the downloaded projects list instead of loading a project. No project is loaded, so there's no load-time cost.
  • Switching back to Recent project: resumes the previously remembered project, since defaultProject is never cleared when in Project home mode.
  • The choice persists across restarts (QSettings) and only takes effect on the next launch, not immediately.

Video 1: App launch with "Recent project" selected - shows current/default behaviour, opens straight into the last project.

Screencast.From.2026-08-07.18-43-08.webm

Video 2: App launch with "Project home" selected - shows the app opening directly to the projects list, no project load.

Screencast.From.2026-08-07.18-42-43.webm
Screenshot From 2026-08-07 18-43-26 Screenshot From 2026-08-07 18-43-43

TLDR @Withalion

Adds an "On app startup" setting so users can choose whether the app opens their Recent project (current, default behaviour) or Project home (list of downloaded projects) on launch. New AppSettings::StartupBehaviour enum persisted via QSettings, one new settings row + drawer reusing existing MMSettingsDropdown/MMListDrawer components, and a small gate in main.qml's startup logic. No new components, no CMake changes.

@xkello xkello added this to the 2026.4.0 milestone Aug 7, 2026
@xkello
xkello requested a review from Withalion August 7, 2026 16:48
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.

Add an option to settings to load to menu by default

1 participant