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

View File

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

View File

@@ -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<QWidget *> AxivionOutputPane::toolBarWidgets() const
return buttons;
}
int AxivionOutputPane::priorityInStatusBar() const
{
return -1;
}
void AxivionOutputPane::clearContents()
{
}

View File

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

View File

@@ -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
*/

View File

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

View File

@@ -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()

View File

@@ -38,7 +38,7 @@ public:
virtual const QList<OutputWindow *> 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;

View File

@@ -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;

View File

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

View File

@@ -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] {

View File

@@ -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<QWidget *> Console::toolBarWidgets() const
m_spacer, m_statusLabel};
}
int Console::priorityInStatusBar() const
{
return 20;
}
void Console::clearContents()
{
m_consoleItemModel->clear();

View File

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

View File

@@ -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<QWidget *> AppOutputPane::toolBarWidgets() const
m_formatterWidget} + IOutputPane::toolBarWidgets();
}
int AppOutputPane::priorityInStatusBar() const
{
return 60;
}
void AppOutputPane::clearContents()
{
auto *currentWindow = qobject_cast<Core::OutputWindow *>(m_tabWidget->currentWidget());

View File

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

View File

@@ -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;

View File

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

View File

@@ -170,6 +170,8 @@ TaskWindow::TaskWindow() : d(std::make_unique<TaskWindowPrivate>())
{
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

View File

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

View File

@@ -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<QWidget *> SerialOutputPane::toolBarWidgets() const
m_resetButton };
}
int SerialOutputPane::priorityInStatusBar() const
{
return 30;
}
void SerialOutputPane::clearContents()
{
auto currentWindow = qobject_cast<Core::OutputWindow *>(m_tabWidget->currentWidget());

View File

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

View File

@@ -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<QWidget *> SquishOutputPane::toolBarWidgets() const
return {m_filterButton, m_expandAll, m_collapseAll};
}
int SquishOutputPane::priorityInStatusBar() const
{
return -777;
}
void SquishOutputPane::clearContents()
{
if (m_outputPane->currentIndex() == 0)

View File

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

View File

@@ -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<QWidget *> 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())

View File

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

View File

@@ -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<QWidget*> TodoOutputPane::toolBarWidgets() const
return widgets;
}
int TodoOutputPane::priorityInStatusBar() const
{
return 1;
}
void TodoOutputPane::clearContents()
{
clearKeywordFilter();

View File

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

View File

@@ -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();

View File

@@ -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;