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: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Eike Ziller
2023-09-14 09:40:56 +02:00
parent 053c6253b8
commit b0043ed1ac
29 changed files with 51 additions and 94 deletions

View File

@@ -76,6 +76,7 @@ TestResultsPane::TestResultsPane(QObject *parent) :
{ {
setId("TestResults"); setId("TestResults");
setDisplayName(Tr::tr("Test Results")); setDisplayName(Tr::tr("Test Results"));
setPriorityInStatusBar(-30);
m_outputWidget = new QStackedWidget; m_outputWidget = new QStackedWidget;
QWidget *visualOutputWidget = new QWidget; QWidget *visualOutputWidget = new QWidget;
m_outputWidget->addWidget(visualOutputWidget); m_outputWidget->addWidget(visualOutputWidget);
@@ -276,11 +277,6 @@ QList<QWidget *> TestResultsPane::toolBarWidgets() const
return result; return result;
} }
int TestResultsPane::priorityInStatusBar() const
{
return -666;
}
void TestResultsPane::clearContents() void TestResultsPane::clearContents()
{ {
m_filterModel->clearTestResults(); m_filterModel->clearTestResults();

View File

@@ -60,7 +60,6 @@ public:
// IOutputPane interface // IOutputPane interface
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void setFocus() override; void setFocus() override;
bool hasFocus() const override; bool hasFocus() const override;

View File

@@ -172,6 +172,7 @@ AxivionOutputPane::AxivionOutputPane(QObject *parent)
{ {
setId("Axivion"); setId("Axivion");
setDisplayName(Tr::tr("Axivion")); setDisplayName(Tr::tr("Axivion"));
setPriorityInStatusBar(-50);
m_outputWidget = new QStackedWidget; m_outputWidget = new QStackedWidget;
DashboardWidget *dashboardWidget = new DashboardWidget(m_outputWidget); DashboardWidget *dashboardWidget = new DashboardWidget(m_outputWidget);
@@ -209,11 +210,6 @@ QList<QWidget *> AxivionOutputPane::toolBarWidgets() const
return buttons; return buttons;
} }
int AxivionOutputPane::priorityInStatusBar() const
{
return -1;
}
void AxivionOutputPane::clearContents() void AxivionOutputPane::clearContents()
{ {
} }

View File

@@ -21,7 +21,6 @@ public:
// IOutputPane interface // IOutputPane interface
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void setFocus() override; void setFocus() override;
bool hasFocus() const override; bool hasFocus() const override;

View File

@@ -365,6 +365,7 @@ SearchResultWindow::SearchResultWindow(QWidget *newSearchPanel)
{ {
setId("SearchResults"); setId("SearchResults");
setDisplayName(Tr::tr("Search Results")); setDisplayName(Tr::tr("Search Results"));
setPriorityInStatusBar(80);
m_instance = this; m_instance = this;
readSettings(); readSettings();
} }
@@ -657,14 +658,6 @@ void SearchResultWindow::writeSettings()
s->endGroup(); s->endGroup();
} }
/*!
\internal
*/
int SearchResultWindow::priorityInStatusBar() const
{
return 80;
}
/*! /*!
\internal \internal
*/ */

View File

@@ -114,7 +114,6 @@ public:
QWidget *outputWidget(QWidget *) override; QWidget *outputWidget(QWidget *) override;
QList<QWidget*> toolBarWidgets() const override; QList<QWidget*> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void visibilityChanged(bool visible) override; void visibilityChanged(bool visible) override;
bool hasFocus() const override; bool hasFocus() const override;
bool canFocus() const override; bool canFocus() const override;

View File

