From f752989f83cfe0e9e4da5c7f5c9d5031aa752a90 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 31 Jul 2024 13:55:04 +0200 Subject: [PATCH] ProjectExplorer: Move AppOutputPaneSettings closer to AppOutputPane And make CloseTabMode private. Change-Id: Ia53fb6d06da59e8fe66020194b6b670868ef83e4 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/appoutputpane.cpp | 6 ++++ src/plugins/projectexplorer/appoutputpane.h | 32 +++++++++++++------ .../projectexplorer/projectexplorer.cpp | 2 +- .../projectexplorer/projectexplorersettings.h | 13 -------- src/plugins/projectexplorer/runcontrol.cpp | 1 + 5 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index fb2c0708c65..385c483b9c6 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -6,6 +6,7 @@ #include "projectexplorer.h" #include "projectexplorerconstants.h" #include "projectexplorericons.h" +#include "projectexplorersettings.h" #include "projectexplorertr.h" #include "projectmanager.h" #include "runcontrol.h" @@ -542,6 +543,11 @@ void AppOutputPane::showOutputPaneForRunControl(RunControl *runControl) popup(IOutputPane::NoModeSwitch | IOutputPane::WithFocus); } +void AppOutputPane::closeTabsWithoutPrompt() +{ + closeTabs(CloseTabNoPrompt); +} + 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 3c6a7789756..fd9bb586395 100644 --- a/src/plugins/projectexplorer/appoutputpane.h +++ b/src/plugins/projectexplorer/appoutputpane.h @@ -3,10 +3,9 @@ #pragma once -#include "projectexplorersettings.h" - -#include +#include #include +#include #include @@ -30,19 +29,26 @@ namespace Internal { class ShowOutputTaskHandler; class TabWidget; +enum class AppOutputPaneMode { FlashOnOutput, PopupOnOutput, PopupOnFirstOutput }; + +class AppOutputSettings +{ +public: + AppOutputPaneMode runOutputMode = AppOutputPaneMode::PopupOnFirstOutput; + AppOutputPaneMode debugOutputMode = AppOutputPaneMode::FlashOnOutput; + bool cleanOldOutput = false; + bool mergeChannels = false; + bool wrapOutput = false; + int maxCharCount = Core::Constants::DEFAULT_MAX_CHAR_COUNT; +}; + class AppOutputPane final : public Core::IOutputPane { public: - enum CloseTabMode { - CloseTabNoPrompt, - CloseTabWithPrompt - }; - AppOutputPane(); ~AppOutputPane() final; bool aboutToClose() const; - void closeTabs(CloseTabMode mode); QList allRunControls() const; @@ -52,7 +58,15 @@ public: void prepareRunControlStart(RunControl *runControl); void showOutputPaneForRunControl(RunControl *runControl); + void closeTabsWithoutPrompt(); + private: + enum CloseTabMode { + CloseTabNoPrompt, + CloseTabWithPrompt + }; + + void closeTabs(CloseTabMode mode); void showTabFor(RunControl *rc); void setBehaviorOnOutput(RunControl *rc, AppOutputPaneMode mode); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 3dd7cbdff68..fe96157ab1b 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2155,7 +2155,7 @@ IPlugin::ShutdownFlag ProjectExplorerPlugin::aboutToShutdown() if (dd->m_activeRunControlCount == 0) return SynchronousShutdown; - dd->m_outputPane.closeTabs(AppOutputPane::CloseTabNoPrompt /* No prompt any more */); + dd->m_outputPane.closeTabsWithoutPrompt(); dd->m_shutdownWatchDogId = dd->startTimer(10 * 1000); // Make sure we shutdown *somehow* return AsynchronousShutdown; } diff --git a/src/plugins/projectexplorer/projectexplorersettings.h b/src/plugins/projectexplorer/projectexplorersettings.h index 3a30548d60d..d3c9fbbfbf5 100644 --- a/src/plugins/projectexplorer/projectexplorersettings.h +++ b/src/plugins/projectexplorer/projectexplorersettings.h @@ -55,19 +55,6 @@ namespace Internal { void setPromptToStopSettings(bool promptToStop); // FIXME: Remove. void setSaveBeforeBuildSettings(bool saveBeforeBuild); // FIXME: Remove. -enum class AppOutputPaneMode { FlashOnOutput, PopupOnOutput, PopupOnFirstOutput }; - -class AppOutputSettings -{ -public: - AppOutputPaneMode runOutputMode = AppOutputPaneMode::PopupOnFirstOutput; - AppOutputPaneMode debugOutputMode = AppOutputPaneMode::FlashOnOutput; - bool cleanOldOutput = false; - bool mergeChannels = false; - bool wrapOutput = false; - int maxCharCount = Core::Constants::DEFAULT_MAX_CHAR_COUNT; -}; - void setupProjectExplorerSettings(); } // namespace Internal diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index 4dd364aaf0a..abce0345a1d 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -3,6 +3,7 @@ #include "runcontrol.h" +#include "appoutputpane.h" #include "buildconfiguration.h" #include "customparser.h" #include "devicesupport/devicemanager.h"