From 84c42a7fead5341f9efda7d529c2738859f89fc9 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 30 Jul 2024 18:34:20 +0200 Subject: [PATCH] ProjectExplorer: Move some AppOutputPane related stuff ... closer to AppOutputPane. Change-Id: I6b6d6d8d7522e380b7c69efd6ec5d816ae0fb324 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/appoutputpane.cpp | 23 +++++++++++++++++++ src/plugins/projectexplorer/appoutputpane.h | 11 +++++---- .../projectexplorer/projectexplorer.cpp | 23 ++----------------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index 24a710f9f5f..fb2c0708c65 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -7,6 +7,7 @@ #include "projectexplorerconstants.h" #include "projectexplorericons.h" #include "projectexplorertr.h" +#include "projectmanager.h" #include "runcontrol.h" #include "showoutputtaskhandler.h" #include "windebuginterface.h" @@ -218,6 +219,8 @@ AppOutputPane::AppOutputPane() : connect(SessionManager::instance(), &SessionManager::aboutToUnloadSession, this, &AppOutputPane::aboutToUnloadSession); + connect(ProjectManager::instance(), &ProjectManager::projectRemoved, + this, &AppOutputPane::projectRemoved); setupFilterUi("AppOutputPane.Filter"); setFilteringEnabled(false); @@ -519,6 +522,26 @@ void AppOutputPane::setSettings(const AppOutputSettings &settings) updateFromSettings(); } +void AppOutputPane::prepareRunControlStart(RunControl *runControl) +{ + createNewOutputWindow(runControl); + flash(); // one flash for starting + showTabFor(runControl); + Id runMode = runControl->runMode(); + const auto popupMode = runMode == Constants::NORMAL_RUN_MODE + ? settings().runOutputMode + : runMode == Constants::DEBUG_RUN_MODE + ? settings().debugOutputMode + : AppOutputPaneMode::FlashOnOutput; + setBehaviorOnOutput(runControl, popupMode); +} + +void AppOutputPane::showOutputPaneForRunControl(RunControl *runControl) +{ + showTabFor(runControl); + popup(IOutputPane::NoModeSwitch | IOutputPane::WithFocus); +} + const AppOutputPaneMode kRunOutputModeDefault = AppOutputPaneMode::PopupOnFirstOutput; const AppOutputPaneMode kDebugOutputModeDefault = AppOutputPaneMode::FlashOnOutput; const bool kCleanOldOutputDefault = false; diff --git a/src/plugins/projectexplorer/appoutputpane.h b/src/plugins/projectexplorer/appoutputpane.h index 6438e6c2c1d..c3588b5f0a8 100644 --- a/src/plugins/projectexplorer/appoutputpane.h +++ b/src/plugins/projectexplorer/appoutputpane.h @@ -59,9 +59,7 @@ public: bool hasFilterContext() const override; - void createNewOutputWindow(RunControl *rc); void showTabFor(RunControl *rc); - void setBehaviorOnOutput(RunControl *rc, AppOutputPaneMode mode); bool aboutToClose() const; void closeTabs(CloseTabMode mode); @@ -69,12 +67,17 @@ public: QList allRunControls() const; // ApplicationOutput specifics - void projectRemoved(); - const AppOutputSettings &settings() const { return m_settings; } void setSettings(const AppOutputSettings &settings); + void prepareRunControlStart(RunControl *runControl); + void showOutputPaneForRunControl(RunControl *runControl); + private: + void setBehaviorOnOutput(RunControl *rc, AppOutputPaneMode mode); + void projectRemoved(); + + void createNewOutputWindow(RunControl *rc); void appendMessage(ProjectExplorer::RunControl *rc, const QString &out, Utils::OutputFormat format); void reRunRunControl(); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 3d93a6edc69..3dd7cbdff68 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -470,7 +470,6 @@ public: void addToRecentProjects(const FilePath &filePath, const QString &displayName); void startRunControl(RunControl *runControl); - void showOutputPaneForRunControl(RunControl *runControl); void updateActions(); void updateContext(); @@ -920,9 +919,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er ICore::addPreCloseListener([]() -> bool { return coreAboutToClose(); }); - connect(ProjectManager::instance(), &ProjectManager::projectRemoved, - &dd->m_outputPane, &AppOutputPane::projectRemoved); - // ProjectPanelFactories setupEditorSettingsProjectPanel(); @@ -2463,7 +2459,7 @@ void ProjectExplorerPlugin::startRunControl(RunControl *runControl) void ProjectExplorerPlugin::showOutputPaneForRunControl(RunControl *runControl) { - dd->showOutputPaneForRunControl(runControl); + dd->m_outputPane.showOutputPaneForRunControl(runControl); } QList> ProjectExplorerPlugin::renameFiles( @@ -2498,16 +2494,7 @@ bool ProjectExplorerPlugin::renameFile(const Utils::FilePath &source, const Util void ProjectExplorerPluginPrivate::startRunControl(RunControl *runControl) { - m_outputPane.createNewOutputWindow(runControl); - m_outputPane.flash(); // one flash for starting - m_outputPane.showTabFor(runControl); - Id runMode = runControl->runMode(); - const auto popupMode = runMode == Constants::NORMAL_RUN_MODE - ? m_outputPane.settings().runOutputMode - : runMode == Constants::DEBUG_RUN_MODE - ? m_outputPane.settings().debugOutputMode - : AppOutputPaneMode::FlashOnOutput; - m_outputPane.setBehaviorOnOutput(runControl, popupMode); + m_outputPane.prepareRunControlStart(runControl); connect(runControl, &QObject::destroyed, this, &ProjectExplorerPluginPrivate::checkForShutdown, Qt::QueuedConnection); ++m_activeRunControlCount; @@ -2521,12 +2508,6 @@ void ProjectExplorerPluginPrivate::startRunControl(RunControl *runControl) }); } -void ProjectExplorerPluginPrivate::showOutputPaneForRunControl(RunControl *runControl) -{ - m_outputPane.showTabFor(runControl); - m_outputPane.popup(IOutputPane::NoModeSwitch | IOutputPane::WithFocus); -} - void ProjectExplorerPluginPrivate::checkForShutdown() { --m_activeRunControlCount;