@@ -49,16 +49,6 @@ namespace Core {
Returns the toolbar widgets for the output pane. 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() \fn void IOutputPane::clearContents()

View File

@@ -38,7 +38,7 @@ public:
virtual const QList<OutputWindow *> outputWindows() const { return {}; } virtual const QList<OutputWindow *> outputWindows() const { return {}; }
virtual void ensureWindowVisible(OutputWindow *) { } virtual void ensureWindowVisible(OutputWindow *) { }
virtual int priorityInStatusBar() const = 0; int priorityInStatusBar() const;
virtual void clearContents() = 0; virtual void clearContents() = 0;
virtual void visibilityChanged(bool visible); virtual void visibilityChanged(bool visible);
@@ -84,6 +84,7 @@ signals:
protected: protected:
void setId(const Utils::Id &id); void setId(const Utils::Id &id);
void setDisplayName(const QString &name); void setDisplayName(const QString &name);
void setPriorityInStatusBar(int priority);
void setupFilterUi(const Utils::Key &historyKey); void setupFilterUi(const Utils::Key &historyKey);
QString filterText() const; QString filterText() const;
@@ -110,6 +111,7 @@ private:
Utils::Id m_id; Utils::Id m_id;
QString m_displayName; QString m_displayName;
int m_priority = -1;
Core::CommandButton * const m_zoomInButton; Core::CommandButton * const m_zoomInButton;
Core::CommandButton * const m_zoomOutButton; Core::CommandButton * const m_zoomOutButton;
QAction *m_filterActionRegexp = nullptr; QAction *m_filterActionRegexp = nullptr;

View File

@@ -22,6 +22,8 @@ MessageOutputWindow::MessageOutputWindow()
{ {
setId("GeneralMessages"); setId("GeneralMessages");
setDisplayName(Tr::tr("General Messages")); setDisplayName(Tr::tr("General Messages"));
setPriorityInStatusBar(-100);
m_widget = new OutputWindow(Context(Constants::C_GENERAL_OUTPUT_PANE), zoomSettingsKey); m_widget = new OutputWindow(Context(Constants::C_GENERAL_OUTPUT_PANE), zoomSettingsKey);
m_widget->setReadOnly(true); m_widget->setReadOnly(true);
@@ -72,11 +74,6 @@ void MessageOutputWindow::append(const QString &text)
m_widget->appendMessage(text, Utils::GeneralMessageFormat); m_widget->appendMessage(text, Utils::GeneralMessageFormat);
} }
int MessageOutputWindow::priorityInStatusBar() const
{
return -1;
}
bool MessageOutputWindow::canNext() const bool MessageOutputWindow::canNext() const
{ {
return false; return false;

View File

@@ -20,7 +20,6 @@ public:
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void append(const QString &text); void append(const QString &text);

View File

@@ -128,6 +128,30 @@ QString IOutputPane::displayName() const
return m_displayName; 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. Sets the translated display name of the output pane to \a name.
*/ */
@@ -522,7 +546,7 @@ void OutputPaneManager::initialize()
m_instance->buttonTriggered(i); m_instance->buttonTriggered(i);
}); });
bool visible = outPane->priorityInStatusBar() != -1; const bool visible = outPane->priorityInStatusBar() >= 0;
data.button->setVisible(visible); data.button->setVisible(visible);
connect(data.action, &QAction::triggered, m_instance, [i] { connect(data.action, &QAction::triggered, m_instance, [i] {

View File

@@ -39,6 +39,8 @@ Console::Console()
{ {
setId("QMLDebuggerConsole"); setId("QMLDebuggerConsole");
setDisplayName(Tr::tr("QML Debugger Console")); setDisplayName(Tr::tr("QML Debugger Console"));
setPriorityInStatusBar(-40);
m_consoleItemModel = new ConsoleItemModel(this); m_consoleItemModel = new ConsoleItemModel(this);
m_consoleWidget = new QWidget; m_consoleWidget = new QWidget;
@@ -144,11 +146,6 @@ QList<QWidget *> Console::toolBarWidgets() const
m_spacer, m_statusLabel}; m_spacer, m_statusLabel};
} }
int Console::priorityInStatusBar() const
{
return 20;
}
void Console::clearContents() void Console::clearContents()
{ {
m_consoleItemModel->clear(); m_consoleItemModel->clear();

View File

@@ -34,7 +34,6 @@ public:
QWidget *outputWidget(QWidget *) override; QWidget *outputWidget(QWidget *) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
bool canFocus() const override; bool canFocus() const override;
bool hasFocus() const override; bool hasFocus() const override;

View File

@@ -154,6 +154,8 @@ AppOutputPane::AppOutputPane() :
{ {
setId("ApplicationOutput"); setId("ApplicationOutput");
setDisplayName(Tr::tr("Application Output")); setDisplayName(Tr::tr("Application Output"));
setPriorityInStatusBar(60);
ExtensionSystem::PluginManager::addObject(m_handler); ExtensionSystem::PluginManager::addObject(m_handler);
setObjectName("AppOutputPane"); // Used in valgrind engine setObjectName("AppOutputPane"); // Used in valgrind engine
@@ -307,11 +309,6 @@ QList<QWidget *> AppOutputPane::toolBarWidgets() const
m_formatterWidget} + IOutputPane::toolBarWidgets(); m_formatterWidget} + IOutputPane::toolBarWidgets();
} }
int AppOutputPane::priorityInStatusBar() const
{
return 60;
}
void AppOutputPane::clearContents() void AppOutputPane::clearContents()
{ {
auto *currentWindow = qobject_cast<Core::OutputWindow *>(m_tabWidget->currentWidget()); auto *currentWindow = qobject_cast<Core::OutputWindow *>(m_tabWidget->currentWidget());

View File

@@ -46,7 +46,6 @@ public:
QWidget *outputWidget(QWidget *) override; QWidget *outputWidget(QWidget *) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
bool canFocus() const override; bool canFocus() const override;
bool hasFocus() const override; bool hasFocus() const override;

View File

@@ -52,6 +52,8 @@ CompileOutputWindow::CompileOutputWindow(QAction *cancelBuildAction) :
{ {
setId("CompileOutput"); setId("CompileOutput");
setDisplayName(QCoreApplication::translate("QtC::ProjectExplorer", "Compile Output")); setDisplayName(QCoreApplication::translate("QtC::ProjectExplorer", "Compile Output"));
setPriorityInStatusBar(40);
Core::Context context(C_COMPILE_OUTPUT); Core::Context context(C_COMPILE_OUTPUT);
m_outputWindow = new Core::OutputWindow(context, SETTINGS_KEY); m_outputWindow = new Core::OutputWindow(context, SETTINGS_KEY);
m_outputWindow->setWindowTitle(displayName()); m_outputWindow->setWindowTitle(displayName());
@@ -178,11 +180,6 @@ void CompileOutputWindow::clearContents()
m_outputWindow->clear(); m_outputWindow->clear();
} }
int CompileOutputWindow::priorityInStatusBar() const
{
return 50;
}
bool CompileOutputWindow::canNext() const bool CompileOutputWindow::canNext() const
{ {
return false; return false;

View File

@@ -48,7 +48,6 @@ public:
QWidget *outputWidget(QWidget *) override; QWidget *outputWidget(QWidget *) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
bool canFocus() const override; bool canFocus() const override;
bool hasFocus() const override; bool hasFocus() const override;

View File

@@ -170,6 +170,8 @@ TaskWindow::TaskWindow() : d(std::make_unique<TaskWindowPrivate>())
{ {
setId("Issues"); setId("Issues");
setDisplayName(Tr::tr("Issues")); setDisplayName(Tr::tr("Issues"));
setPriorityInStatusBar(100);
d->m_model = new Internal::TaskModel(this); d->m_model = new Internal::TaskModel(this);
d->m_filter = new Internal::TaskFilterModel(d->m_model); d->m_filter = new Internal::TaskFilterModel(d->m_model);
d->m_filter->setAutoAcceptChildRows(true); d->m_filter->setAutoAcceptChildRows(true);
@@ -500,11 +502,6 @@ int TaskWindow::warningTaskCount(Id category) const
return d->m_model->warningTaskCount(category); return d->m_model->warningTaskCount(category);
} }
int TaskWindow::priorityInStatusBar() const
{
return 90;
}
void TaskWindow::clearContents() void TaskWindow::clearContents()
{ {
// clear all tasks in all displays // clear all tasks in all displays

View File

@@ -40,7 +40,6 @@ public:
QWidget *outputWidget(QWidget *) override; QWidget *outputWidget(QWidget *) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void visibilityChanged(bool visible) override; void visibilityChanged(bool visible) override;

View File

@@ -122,6 +122,8 @@ SerialOutputPane::SerialOutputPane(Settings &settings) :
{ {
setId("Serial Terminal"); setId("Serial Terminal");
setDisplayName(Tr::tr(Constants::OUTPUT_PANE_TITLE)); setDisplayName(Tr::tr(Constants::OUTPUT_PANE_TITLE));
setPriorityInStatusBar(-70);
createToolButtons(); createToolButtons();
auto layout = new QVBoxLayout; auto layout = new QVBoxLayout;
@@ -176,11 +178,6 @@ QList<QWidget *> SerialOutputPane::toolBarWidgets() const
m_resetButton }; m_resetButton };
} }
int SerialOutputPane::priorityInStatusBar() const
{
return 30;
}
void SerialOutputPane::clearContents() void SerialOutputPane::clearContents()
{ {
auto currentWindow = qobject_cast<Core::OutputWindow *>(m_tabWidget->currentWidget()); auto currentWindow = qobject_cast<Core::OutputWindow *>(m_tabWidget->currentWidget());

View File

@@ -51,7 +51,6 @@ public:
QWidget *outputWidget(QWidget *parent) final; QWidget *outputWidget(QWidget *parent) final;
QList<QWidget *> toolBarWidgets() const final; QList<QWidget *> toolBarWidgets() const final;
int priorityInStatusBar() const final;
void clearContents() final; void clearContents() final;
bool canFocus() const final; bool canFocus() const final;
bool hasFocus() const final; bool hasFocus() const final;

View File

@@ -30,6 +30,8 @@ SquishOutputPane::SquishOutputPane()
{ {
setId("Squish"); setId("Squish");
setDisplayName(Tr::tr("Squish")); setDisplayName(Tr::tr("Squish"));
setPriorityInStatusBar(-60);
m_instance = this; m_instance = this;
m_outputPane = new QTabWidget; m_outputPane = new QTabWidget;
@@ -116,11 +118,6 @@ QList<QWidget *> SquishOutputPane::toolBarWidgets() const
return {m_filterButton, m_expandAll, m_collapseAll}; return {m_filterButton, m_expandAll, m_collapseAll};
} }
int SquishOutputPane::priorityInStatusBar() const
{
return -777;
}
void SquishOutputPane::clearContents() void SquishOutputPane::clearContents()
{ {
if (m_outputPane->currentIndex() == 0) if (m_outputPane->currentIndex() == 0)

View File

@@ -35,7 +35,6 @@ public:
// IOutputPane interface // IOutputPane interface
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void visibilityChanged(bool visible) override; void visibilityChanged(bool visible) override;
void setFocus() override; void setFocus() override;

View File

@@ -42,6 +42,8 @@ TerminalPane::TerminalPane(QObject *parent)
{ {
setId("Terminal"); setId("Terminal");
setDisplayName(Tr::tr("Terminal")); setDisplayName(Tr::tr("Terminal"));
setPriorityInStatusBar(20);
setupContext(m_selfContext, &m_tabWidget); setupContext(m_selfContext, &m_tabWidget);
setZoomButtonsEnabled(true); setZoomButtonsEnabled(true);
@@ -350,11 +352,6 @@ QList<QWidget *> TerminalPane::toolBarWidgets() const
return widgets << m_openSettingsButton << m_lockKeyboardButton << m_escSettingButton; return widgets << m_openSettingsButton << m_lockKeyboardButton << m_escSettingButton;
} }
int TerminalPane::priorityInStatusBar() const
{
return 50;
}
void TerminalPane::clearContents() void TerminalPane::clearContents()
{ {
if (const auto t = currentTerminal()) if (const auto t = currentTerminal())

View File

@@ -27,7 +27,6 @@ public:
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
QList<QWidget *> toolBarWidgets() const override; QList<QWidget *> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void visibilityChanged(bool visible) override; void visibilityChanged(bool visible) override;
void setFocus() override; void setFocus() override;

View File

@@ -28,6 +28,8 @@ TodoOutputPane::TodoOutputPane(TodoItemsModel *todoItemsModel, const Settings *s
{ {
setId("To-DoEntries"); setId("To-DoEntries");
setDisplayName(Tr::tr("To-Do Entries")); setDisplayName(Tr::tr("To-Do Entries"));
setPriorityInStatusBar(10);
createTreeView(); createTreeView();
createScopeButtons(); createScopeButtons();
setScanningScope(ScanningScopeCurrentFile); // default setScanningScope(ScanningScopeCurrentFile); // default
@@ -61,11 +63,6 @@ QList<QWidget*> TodoOutputPane::toolBarWidgets() const
return widgets; return widgets;
} }
int TodoOutputPane::priorityInStatusBar() const
{
return 1;
}
void TodoOutputPane::clearContents() void TodoOutputPane::clearContents()
{ {
clearKeywordFilter(); clearKeywordFilter();

View File

@@ -35,7 +35,6 @@ public:
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
QList<QWidget*> toolBarWidgets() const override; QList<QWidget*> toolBarWidgets() const override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void setFocus() override; void setFocus() override;
bool hasFocus() const override; bool hasFocus() const override;

View File

@@ -285,6 +285,8 @@ VcsOutputWindow::VcsOutputWindow()
{ {
setId("VersionControl"); setId("VersionControl");
setDisplayName(Tr::tr("Version Control")); setDisplayName(Tr::tr("Version Control"));
setPriorityInStatusBar(-20);
d = new VcsOutputWindowPrivate; d = new VcsOutputWindowPrivate;
Q_ASSERT(d->passwordRegExp.isValid()); Q_ASSERT(d->passwordRegExp.isValid());
m_instance = this; m_instance = this;
@@ -329,11 +331,6 @@ QWidget *VcsOutputWindow::outputWidget(QWidget *parent)
return &d->widget; return &d->widget;
} }
int VcsOutputWindow::priorityInStatusBar() const
{
return -1;
}
void VcsOutputWindow::clearContents() void VcsOutputWindow::clearContents()
{ {
d->widget.clear(); d->widget.clear();

View File

@@ -23,8 +23,6 @@ class VCSBASE_EXPORT VcsOutputWindow : public Core::IOutputPane
public: public:
QWidget *outputWidget(QWidget *parent) override; QWidget *outputWidget(QWidget *parent) override;
int priorityInStatusBar() const override;
void clearContents() override; void clearContents() override;
void setFocus() override; void setFocus() override;