Uh oh!
There was an error while loading. Please reload this page.
Add option to start app in Home/Last project - #4638
Conversation
Uh oh!
There was an error while loading. Please reload this page.
| MMSettingsComponents.MMSettingsDropdown { | ||
| width: parent.width | ||
| title: qsTr("On app startup") |
There was a problem hiding this comment.
This is nitpick for @gabriel-bolbotina, on every other setting name we use noun and here we don't. Wouldn't it be better to name it "Startup behaviour"?
"Manage GPS receivers" is the only offender
There was a problem hiding this comment.
Start up behaviour sounds good to me, I'll change it in figma
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Withalion
commented
Aug 13, 2026
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 |
Coverage Report for CI Build 32012645284Coverage decreased (-0.01%) to 59.117%Details
Uncovered ChangesNo uncovered changes found. Coverage Regressions62 previously-covered lines in 4 files lost coverage.
Coverage Stats
💛 - Coveralls |
📦 Build Artifacts Ready
|
Withalion
left a comment
There was a problem hiding this comment.
Besides these small things have you solved the issue I mentioned in my other comment?
| model: startupBehaviourModel | ||
| model: startupBehaviorModel | ||
| value: model.count > 0 ? model.get(currentIndex).text : "" |
There was a problem hiding this comment.
model.count will never be zero
| settings.beginGroup( CoreUtils::QSETTINGS_APP_GROUP_NAME ); | ||
| const QString path = settings.value( "defaultProject", "" ).toString(); | ||
| const QString path = settings.value( QStringLiteral( "defaultProject" ), "" ).toString(); | ||
| const QString layer = settings.value( "defaultLayer/" + path, "" ).toString(); |
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.