diff options
170 files changed, 1172 insertions, 1036 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 5477bf14bfe..530a0bb6bd4 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -19,7 +19,7 @@ #include <projectexplorer/kitmanager.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/toolchainmanager.h> #include <debugger/debuggeritemmanager.h> diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 252e4ee1fba..1902631fd6b 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -18,7 +18,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/qtcassert.h> diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index e4d47be7337..e77c38ea26a 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -24,7 +24,7 @@ #include <projectexplorer/projectnodes.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/buildsystem.h> diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp index 009a0219430..9c6a616abe3 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -19,8 +19,8 @@ #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/project.h> #include <projectexplorer/projectnodes.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectwindow.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/kitinformation.h> @@ -73,7 +73,7 @@ static bool checkPackageName(const QString &packageName) static Target *androidTarget(const FilePath &fileName) { - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { if (Target *target = project->activeTarget()) { Kit *kit = target->kit(); if (DeviceTypeKitAspect::deviceTypeId(kit) == Android::Constants::ANDROID_DEVICE_TYPE diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index b8ff5dbe0b8..0eeb890f821 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -45,7 +45,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/kitmanager.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qtsupport/qtversionmanager.h> diff --git a/src/plugins/autotest/autotestplugin.cpp b/src/plugins/autotest/autotestplugin.cpp index 98b804b16d3..28475f3870b 100644 --- a/src/plugins/autotest/autotestplugin.cpp +++ b/src/plugins/autotest/autotestplugin.cpp @@ -32,22 +32,28 @@ #include <coreplugin/icontext.h> #include <coreplugin/icore.h> #include <coreplugin/messagemanager.h> + #include <cplusplus/CppDocument.h> #include <cplusplus/LookupContext.h> #include <cplusplus/Overview.h> + #include <cppeditor/cppeditorconstants.h> #include <cppeditor/cppmodelmanager.h> + #include <extensionsystem/pluginmanager.h> + #include <projectexplorer/buildmanager.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorericons.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectpanelfactory.h> #include <projectexplorer/runcontrol.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> + #include <texteditor/textdocument.h> #include <texteditor/texteditor.h> + #include <utils/algorithm.h> #include <utils/textutils.h> #include <utils/utilsicons.h> @@ -148,11 +154,11 @@ AutotestPluginPrivate::AutotestPluginPrivate() m_testTreeModel.synchronizeTestFrameworks(); m_testTreeModel.synchronizeTestTools(); - auto sessionManager = ProjectExplorer::SessionManager::instance(); - connect(sessionManager, &ProjectExplorer::SessionManager::startupProjectChanged, + auto sessionManager = ProjectExplorer::ProjectManager::instance(); + connect(sessionManager, &ProjectExplorer::ProjectManager::startupProjectChanged, this, [this] { m_runconfigCache.clear(); }); - connect(sessionManager, &ProjectExplorer::SessionManager::aboutToRemoveProject, + connect(sessionManager, &ProjectExplorer::ProjectManager::aboutToRemoveProject, this, [](ProjectExplorer::Project *project) { const auto it = s_projectSettings.constFind(project); if (it != s_projectSettings.constEnd()) { @@ -471,7 +477,7 @@ void AutotestPluginPrivate::onRunUnderCursorTriggered(TestRunMode mode) TestFrameworks AutotestPlugin::activeTestFrameworks() { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); TestFrameworks sorted; if (!project || projectSettings(project)->useGlobalSettings()) { sorted = Utils::filtered(TestFrameworkManager::registeredFrameworks(), @@ -489,7 +495,7 @@ TestFrameworks AutotestPlugin::activeTestFrameworks() void AutotestPlugin::updateMenuItemsEnabledState() { - const ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + const ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); const ProjectExplorer::Target *target = project ? project->activeTarget() : nullptr; const bool canScan = !dd->m_testRunner.isTestRunning() && dd->m_testCodeParser.state() == TestCodeParser::Idle; diff --git a/src/plugins/autotest/boost/boosttesttreeitem.cpp b/src/plugins/autotest/boost/boosttesttreeitem.cpp index 4b53d92754e..957ff73021a 100644 --- a/src/plugins/autotest/boost/boosttesttreeitem.cpp +++ b/src/plugins/autotest/boost/boosttesttreeitem.cpp @@ -11,7 +11,9 @@ #include "../itestframework.h" #include <cppeditor/cppmodelmanager.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <utils/qtcassert.h> #include <QRegularExpression> @@ -156,7 +158,7 @@ static QString handleSpecialFunctionNames(const QString &name) QList<ITestConfiguration *> BoostTestTreeItem::getAllTestConfigurations() const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -200,7 +202,7 @@ QList<ITestConfiguration *> BoostTestTreeItem::getTestConfigurations( std::function<bool(BoostTestTreeItem *)> predicate) const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -261,7 +263,7 @@ QList<ITestConfiguration *> BoostTestTreeItem::getFailedTestConfigurations() con ITestConfiguration *BoostTestTreeItem::testConfiguration() const { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return nullptr); const auto cppMM = CppEditor::CppModelManager::instance(); QTC_ASSERT(cppMM, return nullptr); diff --git a/src/plugins/autotest/catch/catchtreeitem.cpp b/src/plugins/autotest/catch/catchtreeitem.cpp index fe69fece87e..034c7ab1d04 100644 --- a/src/plugins/autotest/catch/catchtreeitem.cpp +++ b/src/plugins/autotest/catch/catchtreeitem.cpp @@ -10,8 +10,10 @@ #include "../itestframework.h" #include <cppeditor/cppmodelmanager.h> + #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> + #include <utils/qtcassert.h> using namespace Utils; @@ -30,7 +32,7 @@ static QString nonRootDisplayName(const CatchTreeItem *it) { if (it->type() != TestTreeItem::TestSuite) return it->name(); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project) return it->name(); TestTreeItem *parent = it->parentItem(); @@ -141,7 +143,7 @@ bool CatchTreeItem::canProvideDebugConfiguration() const ITestConfiguration *CatchTreeItem::testConfiguration() const { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return nullptr); const auto cppMM = CppEditor::CppModelManager::instance(); QTC_ASSERT(cppMM, return nullptr); @@ -244,7 +246,7 @@ QList<ITestConfiguration *> CatchTreeItem::getSelectedTestConfigurations() const QList<ITestConfiguration *> CatchTreeItem::getFailedTestConfigurations() const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -271,7 +273,7 @@ QList<ITestConfiguration *> CatchTreeItem::getTestConfigurationsForFile(const Fi const auto cppMM = CppEditor::CppModelManager::instance(); QTC_ASSERT(cppMM, return result); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -293,7 +295,7 @@ QList<ITestConfiguration *> CatchTreeItem::getTestConfigurationsForFile(const Fi testConfig = new CatchConfiguration(framework()); testConfig->setTestCases(testCases); testConfig->setProjectFile(item->proFile()); - testConfig->setProject(ProjectExplorer::SessionManager::startupProject()); + testConfig->setProject(ProjectExplorer::ProjectManager::startupProject()); testConfig->setInternalTargets(cppMM->internalTargets(item->filePath())); result << testConfig; } @@ -314,7 +316,7 @@ QString CatchTreeItem::stateSuffix() const QList<ITestConfiguration *> CatchTreeItem::getTestConfigurations(bool ignoreCheckState) const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; diff --git a/src/plugins/autotest/ctest/ctesttreeitem.cpp b/src/plugins/autotest/ctest/ctesttreeitem.cpp index 3e59c2db81c..dac1b6da008 100644 --- a/src/plugins/autotest/ctest/ctesttreeitem.cpp +++ b/src/plugins/autotest/ctest/ctesttreeitem.cpp @@ -14,11 +14,11 @@ #include <projectexplorer/buildsystem.h> #include <projectexplorer/environmentaspect.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/link.h> -#include <utils/qtcassert.h> +#include <utils/qtcassert.h> using namespace Utils; @@ -79,7 +79,7 @@ QVariant CTestTreeItem::data(int column, int role) const QList<ITestConfiguration *> CTestTreeItem::testConfigurationsFor(const QStringList &selected) const { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project) return {}; diff --git a/src/plugins/autotest/gtest/gtesttreeitem.cpp b/src/plugins/autotest/gtest/gtesttreeitem.cpp index c79ae93d1b9..f91b68f0e38 100644 --- a/src/plugins/autotest/gtest/gtesttreeitem.cpp +++ b/src/plugins/autotest/gtest/gtesttreeitem.cpp @@ -10,7 +10,9 @@ #include "../autotesttr.h" #include <cppeditor/cppmodelmanager.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/icon.h> @@ -146,7 +148,7 @@ QVariant GTestTreeItem::data(int column, int role) const ITestConfiguration *GTestTreeItem::testConfiguration() const { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return nullptr); GTestConfiguration *config = nullptr; @@ -252,7 +254,7 @@ static void collectFailedTestInfo(const GTestTreeItem *item, QList<ITestConfiguration *> GTestTreeItem::getTestConfigurations(bool ignoreCheckState) const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -291,7 +293,7 @@ QList<ITestConfiguration *> GTestTreeItem::getSelectedTestConfigurations() const QList<ITestConfiguration *> GTestTreeItem::getFailedTestConfigurations() const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -316,7 +318,7 @@ QList<ITestConfiguration *> GTestTreeItem::getFailedTestConfigurations() const QList<ITestConfiguration *> GTestTreeItem::getTestConfigurationsForFile(const FilePath &fileName) const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -503,7 +505,7 @@ QSet<QString> internalTargets(const TestTreeItem &item) { QSet<QString> result; const auto cppMM = CppEditor::CppModelManager::instance(); - const auto projectInfo = cppMM->projectInfo(ProjectExplorer::SessionManager::startupProject()); + const auto projectInfo = cppMM->projectInfo(ProjectExplorer::ProjectManager::startupProject()); if (!projectInfo) return {}; const FilePath filePath = item.filePath(); diff --git a/src/plugins/autotest/qtest/qttesttreeitem.cpp b/src/plugins/autotest/qtest/qttesttreeitem.cpp index 2f846372822..81f95c17752 100644 --- a/src/plugins/autotest/qtest/qttesttreeitem.cpp +++ b/src/plugins/autotest/qtest/qttesttreeitem.cpp @@ -9,7 +9,9 @@ #include "../itestframework.h" #include <cppeditor/cppmodelmanager.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <utils/qtcassert.h> using namespace Utils; @@ -116,7 +118,7 @@ bool QtTestTreeItem::canProvideDebugConfiguration() const ITestConfiguration *QtTestTreeItem::testConfiguration() const { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return nullptr); const auto cppMM = CppEditor::CppModelManager::instance(); QTC_ASSERT(cppMM, return nullptr); @@ -195,7 +197,7 @@ static void fillTestConfigurationsFromCheckState(const TestTreeItem *item, testConfig = new QtTestConfiguration(item->framework()); testConfig->setTestCases(testCases); testConfig->setProjectFile(item->proFile()); - testConfig->setProject(ProjectExplorer::SessionManager::startupProject()); + testConfig->setProject(ProjectExplorer::ProjectManager::startupProject()); testConfig->setInternalTargets(cppMM->internalTargets(item->filePath())); testConfigurations << testConfig; } @@ -229,7 +231,7 @@ static void collectFailedTestInfo(TestTreeItem *item, QList<ITestConfiguration * QtTestConfiguration *testConfig = new QtTestConfiguration(item->framework()); testConfig->setTestCases(testCases); testConfig->setProjectFile(item->proFile()); - testConfig->setProject(ProjectExplorer::SessionManager::startupProject()); + testConfig->setProject(ProjectExplorer::ProjectManager::startupProject()); testConfig->setInternalTargets(cppMM->internalTargets(item->filePath())); testConfigs << testConfig; } @@ -246,7 +248,7 @@ QList<ITestConfiguration *> QtTestTreeItem::getAllTestConfigurations() const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -269,7 +271,7 @@ QList<ITestConfiguration *> QtTestTreeItem::getAllTestConfigurations() const QList<ITestConfiguration *> QtTestTreeItem::getSelectedTestConfigurations() const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -292,7 +294,7 @@ QList<ITestConfiguration *> QtTestTreeItem::getTestConfigurationsForFile(const F { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; diff --git a/src/plugins/autotest/quick/quicktestparser.cpp b/src/plugins/autotest/quick/quicktestparser.cpp index f5b79d8075c..b8035f11a7a 100644 --- a/src/plugins/autotest/quick/quicktestparser.cpp +++ b/src/plugins/autotest/quick/quicktestparser.cpp @@ -12,10 +12,13 @@ #include <cppeditor/cppmodelmanager.h> #include <cppeditor/projectpart.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <qmljs/parser/qmljsast_p.h> #include <qmljs/qmljsdialect.h> #include <qmljstools/qmljsmodelmanager.h> + #include <utils/hostosinfo.h> #include <utils/algorithm.h> #include <utils/qtcassert.h> @@ -324,8 +327,8 @@ void QuickTestParser::doUpdateWatchPaths(const QStringList &directories) QuickTestParser::QuickTestParser(ITestFramework *framework) : CppParser(framework) { - connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, this, [this] { + connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, this, [this] { const QStringList &dirs = m_directoryWatcher.directories(); if (!dirs.isEmpty()) m_directoryWatcher.removePaths(dirs); diff --git a/src/plugins/autotest/quick/quicktesttreeitem.cpp b/src/plugins/autotest/quick/quicktesttreeitem.cpp index 49358f49ebd..a7d6e330ea4 100644 --- a/src/plugins/autotest/quick/quicktesttreeitem.cpp +++ b/src/plugins/autotest/quick/quicktesttreeitem.cpp @@ -9,7 +9,9 @@ #include "../itestframework.h" #include <cppeditor/cppmodelmanager.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <utils/qtcassert.h> using namespace Utils; @@ -108,7 +110,7 @@ bool QuickTestTreeItem::canProvideDebugConfiguration() const ITestConfiguration *QuickTestTreeItem::testConfiguration() const { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return nullptr); QuickTestConfiguration *config = nullptr; @@ -147,7 +149,7 @@ static QList<ITestConfiguration *> testConfigurationsFor( const TestTreeItem *rootNode, const std::function<bool(TestTreeItem *)> &predicate) { QTC_ASSERT(rootNode, return {}); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || rootNode->type() != TestTreeItem::Root) return {}; @@ -171,7 +173,7 @@ static QList<ITestConfiguration *> testConfigurationsFor( if (it == configurationForProFiles.end()) { auto tc = new QuickTestConfiguration(treeItem->framework()); tc->setProjectFile(treeItem->proFile()); - tc->setProject(ProjectExplorer::SessionManager::startupProject()); + tc->setProject(ProjectExplorer::ProjectManager::startupProject()); tc->setInternalTargets(internalTargets(treeItem->proFile())); it = configurationForProFiles.insert(treeItem->proFile(), tc); } @@ -206,7 +208,7 @@ QList<ITestConfiguration *> QuickTestTreeItem::getAllTestConfigurations() const { QList<ITestConfiguration *> result; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project || type() != Root) return result; @@ -369,7 +371,7 @@ QSet<QString> internalTargets(const FilePath &proFile) { QSet<QString> result; const auto cppMM = CppEditor::CppModelManager::instance(); - const auto projectInfo = cppMM->projectInfo(ProjectExplorer::SessionManager::startupProject()); + const auto projectInfo = cppMM->projectInfo(ProjectExplorer::ProjectManager::startupProject()); if (!projectInfo) return {}; for (const CppEditor::ProjectPart::ConstPtr &projectPart : projectInfo->projectParts()) { diff --git a/src/plugins/autotest/testcodeparser.cpp b/src/plugins/autotest/testcodeparser.cpp index a42f3aa77d4..3b9c396fedf 100644 --- a/src/plugins/autotest/testcodeparser.cpp +++ b/src/plugins/autotest/testcodeparser.cpp @@ -13,7 +13,7 @@ #include <cppeditor/cppmodelmanager.h> #include <projectexplorer/buildsystem.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/asynctask.h> @@ -33,7 +33,7 @@ using namespace ProjectExplorer; static bool isProjectParsing() { - const BuildSystem *bs = SessionManager::startupBuildSystem(); + const BuildSystem *bs = ProjectManager::startupBuildSystem(); return bs && bs->isParsing(); } @@ -73,7 +73,7 @@ void TestCodeParser::setState(State state) } m_parserState = state; - if (m_parserState == Idle && SessionManager::startupProject()) { + if (m_parserState == Idle && ProjectManager::startupProject()) { if (m_postponedUpdateType == UpdateType::FullUpdate || m_dirty) { emitUpdateTestTree(); } else if (m_postponedUpdateType == UpdateType::PartialUpdate) { @@ -130,7 +130,7 @@ void TestCodeParser::updateTestTree(const QSet<ITestParser *> &parsers) return; } - if (!SessionManager::startupProject()) + if (!ProjectManager::startupProject()) return; m_postponedUpdateType = UpdateType::NoUpdate; @@ -149,7 +149,7 @@ void TestCodeParser::onDocumentUpdated(const FilePath &fileName, bool isQmlFile) if (isProjectParsing() || m_codeModelParsing || m_postponedUpdateType == UpdateType::FullUpdate) return; - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); if (!project) return; // Quick tests: qml files aren't necessarily listed inside project files @@ -185,7 +185,7 @@ void TestCodeParser::onStartupProjectChanged(Project *project) void TestCodeParser::onProjectPartsUpdated(Project *project) { - if (project != SessionManager::startupProject()) + if (project != ProjectManager::startupProject()) return; if (isProjectParsing() || m_codeModelParsing) m_postponedUpdateType = UpdateType::FullUpdate; @@ -277,7 +277,7 @@ void TestCodeParser::scanForTests(const FilePaths &fileList, const QList<ITestPa m_reparseTimerTimedOut = false; m_postponedFiles.clear(); bool isFullParse = fileList.isEmpty(); - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); if (!project) return; FilePaths list; diff --git a/src/plugins/autotest/testconfiguration.cpp b/src/plugins/autotest/testconfiguration.cpp index 00bf521b88a..c095e9e0f6a 100644 --- a/src/plugins/autotest/testconfiguration.cpp +++ b/src/plugins/autotest/testconfiguration.cpp @@ -12,7 +12,7 @@ #include <projectexplorer/deploymentdata.h> #include <projectexplorer/kitinformation.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/algorithm.h> @@ -100,7 +100,7 @@ void TestConfiguration::completeTestInformation(RunConfiguration *rc, qCDebug(LOG) << "Executable has been set already - not completing configuration again."; return; } - Project *startupProject = SessionManager::startupProject(); + Project *startupProject = ProjectManager::startupProject(); if (!startupProject || startupProject != project()) return; @@ -145,7 +145,7 @@ void TestConfiguration::completeTestInformation(TestRunMode runMode) } qCDebug(LOG) << "Failed to complete - using 'normal' way."; } - Project *startupProject = SessionManager::startupProject(); + Project *startupProject = ProjectManager::startupProject(); if (!startupProject || startupProject != project()) { setProject(nullptr); return; diff --git a/src/plugins/autotest/testnavigationwidget.cpp b/src/plugins/autotest/testnavigationwidget.cpp index 100eed89ed9..95defb21ec4 100644 --- a/src/plugins/autotest/testnavigationwidget.cpp +++ b/src/plugins/autotest/testnavigationwidget.cpp @@ -18,9 +18,11 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/find/itemviewfind.h> + #include <projectexplorer/buildmanager.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> + #include <utils/algorithm.h> #include <utils/link.h> #include <utils/progressindicator.h> @@ -87,8 +89,8 @@ TestNavigationWidget::TestNavigationWidget(QWidget *parent) : connect(m_model, &TestTreeModel::updatedActiveFrameworks, this, [this](int numberOfActive) { m_missingFrameworksWidget->setVisible(numberOfActive == 0); }); - ProjectExplorer::SessionManager *sm = ProjectExplorer::SessionManager::instance(); - connect(sm, &ProjectExplorer::SessionManager::startupProjectChanged, + ProjectExplorer::ProjectManager *sm = ProjectExplorer::ProjectManager::instance(); + connect(sm, &ProjectExplorer::ProjectManager::startupProjectChanged, this, [this](ProjectExplorer::Project * /*project*/) { m_expandedStateCache.clear(); }); diff --git a/src/plugins/autotest/testprojectsettings.cpp b/src/plugins/autotest/testprojectsettings.cpp index 862fc8a24f4..5f745637db8 100644 --- a/src/plugins/autotest/testprojectsettings.cpp +++ b/src/plugins/autotest/testprojectsettings.cpp @@ -7,7 +7,7 @@ #include "testframeworkmanager.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <QLoggingCategory> diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index 1f83ff56c11..26ef727fd36 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -25,8 +25,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorersettings.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <utils/algorithm.h> @@ -213,7 +213,7 @@ static QString firstNonEmptyTestCaseTarget(const TestConfiguration *config) static RunConfiguration *getRunConfiguration(const QString &buildTargetKey) { - const Project *project = SessionManager::startupProject(); + const Project *project = ProjectManager::startupProject(); if (!project) return nullptr; const Target *target = project->activeTarget(); @@ -295,7 +295,7 @@ int TestRunner::precheckTestConfigurations() void TestRunner::onBuildSystemUpdated() { - Target *target = SessionManager::startupTarget(); + Target *target = ProjectManager::startupTarget(); if (QTC_GUARD(target)) disconnect(target, &Target::buildSystemUpdated, this, &TestRunner::onBuildSystemUpdated); if (!m_skipTargetsCheck) { @@ -310,7 +310,7 @@ void TestRunner::runTestsHelper() bool projectChanged = false; for (ITestConfiguration *itc : std::as_const(m_selectedTests)) { if (itc->testBase()->type() == ITestBase::Tool) { - if (itc->project() != SessionManager::startupProject()) { + if (itc->project() != ProjectManager::startupProject()) { projectChanged = true; toBeRemoved.append(itc); } @@ -596,7 +596,7 @@ void TestRunner::debugTests() static bool executablesEmpty() { - Target *target = SessionManager::startupTarget(); + Target *target = ProjectManager::startupTarget(); const QList<RunConfiguration *> configs = target->runConfigurations(); QTC_ASSERT(!configs.isEmpty(), return false); if (auto execAspect = configs.first()->aspect<ExecutableAspect>()) @@ -609,7 +609,7 @@ void TestRunner::runOrDebugTests() if (!m_skipTargetsCheck) { if (executablesEmpty()) { m_skipTargetsCheck = true; - Target *target = SessionManager::startupTarget(); + Target *target = ProjectManager::startupTarget(); QTimer::singleShot(5000, this, [this, target = QPointer<Target>(target)] { if (target) { disconnect(target, &Target::buildSystemUpdated, @@ -666,7 +666,7 @@ void TestRunner::buildFinished(bool success) static RunAfterBuildMode runAfterBuild() { - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); if (!project) return RunAfterBuildMode::None; @@ -786,7 +786,7 @@ void RunConfigurationSelectionDialog::populate() { m_rcCombo->addItem({}, QStringList{{}, {}, {}}); // empty default - if (auto project = SessionManager::startupProject()) { + if (auto project = ProjectManager::startupProject()) { if (auto target = project->activeTarget()) { for (RunConfiguration *rc : target->runConfigurations()) { auto runnable = rc->runnable(); diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index f21e9349c32..4e3d010ad45 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -10,12 +10,16 @@ #include "testprojectsettings.h" #include <cppeditor/cppmodelmanager.h> + #include <projectexplorer/buildsystem.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> + #include <qmljs/qmljsmodelmanagerinterface.h> + #include <texteditor/texteditor.h> + #include <utils/algorithm.h> #include <utils/fileutils.h> #include <utils/qtcassert.h> @@ -70,8 +74,8 @@ void TestTreeModel::setupParsingConnections() m_parser->setDirty(); m_parser->setState(TestCodeParser::Idle); - SessionManager *sm = SessionManager::instance(); - connect(sm, &SessionManager::startupProjectChanged, this, [this, sm](Project *project) { + ProjectManager *sm = ProjectManager::instance(); + connect(sm, &ProjectManager::startupProjectChanged, this, [this, sm](Project *project) { synchronizeTestFrameworks(); // we might have project settings m_parser->onStartupProjectChanged(project); removeAllTestToolItems(); @@ -226,7 +230,7 @@ static QList<ITestTreeItem *> testItemsByName(TestTreeItem *root, const QString void TestTreeModel::onTargetChanged(Target *target) { if (target && target->buildSystem()) { - const Target *topLevelTarget = SessionManager::startupProject()->targets().first(); + const Target *topLevelTarget = ProjectManager::startupProject()->targets().first(); connect(topLevelTarget->buildSystem(), &BuildSystem::testInformationUpdated, this, &TestTreeModel::onBuildSystemTestsUpdated, Qt::UniqueConnection); disconnect(target->project(), &Project::activeTargetChanged, @@ -236,7 +240,7 @@ void TestTreeModel::onTargetChanged(Target *target) void TestTreeModel::onBuildSystemTestsUpdated() { - const BuildSystem *bs = SessionManager::startupBuildSystem(); + const BuildSystem *bs = ProjectManager::startupBuildSystem(); if (!bs || !bs->project()) return; @@ -333,7 +337,7 @@ void TestTreeModel::synchronizeTestFrameworks() void TestTreeModel::synchronizeTestTools() { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); TestTools tools; if (!project || AutotestPlugin::projectSettings(project)->useGlobalSettings()) { tools = Utils::filtered(TestFrameworkManager::registeredTestTools(), diff --git a/src/plugins/baremetal/debugservers/uvsc/uvproject.cpp b/src/plugins/baremetal/debugservers/uvsc/uvproject.cpp index 773ec410666..faa32fea086 100644 --- a/src/plugins/baremetal/debugservers/uvsc/uvproject.cpp +++ b/src/plugins/baremetal/debugservers/uvsc/uvproject.cpp @@ -9,7 +9,7 @@ #include <debugger/debuggerkitinformation.h> #include <debugger/debuggerruncontrol.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <QFileInfo> diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp index e7c5a4e388e..4e98648147a 100644 --- a/src/plugins/bookmarks/bookmarkmanager.cpp +++ b/src/plugins/bookmarks/bookmarkmanager.cpp @@ -12,8 +12,10 @@ #include <coreplugin/idocument.h> #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/command.h> + #include <projectexplorer/projectexplorer.h> #include <projectexplorer/session.h> + #include <texteditor/texteditor.h> #include <utils/algorithm.h> #include <utils/icon.h> @@ -29,7 +31,6 @@ #include <QDialog> #include <QDialogButtonBox> #include <QDir> -#include <QFileInfo> #include <QFormLayout> #include <QLineEdit> #include <QMenu> diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp index 0f7d8d96627..b0250bf819a 100644 --- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp +++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp @@ -27,7 +27,8 @@ #include <projectexplorer/projectpanelfactory.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> @@ -48,7 +49,7 @@ void ClangCodeModelPlugin::generateCompilationDB() { using namespace CppEditor; - Target *target = SessionManager::startupTarget(); + Target *target = ProjectManager::startupTarget(); if (!target) return; @@ -101,7 +102,7 @@ void ClangCodeModelPlugin::createCompilationDBAction() Tr::tr("Generate Compilation Database"), Tr::tr("Generate Compilation Database for \"%1\""), ParameterAction::AlwaysEnabled, this); - Project *startupProject = SessionManager::startupProject(); + Project *startupProject = ProjectManager::startupProject(); if (startupProject) m_generateCompilationDBAction->setParameter(startupProject->displayName()); Command *command = ActionManager::registerAction(m_generateCompilationDBAction, @@ -128,7 +129,7 @@ void ClangCodeModelPlugin::createCompilationDBAction() "Generator is already running."); return; } - Project * const project = SessionManager::startupProject(); + Project * const project = ProjectManager::startupProject(); if (!project) { MessageManager::writeDisrupting("Cannot generate compilation database: " "No active project."); @@ -146,21 +147,21 @@ void ClangCodeModelPlugin::createCompilationDBAction() }); connect(CppEditor::CppModelManager::instance(), &CppEditor::CppModelManager::projectPartsUpdated, this, [this](Project *project) { - if (project != SessionManager::startupProject()) + if (project != ProjectManager::startupProject()) return; m_generateCompilationDBAction->setParameter(project->displayName()); }); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, [this](Project *project) { m_generateCompilationDBAction->setParameter(project ? project->displayName() : ""); }); - connect(SessionManager::instance(), &SessionManager::projectDisplayNameChanged, + connect(ProjectManager::instance(), &ProjectManager::projectDisplayNameChanged, this, [this](Project *project) { - if (project != SessionManager::startupProject()) + if (project != ProjectManager::startupProject()) return; m_generateCompilationDBAction->setParameter(project->displayName()); }); - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, [this](Project *project) { project->registerGenerator(Constants::GENERATE_COMPILATION_DB, m_generateCompilationDBAction->text(), diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 8a7d48173d6..238b46a09b4 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -49,7 +49,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/project.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> #include <texteditor/codeassist/assistinterface.h> @@ -701,7 +701,7 @@ bool ClangdClient::fileBelongsToProject(const Utils::FilePath &filePath) const { if (CppEditor::ClangdSettings::instance().granularity() == CppEditor::ClangdSettings::Granularity::Session) { - return SessionManager::projectForFile(filePath); + return ProjectManager::projectForFile(filePath); } return Client::fileBelongsToProject(filePath); } diff --git a/src/plugins/clangcodemodel/clangdfindreferences.cpp b/src/plugins/clangcodemodel/clangdfindreferences.cpp index 8a2d3faaeff..2130587a2d5 100644 --- a/src/plugins/clangcodemodel/clangdfindreferences.cpp +++ b/src/plugins/clangcodemodel/clangdfindreferences.cpp @@ -21,9 +21,10 @@ #include <languageserverprotocol/lsptypes.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/basefilefind.h> @@ -451,7 +452,7 @@ void ClangdFindReferences::Private::addSearchResultsForFile(const FilePath &file item.setContainingFunctionName(getContainingFunction(astPath, range).detail()); if (search->supportsReplace()) { - const bool fileInSession = SessionManager::projectForFile(file); + const bool fileInSession = ProjectManager::projectForFile(file); item.setSelectForReplacement(fileInSession); if (fileInSession && file.baseName().compare(replacementData->oldSymbolName, Qt::CaseInsensitive) == 0) { diff --git a/src/plugins/clangcodemodel/clangdlocatorfilters.cpp b/src/plugins/clangcodemodel/clangdlocatorfilters.cpp index 194e6466464..9a6dee28eca 100644 --- a/src/plugins/clangcodemodel/clangdlocatorfilters.cpp +++ b/src/plugins/clangcodemodel/clangdlocatorfilters.cpp @@ -11,13 +11,17 @@ #include <cppeditor/cpplocatorfilter.h> #include <cppeditor/cppmodelmanager.h> #include <cppeditor/indexitem.h> + #include <languageclient/languageclientutils.h> #include <languageclient/locatorfilter.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <utils/link.h> #include <utils/algorithm.h> #include <QHash> + #include <set> #include <tuple> @@ -141,7 +145,7 @@ void ClangGlobalSymbolFilter::prepareSearch(const QString &entry) { m_cppFilter->prepareSearch(entry); QList<Client *> clients; - for (ProjectExplorer::Project * const project : ProjectExplorer::SessionManager::projects()) { + for (ProjectExplorer::Project * const project : ProjectExplorer::ProjectManager::projects()) { if (Client * const client = ClangModelManagerSupport::clientForProject(project)) clients << client; } diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 64a8dac7bdf..5e3a84c46ef 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -33,6 +33,7 @@ #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/buildsystem.h> #include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> #include <projectexplorer/session.h> @@ -53,6 +54,7 @@ using namespace CppEditor; using namespace LanguageClient; +using namespace ProjectExplorer; using namespace Utils; namespace ClangCodeModel::Internal { @@ -66,7 +68,7 @@ static ProjectExplorer::Project *fallbackProject() { if (ProjectExplorer::Project * const p = ProjectExplorer::ProjectTree::currentProject()) return p; - return ProjectExplorer::SessionManager::startupProject(); + return ProjectExplorer::ProjectManager::startupProject(); } static bool sessionModeEnabled() @@ -87,7 +89,7 @@ static const QList<ProjectExplorer::Project *> projectsForClient(const Client *c { QList<ProjectExplorer::Project *> projects; if (sessionModeEnabled()) { - for (ProjectExplorer::Project * const p : ProjectExplorer::SessionManager::projects()) { + for (ProjectExplorer::Project * const p : ProjectExplorer::ProjectManager::projects()) { if (ClangdProjectSettings(p).settings().useClangd) projects << p; } @@ -228,14 +230,13 @@ ClangModelManagerSupport::ClangModelManagerSupport() } }); - auto *sessionManager = ProjectExplorer::SessionManager::instance(); - connect(sessionManager, &ProjectExplorer::SessionManager::projectRemoved, + auto projectManager = ProjectExplorer::ProjectManager::instance(); + connect(projectManager, &ProjectExplorer::ProjectManager::projectRemoved, this, [this] { if (!sessionModeEnabled()) claimNonProjectSources(clientForProject(fallbackProject())); }); - connect(sessionManager, &ProjectExplorer::SessionManager::sessionLoaded, - this, [this] { + connect(SessionManager::instance(), &SessionManager::sessionLoaded, this, [this] { if (sessionModeEnabled()) onClangdSettingsChanged(); }); @@ -357,7 +358,7 @@ void ClangModelManagerSupport::checkUnused(const Link &link, Core::SearchResult const LinkHandler &callback) { if (const ProjectExplorer::Project * const project - = ProjectExplorer::SessionManager::projectForFile(link.targetFilePath)) { + = ProjectExplorer::ProjectManager::projectForFile(link.targetFilePath)) { if (ClangdClient * const client = clientWithProject(project); client && client->isFullyIndexed()) { client->checkUnused(link, search, callback); @@ -435,7 +436,7 @@ static bool isProjectDataUpToDate( ProjectExplorer::Project *project, ProjectInfoList projectInfo, const FilePath &jsonDbDir) { - if (project && !ProjectExplorer::SessionManager::hasProject(project)) + if (project && !ProjectExplorer::ProjectManager::hasProject(project)) return false; const ClangdSettings settings(ClangdProjectSettings(project).settings()); if (!settings.useClangd()) @@ -531,7 +532,7 @@ void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *pr hasDocuments = true; continue; } - const Project * const docProject = SessionManager::projectForFile(doc->filePath()); + const Project * const docProject = ProjectManager::projectForFile(doc->filePath()); if (currentClient && currentClient->project() && currentClient->project() != project && currentClient->project() == docProject) { @@ -571,8 +572,8 @@ void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *pr ProjectNode *rootNode = nullptr; if (project) rootNode = project->rootProjectNode(); - else if (SessionManager::startupProject()) - rootNode = SessionManager::startupProject()->rootProjectNode(); + else if (ProjectManager::startupProject()) + rootNode = ProjectManager::startupProject()->rootProjectNode(); if (!rootNode) return; const Node * const cxxNode = rootNode->findNode([](Node *n) { @@ -647,7 +648,7 @@ void ClangModelManagerSupport::claimNonProjectSources(ClangdClient *client) } if (!ClangdSettings::instance().sizeIsOkay(doc->filePath())) continue; - if (ProjectExplorer::SessionManager::projectForFile(doc->filePath())) + if (ProjectExplorer::ProjectManager::projectForFile(doc->filePath())) continue; if (client->project() && !ProjectFile::isHeader(doc->filePath())) continue; @@ -672,7 +673,7 @@ void ClangModelManagerSupport::watchForExternalChanges() if (!ProjectFile::isSource(kind) && !ProjectFile::isHeader(kind)) continue; ProjectExplorer::Project * const project - = ProjectExplorer::SessionManager::projectForFile(file); + = ProjectExplorer::ProjectManager::projectForFile(file); if (!project) continue; @@ -698,7 +699,7 @@ void ClangModelManagerSupport::watchForInternalChanges() if (!ProjectFile::isSource(kind) && !ProjectFile::isHeader(kind)) continue; ProjectExplorer::Project * const project - = ProjectExplorer::SessionManager::projectForFile(fp); + = ProjectExplorer::ProjectManager::projectForFile(fp); if (!project) continue; if (ClangdClient * const client = clientForProject(project); @@ -735,7 +736,7 @@ void ClangModelManagerSupport::onEditorOpened(Core::IEditor *editor) connectToWidgetsMarkContextMenuRequested(editor->widget()); ProjectExplorer::Project * project - = ProjectExplorer::SessionManager::projectForFile(document->filePath()); + = ProjectExplorer::ProjectManager::projectForFile(document->filePath()); const ClangdSettings settings(ClangdProjectSettings(project).settings()); if (!settings.sizeIsOkay(textDocument->filePath())) return; @@ -855,7 +856,7 @@ void ClangModelManagerSupport::onClangdSettingsChanged() { const bool sessionMode = sessionModeEnabled(); - for (ProjectExplorer::Project * const project : ProjectExplorer::SessionManager::projects()) { + for (ProjectExplorer::Project * const project : ProjectExplorer::ProjectManager::projects()) { const CppEditor::ClangdSettings settings( CppEditor::ClangdProjectSettings(project).settings()); ClangdClient * const client = clientWithProject(project); diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp index affabfec671..9ab44472304 100644 --- a/src/plugins/clangformat/clangformatbaseindenter.cpp +++ b/src/plugins/clangformat/clangformatbaseindenter.cpp @@ -9,7 +9,7 @@ #include <projectexplorer/editorconfiguration.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/icodestylepreferences.h> #include <texteditor/texteditorsettings.h> @@ -744,7 +744,7 @@ void ClangFormatBaseIndenter::autoIndent(const QTextCursor &cursor, clang::format::FormatStyle overrideStyle(const Utils::FilePath &fileName) { const ProjectExplorer::Project *projectForFile - = ProjectExplorer::SessionManager::projectForFile(fileName); + = ProjectExplorer::ProjectManager::projectForFile(fileName); const TextEditor::ICodeStylePreferences *preferences = projectForFile diff --git a/src/plugins/clangformat/clangformatindenter.cpp b/src/plugins/clangformat/clangformatindenter.cpp index 94e0fafd8e0..67d5171b010 100644 --- a/src/plugins/clangformat/clangformatindenter.cpp +++ b/src/plugins/clangformat/clangformatindenter.cpp @@ -15,7 +15,7 @@ #include <utils/genericconstants.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/tabsettings.h> #include <texteditor/textdocumentlayout.h> diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp index d1d6bee684b..a7a766768eb 100644 --- a/src/plugins/clangformat/clangformatutils.cpp +++ b/src/plugins/clangformat/clangformatutils.cpp @@ -15,7 +15,7 @@ #include <projectexplorer/editorconfiguration.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/qtcassert.h> @@ -211,7 +211,7 @@ bool getProjectOverriddenSettings(const ProjectExplorer::Project *project) bool getCurrentOverriddenSettings(const Utils::FilePath &filePath) { - const ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile( + const ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile( filePath); return getProjectUseGlobalSettings(project) @@ -233,7 +233,7 @@ ClangFormatSettings::Mode getProjectIndentationOrFormattingSettings( ClangFormatSettings::Mode getCurrentIndentationOrFormattingSettings(const Utils::FilePath &filePath) { - const ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile( + const ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile( filePath); return getProjectUseGlobalSettings(project) @@ -264,7 +264,7 @@ Utils::FilePath configForFile(const Utils::FilePath &fileName) return findConfig(fileName); const ProjectExplorer::Project *projectForFile - = ProjectExplorer::SessionManager::projectForFile(fileName); + = ProjectExplorer::ProjectManager::projectForFile(fileName); const TextEditor::ICodeStylePreferences *preferences = projectForFile diff --git a/src/plugins/clangtools/clangtool.cpp b/src/plugins/clangtools/clangtool.cpp index afe60be7dc8..bf13622b590 100644 --- a/src/plugins/clangtools/clangtool.cpp +++ b/src/plugins/clangtools/clangtool.cpp @@ -34,7 +34,7 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorericons.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> @@ -342,7 +342,7 @@ static FileInfos sortedFileInfos(const QVector<CppEditor::ProjectPart::ConstPtr> static RunSettings runSettings() { - if (Project *project = SessionManager::startupProject()) { + if (Project *project = ProjectManager::startupProject()) { const auto projectSettings = ClangToolsProjectSettings::getSettings(project); if (!projectSettings->useGlobalSettings()) return projectSettings->runSettings(); @@ -611,7 +611,7 @@ void ClangTool::startTool(ClangTool::FileSelection fileSelection, const RunSettings &runSettings, const CppEditor::ClangDiagnosticConfig &diagnosticConfig) { - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); QTC_ASSERT(project, return); QTC_ASSERT(project->activeTarget(), return); @@ -870,7 +870,7 @@ static CheckResult canAnalyze() Tr::tr("Set a valid Clazy-Standalone executable.")}; } - if (Project *project = SessionManager::startupProject()) { + if (Project *project = ProjectManager::startupProject()) { if (!canAnalyzeProject(project)) { return {CheckResult::ProjectNotSuitable, Tr::tr("Project \"%1\" is not a C/C++ project.") diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp index 39329c79f14..e0b797a1e0a 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp @@ -10,14 +10,14 @@ #include "diagnosticmark.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> + #include <texteditor/textmark.h> #include <utils/fsengine/fileiconprovider.h> #include <utils/qtcassert.h> #include <utils/utilsicons.h> -#include <QFileInfo> #include <QLoggingCategory> #include <tuple> @@ -484,8 +484,8 @@ DiagnosticFilterModel::DiagnosticFilterModel(QObject *parent) { // So that when a user closes and re-opens a project and *then* clicks "Suppress", // we enter that information into the project settings. - connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::projectAdded, this, + connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::projectAdded, this, [this](ProjectExplorer::Project *project) { if (!m_project && project->projectDirectory() == m_lastProjectDirectory) setProject(project); diff --git a/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp b/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp index 4b43fbc3e0d..4d4b34c1ef8 100644 --- a/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp +++ b/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp @@ -5,15 +5,17 @@ #include "clangtool.h" #include "clangtoolsdiagnostic.h" -#include "clangtoolsutils.h" #include <coreplugin/icore.h> + #include <cppeditor/compileroptionsbuilder.h> #include <cppeditor/projectinfo.h> + #include <projectexplorer/kitinformation.h> #include <projectexplorer/kitmanager.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> @@ -55,8 +57,8 @@ public: WaitForParsedProjects(const FilePaths &projects) : m_projectsToWaitFor(projects) { - connect(SessionManager::instance(), - &ProjectExplorer::SessionManager::projectFinishedParsing, + connect(ProjectManager::instance(), + &ProjectExplorer::ProjectManager::projectFinishedParsing, this, &WaitForParsedProjects::onProjectFinishedParsing); } @@ -87,9 +89,9 @@ void PreconfiguredSessionTests::initTestCase() QSKIP("Session must not be already active."); // Load session - const FilePaths projects = SessionManager::projectsForSessionName(preconfiguredSessionName); + const FilePaths projects = ProjectManager::projectsForSessionName(preconfiguredSessionName); WaitForParsedProjects waitForParsedProjects(projects); - QVERIFY(SessionManager::loadSession(preconfiguredSessionName)); + QVERIFY(ProjectManager::loadSession(preconfiguredSessionName)); QVERIFY(waitForParsedProjects.wait()); } @@ -175,7 +177,7 @@ void PreconfiguredSessionTests::testPreconfiguredSession_data() bool hasAddedTestData = false; - for (Project *project : validProjects(SessionManager::projects())) { + for (Project *project : validProjects(ProjectManager::projects())) { for (Target *target : validTargets(project)) { hasAddedTestData = true; QTest::newRow(dataTagName(project, target)) << project << target; @@ -189,17 +191,17 @@ void PreconfiguredSessionTests::testPreconfiguredSession_data() bool PreconfiguredSessionTests::switchToProjectAndTarget(Project *project, Target *target) { - Project * const activeProject = SessionManager::startupProject(); + Project * const activeProject = ProjectManager::startupProject(); if (project == activeProject && target == activeProject->activeTarget()) return true; // OK, desired project/target already active. if (project != activeProject) - SessionManager::setStartupProject(project); + ProjectManager::setStartupProject(project); if (target != project->activeTarget()) { - QSignalSpy spyFinishedParsing(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::projectFinishedParsing); - SessionManager::setActiveTarget(project, target, ProjectExplorer::SetActive::NoCascade); + QSignalSpy spyFinishedParsing(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::projectFinishedParsing); + project->setActiveTarget(target, ProjectExplorer::SetActive::NoCascade); QTC_ASSERT(spyFinishedParsing.wait(30000), return false); const QVariant projectArgument = spyFinishedParsing.takeFirst().constFirst(); diff --git a/src/plugins/clangtools/clangtoolsprojectsettings.cpp b/src/plugins/clangtools/clangtoolsprojectsettings.cpp index cde1731acbd..581a8ca57b6 100644 --- a/src/plugins/clangtools/clangtoolsprojectsettings.cpp +++ b/src/plugins/clangtools/clangtoolsprojectsettings.cpp @@ -4,7 +4,7 @@ #include "clangtoolsprojectsettings.h" #include "clangtoolsdiagnostic.h" -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/qtcassert.h> diff --git a/src/plugins/clangtools/diagnosticconfigswidget.cpp b/src/plugins/clangtools/diagnosticconfigswidget.cpp index 1d160befa22..a2b55be1b4b 100644 --- a/src/plugins/clangtools/diagnosticconfigswidget.cpp +++ b/src/plugins/clangtools/diagnosticconfigswidget.cpp @@ -14,8 +14,8 @@ #include <cppeditor/cppeditorconstants.h> #include <cppeditor/cpptoolsreuse.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/selectablefilesmodel.h> -#include <projectexplorer/session.h> #include <utils/algorithm.h> #include <utils/fancylineedit.h> @@ -1294,7 +1294,7 @@ void disableChecks(const QList<Diagnostic> &diagnostics) Utils::Id activeConfigId = settings->runSettings().diagnosticConfigId(); ClangToolsProjectSettings::ClangToolsProjectSettingsPtr projectSettings; - if (ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile( + if (ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile( diagnostics.first().location.filePath)) { projectSettings = ClangToolsProjectSettings::getSettings(project); if (!projectSettings->useGlobalSettings()) diff --git a/src/plugins/clangtools/documentclangtoolrunner.cpp b/src/plugins/clangtools/documentclangtoolrunner.cpp index 81a7e8f5444..6a08b579f18 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.cpp +++ b/src/plugins/clangtools/documentclangtoolrunner.cpp @@ -18,7 +18,7 @@ #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/buildtargettype.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <texteditor/textdocument.h> @@ -97,8 +97,8 @@ void DocumentClangToolRunner::scheduleRun() static Project *findProject(const FilePath &file) { - Project *project = SessionManager::projectForFile(file); - return project ? project : SessionManager::startupProject(); + Project *project = ProjectManager::projectForFile(file); + return project ? project : ProjectManager::startupProject(); } static VirtualFileSystemOverlay &vfso() diff --git a/src/plugins/classview/classviewmanager.cpp b/src/plugins/classview/classviewmanager.cpp index a98cec70442..7f4eeb955c6 100644 --- a/src/plugins/classview/classviewmanager.cpp +++ b/src/plugins/classview/classviewmanager.cpp @@ -8,8 +8,11 @@ #include <cppeditor/cppeditorconstants.h> #include <cppeditor/cppmodelmanager.h> + #include <coreplugin/progressmanager/progressmanager.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <texteditor/texteditor.h> #include <QThread> @@ -90,7 +93,7 @@ void ManagerPrivate::resetParser() cancelScheduledUpdate(); QHash<FilePath, QPair<QString, FilePaths>> projectData; - for (const Project *project : SessionManager::projects()) { + for (const Project *project : ProjectManager::projects()) { projectData.insert(project->projectFilePath(), {project->displayName(), project->files(Project::SourceFiles)}); } @@ -201,8 +204,8 @@ void Manager::initialize() d->m_timer.setSingleShot(true); // connections to enable/disable navi widget factory - SessionManager *sessionManager = SessionManager::instance(); - connect(sessionManager, &SessionManager::projectAdded, + ProjectManager *sessionManager = ProjectManager::instance(); + connect(sessionManager, &ProjectManager::projectAdded, this, [this](Project *project) { const FilePath projectPath = project->projectFilePath(); const QString projectName = project->displayName(); @@ -211,7 +214,7 @@ void Manager::initialize() d->m_parser->addProject(projectPath, projectName, projectFiles); }, Qt::QueuedConnection); }); - connect(sessionManager, &SessionManager::projectRemoved, + connect(sessionManager, &ProjectManager::projectRemoved, this, [this](Project *project) { const FilePath projectPath = project->projectFilePath(); QMetaObject::invokeMethod(d->m_parser, [this, projectPath]() { diff --git a/src/plugins/classview/classviewparsertreeitem.cpp b/src/plugins/classview/classviewparsertreeitem.cpp index 1d97d0c013b..787b63b3c84 100644 --- a/src/plugins/classview/classviewparsertreeitem.cpp +++ b/src/plugins/classview/classviewparsertreeitem.cpp @@ -7,9 +7,11 @@ #include <cplusplus/Icons.h> #include <cplusplus/Overview.h> + #include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <QDebug> #include <QHash> @@ -261,7 +263,7 @@ bool ParserTreeItem::canFetchMore(QStandardItem *item) const */ void ParserTreeItem::fetchMore(QStandardItem *item) const { - using ProjectExplorer::SessionManager; + using ProjectExplorer::ProjectManager; if (!item) return; @@ -283,7 +285,7 @@ void ParserTreeItem::fetchMore(QStandardItem *item) const // icon const Utils::FilePath &filePath = ptr->projectFilePath(); if (!filePath.isEmpty()) { - ProjectExplorer::Project *project = SessionManager::projectForFile(filePath); + ProjectExplorer::Project *project = ProjectManager::projectForFile(filePath); if (project) add->setIcon(project->containerNode()->icon()); } diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index de884452be6..83db3d6919e 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -27,7 +27,7 @@ #include <texteditor/textdocument.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/hostosinfo.h> @@ -595,7 +595,7 @@ ClearCasePluginPrivate::ClearCasePluginPrivate() m_settings.fromSettings(ICore::settings()); // update view name when changing active project - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &ClearCasePluginPrivate::projectChanged); const QString description = QLatin1String("ClearCase"); @@ -2124,7 +2124,7 @@ void ClearCasePluginPrivate::updateIndex() { QTC_ASSERT(currentState().hasTopLevel(), return); ProgressManager::cancelTasks(ClearCase::Constants::TASK_INDEX); - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); if (!project) return; m_checkInAllAction->setEnabled(false); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 7c0f6227ff9..459abb122ea 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -41,7 +41,7 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorertr.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> diff --git a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp index 325a6012a53..01fbeaa2329 100644 --- a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp +++ b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp @@ -8,8 +8,9 @@ #include "cmaketool.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> + #include <texteditor/codeassist/assistinterface.h> #include <QFileInfo> @@ -39,7 +40,7 @@ IAssistProposal *CMakeFileCompletionAssist::performAsync() Keywords kw; const Utils::FilePath &filePath = interface()->filePath(); if (!filePath.isEmpty() && filePath.toFileInfo().isFile()) { - Project *p = SessionManager::projectForFile(filePath); + Project *p = ProjectManager::projectForFile(filePath); if (p && p->activeTarget()) { CMakeTool *cmake = CMakeKitAspect::cmakeTool(p->activeTarget()->kit()); if (cmake && cmake->isValid()) diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp index 225217490cb..65b179cdf00 100644 --- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp @@ -12,7 +12,7 @@ #include <projectexplorer/buildmanager.h> #include <projectexplorer/buildsteplist.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/algorithm.h> @@ -29,9 +29,9 @@ namespace CMakeProjectManager::Internal { CMakeTargetLocatorFilter::CMakeTargetLocatorFilter() { - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, &CMakeTargetLocatorFilter::projectListUpdated); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, &CMakeTargetLocatorFilter::projectListUpdated); // Initialize the filter @@ -41,7 +41,7 @@ CMakeTargetLocatorFilter::CMakeTargetLocatorFilter() void CMakeTargetLocatorFilter::prepareSearch(const QString &entry) { m_result.clear(); - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); for (Project *p : projects) { auto cmakeProject = qobject_cast<const CMakeProject *>(p); if (!cmakeProject || !cmakeProject->activeTarget()) @@ -87,7 +87,7 @@ QList<LocatorFilterEntry> CMakeTargetLocatorFilter::matchesFor( void CMakeTargetLocatorFilter::projectListUpdated() { // Enable the filter if there's at least one CMake project - setEnabled(Utils::contains(SessionManager::projects(), + setEnabled(Utils::contains(ProjectManager::projects(), [](Project *p) { return qobject_cast<CMakeProject *>(p); })); } @@ -116,7 +116,7 @@ void BuildCMakeTargetLocatorFilter::accept(const LocatorFilterEntry &selection, // Get the project containing the target selected const auto cmakeProject = qobject_cast<CMakeProject *>( - Utils::findOrDefault(SessionManager::projects(), [projectPath](Project *p) { + Utils::findOrDefault(ProjectManager::projects(), [projectPath](Project *p) { return p->projectFilePath() == projectPath; })); if (!cmakeProject || !cmakeProject->activeTarget() diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index e05e155cf6f..95baccee1e9 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -16,12 +16,14 @@ #include <coreplugin/editormanager/ieditor.h> #include <coreplugin/icore.h> #include <coreplugin/messagemanager.h> + #include <cppeditor/cpptoolsreuse.h> + #include <projectexplorer/buildmanager.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <utils/parameteraction.h> @@ -59,7 +61,7 @@ CMakeManager::CMakeManager() command->setAttribute(Core::Command::CA_Hide); mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_BUILD); connect(m_runCMakeAction, &QAction::triggered, this, [this] { - runCMake(SessionManager::startupBuildSystem()); + runCMake(ProjectManager::startupBuildSystem()); }); command = Core::ActionManager::registerAction(m_clearCMakeCacheAction, @@ -68,7 +70,7 @@ CMakeManager::CMakeManager() command->setAttribute(Core::Command::CA_Hide); mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_BUILD); connect(m_clearCMakeCacheAction, &QAction::triggered, this, [this] { - clearCMakeCache(SessionManager::startupBuildSystem()); + clearCMakeCache(ProjectManager::startupBuildSystem()); }); command = Core::ActionManager::registerAction(m_runCMakeActionContextMenu, @@ -111,7 +113,7 @@ CMakeManager::CMakeManager() mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_BUILD); connect(m_buildFileAction, &QAction::triggered, this, [this] { buildFile(); }); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, this, [this] { + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, [this] { updateCmakeActions(ProjectTree::currentNode()); }); connect(BuildManager::instance(), &BuildManager::buildStateChanged, this, [this] { @@ -127,7 +129,7 @@ CMakeManager::CMakeManager() void CMakeManager::updateCmakeActions(Node *node) { - auto project = qobject_cast<CMakeProject *>(SessionManager::startupProject()); + auto project = qobject_cast<CMakeProject *>(ProjectManager::startupProject()); const bool visible = project && !BuildManager::isBuilding(project); m_runCMakeAction->setVisible(visible); m_runCMakeActionContextMenu->setEnabled(visible); diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp index fc1da70ca75..13f03c0ed31 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseprojectmanagerplugin.cpp @@ -15,7 +15,7 @@ #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/fsengine/fileiconprovider.h> #include <utils/parameteraction.h> @@ -72,7 +72,7 @@ void CompilationDatabaseProjectManagerPlugin::initialize() d->changeRootAction.setEnabled(currentProject); }; - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, onProjectChanged); connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, diff --git a/src/plugins/conan/conanplugin.cpp b/src/plugins/conan/conanplugin.cpp index ef42d348f86..3844b2983bd 100644 --- a/src/plugins/conan/conanplugin.cpp +++ b/src/plugins/conan/conanplugin.cpp @@ -13,8 +13,8 @@ #include <projectexplorer/buildmanager.h> #include <projectexplorer/buildsteplist.h> #include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> using namespace Core; @@ -39,7 +39,7 @@ void ConanPlugin::initialize() d = new ConanPluginPrivate; conanSettings()->readSettings(ICore::settings()); - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, &ConanPlugin::projectAdded); } diff --git a/src/plugins/cppcheck/cppcheckplugin.cpp b/src/plugins/cppcheck/cppcheckplugin.cpp index 5dd09a1820b..8d44f0dda56 100644 --- a/src/plugins/cppcheck/cppcheckplugin.cpp +++ b/src/plugins/cppcheck/cppcheckplugin.cpp @@ -16,7 +16,7 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <coreplugin/actionmanager/actioncontainer.h> @@ -97,8 +97,9 @@ CppcheckPluginPrivate::CppcheckPluginPrivate() } } -void CppcheckPluginPrivate::startManualRun() { - auto project = ProjectExplorer::SessionManager::startupProject(); +void CppcheckPluginPrivate::startManualRun() +{ + auto project = ProjectExplorer::ProjectManager::startupProject(); if (!project) return; @@ -121,8 +122,8 @@ void CppcheckPluginPrivate::startManualRun() { void CppcheckPluginPrivate::updateManualRunAction() { using namespace ProjectExplorer; - const Project *project = SessionManager::startupProject(); - const Target *target = SessionManager::startupTarget(); + const Project *project = ProjectManager::startupProject(); + const Target *target = ProjectManager::startupTarget(); const Utils::Id cxx = ProjectExplorer::Constants::CXX_LANGUAGE_ID; const bool canRun = target && project->projectLanguages().contains(cxx) && ToolChainKitAspect::cxxToolChain(target->kit()); diff --git a/src/plugins/cppcheck/cppchecktrigger.cpp b/src/plugins/cppcheck/cppchecktrigger.cpp index 55b1cf7ac01..8be098df558 100644 --- a/src/plugins/cppcheck/cppchecktrigger.cpp +++ b/src/plugins/cppcheck/cppchecktrigger.cpp @@ -13,7 +13,7 @@ #include <coreplugin/editormanager/ieditor.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> using namespace Core; using namespace ProjectExplorer; @@ -34,7 +34,7 @@ CppcheckTrigger::CppcheckTrigger(CppcheckTextMarkManager &marks, CppcheckTool &t connect(EditorManager::instance(), &EditorManager::aboutToSave, this, &CppcheckTrigger::checkChangedDocument); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &CppcheckTrigger::changeCurrentProject); connect(CppModelManager::instance(), &CppModelManager::projectPartsUpdated, diff --git a/src/plugins/cppeditor/baseeditordocumentprocessor.cpp b/src/plugins/cppeditor/baseeditordocumentprocessor.cpp index ca344aa6c7c..98784a1fb94 100644 --- a/src/plugins/cppeditor/baseeditordocumentprocessor.cpp +++ b/src/plugins/cppeditor/baseeditordocumentprocessor.cpp @@ -8,7 +8,8 @@ #include "cpptoolsreuse.h" #include "editordocumenthandle.h" -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> + #include <texteditor/quickfix.h> namespace CppEditor { @@ -37,7 +38,7 @@ void BaseEditorDocumentProcessor::run(bool projectsUpdated) : Utils::Language::Cxx; runImpl({CppModelManager::instance()->workingCopy(), - ProjectExplorer::SessionManager::startupProject(), + ProjectExplorer::ProjectManager::startupProject(), languagePreference, projectsUpdated}); } diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp index e4b567b7326..b871010a0a4 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp @@ -9,6 +9,7 @@ #include "cpptoolsreuse.h" #include <coreplugin/icore.h> + #include <projectexplorer/project.h> #include <projectexplorer/session.h> diff --git a/src/plugins/cppeditor/cppeditorwidget.cpp b/src/plugins/cppeditor/cppeditorwidget.cpp index 20fe8e6254b..44f9e01a017 100644 --- a/src/plugins/cppeditor/cppeditorwidget.cpp +++ b/src/plugins/cppeditor/cppeditorwidget.cpp @@ -30,9 +30,9 @@ #include <projectexplorer/buildsystem.h> #include <projectexplorer/extracompiler.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <texteditor/basefilefind.h> @@ -755,7 +755,7 @@ void CppEditorWidget::showRenameWarningIfFileIsGenerated(const Utils::FilePath & { if (filePath.isEmpty()) return; - for (const Project * const project : SessionManager::projects()) { + for (const Project * const project : ProjectManager::projects()) { const Node * const node = project->nodeForFilePath(filePath); if (!node) continue; @@ -989,7 +989,7 @@ void CppEditorWidget::findLinkAt(const QTextCursor &cursor, const QString fileName = filePath.fileName(); if (fileName.startsWith("ui_") && fileName.endsWith(".h")) { const QString uiFileName = fileName.mid(3, fileName.length() - 4) + "ui"; - for (const Project * const project : SessionManager::projects()) { + for (const Project * const project : ProjectManager::projects()) { const auto nodeMatcher = [uiFileName](Node *n) { return n->filePath().fileName() == uiFileName; }; diff --git a/src/plugins/cppeditor/cppfindreferences.cpp b/src/plugins/cppeditor/cppfindreferences.cpp index 940eb358e93..c553a5124b5 100644 --- a/src/plugins/cppeditor/cppfindreferences.cpp +++ b/src/plugins/cppeditor/cppfindreferences.cpp @@ -10,14 +10,18 @@ #include "cpptoolsreuse.h" #include "cppworkingcopy.h" +#include <cplusplus/Overview.h> + #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> #include <coreplugin/progressmanager/futureprogress.h> #include <coreplugin/progressmanager/progressmanager.h> + #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> + #include <texteditor/basefilefind.h> #include <utils/algorithm.h> @@ -25,10 +29,8 @@ #include <utils/runextensions.h> #include <utils/textfileformat.h> -#include <cplusplus/Overview.h> #include <QtConcurrentMap> #include <QCheckBox> -#include <QDir> #include <QFutureWatcher> #include <QVBoxLayout> @@ -577,7 +579,7 @@ static void displayResults(SearchResult *search, item.setStyle(colorStyleForUsageType(result.tags)); item.setUseTextEditorFont(true); if (search->supportsReplace()) - item.setSelectForReplacement(SessionManager::projectForFile(result.path)); + item.setSelectForReplacement(ProjectManager::projectForFile(result.path)); search->addResult(item); if (parameters.prettySymbolName.isEmpty()) @@ -586,7 +588,7 @@ static void displayResults(SearchResult *search, if (parameters.filesToRename.contains(result.path)) continue; - if (!SessionManager::projectForFile(result.path)) + if (!ProjectManager::projectForFile(result.path)) continue; if (result.path.baseName().compare(parameters.prettySymbolName, Qt::CaseInsensitive) == 0) @@ -766,7 +768,7 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o, const QStri item.setMainRange(macro.line(), column, macro.nameToQString().length()); item.setUseTextEditorFont(true); if (search->supportsReplace()) - item.setSelectForReplacement(SessionManager::projectForFile(filePath)); + item.setSelectForReplacement(ProjectManager::projectForFile(filePath)); search->addResult(item); } diff --git a/src/plugins/cppeditor/cppincludesfilter.cpp b/src/plugins/cppeditor/cppincludesfilter.cpp index 9f637f6582b..970e179fc00 100644 --- a/src/plugins/cppeditor/cppincludesfilter.cpp +++ b/src/plugins/cppeditor/cppincludesfilter.cpp @@ -7,11 +7,13 @@ #include "cppeditortr.h" #include "cppmodelmanager.h" -#include <cplusplus/CppDocument.h> #include <coreplugin/editormanager/documentmodel.h> + +#include <cplusplus/CppDocument.h> + #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> using namespace Core; using namespace ProjectExplorer; @@ -128,7 +130,7 @@ void CppIncludesFilter::prepareSearch(const QString &entry) if (m_needsUpdate) { m_needsUpdate = false; QSet<FilePath> seedPaths; - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { const FilePaths allFiles = project->files(Project::SourceFiles); for (const FilePath &filePath : allFiles ) seedPaths.insert(filePath); diff --git a/src/plugins/cppeditor/cppmodelmanager.cpp b/src/plugins/cppeditor/cppmodelmanager.cpp index 373773786a9..36d70882920 100644 --- a/src/plugins/cppeditor/cppmodelmanager.cpp +++ b/src/plugins/cppeditor/cppmodelmanager.cpp @@ -37,9 +37,11 @@ #include <coreplugin/progressmanager/futureprogress.h> #include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/vcsmanager.h> + #include <cplusplus/ASTPath.h> #include <cplusplus/ExpressionUnderCursor.h> #include <cplusplus/TypeOfExpression.h> + #include <extensionsystem/pluginmanager.h> #include <projectexplorer/buildconfiguration.h> @@ -49,6 +51,7 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectmacro.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> @@ -577,7 +580,7 @@ void CppModelManager::findUnusedFunctions(const FilePath &folder) if (link.hasValidTarget() && link.targetFilePath.isReadableFile() && (folder.isEmpty() || link.targetFilePath.isChildOf(folder)) - && SessionManager::projectForFile(link.targetFilePath)) { + && ProjectManager::projectForFile(link.targetFilePath)) { links << link; } } @@ -938,14 +941,14 @@ CppModelManager::CppModelManager() d->m_delayedGcTimer.setSingleShot(true); connect(&d->m_delayedGcTimer, &QTimer::timeout, this, &CppModelManager::GC); - auto sessionManager = SessionManager::instance(); - connect(sessionManager, &SessionManager::projectAdded, + auto projectManager = ProjectManager::instance(); + connect(projectManager, &ProjectManager::projectAdded, this, &CppModelManager::onProjectAdded); - connect(sessionManager, &SessionManager::aboutToRemoveProject, + connect(projectManager, &ProjectManager::aboutToRemoveProject, this, &CppModelManager::onAboutToRemoveProject); - connect(sessionManager, &SessionManager::aboutToLoadSession, + connect(SessionManager::instance(), &SessionManager::aboutToLoadSession, this, &CppModelManager::onAboutToLoadSession); - connect(sessionManager, &SessionManager::startupProjectChanged, + connect(projectManager, &ProjectManager::startupProjectChanged, this, &CppModelManager::onActiveProjectChanged); connect(EditorManager::instance(), &EditorManager::currentEditorChanged, diff --git a/src/plugins/cppeditor/cppmodelmanager_test.cpp b/src/plugins/cppeditor/cppmodelmanager_test.cpp index 97d13d0704c..eaa2ef142d8 100644 --- a/src/plugins/cppeditor/cppmodelmanager_test.cpp +++ b/src/plugins/cppeditor/cppmodelmanager_test.cpp @@ -18,7 +18,7 @@ #include <cplusplus/LookupContext.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/executeondestruction.h> #include <utils/hostosinfo.h> diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index 3dae225cea3..8ae20d1c5a0 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -33,7 +33,7 @@ #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/basetreeview.h> @@ -7986,7 +7986,7 @@ private: } }; - if (const Project *project = SessionManager::projectForFile(filePath())) { + if (const Project *project = ProjectManager::projectForFile(filePath())) { const FilePaths files = project->files(ProjectExplorer::Project::SourceFiles); QSet<FilePath> projectFiles(files.begin(), files.end()); for (const auto &file : files) { diff --git a/src/plugins/cppeditor/cpptoolsjsextension.cpp b/src/plugins/cppeditor/cpptoolsjsextension.cpp index a3cbfe12041..b70328601ee 100644 --- a/src/plugins/cppeditor/cpptoolsjsextension.cpp +++ b/src/plugins/cppeditor/cpptoolsjsextension.cpp @@ -10,12 +10,13 @@ #include <coreplugin/icore.h> #include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> -#include <projectexplorer/session.h> #include <cplusplus/AST.h> #include <cplusplus/ASTPath.h> #include <cplusplus/Overview.h> + #include <utils/codegeneration.h> #include <utils/fileutils.h> @@ -234,7 +235,7 @@ QString CppToolsJsExtension::includeStatement( } return false; }; - for (const Project * const p : SessionManager::projects()) { + for (const Project * const p : ProjectManager::projects()) { const Node *theNode = p->rootProjectNode()->findNode(nodeMatchesFileName); if (theNode) { const bool sameDir = pathOfIncludingFile == theNode->filePath().toFileInfo().path(); diff --git a/src/plugins/cppeditor/cpptoolsreuse.cpp b/src/plugins/cppeditor/cpptoolsreuse.cpp index 7d17e30e4bc..912902c0c9c 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.cpp +++ b/src/plugins/cppeditor/cpptoolsreuse.cpp @@ -21,7 +21,9 @@ #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/idocument.h> #include <coreplugin/messagemanager.h> -#include <projectexplorer/session.h> + +#include <projectexplorer/projectmanager.h> + #include <texteditor/codeassist/assistinterface.h> #include <texteditor/textdocument.h> @@ -29,6 +31,7 @@ #include <cplusplus/LookupContext.h> #include <cplusplus/Overview.h> #include <cplusplus/SimpleLexer.h> + #include <utils/algorithm.h> #include <utils/textutils.h> #include <utils/qtcassert.h> @@ -596,12 +599,12 @@ NamespaceAST *NSCheckerVisitor::currentNamespace() ProjectExplorer::Project *projectForProjectPart(const ProjectPart &part) { - return ProjectExplorer::SessionManager::projectWithProjectFilePath(part.topLevelProject); + return ProjectExplorer::ProjectManager::projectWithProjectFilePath(part.topLevelProject); } ProjectExplorer::Project *projectForProjectInfo(const ProjectInfo &info) { - return ProjectExplorer::SessionManager::projectWithProjectFilePath(info.projectFilePath()); + return ProjectExplorer::ProjectManager::projectWithProjectFilePath(info.projectFilePath()); } void openEditor(const Utils::FilePath &filePath, bool inNextSplit, Utils::Id editorId) diff --git a/src/plugins/cppeditor/cpptoolstestcase.cpp b/src/plugins/cppeditor/cpptoolstestcase.cpp index b7124b01ca4..2d149b3ff5d 100644 --- a/src/plugins/cppeditor/cpptoolstestcase.cpp +++ b/src/plugins/cppeditor/cpptoolstestcase.cpp @@ -18,7 +18,7 @@ #include <projectexplorer/buildsystem.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/texteditor.h> #include <texteditor/codeassist/iassistproposal.h> @@ -348,8 +348,8 @@ bool TestCase::waitUntilProjectIsFullyOpened(Project *project, int timeOutInMs) return QTest::qWaitFor( [project]() { - return SessionManager::startupBuildSystem() - && !SessionManager::startupBuildSystem()->isParsing() + return ProjectManager::startupBuildSystem() + && !ProjectManager::startupBuildSystem()->isParsing() && CppModelManager::instance()->projectInfo(project); }, timeOutInMs); @@ -367,7 +367,7 @@ bool TestCase::writeFile(const FilePath &filePath, const QByteArray &contents) ProjectOpenerAndCloser::ProjectOpenerAndCloser() { - QVERIFY(!SessionManager::hasProjects()); + QVERIFY(!ProjectManager::hasProjects()); } ProjectOpenerAndCloser::~ProjectOpenerAndCloser() diff --git a/src/plugins/cppeditor/generatedcodemodelsupport.cpp b/src/plugins/cppeditor/generatedcodemodelsupport.cpp index 400e77fb378..22a9b2735eb 100644 --- a/src/plugins/cppeditor/generatedcodemodelsupport.cpp +++ b/src/plugins/cppeditor/generatedcodemodelsupport.cpp @@ -13,7 +13,7 @@ #include <projectexplorer/extracompiler.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/algorithm.h> diff --git a/src/plugins/cppeditor/modelmanagertesthelper.cpp b/src/plugins/cppeditor/modelmanagertesthelper.cpp index f4114c33b27..a133ac7fef2 100644 --- a/src/plugins/cppeditor/modelmanagertesthelper.cpp +++ b/src/plugins/cppeditor/modelmanagertesthelper.cpp @@ -6,7 +6,7 @@ #include "cpptoolstestcase.h" #include "projectinfo.h" -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> @@ -59,7 +59,7 @@ void ModelManagerTestHelper::cleanup() CppModelManager *mm = CppModelManager::instance(); QList<ProjectInfo::ConstPtr> pies = mm->projectInfos(); for (Project * const p : std::as_const(m_projects)) { - ProjectExplorer::SessionManager::removeProject(p); + ProjectExplorer::ProjectManager::removeProject(p); emit aboutToRemoveProject(p); } @@ -72,7 +72,7 @@ ModelManagerTestHelper::Project *ModelManagerTestHelper::createProject( { auto tp = new TestProject(name, this, filePath); m_projects.push_back(tp); - ProjectExplorer::SessionManager::addProject(tp); + ProjectExplorer::ProjectManager::addProject(tp); emit projectAdded(tp); return tp; } diff --git a/src/plugins/cppeditor/symbolsfindfilter.cpp b/src/plugins/cppeditor/symbolsfindfilter.cpp index 3b901715b2c..0317d0ee98d 100644 --- a/src/plugins/cppeditor/symbolsfindfilter.cpp +++ b/src/plugins/cppeditor/symbolsfindfilter.cpp @@ -12,9 +12,10 @@ #include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/find/searchresultwindow.h> + #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/runextensions.h> @@ -108,7 +109,7 @@ void SymbolsFindFilter::startSearch(SearchResult *search) SymbolSearcher::Parameters parameters = search->userData().value<SymbolSearcher::Parameters>(); QSet<QString> projectFileNames; if (parameters.scope == SymbolSearcher::SearchProjectsOnly) { - for (ProjectExplorer::Project *project : ProjectExplorer::SessionManager::projects()) + for (ProjectExplorer::Project *project : ProjectExplorer::ProjectManager::projects()) projectFileNames += Utils::transform<QSet>(project->files(ProjectExplorer::Project::AllFiles), &Utils::FilePath::toString); } diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 8ab67c0bc54..e8c14d4dccf 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -67,9 +67,10 @@ #include <projectexplorer/projectexplorericons.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorersettings.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> #include <projectexplorer/toolchain.h> @@ -1187,7 +1188,7 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(const QStringList &arguments) setInitialState(); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &DebuggerPluginPrivate::onStartupProjectChanged); connect(EngineManager::instance(), &EngineManager::engineStateChanged, this, &DebuggerPluginPrivate::updatePresetState); @@ -1394,8 +1395,8 @@ void DebuggerPluginPrivate::updatePresetState() if (m_shuttingDown) return; - Project *startupProject = SessionManager::startupProject(); - RunConfiguration *startupRunConfig = SessionManager::startupRunConfiguration(); + Project *startupProject = ProjectManager::startupProject(); + RunConfiguration *startupRunConfig = ProjectManager::startupRunConfiguration(); DebuggerEngine *currentEngine = EngineManager::currentEngine(); QString whyNot; @@ -1997,7 +1998,7 @@ void DebuggerPluginPrivate::aboutToShutdown() { m_shuttingDown = true; - disconnect(SessionManager::instance(), &SessionManager::startupProjectChanged, this, nullptr); + disconnect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, nullptr); m_shutdownTimer.setInterval(0); m_shutdownTimer.setSingleShot(true); @@ -2165,7 +2166,7 @@ static bool buildTypeAccepted(QFlags<ToolMode> toolMode, BuildConfiguration::Bui static BuildConfiguration::BuildType startupBuildType() { BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown; - if (RunConfiguration *runConfig = SessionManager::startupRunConfiguration()) { + if (RunConfiguration *runConfig = ProjectManager::startupRunConfiguration()) { if (const BuildConfiguration *buildConfig = runConfig->target()->activeBuildConfiguration()) buildType = buildConfig->buildType(); } @@ -2335,12 +2336,12 @@ void DebuggerUnitTests::testStateMachine() QEventLoop loop; connect(BuildManager::instance(), &BuildManager::buildQueueFinished, &loop, &QEventLoop::quit); - BuildManager::buildProjectWithDependencies(SessionManager::startupProject()); + BuildManager::buildProjectWithDependencies(ProjectManager::startupProject()); loop.exec(); ExecuteOnDestruction guard([] { EditorManager::closeAllEditors(false); }); - RunConfiguration *rc = SessionManager::startupRunConfiguration(); + RunConfiguration *rc = ProjectManager::startupRunConfiguration(); QVERIFY(rc); auto runControl = new RunControl(ProjectExplorer::Constants::DEBUG_RUN_MODE); diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 8b6ac29c995..3a5d84d3b6b 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -23,8 +23,9 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorericons.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/runconfigurationaspects.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> #include <projectexplorer/toolchain.h> @@ -182,8 +183,8 @@ void DebuggerRunTool::setStartMode(DebuggerStartMode startMode) // FIXME: This is horribly wrong. // get files from all the projects in the session - QList<Project *> projects = SessionManager::projects(); - if (Project *startupProject = SessionManager::startupProject()) { + QList<Project *> projects = ProjectManager::projects(); + if (Project *startupProject = ProjectManager::startupProject()) { // startup project first projects.removeOne(startupProject); projects.insert(0, startupProject); diff --git a/src/plugins/designer/codemodelhelpers.cpp b/src/plugins/designer/codemodelhelpers.cpp index beddb3714e6..8428fd98171 100644 --- a/src/plugins/designer/codemodelhelpers.cpp +++ b/src/plugins/designer/codemodelhelpers.cpp @@ -9,7 +9,7 @@ #include <projectexplorer/buildsystem.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <QCoreApplication> @@ -30,7 +30,7 @@ static const char setupUiC[] = "setupUi"; // Find the generated "ui_form.h" header of the form via project. static FilePath generatedHeaderOf(const FilePath &uiFileName) { - if (const Project *uiProject = SessionManager::projectForFile(uiFileName)) { + if (const Project *uiProject = ProjectManager::projectForFile(uiFileName)) { if (Target *t = uiProject->activeTarget()) { if (BuildSystem *bs = t->buildSystem()) { FilePaths files = bs->filesGeneratedFrom(uiFileName); diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp index db96523c360..02f01a5d091 100644 --- a/src/plugins/designer/qtcreatorintegration.cpp +++ b/src/plugins/designer/qtcreatorintegration.cpp @@ -16,20 +16,24 @@ #include <cppeditor/cppworkingcopy.h> #include <cppeditor/insertionpointlocator.h> #include <cppeditor/symbolfinder.h> + #include <cplusplus/LookupContext.h> #include <cplusplus/Overview.h> + #include <coreplugin/icore.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/messagemanager.h> -#include <texteditor/texteditor.h> -#include <texteditor/textdocument.h> + #include <projectexplorer/buildsystem.h> #include <projectexplorer/extracompiler.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> +#include <texteditor/texteditor.h> +#include <texteditor/textdocument.h> + #include <utils/algorithm.h> #include <utils/mimeutils.h> #include <utils/qtcassert.h> @@ -493,10 +497,10 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName, // Retrieve code model snapshot restricted to project of ui file or the working copy. Snapshot docTable = CppEditor::CppModelManager::instance()->snapshot(); Snapshot newDocTable; - const Project *uiProject = SessionManager::projectForFile(currentUiFile); + const Project *uiProject = ProjectManager::projectForFile(currentUiFile); if (uiProject) { for (Snapshot::const_iterator i = docTable.begin(), ei = docTable.end(); i != ei; ++i) { - const Project *project = SessionManager::projectForFile(i.key()); + const Project *project = ProjectManager::projectForFile(i.key()); if (project == uiProject) newDocTable.insert(i.value()); } @@ -639,7 +643,7 @@ void QtCreatorIntegration::handleSymbolRenameStage1( return; // Get ExtraCompiler. - const Project * const project = SessionManager::projectForFile(uiFile); + const Project * const project = ProjectManager::projectForFile(uiFile); if (!project) { return reportRenamingError(oldName, Designer::Tr::tr("File \"%1\" not found in project.") .arg(uiFile.toUserOutput())); diff --git a/src/plugins/designer/resourcehandler.cpp b/src/plugins/designer/resourcehandler.cpp index 29838283d5c..fe2cdd28c60 100644 --- a/src/plugins/designer/resourcehandler.cpp +++ b/src/plugins/designer/resourcehandler.cpp @@ -2,13 +2,16 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "resourcehandler.h" + #include "designerconstants.h" +#include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> -#include <projectexplorer/project.h> -#include <projectexplorer/session.h> + #include <resourceeditor/resourcenode.h> + #include <utils/algorithm.h> #include <utils/qtcassert.h> @@ -42,10 +45,10 @@ void ResourceHandler::ensureInitialized() Qt::QueuedConnection); }; - for (Project *p : SessionManager::projects()) + for (Project *p : ProjectManager::projects()) connector(p); - connect(SessionManager::instance(), &SessionManager::projectAdded, this, connector); + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, connector); m_originalUiQrcPaths = m_form->activeResourceFilePaths(); if (Designer::Constants::Internal::debug) @@ -68,7 +71,7 @@ void ResourceHandler::updateResourcesHelper(bool updateProjectResources) qDebug() << "ResourceHandler::updateResources()" << fileName; // Filename could change in the meantime. - Project *project = SessionManager::projectForFile(Utils::FilePath::fromUserInput(fileName)); + Project *project = ProjectManager::projectForFile(Utils::FilePath::fromUserInput(fileName)); const bool dirty = m_form->property("_q_resourcepathchanged").toBool(); if (dirty) m_form->setDirty(true); diff --git a/src/plugins/gitlab/gitlabdialog.cpp b/src/plugins/gitlab/gitlabdialog.cpp index 97d57e42651..22c362788a8 100644 --- a/src/plugins/gitlab/gitlabdialog.cpp +++ b/src/plugins/gitlab/gitlabdialog.cpp @@ -9,7 +9,7 @@ #include "gitlabprojectsettings.h" #include "gitlabtr.h" -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/fontsettings.h> #include <texteditor/texteditorsettings.h> @@ -188,7 +188,7 @@ void GitLabDialog::requestMainViewUpdate() bool linked = false; m_currentServerId = Id(); - if (auto project = ProjectExplorer::SessionManager::startupProject()) { + if (auto project = ProjectExplorer::ProjectManager::startupProject()) { GitLabProjectSettings *projSettings = GitLabPlugin::projectSettings(project); if (projSettings->isLinked()) { m_currentServerId = projSettings->currentServer(); diff --git a/src/plugins/gitlab/gitlabplugin.cpp b/src/plugins/gitlab/gitlabplugin.cpp index 2059ae4d84b..9427aa1d44b 100644 --- a/src/plugins/gitlab/gitlabplugin.cpp +++ b/src/plugins/gitlab/gitlabplugin.cpp @@ -14,11 +14,15 @@ #include <coreplugin/actionmanager/actioncontainer.h> #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/icore.h> + #include <git/gitplugin.h> + #include <projectexplorer/project.h> #include <projectexplorer/projectpanelfactory.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> + #include <utils/qtcassert.h> + #include <vcsbase/vcsoutputwindow.h> #include <QAction> @@ -89,8 +93,8 @@ void GitLabPlugin::initialize() if (dd->dialog) dd->dialog->updateRemotes(); }); - connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, + connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, this, &GitLabPlugin::onStartupProjectChanged); } @@ -121,7 +125,7 @@ void GitLabPlugin::onStartupProjectChanged() { QTC_ASSERT(dd, return); disconnect(&dd->notificationTimer); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project) { dd->notificationTimer.stop(); return; @@ -147,7 +151,7 @@ void GitLabPluginPrivate::setupNotificationTimer() void GitLabPluginPrivate::fetchEvents() { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return); if (runningQuery) @@ -218,7 +222,7 @@ void GitLabPluginPrivate::handleEvents(const Events &events, const QDateTime &ti { runningQuery = false; - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(project, return); GitLabProjectSettings *projSettings = GitLabPlugin::projectSettings(project); @@ -311,7 +315,7 @@ void GitLabPlugin::linkedStateChanged(bool enabled) { QTC_ASSERT(dd, return); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (project) { const GitLabProjectSettings *pSettings = projectSettings(project); dd->serverId = pSettings->currentServer(); diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 23c086c8b2e..1a20d60541c 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -39,7 +39,7 @@ #include <languageserverprotocol/workspace.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/codeassist/documentcontentcompletion.h> #include <texteditor/codeassist/iassistprocessor.h> @@ -156,7 +156,7 @@ public: m_documentUpdateTimer.setInterval(500); connect(&m_documentUpdateTimer, &QTimer::timeout, this, [this] { sendPostponedDocumentUpdates(Schedule::Now); }); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, q, &Client::projectClosed); QTC_ASSERT(clientInterface, return); @@ -509,7 +509,7 @@ void Client::initialize() params.setRootUri(hostPathToServerUri(d->m_project->projectDirectory())); const QList<WorkSpaceFolder> workspaces - = Utils::transform(SessionManager::projects(), [this](Project *pro) { + = Utils::transform(ProjectManager::projects(), [this](Project *pro) { return WorkSpaceFolder(hostPathToServerUri(pro->projectDirectory()), pro->displayName()); }); @@ -1862,7 +1862,7 @@ void ClientPrivate::handleMethod(const QString &method, const MessageId &id, con } else if (method == WorkSpaceFolderRequest::methodName) { WorkSpaceFolderRequest::Response response(id); const QList<ProjectExplorer::Project *> projects - = ProjectExplorer::SessionManager::projects(); + = ProjectExplorer::ProjectManager::projects(); if (projects.isEmpty()) { response.setResult(nullptr); } else { diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index a41c4f01d6a..2b1255f25ca 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -17,7 +17,7 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/textdocument.h> #include <texteditor/texteditor.h> @@ -55,9 +55,9 @@ LanguageClientManager::LanguageClientManager(QObject *parent) this, &LanguageClientManager::documentContentsSaved); connect(EditorManager::instance(), &EditorManager::aboutToSave, this, &LanguageClientManager::documentWillSave); - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, &LanguageClientManager::projectAdded); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, [&](Project *project) { project->disconnect(this); }); } @@ -317,7 +317,7 @@ void LanguageClientManager::applySettings() continue; const Utils::FilePath filePath = textDocument->filePath(); for (ProjectExplorer::Project *project : - ProjectExplorer::SessionManager::projects()) { + ProjectExplorer::ProjectManager::projects()) { if (project->isKnownFile(filePath)) { Client *client = clientForProject[project]; if (!client) { @@ -494,7 +494,7 @@ void LanguageClientManager::documentOpened(Core::IDocument *document) if (setting->m_startBehavior == BaseSettings::RequiresProject) { const Utils::FilePath &filePath = document->filePath(); for (ProjectExplorer::Project *project : - ProjectExplorer::SessionManager::projects()) { + ProjectExplorer::ProjectManager::projects()) { // check whether file is part of this project if (!project->isKnownFile(filePath)) continue; diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index 6f2cf7dafe5..5b15c7c218d 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -14,7 +14,7 @@ #include <coreplugin/idocument.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/plaintexteditorfactory.h> #include <texteditor/textmark.h> diff --git a/src/plugins/languageclient/languageclientsymbolsupport.cpp b/src/plugins/languageclient/languageclientsymbolsupport.cpp index 995ca770f3d..1de3bede6d4 100644 --- a/src/plugins/languageclient/languageclientsymbolsupport.cpp +++ b/src/plugins/languageclient/languageclientsymbolsupport.cpp @@ -13,7 +13,7 @@ #include <coreplugin/find/searchresultwindow.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/algorithm.h> #include <utils/mimeutils.h> @@ -237,7 +237,7 @@ QList<Core::SearchResultItem> generateSearchResultItems( item.setFilePath(filePath); item.setUseTextEditorFont(true); if (renaming && limitToProjects) { - const bool fileBelongsToProject = ProjectExplorer::SessionManager::projectForFile( + const bool fileBelongsToProject = ProjectExplorer::ProjectManager::projectForFile( filePath); item.setSelectForReplacement(fileBelongsToProject); if (fileBelongsToProject diff --git a/src/plugins/mcusupport/mcusupportplugin.cpp b/src/plugins/mcusupport/mcusupportplugin.cpp index 2c3dfdb28b0..7be98fb005b 100644 --- a/src/plugins/mcusupport/mcusupportplugin.cpp +++ b/src/plugins/mcusupport/mcusupportplugin.cpp @@ -27,8 +27,8 @@ #include <projectexplorer/kitmanager.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <cmakeprojectmanager/cmakeprojectconstants.h> @@ -115,8 +115,8 @@ void McuSupportPlugin::initialize() setObjectName("McuSupportPlugin"); dd = new McuSupportPluginPrivate; - connect(SessionManager::instance(), - &SessionManager::projectFinishedParsing, + connect(ProjectManager::instance(), + &ProjectManager::projectFinishedParsing, updateMCUProjectTree); dd->m_options.registerQchFiles(); diff --git a/src/plugins/modeleditor/componentviewcontroller.cpp b/src/plugins/modeleditor/componentviewcontroller.cpp index 4ce7cc16caf..75495c6684e 100644 --- a/src/plugins/modeleditor/componentviewcontroller.cpp +++ b/src/plugins/modeleditor/componentviewcontroller.cpp @@ -18,9 +18,9 @@ #include <cppeditor/cppmodelmanager.h> #include <cplusplus/CppDocument.h> -#include <projectexplorer/session.h> -#include <projectexplorer/projectnodes.h> #include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> +#include <projectexplorer/projectnodes.h> #include <utils/qtcassert.h> @@ -136,7 +136,7 @@ void UpdateIncludeDependenciesVisitor::setModelUtilities(ModelUtilities *modelUt void UpdateIncludeDependenciesVisitor::updateFilePaths() { m_filePaths.clear(); - for (const ProjectExplorer::Project *project : ProjectExplorer::SessionManager::projects()) { + for (const ProjectExplorer::Project *project : ProjectExplorer::ProjectManager::projects()) { ProjectExplorer::ProjectNode *projectNode = project->rootProjectNode(); if (projectNode) collectElementPaths(projectNode, &m_filePaths); diff --git a/src/plugins/modeleditor/modelindexer.cpp b/src/plugins/modeleditor/modelindexer.cpp index c6ace660248..9923782ac72 100644 --- a/src/plugins/modeleditor/modelindexer.cpp +++ b/src/plugins/modeleditor/modelindexer.cpp @@ -18,7 +18,7 @@ #include "qmt/tasks/findrootdiagramvisitor.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <utils/mimeutils.h> @@ -308,9 +308,9 @@ ModelIndexer::ModelIndexer(QObject *parent) connect(this, &ModelIndexer::filesQueued, d->indexerThread, &ModelIndexer::IndexerThread::onFilesQueued); d->indexerThread->start(); - connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::projectAdded, + connect(ProjectExplorer::ProjectManager::instance(), &ProjectExplorer::ProjectManager::projectAdded, this, &ModelIndexer::onProjectAdded); - connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::aboutToRemoveProject, + connect(ProjectExplorer::ProjectManager::instance(), &ProjectExplorer::ProjectManager::aboutToRemoveProject, this, &ModelIndexer::onAboutToRemoveProject); } diff --git a/src/plugins/nim/editor/nimcompletionassistprovider.cpp b/src/plugins/nim/editor/nimcompletionassistprovider.cpp index 7179a8a64ec..c94001b348f 100644 --- a/src/plugins/nim/editor/nimcompletionassistprovider.cpp +++ b/src/plugins/nim/editor/nimcompletionassistprovider.cpp @@ -5,7 +5,7 @@ #include "suggest/nimsuggestcache.h" #include "suggest/nimsuggest.h" -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/codeassist/assistinterface.h> #include <texteditor/codeassist/assistproposalitem.h> #include <texteditor/codeassist/genericproposal.h> diff --git a/src/plugins/perfprofiler/perfdatareader.cpp b/src/plugins/perfprofiler/perfdatareader.cpp index 603d2ad016b..a545dff913e 100644 --- a/src/plugins/perfprofiler/perfdatareader.cpp +++ b/src/plugins/perfprofiler/perfdatareader.cpp @@ -18,7 +18,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/project.h> #include <projectexplorer/runcontrol.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> diff --git a/src/plugins/perfprofiler/perfloaddialog.cpp b/src/plugins/perfprofiler/perfloaddialog.cpp index 8bf34316fe6..8f162ed5969 100644 --- a/src/plugins/perfprofiler/perfloaddialog.cpp +++ b/src/plugins/perfprofiler/perfloaddialog.cpp @@ -9,7 +9,7 @@ #include <projectexplorer/kit.h> #include <projectexplorer/kitchooser.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/layoutbuilder.h> @@ -109,7 +109,7 @@ void PerfLoadDialog::on_browseExecutableDirButton_pressed() void PerfLoadDialog::chooseDefaults() { - ProjectExplorer::Target *target = ProjectExplorer::SessionManager::startupTarget(); + ProjectExplorer::Target *target = ProjectExplorer::ProjectManager::startupTarget(); if (!target) return; diff --git a/src/plugins/perfprofiler/perfprofilertool.cpp b/src/plugins/perfprofiler/perfprofilertool.cpp index d4515f79b85..8362ccc4ed8 100644 --- a/src/plugins/perfprofiler/perfprofilertool.cpp +++ b/src/plugins/perfprofiler/perfprofilertool.cpp @@ -27,7 +27,7 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/runcontrol.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qtsupport/qtkitinformation.h> @@ -224,7 +224,7 @@ void PerfProfilerTool::createViews() connect(recordMenu, &QMenu::aboutToShow, recordMenu, [recordMenu] { recordMenu->hide(); PerfSettings *settings = nullptr; - Target *target = SessionManager::startupTarget(); + Target *target = ProjectManager::startupTarget(); if (target) { if (auto runConfig = target->activeRunConfiguration()) settings = runConfig->currentSettings<PerfSettings>(Constants::PerfSettingsId); @@ -572,7 +572,7 @@ static Utils::FilePaths sourceFiles(const Project *currentProject = nullptr) if (currentProject) sourceFiles.append(currentProject->files(Project::SourceFiles)); - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); for (const Project *project : projects) { if (project != currentProject) sourceFiles.append(project->files(Project::SourceFiles)); @@ -609,7 +609,7 @@ void PerfProfilerTool::showLoadTraceDialog() startLoading(); - const Project *currentProject = SessionManager::startupProject(); + const Project *currentProject = ProjectManager::startupProject(); const Target *target = currentProject ? currentProject->activeTarget() : nullptr; const Kit *kit = target ? target->kit() : nullptr; populateFileFinder(currentProject, kit); diff --git a/src/plugins/perfprofiler/perftracepointdialog.cpp b/src/plugins/perfprofiler/perftracepointdialog.cpp index da3b4c38c32..f276431ab5e 100644 --- a/src/plugins/perfprofiler/perftracepointdialog.cpp +++ b/src/plugins/perfprofiler/perftracepointdialog.cpp @@ -8,7 +8,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/qtcassert.h> @@ -51,7 +51,7 @@ PerfTracePointDialog::PerfTracePointDialog() m_buttonBox, }.attachTo(this); - if (const Target *target = SessionManager::startupTarget()) { + if (const Target *target = ProjectManager::startupTarget()) { const Kit *kit = target->kit(); QTC_ASSERT(kit, return); diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp index ea4d86dba7d..fddbceccb1c 100644 --- a/src/plugins/projectexplorer/allprojectsfilter.cpp +++ b/src/plugins/projectexplorer/allprojectsfilter.cpp @@ -3,10 +3,10 @@ #include "allprojectsfilter.h" +#include "project.h" #include "projectexplorer.h" #include "projectexplorertr.h" -#include "session.h" -#include "project.h" +#include "projectmanager.h" #include <utils/algorithm.h> @@ -38,7 +38,7 @@ void AllProjectsFilter::prepareSearch(const QString &entry) Q_UNUSED(entry) if (!fileIterator()) { Utils::FilePaths paths; - for (Project *project : SessionManager::projects()) + for (Project *project : ProjectManager::projects()) paths.append(project->files(Project::SourceFiles)); Utils::sort(paths); setFileIterator(new BaseFileFilter::ListIterator(paths)); diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp index ac4afc1d6e2..d61b1560523 100644 --- a/src/plugins/projectexplorer/allprojectsfind.cpp +++ b/src/plugins/projectexplorer/allprojectsfind.cpp @@ -7,7 +7,7 @@ #include "project.h" #include "projectexplorer.h" #include "projectexplorertr.h" -#include "session.h" +#include "projectmanager.h" #include <coreplugin/editormanager/editormanager.h> @@ -44,7 +44,7 @@ QString AllProjectsFind::displayName() const bool AllProjectsFind::isEnabled() const { - return BaseFileFind::isEnabled() && SessionManager::hasProjects(); + return BaseFileFind::isEnabled() && ProjectManager::hasProjects(); } FileIterator *AllProjectsFind::files(const QStringList &nameFilters, @@ -52,7 +52,7 @@ FileIterator *AllProjectsFind::files(const QStringList &nameFilters, const QVariant &additionalParameters) const { Q_UNUSED(additionalParameters) - return filesForProjects(nameFilters, exclusionFilters, SessionManager::projects()); + return filesForProjects(nameFilters, exclusionFilters, ProjectManager::projects()); } FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFilters, diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index ff14b7ab07b..fc8967aaa0b 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -17,8 +17,8 @@ #include "projectexplorer.h" #include "projectexplorertr.h" #include "project.h" +#include "projectmanager.h" #include "projecttree.h" -#include "session.h" #include "target.h" #include <coreplugin/fileutils.h> @@ -209,7 +209,7 @@ BuildConfiguration::BuildConfiguration(Target *target, Utils::Id id) connect(target, &Target::parsingStarted, this, &BuildConfiguration::enabledChanged); connect(target, &Target::parsingFinished, this, &BuildConfiguration::enabledChanged); connect(this, &BuildConfiguration::enabledChanged, this, [this] { - if (isActive() && project() == SessionManager::startupProject()) { + if (isActive() && project() == ProjectManager::startupProject()) { ProjectExplorerPlugin::updateActions(); ProjectExplorerPlugin::updateRunActions(); } diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 57bfde6e46a..6284a960417 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -16,8 +16,8 @@ #include "projectexplorerconstants.h" #include "projectexplorersettings.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "runcontrol.h" -#include "session.h" #include "target.h" #include "task.h" #include "taskhub.h" @@ -258,7 +258,7 @@ BuildManager::BuildManager(QObject *parent, QAction *cancelBuildAction) m_instance = this; d = new BuildManagerPrivate; - connect(SessionManager::instance(), &SessionManager::aboutToRemoveProject, + connect(ProjectManager::instance(), &ProjectManager::aboutToRemoveProject, this, &BuildManager::aboutToRemoveProject); d->m_outputWindow = new Internal::CompileOutputWindow(cancelBuildAction); @@ -318,19 +318,19 @@ void BuildManager::rebuildProjectWithoutDependencies(Project *project) void BuildManager::buildProjectWithDependencies(Project *project, ConfigSelection configSelection) { - queue(SessionManager::projectOrder(project), {Id(Constants::BUILDSTEPS_BUILD)}, + queue(ProjectManager::projectOrder(project), {Id(Constants::BUILDSTEPS_BUILD)}, configSelection); } void BuildManager::cleanProjectWithDependencies(Project *project, ConfigSelection configSelection) { - queue(SessionManager::projectOrder(project), {Id(Constants::BUILDSTEPS_CLEAN)}, + queue(ProjectManager::projectOrder(project), {Id(Constants::BUILDSTEPS_CLEAN)}, configSelection); } void BuildManager::rebuildProjectWithDependencies(Project *project, ConfigSelection configSelection) { - queue(SessionManager::projectOrder(project), + queue(ProjectManager::projectOrder(project), {Id(Constants::BUILDSTEPS_CLEAN), Id(Constants::BUILDSTEPS_BUILD)}, configSelection); } @@ -384,7 +384,7 @@ BuildForRunConfigStatus BuildManager::potentiallyBuildForRunConfig(RunConfigurat } Project * const pro = rc->target()->project(); - const int queueCount = queue(SessionManager::projectOrder(pro), stepIds, + const int queueCount = queue(ProjectManager::projectOrder(pro), stepIds, ConfigSelection::Active, rc); if (rc->target()->activeBuildConfiguration()) rc->target()->activeBuildConfiguration()->restrictNextBuild(nullptr); diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index 9bf59d6bba8..18f89b5968a 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -185,7 +185,7 @@ void BuildSettingsWidget::currentIndexChanged(int index) { auto buildConfiguration = qobject_cast<BuildConfiguration *>( m_target->buildConfigurationModel()->projectConfigurationAt(index)); - SessionManager::setActiveBuildConfiguration(m_target, buildConfiguration, SetActive::Cascade); + m_target->setActiveBuildConfiguration(buildConfiguration, SetActive::Cascade); } void BuildSettingsWidget::updateActiveConfiguration() @@ -222,7 +222,7 @@ void BuildSettingsWidget::createConfiguration(const BuildInfo &info_) return; m_target->addBuildConfiguration(bc); - SessionManager::setActiveBuildConfiguration(m_target, bc, SetActive::Cascade); + m_target->setActiveBuildConfiguration(bc, SetActive::Cascade); } QString BuildSettingsWidget::uniqueName(const QString & name) @@ -292,7 +292,7 @@ void BuildSettingsWidget::cloneConfiguration() bc->setBuildDirectory(makeUniquelyNumbered(buildDirectory, isBuildDirOk)); } m_target->addBuildConfiguration(bc); - SessionManager::setActiveBuildConfiguration(m_target, bc, SetActive::Cascade); + m_target->setActiveBuildConfiguration(bc, SetActive::Cascade); } void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfiguration) diff --git a/src/plugins/projectexplorer/buildsystem.cpp b/src/plugins/projectexplorer/buildsystem.cpp index 0a2c2f3a85d..4316bba9102 100644 --- a/src/plugins/projectexplorer/buildsystem.cpp +++ b/src/plugins/projectexplorer/buildsystem.cpp @@ -7,9 +7,9 @@ #include "extracompiler.h" #include "projectexplorer.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "runconfiguration.h" #include "runcontrol.h" -#include "session.h" #include "target.h" #include <coreplugin/messagemanager.h> @@ -64,7 +64,7 @@ BuildSystem::BuildSystem(Target *target) connect(&d->m_delayedParsingTimer, &QTimer::timeout, this, [this] { - if (SessionManager::hasProject(project())) + if (ProjectManager::hasProject(project())) triggerParsing(); else requestDelayedParse(); diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index 7ecbd990697..fb9b8f44d66 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -5,8 +5,8 @@ #include "project.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projecttree.h" -#include "session.h" #include <utils/qtcassert.h> #include <utils/filesearch.h> @@ -23,7 +23,7 @@ CurrentProjectFind::CurrentProjectFind() { connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, this, &CurrentProjectFind::handleProjectChanged); - connect(SessionManager::instance(), &SessionManager::projectDisplayNameChanged, + connect(ProjectManager::instance(), &ProjectManager::projectDisplayNameChanged, this, [this](ProjectExplorer::Project *p) { if (p == ProjectTree::currentProject()) emit displayNameChanged(); @@ -64,7 +64,7 @@ FileIterator *CurrentProjectFind::files(const QStringList &nameFilters, QTC_ASSERT(additionalParameters.isValid(), return new FileListIterator(FilePaths(), QList<QTextCodec *>())); const FilePath projectFile = FilePath::fromVariant(additionalParameters); - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { if (project && projectFile == project->projectFilePath()) return filesForProjects(nameFilters, exclusionFilters, {project}); } @@ -87,7 +87,7 @@ void CurrentProjectFind::handleProjectChanged() void CurrentProjectFind::recheckEnabled(Core::SearchResult *search) { const FilePath projectFile = FilePath::fromVariant(getAdditionalParameters(search)); - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { if (projectFile == project->projectFilePath()) { search->setSearchAgainEnabled(true); return; diff --git a/src/plugins/projectexplorer/dependenciespanel.cpp b/src/plugins/projectexplorer/dependenciespanel.cpp index 1799126a5b9..c08ae7b523b 100644 --- a/src/plugins/projectexplorer/dependenciespanel.cpp +++ b/src/plugins/projectexplorer/dependenciespanel.cpp @@ -5,6 +5,7 @@ #include "project.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "session.h" #include <coreplugin/icore.h> @@ -32,19 +33,18 @@ DependenciesModel::DependenciesModel(Project *project, QObject *parent) { resetModel(); - SessionManager *sessionManager = SessionManager::instance(); - connect(sessionManager, &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, &DependenciesModel::resetModel); - connect(sessionManager, &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, &DependenciesModel::resetModel); - connect(sessionManager, &SessionManager::sessionLoaded, + connect(SessionManager::instance(), &SessionManager::sessionLoaded, this, &DependenciesModel::resetModel); } void DependenciesModel::resetModel() { beginResetModel(); - m_projects = SessionManager::projects(); + m_projects = ProjectManager::projects(); m_projects.removeAll(m_project); Utils::sort(m_projects, [](Project *a, Project *b) { return a->displayName() < b->displayName(); @@ -77,7 +77,7 @@ QVariant DependenciesModel::data(const QModelIndex &index, int role) const case Qt::ToolTipRole: return p->projectFilePath().toUserOutput(); case Qt::CheckStateRole: - return SessionManager::hasDependency(m_project, p) ? Qt::Checked : Qt::Unchecked; + return ProjectManager::hasDependency(m_project, p) ? Qt::Checked : Qt::Unchecked; case Qt::DecorationRole: return Utils::FileIconProvider::icon(p->projectFilePath()); default: @@ -92,7 +92,7 @@ bool DependenciesModel::setData(const QModelIndex &index, const QVariant &value, const auto c = static_cast<Qt::CheckState>(value.toInt()); if (c == Qt::Checked) { - if (SessionManager::addDependency(m_project, p)) { + if (ProjectManager::addDependency(m_project, p)) { emit dataChanged(index, index); return true; } else { @@ -100,8 +100,8 @@ bool DependenciesModel::setData(const QModelIndex &index, const QVariant &value, Tr::tr("This would create a circular dependency.")); } } else if (c == Qt::Unchecked) { - if (SessionManager::hasDependency(m_project, p)) { - SessionManager::removeDependency(m_project, p); + if (ProjectManager::hasDependency(m_project, p)) { + ProjectManager::removeDependency(m_project, p); emit dataChanged(index, index); return true; } @@ -215,9 +215,9 @@ DependenciesWidget::DependenciesWidget(Project *project, QWidget *parent) : Proj m_cascadeSetActiveCheckBox = new QCheckBox; m_cascadeSetActiveCheckBox->setText(Tr::tr("Synchronize configuration")); m_cascadeSetActiveCheckBox->setToolTip(Tr::tr("Synchronize active kit, build, and deploy configuration between projects.")); - m_cascadeSetActiveCheckBox->setChecked(SessionManager::isProjectConfigurationCascading()); + m_cascadeSetActiveCheckBox->setChecked(ProjectManager::isProjectConfigurationCascading()); connect(m_cascadeSetActiveCheckBox, &QCheckBox::toggled, - SessionManager::instance(), &SessionManager::setProjectConfigurationCascading); + ProjectManager::instance(), &ProjectManager::setProjectConfigurationCascading); layout->addWidget(m_cascadeSetActiveCheckBox, 1, 0, 2, 1); } diff --git a/src/plugins/projectexplorer/editorconfiguration.cpp b/src/plugins/projectexplorer/editorconfiguration.cpp index fc3933d7344..ff99bc25e83 100644 --- a/src/plugins/projectexplorer/editorconfiguration.cpp +++ b/src/plugins/projectexplorer/editorconfiguration.cpp @@ -5,7 +5,7 @@ #include "project.h" #include "projectexplorertr.h" -#include "session.h" +#include "projectmanager.h" #include <utils/algorithm.h> @@ -88,7 +88,7 @@ EditorConfiguration::EditorConfiguration() : d(std::make_unique<EditorConfigurat // if setCurrentDelegate is 0 values are read from *this prefs d->m_defaultCodeStyle->setCurrentDelegate(TextEditorSettings::codeStyle()); - connect(SessionManager::instance(), &SessionManager::aboutToRemoveProject, + connect(ProjectManager::instance(), &ProjectManager::aboutToRemoveProject, this, &EditorConfiguration::slotAboutToRemoveProject); } @@ -263,7 +263,7 @@ void EditorConfiguration::setUseGlobalSettings(bool use) const QList<Core::IEditor *> editors = Core::DocumentModel::editorsForOpenedDocuments(); for (Core::IEditor *editor : editors) { if (auto widget = TextEditorWidget::fromEditor(editor)) { - Project *project = SessionManager::projectForFile(editor->document()->filePath()); + Project *project = ProjectManager::projectForFile(editor->document()->filePath()); if (project && project->editorConfiguration() == this) switchSettings(widget); } @@ -399,7 +399,7 @@ TabSettings actualTabSettings(const Utils::FilePath &file, { if (baseTextdocument) return baseTextdocument->tabSettings(); - if (Project *project = SessionManager::projectForFile(file)) + if (Project *project = ProjectManager::projectForFile(file)) return project->editorConfiguration()->codeStyle()->tabSettings(); return TextEditorSettings::codeStyle()->tabSettings(); } diff --git a/src/plugins/projectexplorer/extracompiler.cpp b/src/plugins/projectexplorer/extracompiler.cpp index ffa0c494e9c..ccf2971774c 100644 --- a/src/plugins/projectexplorer/extracompiler.cpp +++ b/src/plugins/projectexplorer/extracompiler.cpp @@ -5,7 +5,7 @@ #include "buildmanager.h" #include "kitinformation.h" -#include "session.h" +#include "projectmanager.h" #include "target.h" #include <coreplugin/editormanager/editormanager.h> @@ -63,7 +63,7 @@ ExtraCompiler::ExtraCompiler(const Project *project, const FilePath &source, connect(BuildManager::instance(), &BuildManager::buildStateChanged, this, &ExtraCompiler::onTargetsBuilt); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, [this](Project *project) { if (project == d->project) deleteLater(); diff --git a/src/plugins/projectexplorer/fileinsessionfinder.cpp b/src/plugins/projectexplorer/fileinsessionfinder.cpp index 78f75ce1d52..d8df6c74306 100644 --- a/src/plugins/projectexplorer/fileinsessionfinder.cpp +++ b/src/plugins/projectexplorer/fileinsessionfinder.cpp @@ -4,7 +4,7 @@ #include "fileinsessionfinder.h" #include "project.h" -#include "session.h" +#include "projectmanager.h" #include <utils/fileinprojectfinder.h> @@ -30,12 +30,12 @@ private: FileInSessionFinder::FileInSessionFinder() { - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, [this](const Project *p) { invalidateFinder(); connect(p, &Project::fileListChanged, this, &FileInSessionFinder::invalidateFinder); }); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, [this](const Project *p) { invalidateFinder(); p->disconnect(this); @@ -45,11 +45,11 @@ FileInSessionFinder::FileInSessionFinder() FilePaths FileInSessionFinder::doFindFile(const FilePath &filePath) { if (!m_finderIsUpToDate) { - m_finder.setProjectDirectory(SessionManager::startupProject() - ? SessionManager::startupProject()->projectDirectory() + m_finder.setProjectDirectory(ProjectManager::startupProject() + ? ProjectManager::startupProject()->projectDirectory() : FilePath()); FilePaths allFiles; - for (const Project * const p : SessionManager::projects()) + for (const Project * const p : ProjectManager::projects()) allFiles << p->files(Project::SourceFiles); m_finder.setProjectFiles(allFiles); m_finderIsUpToDate = true; diff --git a/src/plugins/projectexplorer/filesinallprojectsfind.cpp b/src/plugins/projectexplorer/filesinallprojectsfind.cpp index 720cfbabae8..0f9d6c40e25 100644 --- a/src/plugins/projectexplorer/filesinallprojectsfind.cpp +++ b/src/plugins/projectexplorer/filesinallprojectsfind.cpp @@ -5,7 +5,7 @@ #include "project.h" #include "projectexplorertr.h" -#include "session.h" +#include "projectmanager.h" #include <coreplugin/editormanager/editormanager.h> #include <utils/algorithm.h> @@ -52,7 +52,7 @@ Utils::FileIterator *FilesInAllProjectsFind::files(const QStringList &nameFilter const QVariant &additionalParameters) const { Q_UNUSED(additionalParameters) - const QSet<FilePath> dirs = Utils::transform<QSet>(SessionManager::projects(), [](Project *p) { + const QSet<FilePath> dirs = Utils::transform<QSet>(ProjectManager::projects(), [](Project *p) { return p->projectFilePath().parentDir(); }); return new SubDirFileIterator(FilePaths(dirs.constBegin(), dirs.constEnd()), diff --git a/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp b/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp index 024044d7a0a..ec55e3218fd 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp @@ -8,8 +8,8 @@ #include "../projectexplorerconstants.h" #include "../projectexplorertr.h" #include "../projectnodes.h" +#include "../projectmanager.h" #include "../projecttree.h" -#include "../session.h" #include <coreplugin/coreconstants.h> #include <coreplugin/iversioncontrol.h> @@ -209,7 +209,7 @@ Node *JsonSummaryPage::findWizardContextNode(Node *contextNode) const // Static cast from void * to avoid qobject_cast (which needs a valid object) in value(). auto project = static_cast<Project *>(m_wizard->value(Constants::PROJECT_POINTER).value<void *>()); - if (SessionManager::projects().contains(project) && project->rootProjectNode()) { + if (ProjectManager::projects().contains(project) && project->rootProjectNode()) { const FilePath path = FilePath::fromVariant(m_wizard->value(Constants::PREFERRED_PROJECT_NODE_PATH)); contextNode = project->rootProjectNode()->findNode([path](const Node *n) { return path == n->filePath(); diff --git a/src/plugins/projectexplorer/kitchooser.cpp b/src/plugins/projectexplorer/kitchooser.cpp index 14c848da740..9e45cacd7dd 100644 --- a/src/plugins/projectexplorer/kitchooser.cpp +++ b/src/plugins/projectexplorer/kitchooser.cpp @@ -6,7 +6,7 @@ #include "kitmanager.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" -#include "session.h" +#include "projectmanager.h" #include "target.h" #include <coreplugin/icore.h> @@ -88,7 +88,7 @@ void KitChooser::populate() const Id lastKit = Id::fromSetting(ICore::settings()->value(lastKitKey)); bool didActivate = false; - if (Target *target = SessionManager::startupTarget()) { + if (Target *target = ProjectManager::startupTarget()) { Kit *kit = target->kit(); if (m_kitPredicate(kit)) { QString display = Tr::tr("Kit of Active Project: %1").arg(kitText(kit)); diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index b169697cd8c..af9fdf5c50b 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -13,8 +13,8 @@ #include "projectexplorerconstants.h" #include "projectexplorericons.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "runconfiguration.h" -#include "session.h" #include "target.h" #include <utils/algorithm.h> @@ -253,9 +253,9 @@ public: explicit ProjectListView(QWidget *parent = nullptr) : SelectorView(parent) { const auto model = new GenericModel(this); - model->rebuild(transform<QList<QObject *>>(SessionManager::projects(), + model->rebuild(transform<QList<QObject *>>(ProjectManager::projects(), [](Project *p) { return p; })); - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, [this, model](Project *project) { const GenericItem *projectItem = model->addItemForObject(project); QFontMetrics fn(font()); @@ -264,7 +264,7 @@ public: setOptimalWidth(width); restoreCurrentIndex(); }); - connect(SessionManager::instance(), &SessionManager::aboutToRemoveProject, + connect(ProjectManager::instance(), &ProjectManager::aboutToRemoveProject, this, [this, model](const Project *project) { GenericItem * const item = model->itemForObject(project); if (!item) @@ -272,7 +272,7 @@ public: model->destroyItem(item); resetOptimalWidth(); }); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, [this, model](const Project *project) { const GenericItem * const item = model->itemForObject(project); if (item) @@ -288,7 +288,7 @@ public: this, [model](const QModelIndex &index) { const GenericItem * const item = model->itemForIndex(index); if (item && item->object()) - SessionManager::setStartupProject(qobject_cast<Project *>(item->object())); + ProjectManager::setStartupProject(qobject_cast<Project *>(item->object())); }); } @@ -296,7 +296,7 @@ private: void restoreCurrentIndex() { const GenericItem * const itemForStartupProject - = theModel()->itemForObject(SessionManager::startupProject()); + = theModel()->itemForObject(ProjectManager::startupProject()); if (itemForStartupProject) setCurrentIndex(theModel()->indexForItem(itemForStartupProject)); } @@ -696,22 +696,22 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi m_listWidgets[RUN]->viewport()->setAttribute(Qt::WA_Hover); // Validate state: At this point the session is still empty! - Project *startup = SessionManager::startupProject(); + Project *startup = ProjectManager::startupProject(); QTC_CHECK(!startup); - QTC_CHECK(SessionManager::projects().isEmpty()); + QTC_CHECK(ProjectManager::projects().isEmpty()); connect(m_summaryLabel, &QLabel::linkActivated, this, &MiniProjectTargetSelector::switchToProjectsMode); - SessionManager *sessionManager = SessionManager::instance(); - connect(sessionManager, &SessionManager::startupProjectChanged, + ProjectManager *sessionManager = ProjectManager::instance(); + connect(sessionManager, &ProjectManager::startupProjectChanged, this, &MiniProjectTargetSelector::changeStartupProject); - connect(sessionManager, &SessionManager::projectAdded, + connect(sessionManager, &ProjectManager::projectAdded, this, &MiniProjectTargetSelector::projectAdded); - connect(sessionManager, &SessionManager::projectRemoved, + connect(sessionManager, &ProjectManager::projectRemoved, this, &MiniProjectTargetSelector::projectRemoved); - connect(sessionManager, &SessionManager::projectDisplayNameChanged, + connect(sessionManager, &ProjectManager::projectDisplayNameChanged, this, &MiniProjectTargetSelector::updateActionAndSummary); // for icon changes: @@ -720,17 +720,17 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi connect(m_listWidgets[TARGET], &GenericListWidget::changeActiveProjectConfiguration, this, [this](QObject *pc) { - SessionManager::setActiveTarget(m_project, static_cast<Target *>(pc), SetActive::Cascade); + m_project->setActiveTarget(static_cast<Target *>(pc), SetActive::Cascade); }); connect(m_listWidgets[BUILD], &GenericListWidget::changeActiveProjectConfiguration, this, [this](QObject *pc) { - SessionManager::setActiveBuildConfiguration(m_project->activeTarget(), - static_cast<BuildConfiguration *>(pc), SetActive::Cascade); + m_project->activeTarget()->setActiveBuildConfiguration( + static_cast<BuildConfiguration *>(pc), SetActive::Cascade); }); connect(m_listWidgets[DEPLOY], &GenericListWidget::changeActiveProjectConfiguration, this, [this](QObject *pc) { - SessionManager::setActiveDeployConfiguration(m_project->activeTarget(), - static_cast<DeployConfiguration *>(pc), SetActive::Cascade); + m_project->activeTarget()->setActiveDeployConfiguration( + static_cast<DeployConfiguration *>(pc), SetActive::Cascade); }); connect(m_listWidgets[RUN], &GenericListWidget::changeActiveProjectConfiguration, this, [this](QObject *pc) { @@ -881,7 +881,7 @@ void MiniProjectTargetSelector::doLayout(bool keepSize) onlySummary = true; } else { if (visibleLineCount < 3) { - if (Utils::anyOf(SessionManager::projects(), &Project::needsConfiguration)) + if (Utils::anyOf(ProjectManager::projects(), &Project::needsConfiguration)) visibleLineCount = 3; } if (visibleLineCount) @@ -1126,7 +1126,7 @@ void MiniProjectTargetSelector::removedRunConfiguration(RunConfiguration *rc, bo void MiniProjectTargetSelector::updateProjectListVisible() { - int count = SessionManager::projects().size(); + int count = ProjectManager::projects().size(); bool visible = count > 1; m_projectListWidget->setVisible(visible); @@ -1139,7 +1139,7 @@ void MiniProjectTargetSelector::updateProjectListVisible() void MiniProjectTargetSelector::updateTargetListVisible() { int maxCount = 0; - for (Project *p : SessionManager::projects()) + for (Project *p : ProjectManager::projects()) maxCount = qMax(p->targets().size(), maxCount); bool visible = maxCount > 1; @@ -1152,7 +1152,7 @@ void MiniProjectTargetSelector::updateTargetListVisible() void MiniProjectTargetSelector::updateBuildListVisible() { int maxCount = 0; - for (Project *p : SessionManager::projects()) { + for (Project *p : ProjectManager::projects()) { const QList<Target *> targets = p->targets(); for (Target *t : targets) maxCount = qMax(t->buildConfigurations().size(), maxCount); @@ -1168,7 +1168,7 @@ void MiniProjectTargetSelector::updateBuildListVisible() void MiniProjectTargetSelector::updateDeployListVisible() { int maxCount = 0; - for (Project *p : SessionManager::projects()) { + for (Project *p : ProjectManager::projects()) { const QList<Target *> targets = p->targets(); for (Target *t : targets) maxCount = qMax(t->deployConfigurations().size(), maxCount); @@ -1184,7 +1184,7 @@ void MiniProjectTargetSelector::updateDeployListVisible() void MiniProjectTargetSelector::updateRunListVisible() { int maxCount = 0; - for (Project *p : SessionManager::projects()) { + for (Project *p : ProjectManager::projects()) { const QList<Target *> targets = p->targets(); for (Target *t : targets) maxCount = qMax(t->runConfigurations().size(), maxCount); @@ -1460,10 +1460,10 @@ void MiniProjectTargetSelector::updateActionAndSummary() ? Icons::DESKTOP_DEVICE.icon() : style()->standardIcon(QStyle::SP_ComputerIcon); - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); if (project) { projectName = project->displayName(); - for (Project *p : SessionManager::projects()) { + for (Project *p : ProjectManager::projects()) { if (p != project && p->displayName() == projectName) { fileName = project->projectFilePath().toUserOutput(); break; @@ -1515,7 +1515,7 @@ void MiniProjectTargetSelector::updateActionAndSummary() void MiniProjectTargetSelector::updateSummary() { QString summary; - if (Project *startupProject = SessionManager::startupProject()) { + if (Project *startupProject = ProjectManager::startupProject()) { if (!m_projectListWidget->isVisibleTo(this)) summary.append(Tr::tr("Project: <b>%1</b><br/>").arg(startupProject->displayName())); if (Target *activeTarget = startupProject->activeTarget()) { diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index fbd4f9e28fd..84f5363cd11 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -14,10 +14,10 @@ #include "projectexplorer.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectnodes.h" #include "runconfiguration.h" #include "runconfigurationaspects.h" -#include "session.h" #include "target.h" #include "taskhub.h" #include "userfileaccessor.h" @@ -273,7 +273,7 @@ void Project::addTarget(std::unique_ptr<Target> &&t) // check activeTarget: if (!activeTarget()) - SessionManager::setActiveTarget(this, pointer, SetActive::Cascade); + setActiveTarget(pointer, SetActive::Cascade); } Target *Project::addTargetForDefaultKit() @@ -309,7 +309,7 @@ bool Project::removeTarget(Target *target) auto keep = take(d->m_targets, target); if (target == d->m_activeTarget) { Target *newActiveTarget = (d->m_targets.size() == 0 ? nullptr : d->m_targets.at(0).get()); - SessionManager::setActiveTarget(this, newActiveTarget, SetActive::Cascade); + setActiveTarget(newActiveTarget, SetActive::Cascade); } emit removedTarget(target); @@ -326,7 +326,7 @@ Target *Project::activeTarget() const return d->m_activeTarget; } -void Project::setActiveTarget(Target *target) +void Project::setActiveTargetHelper(Target *target) { if (d->m_activeTarget == target) return; @@ -414,6 +414,29 @@ Target *Project::target(Kit *k) const return findOrDefault(d->m_targets, equal(&Target::kit, k)); } +void Project::setActiveTarget(Target *target, SetActive cascade) +{ + if (isShuttingDown()) + return; + + setActiveTargetHelper(target); + + if (!target) // never cascade setting no target + return; + + if (cascade != SetActive::Cascade || !ProjectManager::isProjectConfigurationCascading()) + return; + + Utils::Id kitId = target->kit()->id(); + for (Project *otherProject : ProjectManager::projects()) { + if (otherProject == this) + continue; + if (Target *otherTarget = Utils::findOrDefault(otherProject->targets(), + [kitId](Target *t) { return t->kit()->id() == kitId; })) + otherProject->setActiveTargetHelper(otherTarget); + } +} + Tasks Project::projectIssues(const Kit *k) const { Tasks result; @@ -445,12 +468,12 @@ bool Project::copySteps(Target *sourceTarget, Target *newTarget) sourceBc->buildSystem()->name())); newTarget->addBuildConfiguration(newBc); if (sourceTarget->activeBuildConfiguration() == sourceBc) - SessionManager::setActiveBuildConfiguration(newTarget, newBc, SetActive::NoCascade); + newTarget->setActiveBuildConfiguration(newBc, SetActive::NoCascade); } if (!newTarget->activeBuildConfiguration()) { QList<BuildConfiguration *> bcs = newTarget->buildConfigurations(); if (!bcs.isEmpty()) - SessionManager::setActiveBuildConfiguration(newTarget, bcs.first(), SetActive::NoCascade); + newTarget->setActiveBuildConfiguration(bcs.first(), SetActive::NoCascade); } for (DeployConfiguration *sourceDc : sourceTarget->deployConfigurations()) { @@ -462,12 +485,12 @@ bool Project::copySteps(Target *sourceTarget, Target *newTarget) newDc->setDisplayName(sourceDc->displayName()); newTarget->addDeployConfiguration(newDc); if (sourceTarget->activeDeployConfiguration() == sourceDc) - SessionManager::setActiveDeployConfiguration(newTarget, newDc, SetActive::NoCascade); + newTarget->setActiveDeployConfiguration(newDc, SetActive::NoCascade); } if (!newTarget->activeBuildConfiguration()) { QList<DeployConfiguration *> dcs = newTarget->deployConfigurations(); if (!dcs.isEmpty()) - SessionManager::setActiveDeployConfiguration(newTarget, dcs.first(), SetActive::NoCascade); + newTarget->setActiveDeployConfiguration(dcs.first(), SetActive::NoCascade); } for (RunConfiguration *sourceRc : sourceTarget->runConfigurations()) { @@ -1435,8 +1458,7 @@ void ProjectExplorerPlugin::testProject_multipleBuildConfigs() Target * const target = theProject.project()->activeTarget(); QVERIFY(target); QCOMPARE(target->buildConfigurations().size(), 6); - SessionManager::setActiveBuildConfiguration(target, target->buildConfigurations().at(1), - SetActive::Cascade); + target->setActiveBuildConfiguration(target->buildConfigurations().at(1), SetActive::Cascade); BuildSystem * const bs = theProject.project()->activeTarget()->buildSystem(); QVERIFY(bs); QCOMPARE(bs, target->activeBuildConfiguration()->buildSystem()); @@ -1452,12 +1474,12 @@ void ProjectExplorerPlugin::testProject_multipleBuildConfigs() } QVERIFY(!bs->isWaitingForParse() && !bs->isParsing()); - QCOMPARE(SessionManager::startupProject(), theProject.project()); + QCOMPARE(ProjectManager::startupProject(), theProject.project()); QCOMPARE(ProjectTree::currentProject(), theProject.project()); QVERIFY(EditorManager::openEditor(projectDir.pathAppended("main.cpp"))); QVERIFY(ProjectTree::currentNode()); ProjectTree::instance()->expandAll(); - SessionManager::closeAllProjects(); // QTCREATORBUG-25655 + ProjectManager::closeAllProjects(); // QTCREATORBUG-25655 } #endif // WITH_TESTS diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index ed336b5f7f3..ebf38a688d4 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -36,6 +36,7 @@ class ProjectImporter; class ProjectNode; class ProjectPrivate; class Target; +enum class SetActive : int; // Documentation inside. class PROJECTEXPLORER_EXPORT Project : public QObject @@ -89,6 +90,8 @@ public: Target *activeTarget() const; Target *target(Utils::Id id) const; Target *target(Kit *k) const; + void setActiveTarget(Target *target, SetActive cascade); + virtual Tasks projectIssues(const Kit *k) const; static bool copySteps(Target *sourceTarget, Target *newTarget); @@ -226,7 +229,7 @@ private: void removeProjectLanguage(Utils::Id id); void handleSubTreeChanged(FolderNode *node); - void setActiveTarget(Target *target); + void setActiveTargetHelper(Target *target); friend class ContainerNode; ProjectPrivate *d; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index a260d211ab2..8842b1f1cab 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -338,7 +338,7 @@ static BuildConfiguration *currentBuildConfiguration() static Target *activeTarget() { - const Project * const project = SessionManager::startupProject(); + const Project * const project = ProjectManager::startupProject(); return project ? project->activeTarget() : nullptr; } @@ -668,7 +668,8 @@ public: RemoveTaskHandler m_removeTaskHandler; ConfigTaskHandler m_configTaskHandler{Task::compilerMissingTask(), Constants::KITS_SETTINGS_PAGE_ID}; - SessionManager m_sessionManager; + SessionManager m_sessionBase; + ProjectManager m_sessionManager; AppOutputPane m_outputPane; ProjectTree m_projectTree; @@ -835,33 +836,33 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(&dd->m_welcomePage, &ProjectWelcomePage::manageSessions, dd, &ProjectExplorerPluginPrivate::showSessionManager); - SessionManager *sessionManager = &dd->m_sessionManager; - connect(sessionManager, &SessionManager::projectAdded, + ProjectManager *sessionManager = &dd->m_sessionManager; + connect(sessionManager, &ProjectManager::projectAdded, this, &ProjectExplorerPlugin::fileListChanged); - connect(sessionManager, &SessionManager::aboutToRemoveProject, + connect(sessionManager, &ProjectManager::aboutToRemoveProject, dd, &ProjectExplorerPluginPrivate::invalidateProject); - connect(sessionManager, &SessionManager::projectRemoved, + connect(sessionManager, &ProjectManager::projectRemoved, this, &ProjectExplorerPlugin::fileListChanged); - connect(sessionManager, &SessionManager::projectAdded, + connect(sessionManager, &ProjectManager::projectAdded, dd, &ProjectExplorerPluginPrivate::projectAdded); - connect(sessionManager, &SessionManager::projectRemoved, + connect(sessionManager, &ProjectManager::projectRemoved, dd, &ProjectExplorerPluginPrivate::projectRemoved); - connect(sessionManager, &SessionManager::projectDisplayNameChanged, + connect(sessionManager, &ProjectManager::projectDisplayNameChanged, dd, &ProjectExplorerPluginPrivate::projectDisplayNameChanged); - connect(sessionManager, &SessionManager::dependencyChanged, + connect(sessionManager, &ProjectManager::dependencyChanged, dd, &ProjectExplorerPluginPrivate::updateActions); - connect(sessionManager, &SessionManager::sessionLoaded, + connect(SessionManager::instance(), &SessionManager::sessionLoaded, dd, &ProjectExplorerPluginPrivate::updateActions); - connect(sessionManager, &SessionManager::sessionLoaded, + connect(SessionManager::instance(), &SessionManager::sessionLoaded, dd, &ProjectExplorerPluginPrivate::updateWelcomePage); - connect(sessionManager, &SessionManager::sessionLoaded, + connect(SessionManager::instance(), &SessionManager::sessionLoaded, dd, &ProjectExplorerPluginPrivate::loadSesssionTasks); - connect(sessionManager, &SessionManager::projectAdded, dd, [](ProjectExplorer::Project *project) { + connect(sessionManager, &ProjectManager::projectAdded, dd, [](ProjectExplorer::Project *project) { dd->m_allProjectDirectoriesFilter.addDirectory(project->projectDirectory()); }); connect(sessionManager, - &SessionManager::projectRemoved, + &ProjectManager::projectRemoved, dd, [](ProjectExplorer::Project *project) { dd->m_allProjectDirectoriesFilter.removeDirectory(project->projectDirectory()); @@ -904,7 +905,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er ICore::addPreCloseListener([]() -> bool { return coreAboutToClose(); }); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, &dd->m_outputPane, &AppOutputPane::projectRemoved); // ProjectPanelFactories @@ -1346,7 +1347,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er // without a project loaded. connect(generatorContainer->menu(), &QMenu::aboutToShow, [menu = generatorContainer->menu()] { menu->clear(); - if (Project * const project = SessionManager::startupProject()) { + if (Project * const project = ProjectManager::startupProject()) { for (const auto &generator : project->allGenerators()) { menu->addAction(generator.second, [project, id = generator.first] { project->runGenerator(id); @@ -1660,7 +1661,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er dd, &ProjectExplorerPluginPrivate::savePersistentSettings); connect(EditorManager::instance(), &EditorManager::autoSaved, this, [] { if (!dd->m_shuttingDown && !SessionManager::loadingSession()) - SessionManager::save(); + ProjectManager::save(); }); connect(qApp, &QApplication::applicationStateChanged, this, [](Qt::ApplicationState state) { if (!dd->m_shuttingDown && state == Qt::ApplicationActive) @@ -1765,20 +1766,20 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(dd->m_loadAction, &QAction::triggered, dd, &ProjectExplorerPluginPrivate::loadAction); connect(dd->m_buildProjectOnlyAction, &QAction::triggered, dd, [] { - BuildManager::buildProjectWithoutDependencies(SessionManager::startupProject()); + BuildManager::buildProjectWithoutDependencies(ProjectManager::startupProject()); }); connect(dd->m_buildAction, &QAction::triggered, dd, [] { - BuildManager::buildProjectWithDependencies(SessionManager::startupProject()); + BuildManager::buildProjectWithDependencies(ProjectManager::startupProject()); }); connect(dd->m_buildProjectForAllConfigsAction, &QAction::triggered, dd, [] { - BuildManager::buildProjectWithDependencies(SessionManager::startupProject(), + BuildManager::buildProjectWithDependencies(ProjectManager::startupProject(), ConfigSelection::All); }); connect(dd->m_buildActionContextMenu, &QAction::triggered, dd, [] { BuildManager::buildProjectWithoutDependencies(ProjectTree::currentProject()); }); connect(dd->m_buildForRunConfigAction, &QAction::triggered, dd, [] { - const Project * const project = SessionManager::startupProject(); + const Project * const project = ProjectManager::startupProject(); QTC_ASSERT(project, return); const Target * const target = project->activeTarget(); QTC_ASSERT(target, return); @@ -1793,20 +1794,20 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er BuildManager::buildProjectWithDependencies(ProjectTree::currentProject()); }); connect(dd->m_buildSessionAction, &QAction::triggered, dd, [] { - BuildManager::buildProjects(SessionManager::projectOrder(), ConfigSelection::Active); + BuildManager::buildProjects(ProjectManager::projectOrder(), ConfigSelection::Active); }); connect(dd->m_buildSessionForAllConfigsAction, &QAction::triggered, dd, [] { - BuildManager::buildProjects(SessionManager::projectOrder(), ConfigSelection::All); + BuildManager::buildProjects(ProjectManager::projectOrder(), ConfigSelection::All); }); connect(dd->m_rebuildProjectOnlyAction, &QAction::triggered, dd, [] { - BuildManager::rebuildProjectWithoutDependencies(SessionManager::startupProject()); + BuildManager::rebuildProjectWithoutDependencies(ProjectManager::startupProject()); }); connect(dd->m_rebuildAction, &QAction::triggered, dd, [] { - BuildManager::rebuildProjectWithDependencies(SessionManager::startupProject(), + BuildManager::rebuildProjectWithDependencies(ProjectManager::startupProject(), ConfigSelection::Active); }); connect(dd->m_rebuildProjectForAllConfigsAction, &QAction::triggered, dd, [] { - BuildManager::rebuildProjectWithDependencies(SessionManager::startupProject(), + BuildManager::rebuildProjectWithDependencies(ProjectManager::startupProject(), ConfigSelection::All); }); connect(dd->m_rebuildActionContextMenu, &QAction::triggered, dd, [] { @@ -1817,32 +1818,32 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er ConfigSelection::Active); }); connect(dd->m_rebuildSessionAction, &QAction::triggered, dd, [] { - BuildManager::rebuildProjects(SessionManager::projectOrder(), ConfigSelection::Active); + BuildManager::rebuildProjects(ProjectManager::projectOrder(), ConfigSelection::Active); }); connect(dd->m_rebuildSessionForAllConfigsAction, &QAction::triggered, dd, [] { - BuildManager::rebuildProjects(SessionManager::projectOrder(), ConfigSelection::All); + BuildManager::rebuildProjects(ProjectManager::projectOrder(), ConfigSelection::All); }); connect(dd->m_deployProjectOnlyAction, &QAction::triggered, dd, [] { - BuildManager::deployProjects({SessionManager::startupProject()}); + BuildManager::deployProjects({ProjectManager::startupProject()}); }); connect(dd->m_deployAction, &QAction::triggered, dd, [] { - BuildManager::deployProjects(SessionManager::projectOrder(SessionManager::startupProject())); + BuildManager::deployProjects(ProjectManager::projectOrder(ProjectManager::startupProject())); }); connect(dd->m_deployActionContextMenu, &QAction::triggered, dd, [] { BuildManager::deployProjects({ProjectTree::currentProject()}); }); connect(dd->m_deploySessionAction, &QAction::triggered, dd, [] { - BuildManager::deployProjects(SessionManager::projectOrder()); + BuildManager::deployProjects(ProjectManager::projectOrder()); }); connect(dd->m_cleanProjectOnlyAction, &QAction::triggered, dd, [] { - BuildManager::cleanProjectWithoutDependencies(SessionManager::startupProject()); + BuildManager::cleanProjectWithoutDependencies(ProjectManager::startupProject()); }); connect(dd->m_cleanAction, &QAction::triggered, dd, [] { - BuildManager::cleanProjectWithDependencies(SessionManager::startupProject(), + BuildManager::cleanProjectWithDependencies(ProjectManager::startupProject(), ConfigSelection::Active); }); connect(dd->m_cleanProjectForAllConfigsAction, &QAction::triggered, dd, [] { - BuildManager::cleanProjectWithDependencies(SessionManager::startupProject(), + BuildManager::cleanProjectWithDependencies(ProjectManager::startupProject(), ConfigSelection::All); }); connect(dd->m_cleanActionContextMenu, &QAction::triggered, dd, [] { @@ -1853,10 +1854,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er ConfigSelection::Active); }); connect(dd->m_cleanSessionAction, &QAction::triggered, dd, [] { - BuildManager::cleanProjects(SessionManager::projectOrder(), ConfigSelection::Active); + BuildManager::cleanProjects(ProjectManager::projectOrder(), ConfigSelection::Active); }); connect(dd->m_cleanSessionForAllConfigsAction, &QAction::triggered, dd, [] { - BuildManager::cleanProjects(SessionManager::projectOrder(), ConfigSelection::All); + BuildManager::cleanProjects(ProjectManager::projectOrder(), ConfigSelection::All); }); connect(dd->m_runAction, &QAction::triggered, dd, [] { runStartupProject(Constants::NORMAL_RUN_MODE); }); @@ -1921,7 +1922,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(dd->m_setStartupProjectAction, &QAction::triggered, dd, &ProjectExplorerPluginPrivate::handleSetStartupProject); connect(dd->m_closeProjectFilesActionFileMenu, &QAction::triggered, - dd, [] { dd->closeAllFilesInProject(SessionManager::projects().first()); }); + dd, [] { dd->closeAllFilesInProject(ProjectManager::projects().first()); }); connect(dd->m_closeProjectFilesActionContextMenu, &QAction::triggered, dd, [] { dd->closeAllFilesInProject(ProjectTree::currentProject()); }); connect(dd->m_projectTreeCollapseAllAction, &QAction::triggered, @@ -1966,7 +1967,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er Project::addVariablesToMacroExpander("ActiveProject:", "Active project", expander, - &SessionManager::startupProject); + &ProjectManager::startupProject); EnvironmentProvider::addProvider( {"ActiveProject:BuildConfig:Env", Tr::tr("Active build environment of the active project."), [] { if (const BuildConfiguration * const bc = activeBuildConfiguration()) @@ -2033,7 +2034,7 @@ void ProjectExplorerPluginPrivate::unloadProjectContextMenu() void ProjectExplorerPluginPrivate::unloadOtherProjectsContextMenu() { if (Project *currentProject = ProjectTree::currentProject()) { - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); QTC_ASSERT(!projects.isEmpty(), return); for (Project *p : projects) { @@ -2046,7 +2047,7 @@ void ProjectExplorerPluginPrivate::unloadOtherProjectsContextMenu() void ProjectExplorerPluginPrivate::handleUnloadProject() { - QList<Project *> projects = SessionManager::projects(); + QList<Project *> projects = ProjectManager::projects(); QTC_ASSERT(!projects.isEmpty(), return); ProjectExplorerPlugin::unloadProject(projects.first()); @@ -2073,7 +2074,7 @@ void ProjectExplorerPlugin::unloadProject(Project *project) dd->addToRecentProjects(project->projectFilePath(), project->displayName()); - SessionManager::removeProject(project); + ProjectManager::removeProject(project); dd->updateActions(); } @@ -2082,7 +2083,7 @@ void ProjectExplorerPluginPrivate::closeAllProjects() if (!EditorManager::closeAllDocuments()) return; // Action has been cancelled - SessionManager::closeAllProjects(); + ProjectManager::closeAllProjects(); updateActions(); ModeManager::activateMode(Core::Constants::MODE_WELCOME); @@ -2196,7 +2197,7 @@ ExtensionSystem::IPlugin::ShutdownFlag ProjectExplorerPlugin::aboutToShutdown() dd, &ProjectExplorerPluginPrivate::currentModeChanged); ProjectTree::aboutToShutDown(); ToolChainManager::aboutToShutdown(); - SessionManager::closeAllProjects(); + ProjectManager::closeAllProjects(); dd->m_shuttingDown = true; @@ -2229,7 +2230,7 @@ void ProjectExplorerPlugin::openNewProjectDialog() void ProjectExplorerPluginPrivate::showSessionManager() { - SessionManager::save(); + ProjectManager::save(); SessionDialog sessionDialog(ICore::dialogParent()); sessionDialog.setAutoLoadSession(dd->m_projectExplorerSettings.autorestoreLastSession); sessionDialog.exec(); @@ -2245,7 +2246,7 @@ void ProjectExplorerPluginPrivate::setStartupProject(Project *project) { if (!project) return; - SessionManager::setStartupProject(project); + ProjectManager::setStartupProject(project); updateActions(); } @@ -2256,7 +2257,7 @@ bool ProjectExplorerPluginPrivate::closeAllFilesInProject(const Project *project Utils::erase(openFiles, [project](const DocumentModel::Entry *entry) { return entry->pinned || !project->isKnownFile(entry->filePath()); }); - for (const Project * const otherProject : SessionManager::projects()) { + for (const Project * const otherProject : ProjectManager::projects()) { if (otherProject == project) continue; Utils::erase(openFiles, [otherProject](const DocumentModel::Entry *entry) { @@ -2272,10 +2273,10 @@ void ProjectExplorerPluginPrivate::savePersistentSettings() return; if (!SessionManager::loadingSession()) { - for (Project *pro : SessionManager::projects()) + for (Project *pro : ProjectManager::projects()) pro->saveSettings(); - SessionManager::save(); + ProjectManager::save(); } QtcSettings *s = ICore::settings(); @@ -2369,7 +2370,7 @@ ProjectExplorerPlugin::OpenProjectResult ProjectExplorerPlugin::openProject(cons if (!project) return result; dd->addToRecentProjects(filePath, project->displayName()); - SessionManager::setStartupProject(project); + ProjectManager::setStartupProject(project); return result; } @@ -2421,11 +2422,11 @@ ProjectExplorerPlugin::OpenProjectResult ProjectExplorerPlugin::openProjects(con QTC_ASSERT(!fileName.isEmpty(), continue); const FilePath filePath = fileName.absoluteFilePath(); - Project *found = Utils::findOrDefault(SessionManager::projects(), + Project *found = Utils::findOrDefault(ProjectManager::projects(), Utils::equal(&Project::projectFilePath, filePath)); if (found) { alreadyOpen.append(found); - SessionManager::reportProjectLoadingProgress(); + ProjectManager::reportProjectLoadingProgress(); continue; } @@ -2440,7 +2441,7 @@ ProjectExplorerPlugin::OpenProjectResult ProjectExplorerPlugin::openProjects(con if (restoreResult == Project::RestoreResult::Ok) { connect(pro, &Project::fileListChanged, m_instance, &ProjectExplorerPlugin::fileListChanged); - SessionManager::addProject(pro); + ProjectManager::addProject(pro); openedPro += pro; } else { if (restoreResult == Project::RestoreResult::Error) @@ -2454,7 +2455,7 @@ ProjectExplorerPlugin::OpenProjectResult ProjectExplorerPlugin::openProjects(con .arg(mt.name())); } if (filePaths.size() > 1) - SessionManager::reportProjectLoadingProgress(); + ProjectManager::reportProjectLoadingProgress(); } dd->updateActions(); @@ -2595,7 +2596,7 @@ void ProjectExplorerPluginPrivate::restoreSession() } // !arguments.isEmpty() // Restore latest session or what was passed on the command line - SessionManager::loadSession(!dd->m_sessionToRestoreAtStartup.isEmpty() + ProjectManager::loadSession(!dd->m_sessionToRestoreAtStartup.isEmpty() ? dd->m_sessionToRestoreAtStartup : QString(), true); // update welcome page @@ -2733,7 +2734,7 @@ RecentProjectsEntries ProjectExplorerPluginPrivate::recentProjects() const void ProjectExplorerPluginPrivate::updateActions() { - const Project *const project = SessionManager::startupProject(); + const Project *const project = ProjectManager::startupProject(); const Project *const currentProject = ProjectTree::currentProject(); // for context menu actions const QPair<bool, QString> buildActionState = buildSettingsEnabled(project); @@ -2744,10 +2745,10 @@ void ProjectExplorerPluginPrivate::updateActions() const QString projectName = project ? project->displayName() : QString(); const QString projectNameContextMenu = currentProject ? currentProject->displayName() : QString(); - m_unloadAction->setParameter(SessionManager::projects().size() == 1 ? projectName : QString()); + m_unloadAction->setParameter(ProjectManager::projects().size() == 1 ? projectName : QString()); m_unloadActionContextMenu->setParameter(projectNameContextMenu); m_unloadOthersActionContextMenu->setParameter(projectNameContextMenu); - m_closeProjectFilesActionFileMenu->setParameter(SessionManager::projects().size() == 1 + m_closeProjectFilesActionFileMenu->setParameter(ProjectManager::projects().size() == 1 ? projectName : QString()); m_closeProjectFilesActionContextMenu->setParameter(projectNameContextMenu); @@ -2792,7 +2793,7 @@ void ProjectExplorerPluginPrivate::updateActions() m_setStartupProjectAction->setParameter(projectNameContextMenu); m_setStartupProjectAction->setVisible(currentProject != project); - const bool hasDependencies = SessionManager::projectOrder(currentProject).size() > 1; + const bool hasDependencies = ProjectManager::projectOrder(currentProject).size() > 1; m_buildActionContextMenu->setVisible(hasDependencies); m_rebuildActionContextMenu->setVisible(hasDependencies); m_cleanActionContextMenu->setVisible(hasDependencies); @@ -2819,17 +2820,17 @@ void ProjectExplorerPluginPrivate::updateActions() m_cleanProjectOnlyAction->setToolTip(buildActionState.second); // Session actions - m_closeAllProjects->setEnabled(SessionManager::hasProjects()); - m_unloadAction->setEnabled(SessionManager::projects().size() <= 1); - m_unloadAction->setEnabled(SessionManager::projects().size() == 1); - m_unloadActionContextMenu->setEnabled(SessionManager::hasProjects()); - m_unloadOthersActionContextMenu->setEnabled(SessionManager::projects().size() >= 2); - m_closeProjectFilesActionFileMenu->setEnabled(SessionManager::projects().size() == 1); - m_closeProjectFilesActionContextMenu->setEnabled(SessionManager::hasProjects()); + m_closeAllProjects->setEnabled(ProjectManager::hasProjects()); + m_unloadAction->setEnabled(ProjectManager::projects().size() <= 1); + m_unloadAction->setEnabled(ProjectManager::projects().size() == 1); + m_unloadActionContextMenu->setEnabled(ProjectManager::hasProjects()); + m_unloadOthersActionContextMenu->setEnabled(ProjectManager::projects().size() >= 2); + m_closeProjectFilesActionFileMenu->setEnabled(ProjectManager::projects().size() == 1); + m_closeProjectFilesActionContextMenu->setEnabled(ProjectManager::hasProjects()); ActionContainer *aci = ActionManager::actionContainer(Constants::M_UNLOADPROJECTS); - aci->menu()->menuAction()->setEnabled(SessionManager::hasProjects()); + aci->menu()->menuAction()->setEnabled(ProjectManager::hasProjects()); m_buildSessionAction->setEnabled(buildSessionState.first); m_buildSessionForAllConfigsAction->setEnabled(buildSessionState.first); @@ -2847,7 +2848,7 @@ void ProjectExplorerPluginPrivate::updateActions() m_cancelBuildAction->setEnabled(BuildManager::isBuilding()); - const bool hasProjects = SessionManager::hasProjects(); + const bool hasProjects = ProjectManager::hasProjects(); m_projectSelectorAction->setEnabled(hasProjects); m_projectSelectorActionMenu->setEnabled(hasProjects); m_projectSelectorActionQuick->setEnabled(hasProjects); @@ -2968,7 +2969,7 @@ void ProjectExplorerPluginPrivate::runProjectContextMenu(RunConfiguration *rc) static bool hasBuildSettings(const Project *pro) { - return Utils::anyOf(SessionManager::projectOrder(pro), [](const Project *project) { + return Utils::anyOf(ProjectManager::projectOrder(pro), [](const Project *project) { return project && project->activeTarget() && project->activeTarget()->activeBuildConfiguration(); @@ -2980,7 +2981,7 @@ static QPair<bool, QString> subprojectEnabledState(const Project *pro) QPair<bool, QString> result; result.first = true; - const QList<Project *> &projects = SessionManager::projectOrder(pro); + const QList<Project *> &projects = ProjectManager::projectOrder(pro); for (const Project *project : projects) { if (project && project->activeTarget() && project->activeTarget()->activeBuildConfiguration() @@ -3022,7 +3023,7 @@ QPair<bool, QString> ProjectExplorerPluginPrivate::buildSettingsEnabledForSessio { QPair<bool, QString> result; result.first = true; - if (!SessionManager::hasProjects()) { + if (!ProjectManager::hasProjects()) { result.first = false; result.second = Tr::tr("No project loaded."); } else if (BuildManager::isBuilding()) { @@ -3079,7 +3080,7 @@ void ProjectExplorerPlugin::handleCommandLineArguments(const QStringList &argume static bool hasDeploySettings(Project *pro) { - return Utils::anyOf(SessionManager::projectOrder(pro), [](Project *project) { + return Utils::anyOf(ProjectManager::projectOrder(pro), [](Project *project) { return project->activeTarget() && project->activeTarget()->activeDeployConfiguration(); }); @@ -3097,7 +3098,7 @@ void ProjectExplorerPlugin::runProject(Project *pro, Id mode, const bool forceSk void ProjectExplorerPlugin::runStartupProject(Id runMode, bool forceSkipDeploy) { - runProject(SessionManager::startupProject(), runMode, forceSkipDeploy); + runProject(ProjectManager::startupProject(), runMode, forceSkipDeploy); } void ProjectExplorerPlugin::runRunConfiguration(RunConfiguration *rc, @@ -3158,7 +3159,7 @@ void ProjectExplorerPluginPrivate::projectAdded(Project *pro) void ProjectExplorerPluginPrivate::projectRemoved(Project *pro) { Q_UNUSED(pro) - m_projectsMode.setEnabled(SessionManager::hasProjects()); + m_projectsMode.setEnabled(ProjectManager::hasProjects()); } void ProjectExplorerPluginPrivate::projectDisplayNameChanged(Project *pro) @@ -3169,7 +3170,7 @@ void ProjectExplorerPluginPrivate::projectDisplayNameChanged(Project *pro) void ProjectExplorerPluginPrivate::updateDeployActions() { - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); bool enableDeployActions = project && !BuildManager::isBuilding(project) @@ -3188,7 +3189,7 @@ void ProjectExplorerPluginPrivate::updateDeployActions() enableDeployActionsContextMenu = false; } - bool hasProjects = SessionManager::hasProjects(); + bool hasProjects = ProjectManager::hasProjects(); m_deployAction->setEnabled(enableDeployActions); @@ -3204,7 +3205,7 @@ void ProjectExplorerPluginPrivate::updateDeployActions() && !project->activeTarget()->activeBuildConfiguration()->isEnabled(); }; - if (Utils::anyOf(SessionManager::projectOrder(nullptr), hasDisabledBuildConfiguration)) + if (Utils::anyOf(ProjectManager::projectOrder(nullptr), hasDisabledBuildConfiguration)) enableDeploySessionAction = false; } if (!hasProjects || !hasDeploySettings(nullptr) || BuildManager::isBuilding()) @@ -3216,7 +3217,7 @@ void ProjectExplorerPluginPrivate::updateDeployActions() bool ProjectExplorerPlugin::canRunStartupProject(Id runMode, QString *whyNot) { - Project *project = SessionManager::startupProject(); + Project *project = ProjectManager::startupProject(); if (!project) { if (whyNot) *whyNot = Tr::tr("No active project."); @@ -3321,7 +3322,7 @@ void ProjectExplorerPluginPrivate::updateUnloadProjectMenu() ActionContainer *aci = ActionManager::actionContainer(Constants::M_UNLOADPROJECTS); QMenu *menu = aci->menu(); menu->clear(); - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { QAction *action = menu->addAction(Tr::tr("Close Project \"%1\"").arg(project->displayName())); connect(action, &QAction::triggered, [project] { ProjectExplorerPlugin::unloadProject(project); } ); @@ -4117,7 +4118,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu() void ProjectExplorerPluginPrivate::setSession(QAction *action) { - SessionManager::loadSession(action->data().toString()); + ProjectManager::loadSession(action->data().toString()); } void ProjectExplorerPlugin::setProjectExplorerSettings(const ProjectExplorerSettings &pes) @@ -4375,7 +4376,7 @@ void AllProjectFilesFilter::restoreState(const QJsonObject &object) RunConfigurationLocatorFilter::RunConfigurationLocatorFilter() { - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &RunConfigurationLocatorFilter::targetListUpdated); targetListUpdated(); @@ -4384,7 +4385,7 @@ RunConfigurationLocatorFilter::RunConfigurationLocatorFilter() void RunConfigurationLocatorFilter::prepareSearch(const QString &entry) { m_result.clear(); - const Target *target = SessionManager::startupTarget(); + const Target *target = ProjectManager::startupTarget(); if (!target) return; for (auto rc : target->runConfigurations()) { @@ -4403,12 +4404,12 @@ QList<Core::LocatorFilterEntry> RunConfigurationLocatorFilter::matchesFor( void RunConfigurationLocatorFilter::targetListUpdated() { - setEnabled(SessionManager::startupProject()); // at least one project opened + setEnabled(ProjectManager::startupProject()); // at least one project opened } static RunConfiguration *runConfigurationForDisplayName(const QString &displayName) { - const Project *project = SessionManager::instance()->startupProject(); + const Project *project = ProjectManager::instance()->startupProject(); if (!project) return nullptr; const QList<RunConfiguration *> runconfigs = project->activeTarget()->runConfigurations(); @@ -4461,7 +4462,7 @@ void SwitchToRunConfigurationLocatorFilter::accept(const LocatorFilterEntry &sel if (!toSwitchTo) return; - SessionManager::startupTarget()->setActiveRunConfiguration(toSwitchTo); + ProjectManager::startupTarget()->setActiveRunConfiguration(toSwitchTo); QTimer::singleShot(200, this, [displayName = selection.displayName] { if (auto ks = ICore::mainWindow()->findChild<QWidget *>("KitSelector.Button")) { Utils::ToolTip::show(ks->mapToGlobal(QPoint{25, 25}), diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp index 53d3eb15781..134db6ea484 100644 --- a/src/plugins/projectexplorer/projectfilewizardextension.cpp +++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp @@ -7,10 +7,10 @@ #include "project.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectnodes.h" #include "projecttree.h" #include "projectwizardpage.h" -#include "session.h" #include <coreplugin/icore.h> @@ -27,7 +27,6 @@ #include <utils/stringutils.h> #include <QDebug> -#include <QFileInfo> #include <QMessageBox> #include <QPointer> #include <QTextCursor> @@ -134,7 +133,7 @@ Node *ProjectFileWizardExtension::findWizardContextNode(Node *contextNode, Proje const FilePath &path) { if (contextNode && !ProjectTree::hasNode(contextNode)) { - if (SessionManager::projects().contains(project) && project->rootProjectNode()) { + if (ProjectManager::projects().contains(project) && project->rootProjectNode()) { contextNode = project->rootProjectNode()->findNode([path](const Node *n) { return path == n->filePath(); }); diff --git a/src/plugins/projectexplorer/projectmanager.h b/src/plugins/projectexplorer/projectmanager.h index 9d54eba572c..ad3e402992a 100644 --- a/src/plugins/projectexplorer/projectmanager.h +++ b/src/plugins/projectexplorer/projectmanager.h @@ -6,20 +6,35 @@ #include "projectexplorer_export.h" #include <QString> +#include <QObject> + +namespace Core { class IEditor; } #include <functional> namespace Utils { class FilePath; +using FilePaths = QList<FilePath>; class MimeType; } // Utils namespace ProjectExplorer { +class BuildSystem; class Project; +class RunConfiguration; +class Target; -class PROJECTEXPLORER_EXPORT ProjectManager +class PROJECTEXPLORER_EXPORT ProjectManager : public QObject { + Q_OBJECT + +public: + ProjectManager(); + ~ProjectManager() override; + + static ProjectManager *instance(); + public: static bool canOpenProjectForMimeType(const Utils::MimeType &mt); static Project *openProject(const Utils::MimeType &mt, const Utils::FilePath &fileName); @@ -32,7 +47,64 @@ public: }); } + static bool save(); + static void closeAllProjects(); + + static void addProject(Project *project); + static void removeProject(Project *project); + static void removeProjects(const QList<Project *> &remove); + + static void setStartupProject(Project *startupProject); + + static QList<Project *> dependencies(const Project *project); + static bool hasDependency(const Project *project, const Project *depProject); + static bool canAddDependency(const Project *project, const Project *depProject); + static bool addDependency(Project *project, Project *depProject); + static void removeDependency(Project *project, Project *depProject); + + static bool isProjectConfigurationCascading(); + static void setProjectConfigurationCascading(bool b); + + static Project *startupProject(); + static Target *startupTarget(); + static BuildSystem *startupBuildSystem(); + static RunConfiguration *startupRunConfiguration(); + + static const QList<Project *> projects(); + static bool hasProjects(); + static bool hasProject(Project *p); + + // NBS rewrite projectOrder (dependency management) + static QList<Project *> projectOrder(const Project *project = nullptr); + + static Project *projectForFile(const Utils::FilePath &fileName); + static Project *projectWithProjectFilePath(const Utils::FilePath &filePath); + + static Utils::FilePaths projectsForSessionName(const QString &session); + + static void reportProjectLoadingProgress(); + + static bool loadSession(const QString &session, bool initial = false); + +signals: + void targetAdded(ProjectExplorer::Target *target); + void targetRemoved(ProjectExplorer::Target *target); + void projectAdded(ProjectExplorer::Project *project); + void aboutToRemoveProject(ProjectExplorer::Project *project); + void projectDisplayNameChanged(ProjectExplorer::Project *project); + void projectRemoved(ProjectExplorer::Project *project); + + void startupProjectChanged(ProjectExplorer::Project *project); + + void dependencyChanged(ProjectExplorer::Project *a, ProjectExplorer::Project *b); + + // for tests only + void projectFinishedParsing(ProjectExplorer::Project *project); + private: + static void configureEditor(Core::IEditor *editor, const QString &fileName); + static void configureEditors(Project *project); + static void registerProjectCreator(const QString &mimeType, const std::function<Project *(const Utils::FilePath &)> &); }; diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index 0a761f91e62..d318de8cc34 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -8,6 +8,7 @@ #include "projectnodes.h" #include "projectexplorer.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projecttree.h" #include "session.h" #include "target.h" @@ -174,14 +175,15 @@ FlatModel::FlatModel(QObject *parent) ProjectTree *tree = ProjectTree::instance(); connect(tree, &ProjectTree::subtreeChanged, this, &FlatModel::updateSubtree); - SessionManager *sm = SessionManager::instance(); - connect(sm, &SessionManager::projectRemoved, this, &FlatModel::handleProjectRemoved); - connect(sm, &SessionManager::aboutToLoadSession, this, &FlatModel::loadExpandData); - connect(sm, &SessionManager::aboutToSaveSession, this, &FlatModel::saveExpandData); - connect(sm, &SessionManager::projectAdded, this, &FlatModel::handleProjectAdded); - connect(sm, &SessionManager::startupProjectChanged, this, [this] { emit layoutChanged(); }); + ProjectManager *sm = ProjectManager::instance(); + SessionManager *sb = SessionManager::instance(); + connect(sm, &ProjectManager::projectRemoved, this, &FlatModel::handleProjectRemoved); + connect(sb, &SessionManager::aboutToLoadSession, this, &FlatModel::loadExpandData); + connect(sb, &SessionManager::aboutToSaveSession, this, &FlatModel::saveExpandData); + connect(sm, &ProjectManager::projectAdded, this, &FlatModel::handleProjectAdded); + connect(sm, &ProjectManager::startupProjectChanged, this, [this] { emit layoutChanged(); }); - for (Project *project : SessionManager::projects()) + for (Project *project : ProjectManager::projects()) handleProjectAdded(project); } @@ -234,7 +236,7 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const } case Qt::FontRole: { QFont font; - if (project == SessionManager::startupProject()) + if (project == ProjectManager::startupProject()) font.setBold(true); return font; } @@ -407,7 +409,7 @@ void FlatModel::updateSubtree(FolderNode *node) void FlatModel::rebuildModel() { - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); for (Project *project : projects) addOrRebuildProjectModel(project); } diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp index 18b03d3ae0e..5f81f473fe4 100644 --- a/src/plugins/projectexplorer/projecttree.cpp +++ b/src/plugins/projectexplorer/projecttree.cpp @@ -6,9 +6,9 @@ #include "project.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectnodes.h" #include "projecttreewidget.h" -#include "session.h" #include "target.h" #include <coreplugin/actionmanager/actioncontainer.h> @@ -53,11 +53,11 @@ ProjectTree::ProjectTree(QObject *parent) : QObject(parent) connect(qApp, &QApplication::focusChanged, this, &ProjectTree::update); - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, &ProjectTree::sessionAndTreeChanged); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, &ProjectTree::sessionAndTreeChanged); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &ProjectTree::sessionChanged); connect(this, &ProjectTree::subtreeChanged, this, &ProjectTree::treeChanged); } @@ -170,7 +170,7 @@ void ProjectTree::updateFromNode(Node *node) if (node) project = projectForNode(node); else - project = SessionManager::startupProject(); + project = ProjectManager::startupProject(); setCurrent(node, project); for (ProjectTreeWidget *widget : std::as_const(m_projectTreeWidgets)) @@ -224,7 +224,7 @@ void ProjectTree::sessionChanged() { if (m_currentProject) { Core::DocumentManager::setDefaultLocationForNewFiles(m_currentProject->projectDirectory()); - } else if (Project *project = SessionManager::startupProject()) { + } else if (Project *project = ProjectManager::startupProject()) { Core::DocumentManager::setDefaultLocationForNewFiles(project->projectDirectory()); updateFromNode(nullptr); // Make startup project current if there is no other current } else { @@ -300,7 +300,7 @@ void ProjectTree::updateFileWarning(Core::IDocument *document, const QString &te if (!infoBar->canInfoBeAdded(infoId)) return; const FilePath filePath = document->filePath(); - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); if (projects.isEmpty()) return; for (Project *project : projects) { @@ -394,7 +394,7 @@ void ProjectTree::applyTreeManager(FolderNode *folder, ConstructionPhase phase) bool ProjectTree::hasNode(const Node *node) { - return Utils::contains(SessionManager::projects(), [node](const Project *p) { + return Utils::contains(ProjectManager::projects(), [node](const Project *p) { if (!p) return false; if (p->containerNode() == node) @@ -409,7 +409,7 @@ bool ProjectTree::hasNode(const Node *node) void ProjectTree::forEachNode(const std::function<void(Node *)> &task) { - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); for (Project *project : projects) { if (ProjectNode *projectNode = project->rootProjectNode()) { task(projectNode); @@ -430,7 +430,7 @@ Project *ProjectTree::projectForNode(const Node *node) while (folder && folder->parentFolderNode()) folder = folder->parentFolderNode(); - return Utils::findOrDefault(SessionManager::projects(), [folder](const Project *pro) { + return Utils::findOrDefault(ProjectManager::projects(), [folder](const Project *pro) { return pro->containerNode() == folder; }); } @@ -438,7 +438,7 @@ Project *ProjectTree::projectForNode(const Node *node) Node *ProjectTree::nodeForFile(const FilePath &fileName) { Node *node = nullptr; - for (const Project *project : SessionManager::projects()) { + for (const Project *project : ProjectManager::projects()) { project->nodeForFilePath(fileName, [&](const Node *n) { if (!node || (!node->asFileNode() && n->asFileNode())) node = const_cast<Node *>(n); diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp index 65f38626fef..28c06e9254d 100644 --- a/src/plugins/projectexplorer/projecttreewidget.cpp +++ b/src/plugins/projectexplorer/projecttreewidget.cpp @@ -6,10 +6,10 @@ #include "project.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectmodels.h" #include "projectnodes.h" #include "projecttree.h" -#include "session.h" #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/command.h> @@ -343,7 +343,7 @@ Node *ProjectTreeWidget::nodeForFile(const FilePath &fileName) int bestNodeExpandCount = INT_MAX; // FIXME: Looks like this could be done with less cycles. - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { if (ProjectNode *projectNode = project->rootProjectNode()) { projectNode->forEachGenericNode([&](Node *node) { if (node->filePath() == fileName) { diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp index 156212a5041..5b392ea7a15 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.cpp +++ b/src/plugins/projectexplorer/projectwelcomepage.cpp @@ -7,6 +7,7 @@ #include "sessionmodel.h" #include "projectexplorer.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/command.h> @@ -324,7 +325,7 @@ public: if (expanded) { painter->setPen(textColor); painter->setFont(sizedFont(12, option.widget)); - const FilePaths projects = SessionManager::projectsForSessionName(sessionName); + const FilePaths projects = ProjectManager::projectsForSessionName(sessionName); int yy = firstBase + SESSION_LINE_HEIGHT - 3; QFontMetrics fm(option.widget->font()); for (const FilePath &projectPath : projects) { @@ -378,7 +379,7 @@ public: int h = SESSION_LINE_HEIGHT; QString sessionName = idx.data(Qt::DisplayRole).toString(); if (m_expandedSessions.contains(sessionName)) { - const FilePaths projects = SessionManager::projectsForSessionName(sessionName); + const FilePaths projects = ProjectManager::projectsForSessionName(sessionName); h += projects.size() * 40 + LINK_HEIGHT - 6; } return QSize(380, h + ItemGap); diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index afe2b45e7e7..e91dbf94feb 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -12,9 +12,9 @@ #include "projectexplorerconstants.h" #include "projectexplorertr.h" #include "projectimporter.h" +#include "projectmanager.h" #include "projectpanelfactory.h" #include "projectsettingswidget.h" -#include "session.h" #include "target.h" #include "targetsettingspanel.h" @@ -351,7 +351,7 @@ public: case Qt::FontRole: { QFont font; - font.setBold(m_project == SessionManager::startupProject()); + font.setBold(m_project == ProjectManager::startupProject()); return font; } @@ -391,7 +391,7 @@ public: if (role == ItemActivatedDirectlyRole) { // Someone selected the project using the combobox or similar. - SessionManager::setStartupProject(m_project); + ProjectManager::setStartupProject(m_project); m_currentChildIndex = 0; // Use some Target page by defaults m_targetsItem->setData(column, dat, ItemActivatedFromAboveRole); // And propagate downwards. announceChange(); @@ -545,18 +545,18 @@ public: m_projectSelection->showPopup(); }); - SessionManager *sessionManager = SessionManager::instance(); - connect(sessionManager, &SessionManager::projectAdded, + ProjectManager *sessionManager = ProjectManager::instance(); + connect(sessionManager, &ProjectManager::projectAdded, this, &ProjectWindowPrivate::registerProject); - connect(sessionManager, &SessionManager::aboutToRemoveProject, + connect(sessionManager, &ProjectManager::aboutToRemoveProject, this, &ProjectWindowPrivate::deregisterProject); - connect(sessionManager, &SessionManager::startupProjectChanged, + connect(sessionManager, &ProjectManager::startupProjectChanged, this, &ProjectWindowPrivate::startupProjectChanged); m_importBuild = new QPushButton(Tr::tr("Import Existing Build...")); connect(m_importBuild, &QPushButton::clicked, this, &ProjectWindowPrivate::handleImportBuild); - connect(sessionManager, &SessionManager::startupProjectChanged, this, [this](Project *project) { + connect(sessionManager, &ProjectManager::startupProjectChanged, this, [this](Project *project) { m_importBuild->setEnabled(project && project->projectImporter()); }); @@ -671,7 +671,7 @@ public: void projectSelected(int index) { Project *project = m_comboBoxModel.rootItem()->childAt(index)->m_projectItem->project(); - SessionManager::setStartupProject(project); + ProjectManager::setStartupProject(project); } ComboBoxItem *itemForProject(Project *project) const @@ -774,8 +774,8 @@ public: } } if (lastTarget && lastBc) { - SessionManager::setActiveBuildConfiguration(lastTarget, lastBc, SetActive::Cascade); - SessionManager::setActiveTarget(project, lastTarget, SetActive::Cascade); + lastTarget->setActiveBuildConfiguration(lastBc, SetActive::Cascade); + project->setActiveTarget(lastTarget, SetActive::Cascade); } } diff --git a/src/plugins/projectexplorer/projectwizardpage.cpp b/src/plugins/projectexplorer/projectwizardpage.cpp index 34dc0b9aaa5..a648eb0981f 100644 --- a/src/plugins/projectexplorer/projectwizardpage.cpp +++ b/src/plugins/projectexplorer/projectwizardpage.cpp @@ -5,8 +5,8 @@ #include "project.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectmodels.h" -#include "session.h" #include <coreplugin/icore.h> #include <coreplugin/iversioncontrol.h> @@ -463,7 +463,7 @@ void ProjectWizardPage::initializeProjectTree(Node *context, const FilePaths &pa TreeItem *root = m_model.rootItem(); root->removeChildren(); - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { if (ProjectNode *pn = project->rootProjectNode()) { if (kind == IWizardFactory::ProjectWizard) { if (AddNewTree *child = buildAddProjectTree(pn, paths.first(), context, &selector)) diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index b5f3f8e703e..cdb6d708c4d 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -12,10 +12,10 @@ #include "projectexplorer.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectnodes.h" #include "runconfigurationaspects.h" #include "runcontrol.h" -#include "session.h" #include "target.h" #include <coreplugin/icontext.h> @@ -33,7 +33,6 @@ #include <utils/utilsicons.h> #include <utils/variablechooser.h> -#include <QDir> #include <QHash> #include <QPushButton> #include <QTimer> @@ -313,7 +312,7 @@ void RunConfiguration::update() const bool isActive = target()->isActive() && target()->activeRunConfiguration() == this; - if (isActive && project() == SessionManager::startupProject()) + if (isActive && project() == ProjectManager::startupProject()) ProjectExplorerPlugin::updateRunActions(); } diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index bd8b30f2b7a..c1a3a75e3c2 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -291,11 +291,10 @@ void RunSettingsWidget::currentDeployConfigurationChanged(int index) if (m_ignoreChanges.isLocked()) return; if (index == -1) - SessionManager::setActiveDeployConfiguration(m_target, nullptr, SetActive::Cascade); + m_target->setActiveDeployConfiguration(nullptr, SetActive::Cascade); else - SessionManager::setActiveDeployConfiguration(m_target, - qobject_cast<DeployConfiguration *>(m_target->deployConfigurationModel()->projectConfigurationAt(index)), - SetActive::Cascade); + m_target->setActiveDeployConfiguration(qobject_cast<DeployConfiguration *>(m_target->deployConfigurationModel()->projectConfigurationAt(index)), + SetActive::Cascade); } void RunSettingsWidget::aboutToShowDeployMenu() @@ -309,7 +308,7 @@ void RunSettingsWidget::aboutToShowDeployMenu() if (!newDc) return; m_target->addDeployConfiguration(newDc); - SessionManager::setActiveDeployConfiguration(m_target, newDc, SetActive::Cascade); + m_target->setActiveDeployConfiguration(newDc, SetActive::Cascade); m_removeDeployToolButton->setEnabled(m_target->deployConfigurations().size() > 1); }); } diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index 6dcfd9a4619..3efbb76f9b9 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -11,6 +11,7 @@ #include "projectexplorer.h" #include "projectexplorerconstants.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectnodes.h" #include "target.h" @@ -65,11 +66,7 @@ class SessionManagerPrivate { public: void restoreValues(const PersistentSettingsReader &reader); - void restoreDependencies(const PersistentSettingsReader &reader); - void restoreStartupProject(const PersistentSettingsReader &reader); void restoreEditors(const PersistentSettingsReader &reader); - void restoreProjects(const FilePaths &fileList); - void askUserAboutFailedProjects(); void sessionLoadingProgress(); bool recursiveDependencyCheck(const FilePath &newDep, const FilePath &checkDep) const; @@ -80,31 +77,53 @@ public: static QString windowTitleAddition(const FilePath &filePath); static QString sessionTitle(const FilePath &filePath); - bool hasProjects() const { return !m_projects.isEmpty(); } - QString m_sessionName = QLatin1String(DEFAULT_SESSION); bool m_virginSession = true; bool m_loadingSession = false; - bool m_casadeSetActive = false; mutable QStringList m_sessions; mutable QHash<QString, QDateTime> m_sessionDateTimes; QHash<QString, QDateTime> m_lastActiveTimes; + QMap<QString, QVariant> m_values; + QFutureInterface<void> m_future; + PersistentSettingsWriter *m_writer = nullptr; +}; + +class ProjectManagerPrivate +{ +public: + void restoreDependencies(const PersistentSettingsReader &reader); + void restoreStartupProject(const PersistentSettingsReader &reader); + void restoreProjects(const FilePaths &fileList); + void askUserAboutFailedProjects(); + + bool recursiveDependencyCheck(const FilePath &newDep, const FilePath &checkDep) const; + FilePaths dependencies(const FilePath &proName) const; + FilePaths dependenciesOrder() const; + void dependencies(const FilePath &proName, FilePaths &result) const; + + static QString windowTitleAddition(const FilePath &filePath); + static QString sessionTitle(const FilePath &filePath); + + bool hasProjects() const { return !m_projects.isEmpty(); } + + bool m_casadeSetActive = false; + Project *m_startupProject = nullptr; QList<Project *> m_projects; FilePaths m_failedProjects; QMap<FilePath, FilePaths> m_depMap; - QMap<QString, QVariant> m_values; - QFutureInterface<void> m_future; - PersistentSettingsWriter *m_writer = nullptr; private: static QString locationInProject(const FilePath &filePath); }; -static SessionManager *m_instance = nullptr; -static SessionManagerPrivate *d = nullptr; +static ProjectManager *m_instance = nullptr; +static ProjectManagerPrivate *d = nullptr; + +static SessionManager *sb_instance = nullptr; +static SessionManagerPrivate *sb_d = nullptr; static QString projectFolderId(Project *pro) { @@ -113,56 +132,74 @@ static QString projectFolderId(Project *pro) const int PROJECT_SORT_VALUE = 100; -SessionManager::SessionManager(QObject *parent) : QObject(parent) +SessionManager::SessionManager() { - m_instance = this; - d = new SessionManagerPrivate; + sb_instance = this; + sb_d = new SessionManagerPrivate; connect(ModeManager::instance(), &ModeManager::currentModeChanged, this, &SessionManager::saveActiveMode); connect(ICore::instance(), &ICore::saveSettingsRequested, this, [] { QVariantMap times; - for (auto it = d->m_lastActiveTimes.cbegin(); it != d->m_lastActiveTimes.cend(); ++it) + for (auto it = sb_d->m_lastActiveTimes.cbegin(); it != sb_d->m_lastActiveTimes.cend(); ++it) times.insert(it.key(), it.value()); ICore::settings()->setValue(LAST_ACTIVE_TIMES_KEY, times); }); - connect(EditorManager::instance(), &EditorManager::editorCreated, - this, &SessionManager::configureEditor); - connect(this, &SessionManager::projectAdded, - EditorManager::instance(), &EditorManager::updateWindowTitles); - connect(this, &SessionManager::projectRemoved, - EditorManager::instance(), &EditorManager::updateWindowTitles); - connect(this, &SessionManager::projectDisplayNameChanged, - EditorManager::instance(), &EditorManager::updateWindowTitles); connect(EditorManager::instance(), &EditorManager::editorOpened, this, &SessionManager::markSessionFileDirty); connect(EditorManager::instance(), &EditorManager::editorsClosed, this, &SessionManager::markSessionFileDirty); - - EditorManager::setWindowTitleAdditionHandler(&SessionManagerPrivate::windowTitleAddition); - EditorManager::setSessionTitleHandler(&SessionManagerPrivate::sessionTitle); } SessionManager::~SessionManager() { + emit sb_instance->aboutToUnloadSession(sb_d->m_sessionName); + delete sb_d->m_writer; + delete sb_d; + sb_d = nullptr; +} + +ProjectManager::ProjectManager() +{ + m_instance = this; + d = new ProjectManagerPrivate; + + connect(EditorManager::instance(), &EditorManager::editorCreated, + this, &ProjectManager::configureEditor); + connect(this, &ProjectManager::projectAdded, + EditorManager::instance(), &EditorManager::updateWindowTitles); + connect(this, &ProjectManager::projectRemoved, + EditorManager::instance(), &EditorManager::updateWindowTitles); + connect(this, &ProjectManager::projectDisplayNameChanged, + EditorManager::instance(), &EditorManager::updateWindowTitles); + + EditorManager::setWindowTitleAdditionHandler(&ProjectManagerPrivate::windowTitleAddition); + EditorManager::setSessionTitleHandler(&ProjectManagerPrivate::sessionTitle); +} + +ProjectManager::~ProjectManager() +{ EditorManager::setWindowTitleAdditionHandler({}); EditorManager::setSessionTitleHandler({}); - emit m_instance->aboutToUnloadSession(d->m_sessionName); - delete d->m_writer; delete d; d = nullptr; } SessionManager *SessionManager::instance() { + return sb_instance; +} + +ProjectManager *ProjectManager::instance() +{ return m_instance; } bool SessionManager::isDefaultVirgin() { - return isDefaultSession(d->m_sessionName) && d->m_virginSession; + return isDefaultSession(sb_d->m_sessionName) && sb_d->m_virginSession; } bool SessionManager::isDefaultSession(const QString &session) @@ -176,7 +213,7 @@ void SessionManager::saveActiveMode(Id mode) setValue(QLatin1String("ActiveMode"), mode.toString()); } -bool SessionManagerPrivate::recursiveDependencyCheck(const FilePath &newDep, +bool ProjectManagerPrivate::recursiveDependencyCheck(const FilePath &newDep, const FilePath &checkDep) const { if (newDep == checkDep) @@ -198,7 +235,7 @@ bool SessionManagerPrivate::recursiveDependencyCheck(const FilePath &newDep, * filenames when saving. */ -QList<Project *> SessionManager::dependencies(const Project *project) +QList<Project *> ProjectManager::dependencies(const Project *project) { const FilePath proName = project->projectFilePath(); const FilePaths proDeps = d->m_depMap.value(proName); @@ -215,7 +252,7 @@ QList<Project *> SessionManager::dependencies(const Project *project) return projects; } -bool SessionManager::hasDependency(const Project *project, const Project *depProject) +bool ProjectManager::hasDependency(const Project *project, const Project *depProject) { const FilePath proName = project->projectFilePath(); const FilePath depName = depProject->projectFilePath(); @@ -224,7 +261,7 @@ bool SessionManager::hasDependency(const Project *project, const Project *depPro return proDeps.contains(depName); } -bool SessionManager::canAddDependency(const Project *project, const Project *depProject) +bool ProjectManager::canAddDependency(const Project *project, const Project *depProject) { const FilePath newDep = project->projectFilePath(); const FilePath checkDep = depProject->projectFilePath(); @@ -232,7 +269,7 @@ bool SessionManager::canAddDependency(const Project *project, const Project *dep return d->recursiveDependencyCheck(newDep, checkDep); } -bool SessionManager::addDependency(Project *project, Project *depProject) +bool ProjectManager::addDependency(Project *project, Project *depProject) { const FilePath proName = project->projectFilePath(); const FilePath depName = depProject->projectFilePath(); @@ -251,7 +288,7 @@ bool SessionManager::addDependency(Project *project, Project *depProject) return true; } -void SessionManager::removeDependency(Project *project, Project *depProject) +void ProjectManager::removeDependency(Project *project, Project *depProject) { const FilePath proName = project->projectFilePath(); const FilePath depName = depProject->projectFilePath(); @@ -265,109 +302,18 @@ void SessionManager::removeDependency(Project *project, Project *depProject) emit m_instance->dependencyChanged(project, depProject); } -bool SessionManager::isProjectConfigurationCascading() +bool ProjectManager::isProjectConfigurationCascading() { return d->m_casadeSetActive; } -void SessionManager::setProjectConfigurationCascading(bool b) +void ProjectManager::setProjectConfigurationCascading(bool b) { d->m_casadeSetActive = b; - markSessionFileDirty(); -} - -void SessionManager::setActiveTarget(Project *project, Target *target, SetActive cascade) -{ - QTC_ASSERT(project, return); - - if (project->isShuttingDown()) - return; - - project->setActiveTarget(target); - - if (!target) // never cascade setting no target - return; - - if (cascade != SetActive::Cascade || !d->m_casadeSetActive) - return; - - Utils::Id kitId = target->kit()->id(); - for (Project *otherProject : SessionManager::projects()) { - if (otherProject == project) - continue; - if (Target *otherTarget = Utils::findOrDefault(otherProject->targets(), - [kitId](Target *t) { return t->kit()->id() == kitId; })) - otherProject->setActiveTarget(otherTarget); - } -} - -void SessionManager::setActiveBuildConfiguration(Target *target, BuildConfiguration *bc, SetActive cascade) -{ - QTC_ASSERT(target, return); - QTC_ASSERT(target->project(), return); - - if (target->project()->isShuttingDown() || target->isShuttingDown()) - return; - - target->setActiveBuildConfiguration(bc); - - if (!bc) - return; - if (cascade != SetActive::Cascade || !d->m_casadeSetActive) - return; - - Utils::Id kitId = target->kit()->id(); - QString name = bc->displayName(); // We match on displayname - for (Project *otherProject : SessionManager::projects()) { - if (otherProject == target->project()) - continue; - Target *otherTarget = otherProject->activeTarget(); - if (!otherTarget || otherTarget->kit()->id() != kitId) - continue; - - for (BuildConfiguration *otherBc : otherTarget->buildConfigurations()) { - if (otherBc->displayName() == name) { - otherTarget->setActiveBuildConfiguration(otherBc); - break; - } - } - } -} - -void SessionManager::setActiveDeployConfiguration(Target *target, DeployConfiguration *dc, SetActive cascade) -{ - QTC_ASSERT(target, return); - QTC_ASSERT(target->project(), return); - - if (target->project()->isShuttingDown() || target->isShuttingDown()) - return; - - target->setActiveDeployConfiguration(dc); - - if (!dc) - return; - if (cascade != SetActive::Cascade || !d->m_casadeSetActive) - return; - - Utils::Id kitId = target->kit()->id(); - QString name = dc->displayName(); // We match on displayname - for (Project *otherProject : SessionManager::projects()) { - if (otherProject == target->project()) - continue; - Target *otherTarget = otherProject->activeTarget(); - if (!otherTarget || otherTarget->kit()->id() != kitId) - continue; - - for (DeployConfiguration *otherDc : otherTarget->deployConfigurations()) { - if (otherDc->displayName() == name) { - otherTarget->setActiveDeployConfiguration(otherDc); - break; - } - } - } + SessionManager::markSessionFileDirty(); } -void SessionManager::setStartupProject(Project *startupProject) +void ProjectManager::setStartupProject(Project *startupProject) { QTC_ASSERT((!startupProject && d->m_projects.isEmpty()) || (startupProject && d->m_projects.contains(startupProject)), return); @@ -385,17 +331,17 @@ void SessionManager::setStartupProject(Project *startupProject) emit m_instance->startupProjectChanged(startupProject); } -Project *SessionManager::startupProject() +Project *ProjectManager::startupProject() { return d->m_startupProject; } -Target *SessionManager::startupTarget() +Target *ProjectManager::startupTarget() { return d->m_startupProject ? d->m_startupProject->activeTarget() : nullptr; } -BuildSystem *SessionManager::startupBuildSystem() +BuildSystem *ProjectManager::startupBuildSystem() { Target *t = startupTarget(); return t ? t->buildSystem() : nullptr; @@ -407,19 +353,19 @@ BuildSystem *SessionManager::startupBuildSystem() */ -RunConfiguration *SessionManager::startupRunConfiguration() +RunConfiguration *ProjectManager::startupRunConfiguration() { Target *t = startupTarget(); return t ? t->activeRunConfiguration() : nullptr; } -void SessionManager::addProject(Project *pro) +void ProjectManager::addProject(Project *pro) { QTC_ASSERT(pro, return); QTC_CHECK(!pro->displayName().isEmpty()); QTC_CHECK(pro->id().isValid()); - d->m_virginSession = false; + sb_d->m_virginSession = false; QTC_ASSERT(!d->m_projects.contains(pro), return); d->m_projects.append(pro); @@ -451,27 +397,27 @@ void SessionManager::addProject(Project *pro) setStartupProject(pro); } -void SessionManager::removeProject(Project *project) +void ProjectManager::removeProject(Project *project) { - d->m_virginSession = false; + sb_d->m_virginSession = false; QTC_ASSERT(project, return); removeProjects({project}); } bool SessionManager::loadingSession() { - return d->m_loadingSession; + return sb_d->m_loadingSession; } -bool SessionManager::save() +bool ProjectManager::save() { - emit m_instance->aboutToSaveSession(); + emit sb_instance->aboutToSaveSession(); - const FilePath filePath = sessionNameToFileName(d->m_sessionName); + const FilePath filePath = SessionManager::sessionNameToFileName(sb_d->m_sessionName); QVariantMap data; // See the explanation at loadSession() for how we handle the implicit default session. - if (isDefaultVirgin()) { + if (SessionManager::isDefaultVirgin()) { if (filePath.exists()) { PersistentSettingsReader reader; if (!reader.load(filePath)) { @@ -522,25 +468,25 @@ bool SessionManager::save() data.insert(QLatin1String("EditorSettings"), EditorManager::saveState().toBase64()); } - const auto end = d->m_values.constEnd(); + const auto end = sb_d->m_values.constEnd(); QStringList keys; - for (auto it = d->m_values.constBegin(); it != end; ++it) { + for (auto it = sb_d->m_values.constBegin(); it != end; ++it) { data.insert(QLatin1String("value-") + it.key(), it.value()); keys << it.key(); } data.insert(QLatin1String("valueKeys"), keys); - if (!d->m_writer || d->m_writer->fileName() != filePath) { - delete d->m_writer; - d->m_writer = new PersistentSettingsWriter(filePath, "QtCreatorSession"); + if (!sb_d->m_writer || sb_d->m_writer->fileName() != filePath) { + delete sb_d->m_writer; + sb_d->m_writer = new PersistentSettingsWriter(filePath, "QtCreatorSession"); } - const bool result = d->m_writer->save(data, ICore::dialogParent()); + const bool result = sb_d->m_writer->save(data, ICore::dialogParent()); if (result) { - if (!isDefaultVirgin()) - d->m_sessionDateTimes.insert(activeSession(), QDateTime::currentDateTime()); + if (!SessionManager::isDefaultVirgin()) + sb_d->m_sessionDateTimes.insert(SessionManager::activeSession(), QDateTime::currentDateTime()); } else { QMessageBox::warning(ICore::dialogParent(), Tr::tr("Error while saving session"), - Tr::tr("Could not save session to file %1").arg(d->m_writer->fileName().toUserOutput())); + Tr::tr("Could not save session to file %1").arg(sb_d->m_writer->fileName().toUserOutput())); } return result; @@ -549,34 +495,34 @@ bool SessionManager::save() /*! Closes all projects */ -void SessionManager::closeAllProjects() +void ProjectManager::closeAllProjects() { removeProjects(projects()); } -const QList<Project *> SessionManager::projects() +const QList<Project *> ProjectManager::projects() { return d->m_projects; } -bool SessionManager::hasProjects() +bool ProjectManager::hasProjects() { return d->hasProjects(); } -bool SessionManager::hasProject(Project *p) +bool ProjectManager::hasProject(Project *p) { return d->m_projects.contains(p); } -FilePaths SessionManagerPrivate::dependencies(const FilePath &proName) const +FilePaths ProjectManagerPrivate::dependencies(const FilePath &proName) const { FilePaths result; dependencies(proName, result); return result; } -void SessionManagerPrivate::dependencies(const FilePath &proName, FilePaths &result) const +void ProjectManagerPrivate::dependencies(const FilePath &proName, FilePaths &result) const { const FilePaths depends = m_depMap.value(proName); @@ -587,17 +533,17 @@ void SessionManagerPrivate::dependencies(const FilePath &proName, FilePaths &res result.append(proName); } -QString SessionManagerPrivate::sessionTitle(const FilePath &filePath) +QString ProjectManagerPrivate::sessionTitle(const FilePath &filePath) { - if (SessionManager::isDefaultSession(d->m_sessionName)) { + if (SessionManager::isDefaultSession(sb_d->m_sessionName)) { if (filePath.isEmpty()) { // use single project's name if there is only one loaded. - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); if (projects.size() == 1) return projects.first()->displayName(); } } else { - QString sessionName = d->m_sessionName; + QString sessionName = sb_d->m_sessionName; if (sessionName.isEmpty()) sessionName = Tr::tr("Untitled"); return sessionName; @@ -605,8 +551,8 @@ QString SessionManagerPrivate::sessionTitle(const FilePath &filePath) return QString(); } -QString SessionManagerPrivate::locationInProject(const FilePath &filePath) { - const Project *project = SessionManager::projectForFile(filePath); +QString ProjectManagerPrivate::locationInProject(const FilePath &filePath) { + const Project *project = ProjectManager::projectForFile(filePath); if (!project) return QString(); @@ -625,12 +571,12 @@ QString SessionManagerPrivate::locationInProject(const FilePath &filePath) { return "(" + parentDir.toUserOutput() + " @ " + project->displayName() + ")"; } -QString SessionManagerPrivate::windowTitleAddition(const FilePath &filePath) +QString ProjectManagerPrivate::windowTitleAddition(const FilePath &filePath) { return filePath.isEmpty() ? QString() : locationInProject(filePath); } -FilePaths SessionManagerPrivate::dependenciesOrder() const +FilePaths ProjectManagerPrivate::dependenciesOrder() const { QList<QPair<FilePath, FilePaths>> unordered; FilePaths ordered; @@ -669,7 +615,7 @@ FilePaths SessionManagerPrivate::dependenciesOrder() const return ordered; } -QList<Project *> SessionManager::projectOrder(const Project *project) +QList<Project *> ProjectManager::projectOrder(const Project *project) { QList<Project *> result; @@ -691,13 +637,13 @@ QList<Project *> SessionManager::projectOrder(const Project *project) return result; } -Project *SessionManager::projectForFile(const FilePath &fileName) +Project *ProjectManager::projectForFile(const FilePath &fileName) { - if (Project * const project = Utils::findOrDefault(SessionManager::projects(), + if (Project * const project = Utils::findOrDefault(ProjectManager::projects(), [&fileName](const Project *p) { return p->isKnownFile(fileName); })) { return project; } - return Utils::findOrDefault(SessionManager::projects(), + return Utils::findOrDefault(ProjectManager::projects(), [&fileName](const Project *p) { for (const Target * const target : p->targets()) { for (const BuildConfiguration * const bc : target->buildConfigurations()) { @@ -709,13 +655,13 @@ Project *SessionManager::projectForFile(const FilePath &fileName) }); } -Project *SessionManager::projectWithProjectFilePath(const FilePath &filePath) +Project *ProjectManager::projectWithProjectFilePath(const FilePath &filePath) { - return Utils::findOrDefault(SessionManager::projects(), + return Utils::findOrDefault(ProjectManager::projects(), [&filePath](const Project *p) { return p->projectFilePath() == filePath; }); } -void SessionManager::configureEditor(IEditor *editor, const QString &fileName) +void ProjectManager::configureEditor(IEditor *editor, const QString &fileName) { if (auto textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) { Project *project = projectForFile(Utils::FilePath::fromString(fileName)); @@ -725,7 +671,7 @@ void SessionManager::configureEditor(IEditor *editor, const QString &fileName) } } -void SessionManager::configureEditors(Project *project) +void ProjectManager::configureEditors(Project *project) { const QList<IDocument *> documents = DocumentModel::openedDocuments(); for (IDocument *document : documents) { @@ -740,7 +686,7 @@ void SessionManager::configureEditors(Project *project) } } -void SessionManager::removeProjects(const QList<Project *> &remove) +void ProjectManager::removeProjects(const QList<Project *> &remove) { for (Project *pro : remove) emit m_instance->aboutToRemoveProject(pro); @@ -775,52 +721,52 @@ void SessionManager::removeProjects(const QList<Project *> &remove) void SessionManager::setValue(const QString &name, const QVariant &value) { - if (d->m_values.value(name) == value) + if (sb_d->m_values.value(name) == value) return; - d->m_values.insert(name, value); + sb_d->m_values.insert(name, value); } QVariant SessionManager::value(const QString &name) { - auto it = d->m_values.constFind(name); - return (it == d->m_values.constEnd()) ? QVariant() : *it; + auto it = sb_d->m_values.constFind(name); + return (it == sb_d->m_values.constEnd()) ? QVariant() : *it; } QString SessionManager::activeSession() { - return d->m_sessionName; + return sb_d->m_sessionName; } QStringList SessionManager::sessions() { - if (d->m_sessions.isEmpty()) { + if (sb_d->m_sessions.isEmpty()) { // We are not initialized yet, so do that now const FilePaths sessionFiles = ICore::userResourcePath().dirEntries({{"*qws"}}, QDir::Time | QDir::Reversed); const QVariantMap lastActiveTimes = ICore::settings()->value(LAST_ACTIVE_TIMES_KEY).toMap(); for (const FilePath &file : sessionFiles) { const QString &name = file.completeBaseName(); - d->m_sessionDateTimes.insert(name, file.lastModified()); + sb_d->m_sessionDateTimes.insert(name, file.lastModified()); const auto lastActiveTime = lastActiveTimes.find(name); - d->m_lastActiveTimes.insert(name, lastActiveTime != lastActiveTimes.end() + sb_d->m_lastActiveTimes.insert(name, lastActiveTime != lastActiveTimes.end() ? lastActiveTime->toDateTime() : file.lastModified()); if (name != QLatin1String(DEFAULT_SESSION)) - d->m_sessions << name; + sb_d->m_sessions << name; } - d->m_sessions.prepend(QLatin1String(DEFAULT_SESSION)); + sb_d->m_sessions.prepend(QLatin1String(DEFAULT_SESSION)); } - return d->m_sessions; + return sb_d->m_sessions; } QDateTime SessionManager::sessionDateTime(const QString &session) { - return d->m_sessionDateTimes.value(session); + return sb_d->m_sessionDateTimes.value(session); } QDateTime SessionManager::lastActiveTime(const QString &session) { - return d->m_lastActiveTimes.value(session); + return sb_d->m_lastActiveTimes.value(session); } FilePath SessionManager::sessionNameToFileName(const QString &session) @@ -836,9 +782,9 @@ bool SessionManager::createSession(const QString &session) { if (sessions().contains(session)) return false; - Q_ASSERT(d->m_sessions.size() > 0); - d->m_sessions.insert(1, session); - d->m_lastActiveTimes.insert(session, QDateTime::currentDateTime()); + Q_ASSERT(sb_d->m_sessions.size() > 0); + sb_d->m_sessions.insert(1, session); + sb_d->m_lastActiveTimes.insert(session, QDateTime::currentDateTime()); return true; } @@ -847,7 +793,7 @@ bool SessionManager::renameSession(const QString &original, const QString &newNa if (!cloneSession(original, newName)) return false; if (original == activeSession()) - loadSession(newName); + ProjectManager::loadSession(newName); emit instance()->sessionRenamed(original, newName); return deleteSession(original); } @@ -873,10 +819,10 @@ bool SessionManager::confirmSessionDelete(const QStringList &sessions) */ bool SessionManager::deleteSession(const QString &session) { - if (!d->m_sessions.contains(session)) + if (!sb_d->m_sessions.contains(session)) return false; - d->m_sessions.removeOne(session); - d->m_lastActiveTimes.remove(session); + sb_d->m_sessions.removeOne(session); + sb_d->m_lastActiveTimes.remove(session); emit instance()->sessionRemoved(session); FilePath sessionFile = sessionNameToFileName(session); if (sessionFile.exists()) @@ -892,14 +838,14 @@ void SessionManager::deleteSessions(const QStringList &sessions) bool SessionManager::cloneSession(const QString &original, const QString &clone) { - if (!d->m_sessions.contains(original)) + if (!sb_d->m_sessions.contains(original)) return false; FilePath sessionFile = sessionNameToFileName(original); // If the file does not exist, we can still clone if (!sessionFile.exists() || sessionFile.copyFile(sessionNameToFileName(clone))) { - d->m_sessions.insert(1, clone); - d->m_sessionDateTimes.insert(clone, sessionNameToFileName(clone).lastModified()); + sb_d->m_sessions.insert(1, clone); + sb_d->m_sessionDateTimes.insert(clone, sessionNameToFileName(clone).lastModified()); return true; } return false; @@ -914,7 +860,7 @@ void SessionManagerPrivate::restoreValues(const PersistentSettingsReader &reader } } -void SessionManagerPrivate::restoreDependencies(const PersistentSettingsReader &reader) +void ProjectManagerPrivate::restoreDependencies(const PersistentSettingsReader &reader) { QMap<QString, QVariant> depMap = reader.restoreValue(QLatin1String("ProjectDependencies")).toMap(); auto i = depMap.constBegin(); @@ -929,7 +875,7 @@ void SessionManagerPrivate::restoreDependencies(const PersistentSettingsReader & } } -void SessionManagerPrivate::askUserAboutFailedProjects() +void ProjectManagerPrivate::askUserAboutFailedProjects() { FilePaths failedProjects = m_failedProjects; if (!failedProjects.isEmpty()) { @@ -950,7 +896,7 @@ void SessionManagerPrivate::askUserAboutFailedProjects() } } -void SessionManagerPrivate::restoreStartupProject(const PersistentSettingsReader &reader) +void ProjectManagerPrivate::restoreStartupProject(const PersistentSettingsReader &reader) { const FilePath startupProject = FilePath::fromSettings(reader.restoreValue("StartupProject")); if (!startupProject.isEmpty()) { @@ -981,7 +927,7 @@ void SessionManagerPrivate::restoreEditors(const PersistentSettingsReader &reade /*! Loads a session, takes a session name (not filename). */ -void SessionManagerPrivate::restoreProjects(const FilePaths &fileList) +void ProjectManagerPrivate::restoreProjects(const FilePaths &fileList) { // indirectly adds projects to session // Keep projects that failed to load in the session! @@ -1021,24 +967,24 @@ void SessionManagerPrivate::restoreProjects(const FilePaths &fileList) * either the implicit or the explicit default session. * */ -bool SessionManager::loadSession(const QString &session, bool initial) +bool ProjectManager::loadSession(const QString &session, bool initial) { const bool loadImplicitDefault = session.isEmpty(); const bool switchFromImplicitToExplicitDefault = session == DEFAULT_SESSION - && d->m_sessionName == DEFAULT_SESSION && !initial; + && sb_d->m_sessionName == DEFAULT_SESSION && !initial; // Do nothing if we have that session already loaded, // exception if the session is the default virgin session // we still want to be able to load the default session - if (session == d->m_sessionName && !isDefaultVirgin()) + if (session == sb_d->m_sessionName && !SessionManager::isDefaultVirgin()) return true; - if (!loadImplicitDefault && !sessions().contains(session)) + if (!loadImplicitDefault && !SessionManager::sessions().contains(session)) return false; FilePaths fileList; // Try loading the file - FilePath fileName = sessionNameToFileName(loadImplicitDefault ? DEFAULT_SESSION : session); + FilePath fileName = SessionManager::sessionNameToFileName(loadImplicitDefault ? DEFAULT_SESSION : session); PersistentSettingsReader reader; if (fileName.exists()) { if (!reader.load(fileName)) { @@ -1049,8 +995,8 @@ bool SessionManager::loadSession(const QString &session, bool initial) } if (loadImplicitDefault) { - d->restoreValues(reader); - emit m_instance->sessionLoaded(DEFAULT_SESSION); + sb_d->restoreValues(reader); + emit sb_instance->sessionLoaded(DEFAULT_SESSION); return true; } @@ -1059,19 +1005,19 @@ bool SessionManager::loadSession(const QString &session, bool initial) return true; } - d->m_loadingSession = true; + sb_d->m_loadingSession = true; // Allow everyone to set something in the session and before saving - emit m_instance->aboutToUnloadSession(d->m_sessionName); + emit sb_instance->aboutToUnloadSession(sb_d->m_sessionName); if (!save()) { - d->m_loadingSession = false; + sb_d->m_loadingSession = false; return false; } // Clean up if (!EditorManager::closeAllEditors()) { - d->m_loadingSession = false; + sb_d->m_loadingSession = false; return false; } @@ -1088,29 +1034,29 @@ bool SessionManager::loadSession(const QString &session, bool initial) d->m_failedProjects.clear(); d->m_depMap.clear(); if (!switchFromImplicitToExplicitDefault) - d->m_values.clear(); + sb_d->m_values.clear(); d->m_casadeSetActive = false; - d->m_sessionName = session; - delete d->m_writer; - d->m_writer = nullptr; + sb_d->m_sessionName = session; + delete sb_d->m_writer; + sb_d->m_writer = nullptr; EditorManager::updateWindowTitles(); if (fileName.exists()) { - d->m_virginSession = false; + sb_d->m_virginSession = false; - ProgressManager::addTask(d->m_future.future(), Tr::tr("Loading Session"), + ProgressManager::addTask(sb_d->m_future.future(), Tr::tr("Loading Session"), "ProjectExplorer.SessionFile.Load"); - d->m_future.setProgressRange(0, 1); - d->m_future.setProgressValue(0); + sb_d->m_future.setProgressRange(0, 1); + sb_d->m_future.setProgressValue(0); if (!switchFromImplicitToExplicitDefault) - d->restoreValues(reader); - emit m_instance->aboutToLoadSession(session); + sb_d->restoreValues(reader); + emit sb_instance->aboutToLoadSession(session); // retrieve all values before the following code could change them again - Id modeId = Id::fromSetting(value(QLatin1String("ActiveMode"))); + Id modeId = Id::fromSetting(SessionManager::value(QLatin1String("ActiveMode"))); if (!modeId.isValid()) modeId = Id(Core::Constants::MODE_EDIT); @@ -1118,21 +1064,21 @@ bool SessionManager::loadSession(const QString &session, bool initial) if (c.isValid()) StyleHelper::setBaseColor(c); - d->m_future.setProgressRange(0, projectPathsToLoad.count() + 1/*initialization above*/ + 1/*editors*/); - d->m_future.setProgressValue(1); + sb_d->m_future.setProgressRange(0, projectPathsToLoad.count() + 1/*initialization above*/ + 1/*editors*/); + sb_d->m_future.setProgressValue(1); QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); d->restoreProjects(projectPathsToLoad); - d->sessionLoadingProgress(); + sb_d->sessionLoadingProgress(); d->restoreDependencies(reader); d->restoreStartupProject(reader); removeProjects(projectsToRemove); // only remove old projects now that the startup project is set! - d->restoreEditors(reader); + sb_d->restoreEditors(reader); - d->m_future.reportFinished(); - d->m_future = QFutureInterface<void>(); + sb_d->m_future.reportFinished(); + sb_d->m_future = QFutureInterface<void>(); // Fall back to Project mode if the startup project is unconfigured and // use the mode saved in the session otherwise @@ -1148,13 +1094,13 @@ bool SessionManager::loadSession(const QString &session, bool initial) } d->m_casadeSetActive = reader.restoreValue(QLatin1String("CascadeSetActive"), false).toBool(); - d->m_lastActiveTimes.insert(session, QDateTime::currentDateTime()); + sb_d->m_lastActiveTimes.insert(session, QDateTime::currentDateTime()); - emit m_instance->sessionLoaded(session); + emit sb_instance->sessionLoaded(session); // Starts a event loop, better do that at the very end d->askUserAboutFailedProjects(); - d->m_loadingSession = false; + sb_d->m_loadingSession = false; return true; } @@ -1174,14 +1120,14 @@ QString SessionManager::startupSession() return ICore::settings()->value(Constants::STARTUPSESSION_KEY).toString(); } -void SessionManager::reportProjectLoadingProgress() +void ProjectManager::reportProjectLoadingProgress() { - d->sessionLoadingProgress(); + sb_d->sessionLoadingProgress(); } void SessionManager::markSessionFileDirty() { - d->m_virginSession = false; + sb_d->m_virginSession = false; } void SessionManagerPrivate::sessionLoadingProgress() @@ -1190,9 +1136,9 @@ void SessionManagerPrivate::sessionLoadingProgress() QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); } -FilePaths SessionManager::projectsForSessionName(const QString &session) +FilePaths ProjectManager::projectsForSessionName(const QString &session) { - const FilePath fileName = sessionNameToFileName(session); + const FilePath fileName = SessionManager::sessionNameToFileName(session); PersistentSettingsReader reader; if (fileName.exists()) { if (!reader.load(fileName)) { @@ -1230,7 +1176,7 @@ void ProjectExplorerPlugin::testSessionSwitch() QVERIFY(sessionSpec.projectFile.open()); sessionSpec.projectFile.write(proFileContents); sessionSpec.projectFile.close(); - QVERIFY(SessionManager::loadSession(sessionSpec.name)); + QVERIFY(ProjectManager::loadSession(sessionSpec.name)); const OpenProjectResult openResult = ProjectExplorerPlugin::openProject( FilePath::fromString(sessionSpec.projectFile.fileName())); @@ -1239,20 +1185,20 @@ void ProjectExplorerPlugin::testSessionSwitch() QVERIFY(openResult); QCOMPARE(openResult.projects().count(), 1); QVERIFY(openResult.project()); - QCOMPARE(SessionManager::projects().count(), 1); + QCOMPARE(ProjectManager::projects().count(), 1); } for (int i = 0; i < 30; ++i) { - QVERIFY(SessionManager::loadSession("session1")); + QVERIFY(ProjectManager::loadSession("session1")); QCOMPARE(SessionManager::activeSession(), "session1"); - QCOMPARE(SessionManager::projects().count(), 1); - QVERIFY(SessionManager::loadSession("session2")); + QCOMPARE(ProjectManager::projects().count(), 1); + QVERIFY(ProjectManager::loadSession("session2")); QCOMPARE(SessionManager::activeSession(), "session2"); - QCOMPARE(SessionManager::projects().count(), 1); + QCOMPARE(ProjectManager::projects().count(), 1); } - QVERIFY(SessionManager::loadSession("session1")); - SessionManager::closeAllProjects(); - QVERIFY(SessionManager::loadSession("session2")); - SessionManager::closeAllProjects(); + QVERIFY(ProjectManager::loadSession("session1")); + ProjectManager::closeAllProjects(); + QVERIFY(ProjectManager::loadSession("session2")); + ProjectManager::closeAllProjects(); QVERIFY(SessionManager::deleteSession("session1")); QVERIFY(SessionManager::deleteSession("session2")); } diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h index a29e478046b..6cab7b68db5 100644 --- a/src/plugins/projectexplorer/session.h +++ b/src/plugins/projectexplorer/session.h @@ -5,6 +5,8 @@ #include "projectexplorer_export.h" +#include "projectmanager.h" // FIXME: Remove once dowstream is adjusted. + #include <utils/id.h> #include <utils/persistentsettings.h> @@ -12,25 +14,14 @@ #include <QString> #include <QStringList> -namespace Core { class IEditor; } - namespace ProjectExplorer { -class Project; -class Target; -class BuildConfiguration; -class BuildSystem; -class DeployConfiguration; -class RunConfiguration; - -enum class SetActive { Cascade, NoCascade }; - class PROJECTEXPLORER_EXPORT SessionManager : public QObject { Q_OBJECT public: - explicit SessionManager(QObject *parent = nullptr); + SessionManager(); ~SessionManager() override; static SessionManager *instance(); @@ -52,39 +43,7 @@ public: static bool cloneSession(const QString &original, const QString &clone); static bool renameSession(const QString &original, const QString &newName); - static bool loadSession(const QString &session, bool initial = false); - - static bool save(); - static void closeAllProjects(); - - static void addProject(Project *project); - static void removeProject(Project *project); - static void removeProjects(const QList<Project *> &remove); - - static void setStartupProject(Project *startupProject); - - static QList<Project *> dependencies(const Project *project); - static bool hasDependency(const Project *project, const Project *depProject); - static bool canAddDependency(const Project *project, const Project *depProject); - static bool addDependency(Project *project, Project *depProject); - static void removeDependency(Project *project, Project *depProject); - - static bool isProjectConfigurationCascading(); - static void setProjectConfigurationCascading(bool b); - - static void setActiveTarget(Project *p, Target *t, SetActive cascade); - static void setActiveBuildConfiguration(Target *t, BuildConfiguration *bc, SetActive cascade); - static void setActiveDeployConfiguration(Target *t, DeployConfiguration *dc, SetActive cascade); - static Utils::FilePath sessionNameToFileName(const QString &session); - static Project *startupProject(); - static Target *startupTarget(); - static BuildSystem *startupBuildSystem(); - static RunConfiguration *startupRunConfiguration(); - - static const QList<Project *> projects(); - static bool hasProjects(); - static bool hasProject(Project *p); static bool isDefaultVirgin(); static bool isDefaultSession(const QString &session); @@ -93,44 +52,20 @@ public: static void setValue(const QString &name, const QVariant &value); static QVariant value(const QString &name); - // NBS rewrite projectOrder (dependency management) - static QList<Project *> projectOrder(const Project *project = nullptr); - - static Project *projectForFile(const Utils::FilePath &fileName); - static Project *projectWithProjectFilePath(const Utils::FilePath &filePath); - - static Utils::FilePaths projectsForSessionName(const QString &session); - - static void reportProjectLoadingProgress(); static bool loadingSession(); + static void markSessionFileDirty(); signals: - void targetAdded(ProjectExplorer::Target *target); - void targetRemoved(ProjectExplorer::Target *target); - void projectAdded(ProjectExplorer::Project *project); - void aboutToRemoveProject(ProjectExplorer::Project *project); - void projectDisplayNameChanged(ProjectExplorer::Project *project); - void projectRemoved(ProjectExplorer::Project *project); - - void startupProjectChanged(ProjectExplorer::Project *project); - void aboutToUnloadSession(QString sessionName); void aboutToLoadSession(QString sessionName); void sessionLoaded(QString sessionName); void aboutToSaveSession(); - void dependencyChanged(ProjectExplorer::Project *a, ProjectExplorer::Project *b); void sessionRenamed(const QString &oldName, const QString &newName); void sessionRemoved(const QString &name); - // for tests only - void projectFinishedParsing(ProjectExplorer::Project *project); - private: static void saveActiveMode(Utils::Id mode); - static void configureEditor(Core::IEditor *editor, const QString &fileName); - static void markSessionFileDirty(); - static void configureEditors(Project *project); }; } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/sessionmodel.cpp b/src/plugins/projectexplorer/sessionmodel.cpp index d8c9aa935e2..6e22c3b091d 100644 --- a/src/plugins/projectexplorer/sessionmodel.cpp +++ b/src/plugins/projectexplorer/sessionmodel.cpp @@ -4,6 +4,7 @@ #include "sessionmodel.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "session.h" #include "sessiondialog.h" @@ -122,10 +123,10 @@ QVariant SessionModel::data(const QModelIndex &index, int role) const result = SessionManager::activeSession() == sessionName; break; case ProjectsPathRole: - result = pathsWithTildeHomePath(SessionManager::projectsForSessionName(sessionName)); + result = pathsWithTildeHomePath(ProjectManager::projectsForSessionName(sessionName)); break; case ProjectsDisplayRole: - result = pathsToBaseNames(SessionManager::projectsForSessionName(sessionName)); + result = pathsToBaseNames(ProjectManager::projectsForSessionName(sessionName)); break; case ShortcutRole: { const Id sessionBase = SESSION_BASE_ID; @@ -240,7 +241,7 @@ void SessionModel::renameSession(QWidget *parent, const QString &session) void SessionModel::switchToSession(const QString &session) { - SessionManager::loadSession(session); + ProjectManager::loadSession(session); emit sessionSwitched(); } diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 8f227512eec..d2e59aab063 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -21,8 +21,8 @@ #include "projectexplorericons.h" #include "projectexplorersettings.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "runconfiguration.h" -#include "session.h" #include <coreplugin/coreconstants.h> @@ -120,10 +120,10 @@ Target::Target(Project *project, Kit *k, _constructor_tag) : }); connect(this, &Target::parsingFinished, this, [this, project](bool success) { - if (success && this == SessionManager::startupTarget()) + if (success && this == ProjectManager::startupTarget()) updateDefaultRunConfigurations(); // For testing. - emit SessionManager::instance()->projectFinishedParsing(project); + emit ProjectManager::instance()->projectFinishedParsing(project); emit project->anyParsingFinished(this, success); }, Qt::QueuedConnection); // Must wait for run configs to change their enabled state. @@ -242,6 +242,70 @@ QString Target::activeBuildKey() const return d->m_activeRunConfiguration->buildKey(); } +void Target::setActiveBuildConfiguration(BuildConfiguration *bc, SetActive cascade) +{ + QTC_ASSERT(project(), return); + + if (project()->isShuttingDown() || isShuttingDown()) + return; + + setActiveBuildConfiguration(bc); + + if (!bc) + return; + if (cascade != SetActive::Cascade || !ProjectManager::isProjectConfigurationCascading()) + return; + + Id kitId = kit()->id(); + QString name = bc->displayName(); // We match on displayname + for (Project *otherProject : ProjectManager::projects()) { + if (otherProject == project()) + continue; + Target *otherTarget = otherProject->activeTarget(); + if (!otherTarget || otherTarget->kit()->id() != kitId) + continue; + + for (BuildConfiguration *otherBc : otherTarget->buildConfigurations()) { + if (otherBc->displayName() == name) { + otherTarget->setActiveBuildConfiguration(otherBc); + break; + } + } + } +} + +void Target::setActiveDeployConfiguration(DeployConfiguration *dc, SetActive cascade) +{ + QTC_ASSERT(project(), return); + + if (project()->isShuttingDown() || isShuttingDown()) + return; + + setActiveDeployConfiguration(dc); + + if (!dc) + return; + if (cascade != SetActive::Cascade || !ProjectManager::isProjectConfigurationCascading()) + return; + + Id kitId = kit()->id(); + QString name = dc->displayName(); // We match on displayname + for (Project *otherProject : ProjectManager::projects()) { + if (otherProject == project()) + continue; + Target *otherTarget = otherProject->activeTarget(); + if (!otherTarget || otherTarget->kit()->id() != kitId) + continue; + + for (DeployConfiguration *otherDc : otherTarget->deployConfigurations()) { + if (otherDc->displayName() == name) { + otherTarget->setActiveDeployConfiguration(otherDc); + break; + } + } + } +} + Utils::Id Target::id() const { return d->m_kit->id(); @@ -307,9 +371,9 @@ bool Target::removeBuildConfiguration(BuildConfiguration *bc) if (activeBuildConfiguration() == bc) { if (d->m_buildConfigurations.isEmpty()) - SessionManager::setActiveBuildConfiguration(this, nullptr, SetActive::Cascade); + setActiveBuildConfiguration(nullptr, SetActive::Cascade); else - SessionManager::setActiveBuildConfiguration(this, d->m_buildConfigurations.at(0), SetActive::Cascade); + setActiveBuildConfiguration(d->m_buildConfigurations.at(0), SetActive::Cascade); } emit removedBuildConfiguration(bc); @@ -377,10 +441,9 @@ bool Target::removeDeployConfiguration(DeployConfiguration *dc) if (activeDeployConfiguration() == dc) { if (d->m_deployConfigurations.isEmpty()) - SessionManager::setActiveDeployConfiguration(this, nullptr, SetActive::Cascade); + setActiveDeployConfiguration(nullptr, SetActive::Cascade); else - SessionManager::setActiveDeployConfiguration(this, d->m_deployConfigurations.at(0), - SetActive::Cascade); + setActiveDeployConfiguration(d->m_deployConfigurations.at(0), SetActive::Cascade); } ProjectExplorerPlugin::targetSelector()->removedDeployConfiguration(dc); diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 78f0b5f3b5b..aeca2fd9e0b 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -26,11 +26,13 @@ class Project; class ProjectConfigurationModel; class RunConfiguration; +enum class SetActive : int { Cascade, NoCascade }; + class TargetPrivate; class PROJECTEXPLORER_EXPORT Target : public QObject { - friend class SessionManager; // for setActiveBuild and setActiveDeployConfiguration + friend class ProjectManager; // for setActiveBuild and setActiveDeployConfiguration Q_OBJECT public: @@ -109,6 +111,9 @@ public: QString activeBuildKey() const; // Build key of active run configuaration + void setActiveBuildConfiguration(BuildConfiguration *bc, SetActive cascade); + void setActiveDeployConfiguration(DeployConfiguration *dc, SetActive cascade); + signals: void targetEnabled(bool); void iconChanged(); diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 6d8c81e634c..d2fdc3b43a8 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -12,9 +12,9 @@ #include "project.h" #include "projectexplorericons.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "projectwindow.h" #include "runsettingspropertiespage.h" -#include "session.h" #include "target.h" #include "targetsetuppage.h" #include "task.h" @@ -281,7 +281,7 @@ public: QFont font = parent()->data(column, role).value<QFont>(); if (TargetItem *targetItem = parent()->currentTargetItem()) { Target *t = targetItem->target(); - if (t && t->id() == m_kitId && m_project == SessionManager::startupProject()) + if (t && t->id() == m_kitId && m_project == ProjectManager::startupProject()) font.setBold(true); } return font; @@ -334,7 +334,7 @@ public: // Go to Run page, when on Run previously etc. TargetItem *previousItem = parent()->currentTargetItem(); m_currentChild = previousItem ? previousItem->m_currentChild : DefaultPage; - SessionManager::setActiveTarget(m_project, target(), SetActive::Cascade); + m_project->setActiveTarget(target(), SetActive::Cascade); parent()->setData(column, QVariant::fromValue(static_cast<TreeItem *>(this)), ItemActivatedFromBelowRole); } @@ -346,7 +346,7 @@ public: int child = indexOf(data.value<TreeItem *>()); QTC_ASSERT(child != -1, return false); m_currentChild = child; // Triggered from sub-item. - SessionManager::setActiveTarget(m_project, target(), SetActive::Cascade); + m_project->setActiveTarget(target(), SetActive::Cascade); // Propagate Build/Run selection up. parent()->setData(column, QVariant::fromValue(static_cast<TreeItem *>(this)), ItemActivatedFromBelowRole); @@ -355,7 +355,7 @@ public: if (role == ItemActivatedFromAboveRole) { // Usually programmatic activation, e.g. after opening the Project mode. - SessionManager::setActiveTarget(m_project, target(), SetActive::Cascade); + m_project->setActiveTarget(target(), SetActive::Cascade); return true; } return false; @@ -377,7 +377,7 @@ public: = menu->addAction(Tr::tr("Enable Kit for All Projects")); enableForAllAction->setEnabled(isSelectable); QObject::connect(enableForAllAction, &QAction::triggered, [kit] { - for (Project * const p : SessionManager::projects()) { + for (Project * const p : ProjectManager::projects()) { if (!p->target(kit)) p->addTargetForKit(kit); } @@ -411,7 +411,7 @@ public: QAction *disableForAllAction = menu->addAction(Tr::tr("Disable Kit for All Projects")); disableForAllAction->setEnabled(isSelectable); QObject::connect(disableForAllAction, &QAction::triggered, [kit] { - for (Project * const p : SessionManager::projects()) { + for (Project * const p : ProjectManager::projects()) { Target * const t = p->target(kit); if (!t) continue; diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index a17aa58c946..3b11c8f1471 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -658,7 +658,7 @@ bool TargetSetupPage::setupProject(Project *project) if (m_importer) activeTarget = m_importer->preferredTarget(project->targets()); if (activeTarget) - SessionManager::setActiveTarget(project, activeTarget, SetActive::NoCascade); + project->setActiveTarget(activeTarget, SetActive::NoCascade); return true; } diff --git a/src/plugins/python/pipsupport.cpp b/src/plugins/python/pipsupport.cpp index 848184b462f..c23ae2d8649 100644 --- a/src/plugins/python/pipsupport.cpp +++ b/src/plugins/python/pipsupport.cpp @@ -10,7 +10,7 @@ #include <coreplugin/progressmanager/progressmanager.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/algorithm.h> diff --git a/src/plugins/python/pythoneditor.cpp b/src/plugins/python/pythoneditor.cpp index 6551facef50..f758ae3d9b6 100644 --- a/src/plugins/python/pythoneditor.cpp +++ b/src/plugins/python/pythoneditor.cpp @@ -19,7 +19,7 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <texteditor/textdocument.h> @@ -152,7 +152,7 @@ void PythonEditorWidget::setUserDefinedPython(const Interpreter &interpreter) QTC_ASSERT(pythonDocument, return); FilePath documentPath = pythonDocument->filePath(); QTC_ASSERT(!documentPath.isEmpty(), return); - if (Project *project = SessionManager::projectForFile(documentPath)) { + if (Project *project = ProjectManager::projectForFile(documentPath)) { if (Target *target = project->activeTarget()) { if (RunConfiguration *rc = target->activeRunConfiguration()) { if (auto interpretersAspect= rc->aspect<InterpreterAspect>()) { @@ -184,7 +184,7 @@ void PythonEditorWidget::updateInterpretersSelector() disconnect(connection); m_projectConnections.clear(); const FilePath documentPath = textDocument()->filePath(); - if (Project *project = SessionManager::projectForFile(documentPath)) { + if (Project *project = ProjectManager::projectForFile(documentPath)) { m_projectConnections << connect(project, &Project::activeTargetChanged, this, diff --git a/src/plugins/python/pythonlanguageclient.cpp b/src/plugins/python/pythonlanguageclient.cpp index dde324dbd95..74edb153e12 100644 --- a/src/plugins/python/pythonlanguageclient.cpp +++ b/src/plugins/python/pythonlanguageclient.cpp @@ -23,7 +23,7 @@ #include <languageserverprotocol/workspace.h> #include <projectexplorer/extracompiler.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <texteditor/textdocument.h> diff --git a/src/plugins/python/pythonutils.cpp b/src/plugins/python/pythonutils.cpp index 346c42d183d..86356050928 100644 --- a/src/plugins/python/pythonutils.cpp +++ b/src/plugins/python/pythonutils.cpp @@ -10,7 +10,7 @@ #include <coreplugin/messagemanager.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/algorithm.h> @@ -31,9 +31,9 @@ static QHash<FilePath, FilePath> &userDefinedPythonsForDocument() FilePath detectPython(const FilePath &documentPath) { Project *project = documentPath.isEmpty() ? nullptr - : SessionManager::projectForFile(documentPath); + : ProjectManager::projectForFile(documentPath); if (!project) - project = SessionManager::startupProject(); + project = ProjectManager::startupProject(); Environment env = Environment::systemEnvironment(); @@ -107,7 +107,7 @@ void openPythonRepl(QObject *parent, const FilePath &file, ReplType type) { static const auto workingDir = [](const FilePath &file) { if (file.isEmpty()) { - if (Project *project = SessionManager::startupProject()) + if (Project *project = ProjectManager::startupProject()) return project->projectDirectory(); return FilePath::currentWorkingPath(); } @@ -155,7 +155,7 @@ QString pythonName(const FilePath &pythonPath) PythonProject *pythonProjectForFile(const FilePath &pythonFile) { - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { if (auto pythonProject = qobject_cast<PythonProject *>(project)) { if (pythonProject->isKnownFile(pythonFile)) return pythonProject; diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp index 01a58753a20..3245b609bef 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp @@ -33,7 +33,7 @@ #include <projectexplorer/projectexplorericons.h> #include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qtsupport/qtsupportconstants.h> @@ -60,7 +60,7 @@ static Node *currentEditorNode() static QbsProject *currentEditorProject() { Core::IDocument *doc = Core::EditorManager::currentDocument(); - return doc ? qobject_cast<QbsProject *>(SessionManager::projectForFile(doc->filePath())) : nullptr; + return doc ? qobject_cast<QbsProject *>(ProjectManager::projectForFile(doc->filePath())) : nullptr; } class QbsProjectManagerPluginPrivate @@ -226,13 +226,13 @@ void QbsProjectManagerPlugin::initialize() connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, this, &QbsProjectManagerPlugin::updateBuildActions); - connect(SessionManager::instance(), &SessionManager::targetAdded, + connect(ProjectManager::instance(), &ProjectManager::targetAdded, this, &QbsProjectManagerPlugin::targetWasAdded); - connect(SessionManager::instance(), &SessionManager::targetRemoved, + connect(ProjectManager::instance(), &ProjectManager::targetRemoved, this, &QbsProjectManagerPlugin::updateBuildActions); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &QbsProjectManagerPlugin::updateReparseQbsAction); - connect(SessionManager::instance(), &SessionManager::projectAdded, + connect(ProjectManager::instance(), &ProjectManager::projectAdded, this, [this](Project *project) { auto qbsProject = qobject_cast<QbsProject *>(project); connect(project, &Project::anyParsingStarted, @@ -283,7 +283,7 @@ void QbsProjectManagerPlugin::updateContextActions(Node *node) void QbsProjectManagerPlugin::updateReparseQbsAction() { - auto project = qobject_cast<QbsProject *>(SessionManager::startupProject()); + auto project = qobject_cast<QbsProject *>(ProjectManager::startupProject()); m_reparseQbs->setEnabled(project && !BuildManager::isBuilding(project) && project && project->activeTarget() @@ -342,7 +342,7 @@ void QbsProjectManagerPlugin::projectChanged(QbsProject *project) { auto qbsProject = qobject_cast<QbsProject *>(project); - if (!qbsProject || qbsProject == SessionManager::startupProject()) + if (!qbsProject || qbsProject == ProjectManager::startupProject()) updateReparseQbsAction(); if (!qbsProject || qbsProject == ProjectTree::currentProject()) @@ -537,7 +537,7 @@ void QbsProjectManagerPlugin::reparseSelectedProject() void QbsProjectManagerPlugin::reparseCurrentProject() { - reparseProject(dynamic_cast<QbsProject *>(SessionManager::startupProject())); + reparseProject(dynamic_cast<QbsProject *>(ProjectManager::startupProject())); } void QbsProjectManagerPlugin::reparseProject(QbsProject *project) diff --git a/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp b/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp index b1427c84bae..8c094c557a8 100644 --- a/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp +++ b/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp @@ -3,13 +3,13 @@ #include "librarydetailscontroller.h" -#include "qmakebuildconfiguration.h" #include "qmakeparsernodes.h" #include "qmakeproject.h" #include "qmakeprojectmanagertr.h" +#include <projectexplorer/buildconfiguration.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <utils/hostosinfo.h> @@ -21,6 +21,7 @@ #include <QDir> #include <QFileInfo> #include <QGroupBox> +#include <QLabel> #include <QRadioButton> #include <QTextStream> @@ -868,7 +869,7 @@ QString PackageLibraryDetailsController::snippet() const bool PackageLibraryDetailsController::isLinkPackageGenerated() const { - const Project *project = SessionManager::projectForFile(proFile()); + const Project *project = ProjectManager::projectForFile(proFile()); if (!project) return false; @@ -1016,7 +1017,7 @@ void InternalLibraryDetailsController::updateProFile() libraryDetailsWidget()->libraryComboBox->clear(); const QmakeProject *project - = dynamic_cast<QmakeProject *>(SessionManager::projectForFile(proFile())); + = dynamic_cast<QmakeProject *>(ProjectManager::projectForFile(proFile())); if (!project) return; @@ -1104,7 +1105,7 @@ QString InternalLibraryDetailsController::snippet() const // the build directory of the active build configuration QDir rootBuildDir = rootDir; // If the project is unconfigured use the project dir - if (const Project *project = SessionManager::projectForFile(proFile())) { + if (const Project *project = ProjectManager::projectForFile(proFile())) { if (ProjectExplorer::Target *t = project->activeTarget()) if (ProjectExplorer::BuildConfiguration *bc = t->activeBuildConfiguration()) rootBuildDir.setPath(bc->buildDirectory().toString()); diff --git a/src/plugins/qmakeprojectmanager/profileeditor.cpp b/src/plugins/qmakeprojectmanager/profileeditor.cpp index 810d5d4f2e0..b492112db3d 100644 --- a/src/plugins/qmakeprojectmanager/profileeditor.cpp +++ b/src/plugins/qmakeprojectmanager/profileeditor.cpp @@ -7,18 +7,22 @@ #include "profilehighlighter.h" #include "profilehoverhandler.h" #include "qmakenodes.h" -#include "qmakeproject.h" #include "qmakeprojectmanagerconstants.h" #include <coreplugin/coreplugintr.h> + #include <extensionsystem/pluginmanager.h> + #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> + #include <qtsupport/qtsupportconstants.h> + #include <texteditor/textdocument.h> #include <texteditor/texteditoractionhandler.h> + #include <utils/fsengine/fileiconprovider.h> #include <utils/qtcassert.h> #include <utils/theme/theme.h> @@ -65,7 +69,7 @@ QString ProFileEditorWidget::checkForPrfFile(const QString &baseName) const const QmakePriFileNode *projectNode = nullptr; // FIXME: Remove this check once project nodes are fully "static". - for (const Project * const project : SessionManager::projects()) { + for (const Project * const project : ProjectManager::projects()) { static const auto isParsing = [](const Project *project) { for (const Target * const t : project->targets()) { for (const BuildConfiguration * const bc : t->buildConfigurations()) { diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp index e557615507d..67d450b56f4 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp @@ -29,7 +29,7 @@ #include <projectexplorer/projectnodes.h> #include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> @@ -244,7 +244,7 @@ void QmakeProjectManagerPlugin::initialize() connect(BuildManager::instance(), &BuildManager::buildStateChanged, d, &QmakeProjectManagerPluginPrivate::buildStateChanged); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, d, &QmakeProjectManagerPluginPrivate::projectChanged); connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, d, &QmakeProjectManagerPluginPrivate::projectChanged); @@ -294,7 +294,7 @@ void QmakeProjectManagerPluginPrivate::projectChanged() if (ProjectTree::currentProject()) m_previousStartupProject = qobject_cast<QmakeProject *>(ProjectTree::currentProject()); else - m_previousStartupProject = qobject_cast<QmakeProject *>(SessionManager::startupProject()); + m_previousStartupProject = qobject_cast<QmakeProject *>(ProjectManager::startupProject()); if (m_previousStartupProject) { connect(m_previousStartupProject, &Project::activeTargetChanged, @@ -366,7 +366,7 @@ void QmakeProjectManagerPluginPrivate::addLibraryImpl(const FilePath &filePath, void QmakeProjectManagerPluginPrivate::runQMake() { - runQMakeImpl(SessionManager::startupProject(), nullptr); + runQMakeImpl(ProjectManager::startupProject(), nullptr); } void QmakeProjectManagerPluginPrivate::runQMakeContextMenu() @@ -411,7 +411,7 @@ void QmakeProjectManagerPluginPrivate::buildFile() FileNode *node = n ? n->asFileNode() : nullptr; if (!node) return; - Project *project = SessionManager::projectForFile(file); + Project *project = ProjectManager::projectForFile(file); if (!project) return; Target *target = project->activeTarget(); @@ -563,7 +563,7 @@ void QmakeProjectManagerPluginPrivate::enableBuildFileMenus(const FilePath &file bool enabled = false; if (Node *node = ProjectTree::nodeForFile(file)) { - if (Project *project = SessionManager::projectForFile(file)) { + if (Project *project = ProjectManager::projectForFile(file)) { if (const FileNode *fileNode = node->asFileNode()) { const FileType type = fileNode->fileType(); visible = qobject_cast<QmakeProject *>(project) diff --git a/src/plugins/qmldesigner/assetexporterplugin/assetexportdialog.cpp b/src/plugins/qmldesigner/assetexporterplugin/assetexportdialog.cpp index f3460cbca81..e9b5ab7082b 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/assetexportdialog.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/assetexportdialog.cpp @@ -11,7 +11,7 @@ #include <projectexplorer/task.h> #include <projectexplorer/taskhub.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/fileutils.h> #include <utils/outputformatter.h> @@ -63,7 +63,7 @@ AssetExportDialog::AssetExportDialog(const Utils::FilePath &exportPath, m_ui->exportPath->setExpectedKind(Utils::PathChooser::Kind::SaveFile); m_ui->exportPath->setFilePath( exportPath.pathAppended( - ProjectExplorer::SessionManager::startupProject()->displayName() + ".metadata" + ProjectExplorer::ProjectManager::startupProject()->displayName() + ".metadata" )); m_ui->exportPath->setPromptDialogTitle(tr("Choose Export File")); m_ui->exportPath->setPromptDialogFilter(tr("Metadata file (*.metadata)")); diff --git a/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp b/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp index d9167049a56..e1b95b75068 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp @@ -13,7 +13,7 @@ #include "coreplugin/editormanager/editormanager.h" #include "utils/qtcassert.h" #include "utils/runextensions.h" -#include "projectexplorer/session.h" +#include "projectexplorer/projectmanager.h" #include "projectexplorer/project.h" #include <auxiliarydataproperties.h> @@ -406,7 +406,7 @@ void AssetExporter::writeMetadata() const m_currentState.change(ParsingState::WritingJson); - auto const startupProject = ProjectExplorer::SessionManager::startupProject(); + auto const startupProject = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(startupProject, return); const QString projectName = startupProject->displayName(); diff --git a/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp b/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp index 2d6f6c7d80f..3ab1d1a6869 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp @@ -19,9 +19,9 @@ #include "coreplugin/documentmanager.h" #include "qmldesigner/qmldesignerplugin.h" #include "projectexplorer/projectexplorerconstants.h" -#include "projectexplorer/session.h" +#include "projectexplorer/projectmanager.h" #include "projectexplorer/project.h" -#include "projectexplorer/session.h" +#include "projectexplorer/projectmanager.h" #include "projectexplorer/taskhub.h" #include "extensionsystem/pluginmanager.h" @@ -54,8 +54,8 @@ AssetExporterPlugin::AssetExporterPlugin() // Instantiate actions created by the plugin. addActions(); - connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, + connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, this, &AssetExporterPlugin::updateActions); updateActions(); @@ -68,7 +68,7 @@ QString AssetExporterPlugin::pluginName() const void AssetExporterPlugin::onExport() { - auto startupProject = ProjectExplorer::SessionManager::startupProject(); + auto startupProject = ProjectExplorer::ProjectManager::startupProject(); if (!startupProject) return; @@ -97,7 +97,7 @@ void AssetExporterPlugin::addActions() void AssetExporterPlugin::updateActions() { - auto project = ProjectExplorer::SessionManager::startupProject(); + auto project = ProjectExplorer::ProjectManager::startupProject(); QAction* const exportAction = Core::ActionManager::command(Constants::EXPORT_QML)->action(); exportAction->setEnabled(project && !project->needsConfiguration()); } diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp index 9792a6615a3..f9c44229899 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp @@ -19,7 +19,7 @@ #include <nodelistproperty.h> #include <projectexplorer/kit.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <rewriterview.h> #include <sqlitedatabase.h> diff --git a/src/plugins/qmldesigner/components/componentcore/changestyleaction.cpp b/src/plugins/qmldesigner/components/componentcore/changestyleaction.cpp index 56ab654912e..1c68fdf0733 100644 --- a/src/plugins/qmldesigner/components/componentcore/changestyleaction.cpp +++ b/src/plugins/qmldesigner/components/componentcore/changestyleaction.cpp @@ -5,7 +5,7 @@ #include "designermcumanager.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <QComboBox> #include <QSettings> @@ -14,7 +14,7 @@ namespace QmlDesigner { static QString styleConfigFileName(const QString &qmlFileName) { - ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile(Utils::FilePath::fromString(qmlFileName)); + ProjectExplorer::Project *currentProject = ProjectExplorer::ProjectManager::projectForFile(Utils::FilePath::fromString(qmlFileName)); if (currentProject) { const QList<Utils::FilePath> fileNames = currentProject->files( diff --git a/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp b/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp index f0969bfabb0..ca1e288815e 100644 --- a/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp +++ b/src/plugins/qmldesigner/components/contentlibrary/contentlibraryview.cpp @@ -20,7 +20,7 @@ #ifndef QMLDESIGNER_TEST #include <projectexplorer/kit.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qtsupport/baseqtversion.h> #include <qtsupport/qtkitinformation.h> @@ -367,7 +367,7 @@ void ContentLibraryView::updateBundleMaterialsQuick3DVersion() #ifndef QMLDESIGNER_TEST if (hasImport && major == -1) { // Import without specifying version, so we take the kit version - auto target = ProjectExplorer::SessionManager::startupTarget(); + auto target = ProjectExplorer::ProjectManager::startupTarget(); if (target) { QtSupport::QtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(target->kit()); if (qtVersion) { diff --git a/src/plugins/qmldesigner/components/eventlist/eventlist.cpp b/src/plugins/qmldesigner/components/eventlist/eventlist.cpp index 23e60dbda28..a0d7cc89815 100644 --- a/src/plugins/qmldesigner/components/eventlist/eventlist.cpp +++ b/src/plugins/qmldesigner/components/eventlist/eventlist.cpp @@ -8,7 +8,7 @@ #include "bindingproperty.h" #include "metainfo.h" #include "projectexplorer/project.h" -#include "projectexplorer/session.h" +#include "projectexplorer/projectmanager.h" #include "qmldesignerplugin.h" #include "signalhandlerproperty.h" #include "utils/fileutils.h" @@ -23,7 +23,7 @@ namespace QmlDesigner { Utils::FilePath projectFilePath() { if (auto *doc = QmlDesignerPlugin::instance()->documentManager().currentDesignDocument()) { - if (auto *proj = ProjectExplorer::SessionManager::projectForFile(doc->fileName())) + if (auto *proj = ProjectExplorer::ProjectManager::projectForFile(doc->fileName())) return proj->projectDirectory(); } return Utils::FilePath(); diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp index efeea8aa36f..9c73789c91c 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp @@ -20,7 +20,7 @@ #include <projectexplorer/projecttree.h> #include <projectexplorer/project.h> #include <projectexplorer/target.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/kit.h> #include <qtsupport/qtkitinformation.h> #include <qtsupport/qtsupportconstants.h> @@ -403,7 +403,7 @@ bool DesignDocument::isQtForMCUsProject() const Utils::FilePath DesignDocument::projectFolder() const { - ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile(fileName()); + ProjectExplorer::Project *currentProject = ProjectExplorer::ProjectManager::projectForFile(fileName()); if (currentProject) return currentProject->projectDirectory(); @@ -434,7 +434,7 @@ void DesignDocument::changeToInFileComponentModel(ComponentTextModifier *textMod void DesignDocument::updateQrcFiles() { - ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile(fileName()); + ProjectExplorer::Project *currentProject = ProjectExplorer::ProjectManager::projectForFile(fileName()); if (currentProject) { const auto srcFiles = currentProject->files(ProjectExplorer::Project::SourceFiles); @@ -716,7 +716,7 @@ void DesignDocument::redo() static Target *getActiveTarget(DesignDocument *designDocument) { - Project *currentProject = SessionManager::projectForFile(designDocument->fileName()); + Project *currentProject = ProjectManager::projectForFile(designDocument->fileName()); if (!currentProject) currentProject = ProjectTree::currentProject(); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp index 648ffdb56cc..df9f2737972 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimportdialog.cpp @@ -1,5 +1,6 @@ // Copyright (C) 2019 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + #include "itemlibraryassetimportdialog.h" #include "ui_itemlibraryassetimportdialog.h" @@ -13,7 +14,8 @@ #include "theme.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> + #include <coreplugin/icore.h> #include <QFileInfo> @@ -322,7 +324,7 @@ void ItemLibraryAssetImportDialog::updateImport(const ModelNode &updateNode, // Unable to find original scene source, launch file dialog to locate it QString initialPath; ProjectExplorer::Project *currentProject - = ProjectExplorer::SessionManager::projectForFile( + = ProjectExplorer::ProjectManager::projectForFile( Utils::FilePath::fromString(compFileName)); if (currentProject) initialPath = currentProject->projectDirectory().toString(); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp index 556d0c978fe..96b95f7949a 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp @@ -13,7 +13,7 @@ #include <nodehints.h> #include <nodemetainfo.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include "qmldesignerconstants.h" #include "qmldesignerplugin.h" #include <utils/algorithm.h> @@ -336,7 +336,7 @@ void ItemLibraryModel::update(ItemLibraryInfo *itemLibraryInfo, Model *model) DesignDocument *document = QmlDesignerPlugin::instance()->currentDesignDocument(); Utils::FilePath qmlFileName = document->fileName(); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile(qmlFileName); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile(qmlFileName); QString projectName = project ? project->displayName() : ""; QString materialBundlePrefix = QLatin1String(Constants::COMPONENT_BUNDLES_FOLDER).mid(1); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index 95b6476638d..aacbd9b1b53 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -14,7 +14,7 @@ #include <nodelistproperty.h> #include <projectexplorer/kit.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <rewriterview.h> #include <sqlitedatabase.h> diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index e6450d45627..2d4cd76cc4b 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -29,7 +29,7 @@ #include <coreplugin/icore.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <utils/algorithm.h> @@ -454,14 +454,14 @@ const ProjectExplorer::FileNode *NavigatorView::fileNodeForModelNode(const Model { QString filename = node.metaInfo().componentFileName(); Utils::FilePath filePath = Utils::FilePath::fromString(filename); - ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile( + ProjectExplorer::Project *currentProject = ProjectExplorer::ProjectManager::projectForFile( filePath); if (!currentProject) { filePath = Utils::FilePath::fromString(node.model()->fileUrl().toLocalFile()); /* If the component does not belong to the project then we can fallback to the current file */ - currentProject = ProjectExplorer::SessionManager::projectForFile(filePath); + currentProject = ProjectExplorer::ProjectManager::projectForFile(filePath); } if (!currentProject) return nullptr; diff --git a/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp b/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp index 7164586fea4..02ffd84c93d 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp @@ -15,7 +15,7 @@ #include <qmlmodelnodeproxy.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> static QString s_lastBrowserPath; @@ -23,7 +23,7 @@ FileResourcesModel::FileResourcesModel(QObject *parent) : QObject(parent) , m_filter(QLatin1String("(*.*)")) { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile( + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile( QmlDesigner::DocumentManager::currentFilePath()); if (project) { diff --git a/src/plugins/qmldesigner/documentmanager.cpp b/src/plugins/qmldesigner/documentmanager.cpp index d2bf9eac514..9fdf4e41198 100644 --- a/src/plugins/qmldesigner/documentmanager.cpp +++ b/src/plugins/qmldesigner/documentmanager.cpp @@ -21,10 +21,11 @@ #include <coreplugin/vcsmanager.h> #include <coreplugin/icore.h> #include <coreplugin/messagebox.h> -#include <projectexplorer/projectnodes.h> + #include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> +#include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <qmakeprojectmanager/qmakenodes.h> #include <qmakeprojectmanager/qmakeproject.h> @@ -335,11 +336,11 @@ Utils::FilePath DocumentManager::currentProjectDirPath() Utils::FilePath qmlFileName = QmlDesignerPlugin::instance()->currentDesignDocument()->fileName(); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile(qmlFileName); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile(qmlFileName); if (project) return project->projectDirectory(); - const QList projects = ProjectExplorer::SessionManager::projects(); + const QList projects = ProjectExplorer::ProjectManager::projects(); for (auto p : projects) { if (qmlFileName.startsWith(p->projectDirectory().toString())) return p->projectDirectory(); @@ -402,7 +403,7 @@ void DocumentManager::findPathToIsoProFile(bool *iconResourceFileAlreadyExists, QString *resourceFileProPath, const QString &isoIconsQrcFile) { Utils::FilePath qmlFileName = QmlDesignerPlugin::instance()->currentDesignDocument()->fileName(); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile(qmlFileName); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile(qmlFileName); ProjectExplorer::Node *node = ProjectExplorer::ProjectTree::nodeForFile(qmlFileName)->parentFolderNode(); ProjectExplorer::Node *iconQrcFileNode = nullptr; @@ -492,7 +493,7 @@ bool DocumentManager::belongsToQmakeProject() return false; Utils::FilePath qmlFileName = QmlDesignerPlugin::instance()->currentDesignDocument()->fileName(); - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::projectForFile(qmlFileName); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile(qmlFileName); if (!project) return false; diff --git a/src/plugins/qmldesigner/generateresource.cpp b/src/plugins/qmldesigner/generateresource.cpp index 1901a8e2ea1..8b00335ce33 100644 --- a/src/plugins/qmldesigner/generateresource.cpp +++ b/src/plugins/qmldesigner/generateresource.cpp @@ -12,8 +12,8 @@ #include <coreplugin/messagemanager.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmlprojectmanager/qmlprojectmanagerconstants.h> @@ -223,16 +223,16 @@ void GenerateResource::generateMenuEntry(QObject *parent) auto action = new QAction(QCoreApplication::translate("QmlDesigner::GenerateResource", "Generate QRC Resource File..."), parent); - action->setEnabled(ProjectExplorer::SessionManager::startupProject() != nullptr); + action->setEnabled(ProjectExplorer::ProjectManager::startupProject() != nullptr); // todo make it more intelligent when it gets enabled - QObject::connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, [action]() { - action->setEnabled(ProjectExplorer::SessionManager::startupProject()); + QObject::connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, [action]() { + action->setEnabled(ProjectExplorer::ProjectManager::startupProject()); }); Core::Command *cmd = Core::ActionManager::registerAction(action, "QmlProject.CreateResource"); QObject::connect(action, &QAction::triggered, [] () { - auto currentProject = ProjectExplorer::SessionManager::startupProject(); + auto currentProject = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(currentProject, return); const FilePath projectPath = currentProject->projectFilePath().parentDir(); @@ -331,16 +331,16 @@ void GenerateResource::generateMenuEntry(QObject *parent) auto rccAction = new QAction(QCoreApplication::translate("QmlDesigner::GenerateResource", "Generate Deployable Package..."), parent); - rccAction->setEnabled(ProjectExplorer::SessionManager::startupProject() != nullptr); - QObject::connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, [rccAction]() { - rccAction->setEnabled(ProjectExplorer::SessionManager::startupProject()); + rccAction->setEnabled(ProjectExplorer::ProjectManager::startupProject() != nullptr); + QObject::connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, [rccAction]() { + rccAction->setEnabled(ProjectExplorer::ProjectManager::startupProject()); }); Core::Command *cmd2 = Core::ActionManager::registerAction(rccAction, "QmlProject.CreateRCCResource"); QObject::connect(rccAction, &QAction::triggered, []() { - auto currentProject = ProjectExplorer::SessionManager::startupProject(); + auto currentProject = ProjectExplorer::ProjectManager::startupProject(); QTC_ASSERT(currentProject, return); const FilePath projectPath = currentProject->projectFilePath().parentDir(); diff --git a/src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp b/src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp index e332f1d49c7..47174ba3d88 100644 --- a/src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp +++ b/src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp @@ -9,7 +9,7 @@ #include <edit3d/edit3dviewconfig.h> #include <itemlibraryimport.h> #include <projectexplorer/kit.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <puppetenvironmentbuilder.h> #include <qtsupport/baseqtversion.h> @@ -109,7 +109,7 @@ QString ExternalDependencies::itemLibraryImportUserComponentsTitle() const bool ExternalDependencies::isQt6Import() const { - auto target = ProjectExplorer::SessionManager::startupTarget(); + auto target = ProjectExplorer::ProjectManager::startupTarget(); if (target) { QtSupport::QtVersion *currentQtVersion = QtSupport::QtKitAspect::qtVersion(target->kit()); if (currentQtVersion && currentQtVersion->isValid()) { @@ -122,7 +122,7 @@ bool ExternalDependencies::isQt6Import() const bool ExternalDependencies::hasStartupTarget() const { - auto target = ProjectExplorer::SessionManager::startupTarget(); + auto target = ProjectExplorer::ProjectManager::startupTarget(); if (target) { QtSupport::QtVersion *currentQtVersion = QtSupport::QtKitAspect::qtVersion(target->kit()); if (currentQtVersion && currentQtVersion->isValid()) { @@ -208,7 +208,7 @@ QString createFreeTypeOption(ProjectExplorer::Target *target) PuppetStartData ExternalDependencies::puppetStartData(const Model &model) const { PuppetStartData data; - auto target = ProjectExplorer::SessionManager::startupTarget(); + auto target = ProjectExplorer::ProjectManager::startupTarget(); auto [workingDirectory, puppetPath] = qmlPuppetPaths(target, m_designerSettings); data.puppetPath = puppetPath.toString(); diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 3fe639b5d8d..b8685ba700a 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -54,7 +54,7 @@ #include <extensionsystem/pluginspec.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmljs/qmljsmodelmanagerinterface.h> #include <sqlitelibraryinitializer.h> @@ -347,7 +347,7 @@ ExtensionSystem::IPlugin::ShutdownFlag QmlDesignerPlugin::aboutToShutdown() static QStringList allUiQmlFilesforCurrentProject(const Utils::FilePath &fileName) { QStringList list; - ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile(fileName); + ProjectExplorer::Project *currentProject = ProjectExplorer::ProjectManager::projectForFile(fileName); if (currentProject) { const QList<Utils::FilePath> fileNames = currentProject->files(ProjectExplorer::Project::SourceFiles); @@ -363,7 +363,7 @@ static QStringList allUiQmlFilesforCurrentProject(const Utils::FilePath &fileNam static QString projectPath(const Utils::FilePath &fileName) { QString path; - ProjectExplorer::Project *currentProject = ProjectExplorer::SessionManager::projectForFile(fileName); + ProjectExplorer::Project *currentProject = ProjectExplorer::ProjectManager::projectForFile(fileName); if (currentProject) path = currentProject->projectDirectory().toString(); diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index e708e8ebf11..60363e5fbd1 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -6,7 +6,7 @@ #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectstorage/filestatuscache.h> #include <projectstorage/filesystem.h> @@ -199,15 +199,15 @@ QmlDesignerProjectManager::QmlDesignerProjectManager(ExternalDependenciesInterfa QObject::connect(editorManager, &::Core::EditorManager::editorsClosed, [&](const auto &editors) { editorsClosed(editors); }); - auto sessionManager = ::ProjectExplorer::SessionManager::instance(); + auto sessionManager = ::ProjectExplorer::ProjectManager::instance(); QObject::connect(sessionManager, - &::ProjectExplorer::SessionManager::projectAdded, + &::ProjectExplorer::ProjectManager::projectAdded, [&](auto *project) { projectAdded(project); }); QObject::connect(sessionManager, - &::ProjectExplorer::SessionManager::aboutToRemoveProject, + &::ProjectExplorer::ProjectManager::aboutToRemoveProject, [&](auto *project) { aboutToRemoveProject(project); }); QObject::connect(sessionManager, - &::ProjectExplorer::SessionManager::projectRemoved, + &::ProjectExplorer::ProjectManager::projectRemoved, [&](auto *project) { projectRemoved(project); }); QObject::connect(&m_previewTimer, @@ -428,7 +428,7 @@ QmlDesignerProjectManager::ImageCacheData *QmlDesignerProjectManager::imageCache imageCacheData->nodeInstanceCollector.setTarget(target); }; - if (auto project = ProjectExplorer::SessionManager::startupProject(); project) { + if (auto project = ProjectExplorer::ProjectManager::startupProject(); project) { // TODO wrap in function in image cache data m_imageCacheData->meshImageCollector.setTarget(project->activeTarget()); m_imageCacheData->nodeInstanceCollector.setTarget(project->activeTarget()); @@ -437,8 +437,8 @@ QmlDesignerProjectManager::ImageCacheData *QmlDesignerProjectManager::imageCache this, setTargetInImageCache); } - QObject::connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, + QObject::connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, this, [=](ProjectExplorer::Project *project) { setTargetInImageCache(activeTarget(project)); diff --git a/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewactions.cpp b/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewactions.cpp index a90c6240125..cba3411ead5 100644 --- a/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewactions.cpp +++ b/src/plugins/qmldesigner/qmlpreviewplugin/qmlpreviewactions.cpp @@ -13,7 +13,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/project.h> #include <projectexplorer/target.h> @@ -36,7 +36,7 @@ static void handleAction(const SelectionContext &context) if (context.view()->isAttached()) { if (context.toggled()) { bool skipDeploy = false; - if (const Target *startupTarget = SessionManager::startupTarget()) { + if (const Target *startupTarget = ProjectManager::startupTarget()) { const Kit *kit = startupTarget->kit(); if (kit && (kit->supportedPlatforms().contains(Android::Constants::ANDROID_DEVICE_TYPE) @@ -241,10 +241,10 @@ QWidget *SwitchLanguageComboboxAction::createWidget(QWidget *parent) } } }; - connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::startupProjectChanged, + connect(ProjectExplorer::ProjectManager::instance(), &ProjectExplorer::ProjectManager::startupProjectChanged, comboBox, refreshComboBoxFunction); - if (auto project = SessionManager::startupProject()) + if (auto project = ProjectManager::startupProject()) refreshComboBoxFunction(project); // do this after refreshComboBoxFunction so we do not get currentLocaleChanged signals at initialization diff --git a/src/plugins/qmljstools/qmljslocatordata.cpp b/src/plugins/qmljstools/qmljslocatordata.cpp index 679a230e8e1..477447c9e36 100644 --- a/src/plugins/qmljstools/qmljslocatordata.cpp +++ b/src/plugins/qmljstools/qmljslocatordata.cpp @@ -4,7 +4,7 @@ #include "qmljslocatordata.h" #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <qmljs/qmljsmodelmanagerinterface.h> #include <qmljs/qmljsutils.h> @@ -40,10 +40,10 @@ LocatorData::LocatorData() connect(manager, &ModelManagerInterface::aboutToRemoveFiles, this, &LocatorData::onAboutToRemoveFiles); - ProjectExplorer::SessionManager *session = ProjectExplorer::SessionManager::instance(); + ProjectExplorer::ProjectManager *session = ProjectExplorer::ProjectManager::instance(); if (session) connect(session, - &ProjectExplorer::SessionManager::projectRemoved, + &ProjectExplorer::ProjectManager::projectRemoved, this, [this](ProjectExplorer::Project *) { m_entries.clear(); }); } diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index da1d82b73d0..914a4f77945 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -18,10 +18,11 @@ #include <projectexplorer/buildsystem.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmljs/qmljsbind.h> @@ -273,9 +274,9 @@ void ModelManager::delayedInitialization() connect(cppModelManager, &CppEditor::CppModelManager::documentUpdated, this, &ModelManagerInterface::maybeQueueCppQmlTypeUpdate, Qt::DirectConnection); - connect(SessionManager::instance(), &SessionManager::projectRemoved, + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, this, &ModelManager::removeProjectInfo); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &ModelManager::updateDefaultProjectInfo); ViewerContext qbsVContext; @@ -323,7 +324,7 @@ ModelManagerInterface::WorkingCopy ModelManager::workingCopyInternal() const void ModelManager::updateDefaultProjectInfo() { // needs to be performed in the ui thread - Project *currentProject = SessionManager::startupProject(); + Project *currentProject = ProjectManager::startupProject(); setDefaultProject(containsProject(currentProject) ? projectInfo(currentProject) : defaultProjectInfoForProject(currentProject, {}), diff --git a/src/plugins/qmlpreview/qmlpreviewplugin.cpp b/src/plugins/qmlpreview/qmlpreviewplugin.cpp index 6175eac2a2f..8803475d8a6 100644 --- a/src/plugins/qmlpreview/qmlpreviewplugin.cpp +++ b/src/plugins/qmlpreview/qmlpreviewplugin.cpp @@ -25,10 +25,10 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <qmljs/qmljsdocument.h> @@ -150,15 +150,15 @@ QmlPreviewPluginPrivate::QmlPreviewPluginPrivate(QmlPreviewPlugin *parent) Constants::M_BUILDPROJECT); QAction *action = new QAction(Tr::tr("QML Preview"), this); action->setToolTip(Tr::tr("Preview changes to QML code live in your application.")); - action->setEnabled(SessionManager::startupProject() != nullptr); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, action, + action->setEnabled(ProjectManager::startupProject() != nullptr); + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, action, &QAction::setEnabled); connect(action, &QAction::triggered, this, [this]() { if (auto multiLanguageAspect = QmlProjectManager::QmlMultiLanguageAspect::current()) m_localeIsoCode = multiLanguageAspect->currentLocale(); bool skipDeploy = false; - const Kit *kit = SessionManager::startupTarget()->kit(); - if (SessionManager::startupTarget() && kit) + const Kit *kit = ProjectManager::startupTarget()->kit(); + if (ProjectManager::startupTarget() && kit) skipDeploy = kit->supportedPlatforms().contains(Android::Constants::ANDROID_DEVICE_TYPE) || DeviceTypeKitAspect::deviceTypeId(kit) == Android::Constants::ANDROID_DEVICE_TYPE; ProjectExplorerPlugin::runStartupProject(Constants::QML_PREVIEW_RUN_MODE, skipDeploy); diff --git a/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp b/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp index 57088ad19bf..3aa935db74e 100644 --- a/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp +++ b/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp @@ -9,7 +9,7 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmldebug/qmldebugcommandlinearguments.h> diff --git a/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp b/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp index 396c8305680..e9f0b1a7807 100644 --- a/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp @@ -6,7 +6,7 @@ #include <projectexplorer/kit.h> #include <projectexplorer/kitinformation.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/runconfiguration.h> #include <qmljs/parser/qmljsast_p.h> diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 579a870a4b0..dc33663e895 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -39,8 +39,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> -#include <projectexplorer/session.h> #include <qtsupport/qtkitinformation.h> @@ -540,7 +540,7 @@ ProjectExplorer::RunControl *QmlProfilerTool::attachToWaitingApplication() d->m_viewContainer->perspective()->select(); auto runControl = new RunControl(ProjectExplorer::Constants::QML_PROFILER_RUN_MODE); - runControl->copyDataFromRunConfiguration(SessionManager::startupRunConfiguration()); + runControl->copyDataFromRunConfiguration(ProjectManager::startupRunConfiguration()); auto profiler = new QmlProfilerRunner(runControl); profiler->setServerUrl(serverUrl); diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp index e01b6ab5ef3..ad787e05a5e 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp @@ -3,15 +3,16 @@ #include "qmlprofilerdetailsrewriter_test.h" +#include <projectexplorer/buildconfiguration.h> #include <projectexplorer/buildinfo.h> #include <projectexplorer/customexecutablerunconfiguration.h> -#include <projectexplorer/project.h> -#include <projectexplorer/target.h> +#include <projectexplorer/kitinformation.h> #include <projectexplorer/kitmanager.h> +#include <projectexplorer/project.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> -#include <projectexplorer/session.h> -#include <projectexplorer/kitinformation.h> -#include <projectexplorer/buildconfiguration.h> +#include <projectexplorer/target.h> + #include <utils/filepath.h> #include <QLibraryInfo> @@ -157,15 +158,15 @@ void QmlProfilerDetailsRewriterTest::testPopulateFileFinder() // Test that the rewriter will populate from available projects if given nullptr as parameter. DummyProject *project1 = new DummyProject(":/nix.nix"); - ProjectExplorer::SessionManager::addProject(project1); + ProjectExplorer::ProjectManager::addProject(project1); DummyProject *project2 = new DummyProject(":/qmlprofiler/tests/Test.qml"); - ProjectExplorer::SessionManager::addProject(project2); + ProjectExplorer::ProjectManager::addProject(project2); m_rewriter.populateFileFinder(nullptr); QCOMPARE(m_rewriter.getLocalFile("Test.qml"), Utils::FilePath::fromString(":/qmlprofiler/tests/Test.qml")); - ProjectExplorer::SessionManager::removeProject(project1); - ProjectExplorer::SessionManager::removeProject(project2); + ProjectExplorer::ProjectManager::removeProject(project1); + ProjectExplorer::ProjectManager::removeProject(project2); } void QmlProfilerDetailsRewriterTest::seedRewriter() @@ -196,11 +197,11 @@ void QmlProfilerDetailsRewriterTest::seedRewriter() ProjectExplorer::SysRootKitAspect::setSysRoot(kit.get(), "/nowhere"); DummyProject *project = new DummyProject(Utils::FilePath::fromString(filename)); - ProjectExplorer::SessionManager::addProject(project); + ProjectExplorer::ProjectManager::addProject(project); m_rewriter.populateFileFinder(project->addTargetForKit(kit.get())); - ProjectExplorer::SessionManager::removeProject(project); + ProjectExplorer::ProjectManager::removeProject(project); } } // namespace Internal diff --git a/src/plugins/qmlprojectmanager/cmakegen/cmakeprojectconverter.cpp b/src/plugins/qmlprojectmanager/cmakegen/cmakeprojectconverter.cpp index 99995bc2abe..21a538c7c51 100644 --- a/src/plugins/qmlprojectmanager/cmakegen/cmakeprojectconverter.cpp +++ b/src/plugins/qmlprojectmanager/cmakegen/cmakeprojectconverter.cpp @@ -1,5 +1,6 @@ // Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + #include "cmakeprojectconverter.h" #include "cmakeprojectconverterdialog.h" #include "generatecmakelists.h" @@ -11,7 +12,7 @@ #include <coreplugin/icore.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmlprojectmanager/qmlprojectmanagerconstants.h> @@ -41,10 +42,10 @@ void CmakeProjectConverter::generateMenuEntry(QObject *parent) Core::Command *cmd = Core::ActionManager::registerAction(action, "QmlProject.ConvertToCmakeProject"); exportMenu->addAction(cmd, QmlProjectManager::Constants::G_EXPORT_CONVERT); - action->setEnabled(isProjectConvertable(ProjectExplorer::SessionManager::startupProject())); - QObject::connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, [action]() { - action->setEnabled(isProjectConvertable(ProjectExplorer::SessionManager::startupProject())); + action->setEnabled(isProjectConvertable(ProjectExplorer::ProjectManager::startupProject())); + QObject::connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, [action]() { + action->setEnabled(isProjectConvertable(ProjectExplorer::ProjectManager::startupProject())); }); } @@ -83,7 +84,7 @@ bool CmakeProjectConverter::isProjectCurrentFormat(const ProjectExplorer::Projec void CmakeProjectConverter::onConvertProject() { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); const QmlProjectManager::QmlProject *qmlProject = qobject_cast<const QmlProjectManager::QmlProject*>(project); if (qmlProject) { diff --git a/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp b/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp index ef83206d982..e1124319196 100644 --- a/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp +++ b/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "generatecmakelists.h" + #include "generatecmakelistsconstants.h" #include "cmakegeneratordialog.h" #include "../qmlprojectmanagertr.h" @@ -10,9 +11,9 @@ #include <coreplugin/actionmanager/actioncontainer.h> #include <projectexplorer/buildsystem.h> -#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmlprojectmanager/qmlmainfileaspect.h> @@ -79,18 +80,18 @@ void generateMenuEntry(QObject *parent) exportMenu->addAction(cmd, QmlProjectManager::Constants::G_EXPORT_GENERATE); action->setEnabled(false); - QObject::connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, + QObject::connect(ProjectExplorer::ProjectManager::instance(), + &ProjectExplorer::ProjectManager::startupProjectChanged, [action]() { auto qmlProject = qobject_cast<QmlProject *>( - ProjectExplorer::SessionManager::startupProject()); + ProjectExplorer::ProjectManager::startupProject()); action->setEnabled(qmlProject != nullptr); }); } void onGenerateCmakeLists() { - FilePath rootDir = ProjectExplorer::SessionManager::startupProject()->projectDirectory(); + FilePath rootDir = ProjectExplorer::ProjectManager::startupProject()->projectDirectory(); int projectDirErrors = isProjectCorrectlyFormed(rootDir); if (projectDirErrors != NoError) { @@ -246,7 +247,7 @@ const QString projectEnvironmentVariable(const QString &key) { QString value = {}; - auto *target = ProjectExplorer::SessionManager::startupProject()->activeTarget(); + auto *target = ProjectExplorer::ProjectManager::startupProject()->activeTarget(); if (target && target->buildSystem()) { auto buildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(target->buildSystem()); if (buildSystem) { @@ -304,7 +305,7 @@ const char ADD_SUBDIR[] = "add_subdirectory(%1)\n"; void CmakeFileGenerator::generateMainCmake(const FilePath &rootDir) { //TODO startupProject() may be a terrible way to try to get "current project". It's not necessarily the same thing at all. - QString projectName = ProjectExplorer::SessionManager::startupProject()->displayName(); + QString projectName = ProjectExplorer::ProjectManager::startupProject()->displayName(); QString appName = projectName + "App"; QString fileSection = ""; @@ -523,7 +524,7 @@ bool CmakeFileGenerator::isDirBlacklisted(const FilePath &dir) bool CmakeFileGenerator::includeFile(const FilePath &filePath) { if (m_checkFileIsInProject) { - ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::startupProject(); if (!project->isKnownFile(filePath)) return false; } @@ -570,7 +571,7 @@ bool CmakeFileGenerator::generateMainCpp(const FilePath &dir) bool envHeaderOk = true; QString environment; - auto *target = ProjectExplorer::SessionManager::startupProject()->activeTarget(); + auto *target = ProjectExplorer::ProjectManager::startupProject()->activeTarget(); if (target && target->buildSystem()) { auto buildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(target->buildSystem()); if (buildSystem) { diff --git a/src/plugins/qmlprojectmanager/projectfilecontenttools.cpp b/src/plugins/qmlprojectmanager/projectfilecontenttools.cpp index 8ae0efe3119..8cde4e2c222 100644 --- a/src/plugins/qmlprojectmanager/projectfilecontenttools.cpp +++ b/src/plugins/qmlprojectmanager/projectfilecontenttools.cpp @@ -18,7 +18,7 @@ QRegularExpression qdsVerRegexp(R"x(qdsVersion: "(.*)")x"); const Utils::FilePaths rootCmakeFiles(ProjectExplorer::Project *project) { if (!project) - project = ProjectExplorer::SessionManager::startupProject(); + project = ProjectExplorer::ProjectManager::startupProject(); if (!project) return {}; return project->projectDirectory().dirEntries({QList<QString>({"CMakeLists.txt"}), QDir::Files}); diff --git a/src/plugins/qmlprojectmanager/projectfilecontenttools.h b/src/plugins/qmlprojectmanager/projectfilecontenttools.h index 843912eb7c8..3c3fcb5847e 100644 --- a/src/plugins/qmlprojectmanager/projectfilecontenttools.h +++ b/src/plugins/qmlprojectmanager/projectfilecontenttools.h @@ -6,7 +6,7 @@ #include "qmlprojectmanager_global.h" #include <projectexplorer/projectmanager.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/fileutils.h> diff --git a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp index 4ca9f9aa626..db0001ac70f 100644 --- a/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp +++ b/src/plugins/qmlprojectmanager/qmlmultilanguageaspect.cpp @@ -10,8 +10,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/runcontrol.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> static bool isMultilanguagePresent() @@ -114,7 +114,7 @@ void QmlMultiLanguageAspect::fromMap(const QVariantMap &map) QmlMultiLanguageAspect *QmlMultiLanguageAspect::current() { - if (auto project = ProjectExplorer::SessionManager::startupProject()) + if (auto project = ProjectExplorer::ProjectManager::startupProject()) return current(project); return {}; } diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index c283ec73e31..f08b9c4bda7 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -23,7 +23,7 @@ #include <projectexplorer/kitinformation.h> #include <projectexplorer/kitmanager.h> #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qtsupport/baseqtversion.h> @@ -97,7 +97,7 @@ QmlProject::QmlProject(const Utils::FilePath &fileName) if (QmlProject::isQtDesignStudio()) { if (allowOnlySingleProject()) { EditorManager::closeAllDocuments(); - SessionManager::closeAllProjects(); + ProjectManager::closeAllProjects(); } m_openFileConnection diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp index 3c156311b41..443d5478fc9 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp @@ -26,7 +26,7 @@ #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> #include <projectexplorer/runcontrol.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qmljs/qmljsmodelmanagerinterface.h> @@ -181,7 +181,7 @@ const Utils::FilePath findQmlProjectUpwards(const Utils::FilePath &folder) static bool findAndOpenProject(const Utils::FilePath &filePath) { ProjectExplorer::Project *project - = ProjectExplorer::SessionManager::projectForFile(filePath); + = ProjectExplorer::ProjectManager::projectForFile(filePath); if (project) { if (project->projectFilePath().suffix() == "qmlproject") { @@ -437,7 +437,7 @@ void QmlProjectPlugin::updateQmlLandingPageProjectInfo(const Utils::FilePath &pr Utils::FilePath QmlProjectPlugin::projectFilePath() { - auto project = ProjectExplorer::SessionManager::startupProject(); + auto project = ProjectExplorer::ProjectManager::startupProject(); const QmlProjectManager::QmlProject *qmlProject = qobject_cast<const QmlProjectManager::QmlProject*>(project); if (qmlProject) { return qmlProject->projectFilePath(); diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 8e8527b32c0..e0b1e6a9b15 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -21,7 +21,7 @@ #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/runconfigurationaspects.h> #include <projectexplorer/runcontrol.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <qtsupport/qtkitinformation.h> @@ -274,7 +274,7 @@ void QmlProjectRunConfiguration::createQtVersionAspect() if (!newTarget) newTarget = project->addTargetForKit(kits.first()); - SessionManager::setActiveTarget(project, newTarget, SetActive::Cascade); + project->setActiveTarget(newTarget, SetActive::Cascade); /* Reset the aspect. We changed the target and this aspect should not change. */ m_qtversionAspect->blockSignals(true); diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp index cb3932daab5..d6ee8618980 100644 --- a/src/plugins/qnx/qnxdebugsupport.cpp +++ b/src/plugins/qnx/qnxdebugsupport.cpp @@ -21,8 +21,8 @@ #include <projectexplorer/kitchooser.h> #include <projectexplorer/kitinformation.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/runconfigurationaspects.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> @@ -223,7 +223,7 @@ void showAttachToProcessDialog() return; // FIXME: That should be somehow related to the selected kit. - auto runConfig = SessionManager::startupRunConfiguration(); + auto runConfig = ProjectManager::startupRunConfiguration(); const int pid = dlg.currentProcess().processId; // QString projectSourceDirectory = dlg.projectSource(); diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 6b1d64600f4..446f7d576a1 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -21,7 +21,8 @@ #include <projectexplorer/headerpath.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> #include <projectexplorer/toolchainmanager.h> @@ -1542,10 +1543,10 @@ void QtVersion::populateQmlFileFinder(FileInProjectFinder *finder, const Target // ... else try the session manager's global startup project ... if (!startupProject) - startupProject = SessionManager::startupProject(); + startupProject = ProjectManager::startupProject(); // ... and if that is null, use the first project available. - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); QTC_CHECK(projects.isEmpty() || startupProject); FilePath projectDirectory; diff --git a/src/plugins/qtsupport/externaleditors.cpp b/src/plugins/qtsupport/externaleditors.cpp index bed8b7618fa..ee3a3611031 100644 --- a/src/plugins/qtsupport/externaleditors.cpp +++ b/src/plugins/qtsupport/externaleditors.cpp @@ -8,8 +8,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/target.h> -#include <projectexplorer/session.h> #include <qtsupport/qtkitinformation.h> @@ -181,7 +181,7 @@ static bool getEditorLaunchData(const CommandForQtVersion &commandForQtVersion, // As fallback check PATH data->workingDirectory.clear(); QVector<QtSupport::QtVersion *> qtVersionsToCheck; // deduplicated after being filled - if (const Project *project = SessionManager::projectForFile(filePath)) { + if (const Project *project = ProjectManager::projectForFile(filePath)) { data->workingDirectory = project->projectDirectory(); // active kit if (const Target *target = project->activeTarget()) { diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index c54c1bfc232..8a1c94bddca 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -24,8 +24,8 @@ #include <projectexplorer/jsonwizard/jsonwizardfactory.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <proparser/qmakeevaluator.h> @@ -170,7 +170,7 @@ void QtSupportPlugin::extensionsInitialized() }); static const auto activeQtVersion = []() -> const QtVersion * { - ProjectExplorer::Project *project = SessionManager::startupProject(); + ProjectExplorer::Project *project = ProjectManager::startupProject(); if (!project || !project->activeTarget()) return nullptr; return QtKitAspect::qtVersion(project->activeTarget()->kit()); @@ -208,7 +208,7 @@ void QtSupportPlugin::extensionsInitialized() const FilePath filePath = item.filePath(); if (filePath.isEmpty()) return links; - const Project *project = SessionManager::projectForFile(filePath); + const Project *project = ProjectManager::projectForFile(filePath); Target *target = project ? project->activeTarget() : nullptr; QtVersion *qt = target ? QtKitAspect::qtVersion(target->kit()) : nullptr; if (!qt) diff --git a/src/plugins/scxmleditor/scxmleditordocument.cpp b/src/plugins/scxmleditor/scxmleditordocument.cpp index 9c84910b2dd..e10c8759084 100644 --- a/src/plugins/scxmleditor/scxmleditordocument.cpp +++ b/src/plugins/scxmleditor/scxmleditordocument.cpp @@ -6,7 +6,7 @@ #include "scxmleditorconstants.h" #include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <qtsupport/qtkitinformation.h> #include <utils/fileutils.h> #include <utils/qtcassert.h> diff --git a/src/plugins/squish/squishfilehandler.cpp b/src/plugins/squish/squishfilehandler.cpp index 956f9488227..918120a4063 100644 --- a/src/plugins/squish/squishfilehandler.cpp +++ b/src/plugins/squish/squishfilehandler.cpp @@ -15,8 +15,10 @@ #include <coreplugin/documentmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> + #include <projectexplorer/projectexplorer.h> #include <projectexplorer/session.h> + #include <utils/algorithm.h> #include <utils/aspects.h> #include <utils/layoutbuilder.h> @@ -93,8 +95,7 @@ SquishFileHandler::SquishFileHandler(QObject *parent) : QObject(parent) { m_instance = this; - auto sessionManager = ProjectExplorer::SessionManager::instance(); - connect(sessionManager, &ProjectExplorer::SessionManager::sessionLoaded, + connect(ProjectExplorer::SessionManager::instance(), &ProjectExplorer::SessionManager::sessionLoaded, this, &SquishFileHandler::onSessionLoaded); } diff --git a/src/plugins/todo/todoitemsprovider.cpp b/src/plugins/todo/todoitemsprovider.cpp index 02790c64dfb..02ba71e2fcc 100644 --- a/src/plugins/todo/todoitemsprovider.cpp +++ b/src/plugins/todo/todoitemsprovider.cpp @@ -3,6 +3,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "todoitemsprovider.h" + #include "constants.h" #include "cpptodoitemsscanner.h" #include "qmljstodoitemsscanner.h" @@ -13,9 +14,9 @@ #include <coreplugin/idocument.h> #include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <utils/algorithm.h> @@ -182,8 +183,8 @@ void TodoItemsProvider::updateListTimeoutElapsed() void TodoItemsProvider::setupStartupProjectBinding() { - m_startupProject = SessionManager::startupProject(); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + m_startupProject = ProjectManager::startupProject(); + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &TodoItemsProvider::startupProjectChanged); connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::fileListChanged, this, &TodoItemsProvider::projectsFilesChanged); diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp index fc50b2ecf09..4daa04efcf6 100644 --- a/src/plugins/valgrind/callgrindtool.cpp +++ b/src/plugins/valgrind/callgrindtool.cpp @@ -47,8 +47,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorericons.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projecttree.h> -#include <projectexplorer/session.h> #include <projectexplorer/taskhub.h> #include <utils/fancymainwindow.h> @@ -256,7 +256,7 @@ CallgrindToolPrivate::CallgrindToolPrivate() menu->addAction(ActionManager::registerAction(action, CallgrindRemoteActionId), Debugger::Constants::G_ANALYZER_REMOTE_TOOLS); QObject::connect(action, &QAction::triggered, this, [this, action] { - auto runConfig = SessionManager::startupRunConfiguration(); + auto runConfig = ProjectManager::startupRunConfiguration(); if (!runConfig) { showCannotStartDialog(action->text()); return; diff --git a/src/plugins/valgrind/memcheckerrorview.cpp b/src/plugins/valgrind/memcheckerrorview.cpp index 3bb8a66a02e..48e9afd8018 100644 --- a/src/plugins/valgrind/memcheckerrorview.cpp +++ b/src/plugins/valgrind/memcheckerrorview.cpp @@ -14,7 +14,7 @@ #include <coreplugin/editormanager/editormanager.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <utils/qtcassert.h> #include <utils/icon.h> diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp index d4a5e4a6499..6129a0b4dbd 100644 --- a/src/plugins/valgrind/memchecktool.cpp +++ b/src/plugins/valgrind/memchecktool.cpp @@ -30,8 +30,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/runconfiguration.h> -#include <projectexplorer/session.h> #include <projectexplorer/target.h> #include <projectexplorer/taskhub.h> #include <projectexplorer/toolchain.h> @@ -337,7 +337,7 @@ bool MemcheckErrorFilterProxyModel::filterAcceptsRow(int sourceRow, const QModel // ALGORITHM: look at last five stack frames, if none of these is inside any open projects, // assume this error was created by an external library QSet<QString> validFolders; - for (Project *project : SessionManager::projects()) { + for (Project *project : ProjectManager::projects()) { validFolders << project->projectDirectory().toString(); const QList<Target *> targets = project->targets(); for (const Target *target : targets) { @@ -676,7 +676,7 @@ MemcheckToolPrivate::MemcheckToolPrivate() menu->addAction(ActionManager::registerAction(action, "Memcheck.Remote"), Debugger::Constants::G_ANALYZER_REMOTE_TOOLS); QObject::connect(action, &QAction::triggered, this, [this, action] { - RunConfiguration *runConfig = SessionManager::startupRunConfiguration(); + RunConfiguration *runConfig = ProjectManager::startupRunConfiguration(); if (!runConfig) { showCannotStartDialog(action->text()); return; @@ -718,7 +718,7 @@ void MemcheckToolPrivate::heobAction() Abi abi; bool hasLocalRc = false; Kit *kit = nullptr; - if (Target *target = SessionManager::startupTarget()) { + if (Target *target = ProjectManager::startupTarget()) { if (RunConfiguration *rc = target->activeRunConfiguration()) { kit = target->kit(); if (kit) { @@ -940,7 +940,7 @@ void MemcheckToolPrivate::maybeActiveRunConfigurationChanged() updateRunActions(); ValgrindBaseSettings *settings = nullptr; - if (Project *project = SessionManager::startupProject()) + if (Project *project = ProjectManager::startupProject()) if (Target *target = project->activeTarget()) if (RunConfiguration *rc = target->activeRunConfiguration()) settings = rc->currentSettings<ValgrindBaseSettings>(ANALYZER_VALGRIND_SETTINGS); diff --git a/src/plugins/valgrind/suppressiondialog.cpp b/src/plugins/valgrind/suppressiondialog.cpp index 08ed8ae5ff7..6273580e82d 100644 --- a/src/plugins/valgrind/suppressiondialog.cpp +++ b/src/plugins/valgrind/suppressiondialog.cpp @@ -12,9 +12,9 @@ #include "xmlprotocol/stack.h" #include "xmlprotocol/frame.h" -#include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> #include <projectexplorer/project.h> +#include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> #include <projectexplorer/projectnodes.h> #include <utils/algorithm.h> @@ -182,8 +182,8 @@ void SuppressionDialog::accept() return; // Add file to project if there is a project containing this file on the file system. - if (!ProjectExplorer::SessionManager::projectForFile(path)) { - for (ProjectExplorer::Project *p : ProjectExplorer::SessionManager::projects()) { + if (!ProjectExplorer::ProjectManager::projectForFile(path)) { + for (ProjectExplorer::Project *p : ProjectExplorer::ProjectManager::projects()) { if (path.startsWith(p->projectDirectory().toString())) { p->rootProjectNode()->addFiles({path}); break; diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index c73c14f9f66..26c19c7f91e 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -24,7 +24,7 @@ #include <projectexplorer/editorconfiguration.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <texteditor/textdocument.h> #include <texteditor/textdocumentlayout.h> @@ -1234,7 +1234,7 @@ static QTextCodec *findProjectCodec(const FilePath &dirPath) { typedef QList<ProjectExplorer::Project*> ProjectList; // Try to find a project under which file tree the file is. - const ProjectList projects = ProjectExplorer::SessionManager::projects(); + const ProjectList projects = ProjectExplorer::ProjectManager::projects(); const ProjectExplorer::Project *p = findOrDefault(projects, equal(&ProjectExplorer::Project::projectDirectory, dirPath)); return p ? p->editorConfiguration()->textCodec() : nullptr; diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index b277a2d0680..dfd89842c52 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -9,12 +9,14 @@ #include "vcsplugin.h" #include <coreplugin/documentmanager.h> +#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> #include <coreplugin/idocument.h> -#include <coreplugin/editormanager/editormanager.h> -#include <projectexplorer/projecttree.h> + #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> +#include <projectexplorer/projecttree.h> + #include <utils/qtcassert.h> #include <utils/qtcprocess.h> @@ -195,7 +197,7 @@ StateListener::StateListener(QObject *parent) : QObject(parent) connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, this, &StateListener::slotStateChanged); - connect(SessionManager::instance(), &SessionManager::startupProjectChanged, + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, this, &StateListener::slotStateChanged); EditorManager::setWindowTitleVcsTopicHandler(&StateListener::windowTitleVcsTopic); @@ -213,7 +215,7 @@ QString StateListener::windowTitleVcsTopic(const FilePath &filePath) searchPath = filePath.absolutePath(); } else { // use single project's information if there is only one loaded. - const QList<Project *> projects = SessionManager::projects(); + const QList<Project *> projects = ProjectManager::projects(); if (projects.size() == 1) searchPath = projects.first()->projectDirectory(); } @@ -282,7 +284,7 @@ void StateListener::slotStateChanged() IVersionControl *projectControl = nullptr; Project *currentProject = ProjectTree::currentProject(); if (!currentProject) - currentProject = SessionManager::startupProject(); + currentProject = ProjectManager::startupProject(); if (currentProject) { state.currentProjectPath = currentProject->projectDirectory(); diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index eaa825adb10..23a41f363ea 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -37,7 +37,7 @@ #include <texteditor/texteditorsettings.h> #include <projectexplorer/project.h> -#include <projectexplorer/session.h> +#include <projectexplorer/projectmanager.h> #include <QDir> #include <QFileInfo> @@ -606,7 +606,7 @@ void VcsBaseSubmitEditor::filterUntrackedFilesOfProject(const FilePath &reposito { for (QStringList::iterator it = untrackedFiles->begin(); it != untrackedFiles->end(); ) { const FilePath path = repositoryDirectory.resolvePath(*it).absoluteFilePath(); - if (ProjectExplorer::SessionManager::projectForFile(path)) + if (ProjectExplorer::ProjectManager::projectForFile(path)) ++it; else it = untrackedFiles->erase(it); |