You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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.
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.
Also the option to open recent project doesn't work always. If I close the app on map screen, it opens map screen again. If I close the app on project screen it opens project screen again even if it's set to recent project
Tested the new "On app startup" setting under Settings → General.
✅Project home option works as expected — the app consistently opens to the list of downloaded projects on startup, skipping project load.
Issue 1: ❌Recent project option (default) is inconsistent — found an issue where the behaviour changes between consecutive app closures:
With "Recent project" selected, closed the app while on the map screen of a project → app reopened correctly on the map screen.
Repeated the same action (closed the app again while on the map screen/different screen) → app instead reopened on the project list screen.
Screenrecord:
ScreenRecording_08-18-2026.14-37-26_1.mp4
Issue 2: ❌ Issue with the Settings → General → "Startup behaviour" entry itself: - after closing and reopening the app and navigating back to Settings → General, the "Startup behaviour" " row shows an empty space on the right instead of the currently selected value (e.g. "Recent project" or "Project home").
Screenrecord:
Issue 3 ❌ UI copy mismatch: A drawer title doesn't match Figma design: this dravew should be titled "Startup behaviour". Screenshot mobile application vs. Figma:
Fix startup behaviour settings issues found in testing @IvaKuklica
Issue 1: "Recent project" reopening on the projects list inconsistently
between closures. Investigated - traced to the existing crash-recovery
flag file (5s window), unrelated to this feature. Confirmed as expected
behavior, no change made.
Issue 2: Settings row showed a blank value after a fresh app start.
The model was populated in Component.onCompleted, but the row's value binding could evaluate before that ran. Switched to static ListElement entries so it's populated synchronously.
Issue 3: Drawer title didn't match design ("Open on startup" vs
"Startup behaviour"). Removed the drawerTitle override so it falls
back to the row's title.
Application works correctly:
✅ Issue 1: The application behaves as expected, no change made.
✅ Issue 2: The 'Startup behaviour"section displays the currently selected value
✅ Issue 3: The application now matches the Figma design.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Fixes: #4621
What changed
app/appsettings.h/app/appsettings.cpp- newAppSettings::StartupBehaviourenum (StartupRecentProject/StartupProjectHome), exposed asstartupBehaviourproperty, persisted under thestartupBehaviourkey, following the same pattern as the existinghapticsTypesetting.app/qml/settings/components/MMSettingsDropdown.qml- added optionaldrawerTitle(falls back to the row'stitle, so existing usages are unaffected) andsecondaryTextsupport 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.onCompletednow checksAppSettings.startupBehaviourfirst; ifProject homeis selected it skips loading the default project and goes straight to the projects list. TheRecent projectpath is untouched.Behaviour
defaultProjectis never cleared when in Project home mode.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
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::StartupBehaviourenum persisted viaQSettings, one new settings row + drawer reusing existingMMSettingsDropdown/MMListDrawercomponents, and a small gate inmain.qml's startup logic. No new components, no CMake changes.