diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 184ed1421fd444684f4c1bd67e8c8f92ef8871ef..7a5ffa285cd2b07cf184913864cda6ef1ee7d0e5 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -388,9 +388,9 @@ void QbsProject::parse(const QVariantMap &config, const QString &dir) params.buildRoot = m_qbsBuildRoot; params.projectFilePath = m_fileName; params.ignoreDifferentProjectFilePath = false; - const qbs::Preferences prefs(m_manager->settings()); - params.searchPaths = prefs.searchPaths(QLatin1String(QBS_BUILD_DIR)); - params.pluginPaths = prefs.pluginPaths(QLatin1String(QBS_BUILD_DIR)); + qbs::Preferences *prefs = QbsManager::preferences(); + params.searchPaths = prefs->searchPaths(QLatin1String(QBS_BUILD_DIR)); + params.pluginPaths = prefs->pluginPaths(QLatin1String(QBS_BUILD_DIR)); m_qbsSetupProjectJob = qbs::Project::setupProject(params, m_manager->settings(), m_manager->logSink(), 0); diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp index 4420637955a518872b69f1123503823ddad38539..354fb8ba2c7361bbf5738ad0b4257a4f492889ba 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp @@ -74,11 +74,17 @@ const QChar sep = QChar(QLatin1Char('.')); namespace QbsProjectManager { -qbs::Settings *QbsManager::m_settings = new qbs::Settings(QLatin1String("QtProject"), QLatin1String("qbs")); +qbs::Settings *QbsManager::m_settings = 0; +qbs::Preferences *QbsManager::m_preferences = 0; QbsManager::QbsManager(Internal::QbsProjectManagerPlugin *plugin) : m_plugin(plugin) { + if (!m_settings) + m_settings = new qbs::Settings(QLatin1String("QtProject"), QLatin1String("qbs")); + if (!m_preferences) + m_preferences = new qbs::Preferences(m_settings); + setObjectName(QLatin1String("QbsProjectManager")); connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsChanged()), this, SLOT(pushKitsToQbs())); @@ -148,6 +154,11 @@ qbs::Settings *QbsManager::settings() return m_settings; } +qbs::Preferences *QbsManager::preferences() +{ + return m_preferences; +} + void QbsManager::addProfile(const QString &name, const QVariantMap &data) { const QString base = QLatin1String(PROFILES_PREFIX) + name; diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.h b/src/plugins/qbsprojectmanager/qbsprojectmanager.h index 705271775d7199204dc35b78dd12afb9b89d23e3..56a561a3767b0e0396ded5a707fb2a1d7926d7c5 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.h @@ -69,6 +69,7 @@ public: QStringList profileNames() const; static qbs::Settings *settings(); + static qbs::Preferences *preferences(); Internal::QbsLogSink *logSink() { return m_logSink; } private slots: @@ -83,6 +84,7 @@ private: Internal::QbsProjectManagerPlugin *m_plugin; Internal::QbsLogSink *m_logSink; static qbs::Settings *m_settings; + static qbs::Preferences *m_preferences; }; } // namespace QbsProjectManager