From b0043ed1acb5af88b570ef67d5ecb39bd2050e84 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 14 Sep 2023 09:40:56 +0200 Subject: [PATCH] OutputPane: Use setter for priority and fix default visibility Do not show the buttons of output views with priority < 0 (instead of only == -1). Reduce the number of buttons that are shown by default to the essential ones. Change-Id: I5b44f18537b3033ce9d616f044a8b54b76988783 Reviewed-by: Reviewed-by: Marcus Tillmanns --- src/plugins/autotest/testresultspane.cpp | 6 +---- src/plugins/autotest/testresultspane.h | 1 - src/plugins/axivion/axivionoutputpane.cpp | 6 +---- src/plugins/axivion/axivionoutputpane.h | 1 - .../coreplugin/find/searchresultwindow.cpp | 9 +------ .../coreplugin/find/searchresultwindow.h | 1 - src/plugins/coreplugin/ioutputpane.cpp | 10 ------- src/plugins/coreplugin/ioutputpane.h | 4 ++- .../coreplugin/messageoutputwindow.cpp | 7 ++--- src/plugins/coreplugin/messageoutputwindow.h | 1 - src/plugins/coreplugin/outputpanemanager.cpp | 26 ++++++++++++++++++- src/plugins/debugger/console/console.cpp | 7 ++--- src/plugins/debugger/console/console.h | 1 - src/plugins/projectexplorer/appoutputpane.cpp | 7 ++--- src/plugins/projectexplorer/appoutputpane.h | 1 - .../projectexplorer/compileoutputwindow.cpp | 7 ++--- .../projectexplorer/compileoutputwindow.h | 1 - src/plugins/projectexplorer/taskwindow.cpp | 7 ++--- src/plugins/projectexplorer/taskwindow.h | 1 - .../serialterminal/serialoutputpane.cpp | 7 ++--- src/plugins/serialterminal/serialoutputpane.h | 1 - src/plugins/squish/squishoutputpane.cpp | 7 ++--- src/plugins/squish/squishoutputpane.h | 1 - src/plugins/terminal/terminalpane.cpp | 7 ++--- src/plugins/terminal/terminalpane.h | 1 - src/plugins/todo/todooutputpane.cpp | 7 ++--- src/plugins/todo/todooutputpane.h | 1 - src/plugins/vcsbase/vcsoutputwindow.cpp | 7 ++--- src/plugins/vcsbase/vcsoutputwindow.h | 2 -- 29 files changed, 51 insertions(+), 94 deletions(-) diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp index 43dce00ed9a..d22ad892e45 100644 --- a/src/plugins/autotest/testresultspane.cpp +++ b/src/plugins/autotest/testresultspane.cpp @@ -76,6 +76,7 @@ TestResultsPane::TestResultsPane(QObject *parent) : { setId("TestResults"); setDisplayName(Tr::tr("Test Results")); + setPriorityInStatusBar(-30); m_outputWidget = new QStackedWidget; QWidget *visualOutputWidget = new QWidget; m_outputWidget->addWidget(visualOutputWidget); @@ -276,11 +277,6 @@ QList TestResultsPane::toolBarWidgets() const return result; } -int TestResultsPane::priorityInStatusBar() const -{ - return -666; -} - void TestResultsPane::clearContents() { m_filterModel->clearTestResults(); diff --git a/src/plugins/autotest/testresultspane.h b/src/plugins/autotest/testresultspane.h index 7db699fc411..d762890c97c 100644 --- a/src/plugins/autotest/testresultspane.h +++ b/src/plugins/autotest/testresultspane.h @@ -60,7 +60,6 @@ public: // IOutputPane interface QWidget *outputWidget(QWidget *parent) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; void setFocus() override; bool hasFocus() const override; diff --git a/src/plugins/axivion/axivionoutputpane.cpp b/src/plugins/axivion/axivionoutputpane.cpp index c961501fa27..4124a6c2473 100644 --- a/src/plugins/axivion/axivionoutputpane.cpp +++ b/src/plugins/axivion/axivionoutputpane.cpp @@ -172,6 +172,7 @@ AxivionOutputPane::AxivionOutputPane(QObject *parent) { setId("Axivion"); setDisplayName(Tr::tr("Axivion")); + setPriorityInStatusBar(-50); m_outputWidget = new QStackedWidget; DashboardWidget *dashboardWidget = new DashboardWidget(m_outputWidget); @@ -209,11 +210,6 @@ QList AxivionOutputPane::toolBarWidgets() const return buttons; } -int AxivionOutputPane::priorityInStatusBar() const -{ - return -1; -} - void AxivionOutputPane::clearContents() { } diff --git a/src/plugins/axivion/axivionoutputpane.h b/src/plugins/axivion/axivionoutputpane.h index f156ce3b54c..140d50b7235 100644 --- a/src/plugins/axivion/axivionoutputpane.h +++ b/src/plugins/axivion/axivionoutputpane.h @@ -21,7 +21,6 @@ public: // IOutputPane interface QWidget *outputWidget(QWidget *parent) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; void setFocus() override; bool hasFocus() const override; diff --git a/src/plugins/coreplugin/find/searchresultwindow.cpp b/src/plugins/coreplugin/find/searchresultwindow.cpp index c7ff84b3eef..ba121114876 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.cpp +++ b/src/plugins/coreplugin/find/searchresultwindow.cpp @@ -365,6 +365,7 @@ SearchResultWindow::SearchResultWindow(QWidget *newSearchPanel) { setId("SearchResults"); setDisplayName(Tr::tr("Search Results")); + setPriorityInStatusBar(80); m_instance = this; readSettings(); } @@ -657,14 +658,6 @@ void SearchResultWindow::writeSettings() s->endGroup(); } -/*! - \internal -*/ -int SearchResultWindow::priorityInStatusBar() const -{ - return 80; -} - /*! \internal */ diff --git a/src/plugins/coreplugin/find/searchresultwindow.h b/src/plugins/coreplugin/find/searchresultwindow.h index be1d43b1225..1aac86070c4 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.h +++ b/src/plugins/coreplugin/find/searchresultwindow.h @@ -114,7 +114,6 @@ public: QWidget *outputWidget(QWidget *) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void visibilityChanged(bool visible) override; bool hasFocus() const override; bool canFocus() const override; diff --git a/src/plugins/coreplugin/ioutputpane.cpp b/src/plugins/coreplugin/ioutputpane.cpp index be385af5866..d10c55eaad0 100644 --- a/src/plugins/coreplugin/ioutputpane.cpp +++ b/src/plugins/coreplugin/ioutputpane.cpp @@ -49,16 +49,6 @@ namespace Core { Returns the toolbar widgets for the output pane. */ -/*! - \fn int IOutputPane::priorityInStatusBar() const - - Determines the position of the output pane on the status bar. - \list - \li 100 to 0 from front to end - \li -1 do not show in status bar - \endlist -*/ - /*! \fn void IOutputPane::clearContents() diff --git a/src/plugins/coreplugin/ioutputpane.h b/src/plugins/coreplugin/ioutputpane.h index ff033866504..07f32ded5b6 100644 --- a/src/plugins/coreplugin/ioutputpane.h +++ b/src/plugins/coreplugin/ioutputpane.h @@ -38,7 +38,7 @@ public: virtual const QList outputWindows() const { return {}; } virtual void ensureWindowVisible(OutputWindow *) { } - virtual int priorityInStatusBar() const = 0; + int priorityInStatusBar() const; virtual void clearContents() = 0; virtual void visibilityChanged(bool visible); @@ -84,6 +84,7 @@ signals: protected: void setId(const Utils::Id &id); void setDisplayName(const QString &name); + void setPriorityInStatusBar(int priority); void setupFilterUi(const Utils::Key &historyKey); QString filterText() const; @@ -110,6 +111,7 @@ private: Utils::Id m_id; QString m_displayName; + int m_priority = -1; Core::CommandButton * const m_zoomInButton; Core::CommandButton * const m_zoomOutButton; QAction *m_filterActionRegexp = nullptr; diff --git a/src/plugins/coreplugin/messageoutputwindow.cpp b/src/plugins/coreplugin/messageoutputwindow.cpp index 7ee6e6b1a56..1cfe384ac00 100644 --- a/src/plugins/coreplugin/messageoutputwindow.cpp +++ b/src/plugins/coreplugin/messageoutputwindow.cpp @@ -22,6 +22,8 @@ MessageOutputWindow::MessageOutputWindow() { setId("GeneralMessages"); setDisplayName(Tr::tr("General Messages")); + setPriorityInStatusBar(-100); + m_widget = new OutputWindow(Context(Constants::C_GENERAL_OUTPUT_PANE), zoomSettingsKey); m_widget->setReadOnly(true); @@ -72,11 +74,6 @@ void MessageOutputWindow::append(const QString &text) m_widget->appendMessage(text, Utils::GeneralMessageFormat); } -int MessageOutputWindow::priorityInStatusBar() const -{ - return -1; -} - bool MessageOutputWindow::canNext() const { return false; diff --git a/src/plugins/coreplugin/messageoutputwindow.h b/src/plugins/coreplugin/messageoutputwindow.h index 14f9491eff4..ef0d93a97cf 100644 --- a/src/plugins/coreplugin/messageoutputwindow.h +++ b/src/plugins/coreplugin/messageoutputwindow.h @@ -20,7 +20,6 @@ public: QWidget *outputWidget(QWidget *parent) override; - int priorityInStatusBar() const override; void clearContents() override; void append(const QString &text); diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp index 7bb9964ff3e..1c3ad99310c 100644 --- a/src/plugins/coreplugin/outputpanemanager.cpp +++ b/src/plugins/coreplugin/outputpanemanager.cpp @@ -128,6 +128,30 @@ QString IOutputPane::displayName() const return m_displayName; } +/*! + Determines the position of the output pane on the status bar and the + default visibility. + \sa setPriorityInStatusBar() +*/ +int IOutputPane::priorityInStatusBar() const +{ + return m_priority; +} + +/*! + Sets the position of the output pane on the status bar and the default + visibility to \a priority. + \list + \li higher numbers are further to the front + \li >= 0 are shown in status bar by default + \li < 0 are not shown in status bar by default + \endlist +*/ +void IOutputPane::setPriorityInStatusBar(int priority) +{ + m_priority = priority; +} + /*! Sets the translated display name of the output pane to \a name. */ @@ -522,7 +546,7 @@ void OutputPaneManager::initialize() m_instance->buttonTriggered(i); }); - bool visible = outPane->priorityInStatusBar() != -1; + const bool visible = outPane->priorityInStatusBar() >= 0; data.button->setVisible(visible); connect(data.action, &QAction::triggered, m_instance, [i] { diff --git a/src/plugins/debugger/console/console.cpp b/src/plugins/debugger/console/console.cpp index 0eeac32155f..b1ee0dac83e 100644 --- a/src/plugins/debugger/console/console.cpp +++ b/src/plugins/debugger/console/console.cpp @@ -39,6 +39,8 @@ Console::Console() { setId("QMLDebuggerConsole"); setDisplayName(Tr::tr("QML Debugger Console")); + setPriorityInStatusBar(-40); + m_consoleItemModel = new ConsoleItemModel(this); m_consoleWidget = new QWidget; @@ -144,11 +146,6 @@ QList Console::toolBarWidgets() const m_spacer, m_statusLabel}; } -int Console::priorityInStatusBar() const -{ - return 20; -} - void Console::clearContents() { m_consoleItemModel->clear(); diff --git a/src/plugins/debugger/console/console.h b/src/plugins/debugger/console/console.h index be9fb66e116..abf3c267c00 100644 --- a/src/plugins/debugger/console/console.h +++ b/src/plugins/debugger/console/console.h @@ -34,7 +34,6 @@ public: QWidget *outputWidget(QWidget *) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; bool canFocus() const override; bool hasFocus() const override; diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index ad4eb326ed3..13f3d2e5d3c 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -154,6 +154,8 @@ AppOutputPane::AppOutputPane() : { setId("ApplicationOutput"); setDisplayName(Tr::tr("Application Output")); + setPriorityInStatusBar(60); + ExtensionSystem::PluginManager::addObject(m_handler); setObjectName("AppOutputPane"); // Used in valgrind engine @@ -307,11 +309,6 @@ QList AppOutputPane::toolBarWidgets() const m_formatterWidget} + IOutputPane::toolBarWidgets(); } -int AppOutputPane::priorityInStatusBar() const -{ - return 60; -} - void AppOutputPane::clearContents() { auto *currentWindow = qobject_cast(m_tabWidget->currentWidget()); diff --git a/src/plugins/projectexplorer/appoutputpane.h b/src/plugins/projectexplorer/appoutputpane.h index d62c7ef404b..f7cbb653ff3 100644 --- a/src/plugins/projectexplorer/appoutputpane.h +++ b/src/plugins/projectexplorer/appoutputpane.h @@ -46,7 +46,6 @@ public: QWidget *outputWidget(QWidget *) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; bool canFocus() const override; bool hasFocus() const override; diff --git a/src/plugins/projectexplorer/compileoutputwindow.cpp b/src/plugins/projectexplorer/compileoutputwindow.cpp index 1cd8d9a2333..a8692b8c5e0 100644 --- a/src/plugins/projectexplorer/compileoutputwindow.cpp +++ b/src/plugins/projectexplorer/compileoutputwindow.cpp @@ -52,6 +52,8 @@ CompileOutputWindow::CompileOutputWindow(QAction *cancelBuildAction) : { setId("CompileOutput"); setDisplayName(QCoreApplication::translate("QtC::ProjectExplorer", "Compile Output")); + setPriorityInStatusBar(40); + Core::Context context(C_COMPILE_OUTPUT); m_outputWindow = new Core::OutputWindow(context, SETTINGS_KEY); m_outputWindow->setWindowTitle(displayName()); @@ -178,11 +180,6 @@ void CompileOutputWindow::clearContents() m_outputWindow->clear(); } -int CompileOutputWindow::priorityInStatusBar() const -{ - return 50; -} - bool CompileOutputWindow::canNext() const { return false; diff --git a/src/plugins/projectexplorer/compileoutputwindow.h b/src/plugins/projectexplorer/compileoutputwindow.h index 3cb79835122..21cebcb2dba 100644 --- a/src/plugins/projectexplorer/compileoutputwindow.h +++ b/src/plugins/projectexplorer/compileoutputwindow.h @@ -48,7 +48,6 @@ public: QWidget *outputWidget(QWidget *) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; bool canFocus() const override; bool hasFocus() const override; diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index dc259975000..db25d4e9de5 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -170,6 +170,8 @@ TaskWindow::TaskWindow() : d(std::make_unique()) { setId("Issues"); setDisplayName(Tr::tr("Issues")); + setPriorityInStatusBar(100); + d->m_model = new Internal::TaskModel(this); d->m_filter = new Internal::TaskFilterModel(d->m_model); d->m_filter->setAutoAcceptChildRows(true); @@ -500,11 +502,6 @@ int TaskWindow::warningTaskCount(Id category) const return d->m_model->warningTaskCount(category); } -int TaskWindow::priorityInStatusBar() const -{ - return 90; -} - void TaskWindow::clearContents() { // clear all tasks in all displays diff --git a/src/plugins/projectexplorer/taskwindow.h b/src/plugins/projectexplorer/taskwindow.h index 06ce354c36e..2d53928d97d 100644 --- a/src/plugins/projectexplorer/taskwindow.h +++ b/src/plugins/projectexplorer/taskwindow.h @@ -40,7 +40,6 @@ public: QWidget *outputWidget(QWidget *) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; void visibilityChanged(bool visible) override; diff --git a/src/plugins/serialterminal/serialoutputpane.cpp b/src/plugins/serialterminal/serialoutputpane.cpp index fd2dfb39ffe..2f30bf75fcd 100644 --- a/src/plugins/serialterminal/serialoutputpane.cpp +++ b/src/plugins/serialterminal/serialoutputpane.cpp @@ -122,6 +122,8 @@ SerialOutputPane::SerialOutputPane(Settings &settings) : { setId("Serial Terminal"); setDisplayName(Tr::tr(Constants::OUTPUT_PANE_TITLE)); + setPriorityInStatusBar(-70); + createToolButtons(); auto layout = new QVBoxLayout; @@ -176,11 +178,6 @@ QList SerialOutputPane::toolBarWidgets() const m_resetButton }; } -int SerialOutputPane::priorityInStatusBar() const -{ - return 30; -} - void SerialOutputPane::clearContents() { auto currentWindow = qobject_cast(m_tabWidget->currentWidget()); diff --git a/src/plugins/serialterminal/serialoutputpane.h b/src/plugins/serialterminal/serialoutputpane.h index f2a2d5414ca..1f970e2f18e 100644 --- a/src/plugins/serialterminal/serialoutputpane.h +++ b/src/plugins/serialterminal/serialoutputpane.h @@ -51,7 +51,6 @@ public: QWidget *outputWidget(QWidget *parent) final; QList toolBarWidgets() const final; - int priorityInStatusBar() const final; void clearContents() final; bool canFocus() const final; bool hasFocus() const final; diff --git a/src/plugins/squish/squishoutputpane.cpp b/src/plugins/squish/squishoutputpane.cpp index 55612f588ce..1395af9e463 100644 --- a/src/plugins/squish/squishoutputpane.cpp +++ b/src/plugins/squish/squishoutputpane.cpp @@ -30,6 +30,8 @@ SquishOutputPane::SquishOutputPane() { setId("Squish"); setDisplayName(Tr::tr("Squish")); + setPriorityInStatusBar(-60); + m_instance = this; m_outputPane = new QTabWidget; @@ -116,11 +118,6 @@ QList SquishOutputPane::toolBarWidgets() const return {m_filterButton, m_expandAll, m_collapseAll}; } -int SquishOutputPane::priorityInStatusBar() const -{ - return -777; -} - void SquishOutputPane::clearContents() { if (m_outputPane->currentIndex() == 0) diff --git a/src/plugins/squish/squishoutputpane.h b/src/plugins/squish/squishoutputpane.h index 5b354c8a8c8..914e931f794 100644 --- a/src/plugins/squish/squishoutputpane.h +++ b/src/plugins/squish/squishoutputpane.h @@ -35,7 +35,6 @@ public: // IOutputPane interface QWidget *outputWidget(QWidget *parent) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; void visibilityChanged(bool visible) override; void setFocus() override; diff --git a/src/plugins/terminal/terminalpane.cpp b/src/plugins/terminal/terminalpane.cpp index 5f1ab157231..df059d03b3b 100644 --- a/src/plugins/terminal/terminalpane.cpp +++ b/src/plugins/terminal/terminalpane.cpp @@ -42,6 +42,8 @@ TerminalPane::TerminalPane(QObject *parent) { setId("Terminal"); setDisplayName(Tr::tr("Terminal")); + setPriorityInStatusBar(20); + setupContext(m_selfContext, &m_tabWidget); setZoomButtonsEnabled(true); @@ -350,11 +352,6 @@ QList TerminalPane::toolBarWidgets() const return widgets << m_openSettingsButton << m_lockKeyboardButton << m_escSettingButton; } -int TerminalPane::priorityInStatusBar() const -{ - return 50; -} - void TerminalPane::clearContents() { if (const auto t = currentTerminal()) diff --git a/src/plugins/terminal/terminalpane.h b/src/plugins/terminal/terminalpane.h index 4b201ad585d..c21d1525120 100644 --- a/src/plugins/terminal/terminalpane.h +++ b/src/plugins/terminal/terminalpane.h @@ -27,7 +27,6 @@ public: QWidget *outputWidget(QWidget *parent) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; void visibilityChanged(bool visible) override; void setFocus() override; diff --git a/src/plugins/todo/todooutputpane.cpp b/src/plugins/todo/todooutputpane.cpp index 5a656a541db..3f314e86a99 100644 --- a/src/plugins/todo/todooutputpane.cpp +++ b/src/plugins/todo/todooutputpane.cpp @@ -28,6 +28,8 @@ TodoOutputPane::TodoOutputPane(TodoItemsModel *todoItemsModel, const Settings *s { setId("To-DoEntries"); setDisplayName(Tr::tr("To-Do Entries")); + setPriorityInStatusBar(10); + createTreeView(); createScopeButtons(); setScanningScope(ScanningScopeCurrentFile); // default @@ -61,11 +63,6 @@ QList TodoOutputPane::toolBarWidgets() const return widgets; } -int TodoOutputPane::priorityInStatusBar() const -{ - return 1; -} - void TodoOutputPane::clearContents() { clearKeywordFilter(); diff --git a/src/plugins/todo/todooutputpane.h b/src/plugins/todo/todooutputpane.h index 595a9118eac..f408a399362 100644 --- a/src/plugins/todo/todooutputpane.h +++ b/src/plugins/todo/todooutputpane.h @@ -35,7 +35,6 @@ public: QWidget *outputWidget(QWidget *parent) override; QList toolBarWidgets() const override; - int priorityInStatusBar() const override; void clearContents() override; void setFocus() override; bool hasFocus() const override; diff --git a/src/plugins/vcsbase/vcsoutputwindow.cpp b/src/plugins/vcsbase/vcsoutputwindow.cpp index ea07ccf9d61..10b0ace71ac 100644 --- a/src/plugins/vcsbase/vcsoutputwindow.cpp +++ b/src/plugins/vcsbase/vcsoutputwindow.cpp @@ -285,6 +285,8 @@ VcsOutputWindow::VcsOutputWindow() { setId("VersionControl"); setDisplayName(Tr::tr("Version Control")); + setPriorityInStatusBar(-20); + d = new VcsOutputWindowPrivate; Q_ASSERT(d->passwordRegExp.isValid()); m_instance = this; @@ -329,11 +331,6 @@ QWidget *VcsOutputWindow::outputWidget(QWidget *parent) return &d->widget; } -int VcsOutputWindow::priorityInStatusBar() const -{ - return -1; -} - void VcsOutputWindow::clearContents() { d->widget.clear(); diff --git a/src/plugins/vcsbase/vcsoutputwindow.h b/src/plugins/vcsbase/vcsoutputwindow.h index a0242dbfd5c..ec2235d7285 100644 --- a/src/plugins/vcsbase/vcsoutputwindow.h +++ b/src/plugins/vcsbase/vcsoutputwindow.h @@ -23,8 +23,6 @@ class VCSBASE_EXPORT VcsOutputWindow : public Core::IOutputPane public: QWidget *outputWidget(QWidget *parent) override; - int priorityInStatusBar() const override; - void clearContents() override; void setFocus() override;