diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 1c90ef7c27c..c194ab45640 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -1536,14 +1536,9 @@ QgisAppStyleSheet* QgisApp::styleSheetBuilder() return mStyleSheetBuilder; } -// restore any application settings stored in QSettings -void QgisApp::readSettings() +void QgisApp::readRecentProjects() { QSettings settings; - QString themename = settings.value( QStringLiteral( "UI/UITheme" ), "default" ).toString(); - setTheme( themename ); - - // Read legacy settings mRecentProjects.clear(); settings.beginGroup( QStringLiteral( "/UI" ) ); @@ -1587,6 +1582,16 @@ void QgisApp::readSettings() mRecentProjects.append( data ); } settings.endGroup(); +} + +void QgisApp::readSettings() +{ + QSettings settings; + QString themename = settings.value( QStringLiteral( "UI/UITheme" ), "default" ).toString(); + setTheme( themename ); + + // Read legacy settings + readRecentProjects(); // this is a new session! reset enable macros value to "ask" // whether set to "just for this session" @@ -3354,6 +3359,10 @@ void QgisApp::updateRecentProjectPaths() // add this file to the recently opened/saved projects list void QgisApp::saveRecentProjectPath( const QString& projectPath, bool savePreviewImage ) { + // first, re-read the recent project paths. This prevents loss of recent + // projects when multiple QGIS sessions are open + readRecentProjects(); + QSettings settings; // Get canonical absolute path diff --git a/src/app/qgisapp.h b/src/app/qgisapp.h index 0e3f29203bd..3dd80896b81 100644 --- a/src/app/qgisapp.h +++ b/src/app/qgisapp.h @@ -1534,6 +1534,9 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow //! Copy a vector style from a layer to another one, if they have the same geometry type void duplicateVectorStyle( QgsVectorLayer* srcLayer, QgsVectorLayer* destLayer ); + //! Loads the list of recent projects from settings + void readRecentProjects(); + QgisAppStyleSheet *mStyleSheetBuilder = nullptr; // actions for menus and toolbars -----------------