aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2019-03-31 08:04:43 +0200
committerAndré Hartmann <aha_1980@gmx.de>2019-04-16 14:20:22 +0000
commit48073b2990aa2d80b025446381c5ca13b84f66ca (patch)
tree136499d1696ab2213e12a4c7048ce36511cc8187
parente127d599acd3ec22b472cd24815e37325ce5ba76 (diff)
IOutputPane: Refactor zoom function into base class
Try to make zoom and font handling in the panes more similar and put common stuff into IOutputPane. Change-Id: I59c38c5eecbf67b7ca6c9d84a6f61b1292a787df Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--src/plugins/coreplugin/ioutputpane.h17
-rw-r--r--src/plugins/coreplugin/messageoutputwindow.cpp60
-rw-r--r--src/plugins/coreplugin/messageoutputwindow.h9
-rw-r--r--src/plugins/coreplugin/outputpanemanager.cpp42
-rw-r--r--src/plugins/coreplugin/outputwindow.cpp12
-rw-r--r--src/plugins/coreplugin/outputwindow.h3
-rw-r--r--src/plugins/projectexplorer/appoutputpane.cpp101
-rw-r--r--src/plugins/projectexplorer/appoutputpane.h10
-rw-r--r--src/plugins/projectexplorer/compileoutputwindow.cpp71
-rw-r--r--src/plugins/projectexplorer/compileoutputwindow.h3
-rw-r--r--src/plugins/serialterminal/serialoutputpane.cpp2
-rw-r--r--src/plugins/vcsbase/vcsoutputwindow.cpp2
12 files changed, 131 insertions, 201 deletions
diff --git a/src/plugins/coreplugin/ioutputpane.h b/src/plugins/coreplugin/ioutputpane.h
index 9ca6b1ef80..3513d85095 100644
--- a/src/plugins/coreplugin/ioutputpane.h
+++ b/src/plugins/coreplugin/ioutputpane.h
@@ -32,6 +32,7 @@
#include <QString>
QT_BEGIN_NAMESPACE
+class QToolButton;
class QWidget;
QT_END_NAMESPACE
@@ -46,7 +47,7 @@ public:
~IOutputPane() override;
virtual QWidget *outputWidget(QWidget *parent) = 0;
- virtual QList<QWidget *> toolBarWidgets() const = 0;
+ virtual QList<QWidget *> toolBarWidgets() const;
virtual QString displayName() const = 0;
virtual int priorityInStatusBar() const = 0;
@@ -64,6 +65,9 @@ public:
virtual void goToNext() = 0;
virtual void goToPrev() = 0;
+ void setFont(const QFont &font);
+ void setWheelZoomEnabled(bool enabled);
+
enum Flag { NoModeSwitch = 0, ModeSwitch = 1, WithFocus = 2, EnsureSizeHint = 4};
Q_DECLARE_FLAGS(Flags, Flag)
@@ -83,6 +87,17 @@ signals:
void navigateStateUpdate();
void flashButton();
void setBadgeNumber(int number);
+ void zoomIn(int range);
+ void zoomOut(int range);
+ void wheelZoomEnabledChanged(bool enabled);
+ void fontChanged(const QFont &font);
+
+protected:
+ void setZoomButtonsEnabled(bool enabled);
+
+private:
+ QToolButton * const m_zoomInButton = nullptr;
+ QToolButton * const m_zoomOutButton = nullptr;
};
} // namespace Core
diff --git a/src/plugins/coreplugin/messageoutputwindow.cpp b/src/plugins/coreplugin/messageoutputwindow.cpp
index 5541090379..a88f491955 100644
--- a/src/plugins/coreplugin/messageoutputwindow.cpp
+++ b/src/plugins/coreplugin/messageoutputwindow.cpp
@@ -41,11 +41,9 @@ namespace Internal {
const char zoomSettingsKey[] = "Core/MessageOutput/Zoom";
-MessageOutputWindow::MessageOutputWindow() :
- m_zoomInButton(new QToolButton),
- m_zoomOutButton(new QToolButton)
+MessageOutputWindow::MessageOutputWindow()
{
- m_widget = new OutputWindow(Context(Constants::C_GENERAL_OUTPUT_PANE));
+ m_widget = new OutputWindow(Context(Constants::C_GENERAL_OUTPUT_PANE), zoomSettingsKey);
m_widget->setReadOnly(true);
// Let selected text be colored as if the text edit was editable,
// otherwise the highlight for searching is too light
@@ -55,30 +53,20 @@ MessageOutputWindow::MessageOutputWindow() :
QColor activeHighlightedText = p.color(QPalette::Active, QPalette::HighlightedText);
p.setColor(QPalette::HighlightedText, activeHighlightedText);
m_widget->setPalette(p);
+
+ setZoomButtonsEnabled(true);
+ connect(this, &IOutputPane::zoomIn, m_widget, &Core::OutputWindow::zoomIn);
+ connect(this, &IOutputPane::zoomOut, m_widget, &Core::OutputWindow::zoomOut);
+ connect(this, &IOutputPane::fontChanged, m_widget, &OutputWindow::setBaseFont);
+ connect(this, &IOutputPane::wheelZoomEnabledChanged, m_widget, &OutputWindow::setWheelZoomEnabled);
+
auto agg = new Aggregation::Aggregate;
agg->add(m_widget);
agg->add(new BaseTextFind(m_widget));
-
- loadSettings();
-
- m_zoomInButton->setToolTip(tr("Increase Font Size"));
- m_zoomInButton->setIcon(Utils::Icons::PLUS_TOOLBAR.icon());
- m_zoomInButton->setAutoRaise(true);
- connect(m_zoomInButton, &QToolButton::clicked, this, [this] { m_widget->zoomIn(1); });
-
- m_zoomOutButton->setToolTip(tr("Decrease Font Size"));
- m_zoomOutButton->setIcon(Utils::Icons::MINUS.icon());
- m_zoomOutButton->setAutoRaise(true);
- connect(m_zoomOutButton, &QToolButton::clicked, this, [this] { m_widget->zoomOut(1); });
-
- connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
- this, &MessageOutputWindow::storeSettings);
}
MessageOutputWindow::~MessageOutputWindow()
{
- delete m_zoomInButton;
- delete m_zoomOutButton;
delete m_widget;
}
@@ -108,11 +96,6 @@ QWidget *MessageOutputWindow::outputWidget(QWidget *parent)
return m_widget;
}
-QList<QWidget *> MessageOutputWindow::toolBarWidgets() const
-{
- return {m_zoomInButton, m_zoomOutButton};
-}
-
QString MessageOutputWindow::displayName() const
{
return tr("General Messages");
@@ -157,30 +140,5 @@ bool MessageOutputWindow::canNavigate() const
return false;
}
-void MessageOutputWindow::setFont(const QFont &font)
-{
- m_widget->setBaseFont(font);
-}
-
-void MessageOutputWindow::setWheelZoomEnabled(bool enabled)
-{
- m_widget->setWheelZoomEnabled(enabled);
-}
-
-void MessageOutputWindow::storeSettings() const
-{
- QSettings * const s = Core::ICore::settings();
-
- s->setValue(zoomSettingsKey, m_widget->fontZoom());
-}
-
-void MessageOutputWindow::loadSettings()
-{
- QSettings * const s = Core::ICore::settings();
-
- float zoom = s->value(zoomSettingsKey, 0).toFloat();
- m_widget->setFontZoom(zoom);
-}
-
} // namespace Internal
} // namespace Core
diff --git a/src/plugins/coreplugin/messageoutputwindow.h b/src/plugins/coreplugin/messageoutputwindow.h
index 238fbb7b81..f32bcea176 100644
--- a/src/plugins/coreplugin/messageoutputwindow.h
+++ b/src/plugins/coreplugin/messageoutputwindow.h
@@ -46,7 +46,6 @@ public:
~MessageOutputWindow() override;
QWidget *outputWidget(QWidget *parent) override;
- QList<QWidget*> toolBarWidgets() const override;
QString displayName() const override;
int priorityInStatusBar() const override;
@@ -64,16 +63,8 @@ public:
void goToPrev() override;
bool canNavigate() const override;
- void setFont(const QFont &font);
- void setWheelZoomEnabled(bool enabled);
-
private:
- void storeSettings() const;
- void loadSettings();
-
OutputWindow *m_widget;
- QToolButton *m_zoomInButton = nullptr;
- QToolButton *m_zoomOutButton = nullptr;
};
} // namespace Internal
diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp
index eb411bdaa9..3122e35bac 100644
--- a/src/plugins/coreplugin/outputpanemanager.cpp
+++ b/src/plugins/coreplugin/outputpanemanager.cpp
@@ -88,11 +88,25 @@ static bool g_managerConstructed = false; // For debugging reasons.
// OutputPane
IOutputPane::IOutputPane(QObject *parent)
- : QObject(parent)
+ : QObject(parent),
+ m_zoomInButton(new QToolButton),
+ m_zoomOutButton(new QToolButton)
{
// We need all pages first. Ignore latecomers and shout.
QTC_ASSERT(!g_managerConstructed, return);
g_outputPanes.append(OutputPaneData(this));
+
+ m_zoomInButton->setToolTip(tr("Increase Font Size"));
+ m_zoomInButton->setIcon(Utils::Icons::PLUS_TOOLBAR.icon());
+ m_zoomInButton->setAutoRaise(true);
+ m_zoomInButton->setVisible(false);
+ connect(m_zoomInButton, &QToolButton::clicked, this, [this] { emit zoomIn(1); });
+
+ m_zoomOutButton->setToolTip(tr("Decrease Font Size"));
+ m_zoomOutButton->setIcon(Utils::Icons::MINUS.icon());
+ m_zoomOutButton->setAutoRaise(true);
+ m_zoomOutButton->setVisible(false);
+ connect(m_zoomOutButton, &QToolButton::clicked, this, [this] { emit zoomOut(1); });
}
IOutputPane::~IOutputPane()
@@ -100,6 +114,32 @@ IOutputPane::~IOutputPane()
const int i = Utils::indexOf(g_outputPanes, Utils::equal(&OutputPaneData::pane, this));
QTC_ASSERT(i >= 0, return);
delete g_outputPanes.at(i).button;
+
+ delete m_zoomInButton;
+ delete m_zoomOutButton;
+}
+
+QList<QWidget *> IOutputPane::toolBarWidgets() const
+{
+ return {m_zoomInButton, m_zoomOutButton};
+}
+
+void IOutputPane::setFont(const QFont &font)
+{
+ emit fontChanged(font);
+}
+
+void IOutputPane::setWheelZoomEnabled(bool enabled)
+{
+ emit wheelZoomEnabledChanged(enabled);
+}
+
+void IOutputPane::setZoomButtonsEnabled(bool enabled)
+{
+ m_zoomInButton->setEnabled(enabled);
+ m_zoomInButton->setVisible(true);
+ m_zoomOutButton->setEnabled(enabled);
+ m_zoomOutButton->setVisible(true);
}
namespace Internal {
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp
index 33c203489d..46807e6534 100644
--- a/src/plugins/coreplugin/outputwindow.cpp
+++ b/src/plugins/coreplugin/outputwindow.cpp
@@ -77,8 +77,9 @@ public:
/*******************/
-OutputWindow::OutputWindow(Context context, QWidget *parent)
+OutputWindow::OutputWindow(Context context, const QString &settingsKey, QWidget *parent)
: QPlainTextEdit(parent)
+ , m_settingsKey(settingsKey)
, d(new Internal::OutputWindowPrivate(document()))
{
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
@@ -117,6 +118,10 @@ OutputWindow::OutputWindow(Context context, QWidget *parent)
connect(this, &QPlainTextEdit::redoAvailable, redoAction, &QAction::setEnabled);
connect(this, &QPlainTextEdit::copyAvailable, cutAction, &QAction::setEnabled); // OutputWindow never read-only
connect(this, &QPlainTextEdit::copyAvailable, copyAction, &QAction::setEnabled);
+ connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested, this, [this] {
+ if (!m_settingsKey.isEmpty())
+ Core::ICore::settings()->setValue(m_settingsKey, fontZoom());
+ });
undoAction->setEnabled(false);
redoAction->setEnabled(false);
@@ -130,6 +135,11 @@ OutputWindow::OutputWindow(Context context, QWidget *parent)
m_lastMessage.start();
d->m_originalFontSize = font().pointSizeF();
+
+ if (!m_settingsKey.isEmpty()) {
+ float zoom = Core::ICore::settings()->value(m_settingsKey).toFloat();
+ setFontZoom(zoom);
+ }
}
OutputWindow::~OutputWindow()
diff --git a/src/plugins/coreplugin/outputwindow.h b/src/plugins/coreplugin/outputwindow.h
index 56972b84e7..34ce261098 100644
--- a/src/plugins/coreplugin/outputwindow.h
+++ b/src/plugins/coreplugin/outputwindow.h
@@ -52,7 +52,7 @@ public:
};
Q_DECLARE_FLAGS(FilterModeFlags, FilterModeFlag)
- OutputWindow(Context context, QWidget *parent = nullptr);
+ OutputWindow(Context context, const QString &settingsKey, QWidget *parent = nullptr);
~OutputWindow() override;
Utils::OutputFormatter *formatter() const;
@@ -114,6 +114,7 @@ private:
QColor m_highlightBgColor;
QColor m_highlightTextColor;
+ const QString m_settingsKey;
Internal::OutputWindowPrivate *d;
};
diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp
index f162715760..672cf72e17 100644
--- a/src/plugins/projectexplorer/appoutputpane.cpp
+++ b/src/plugins/projectexplorer/appoutputpane.cpp
@@ -184,8 +184,6 @@ AppOutputPane::AppOutputPane() :
m_reRunButton(new QToolButton),
m_stopButton(new QToolButton),
m_attachButton(new QToolButton),
- m_zoomInButton(new QToolButton),
- m_zoomOutButton(new QToolButton),
m_settingsButton(new QToolButton),
m_filterOutputLineEdit(new Utils::FancyLineEdit),
m_formatterWidget(new QWidget)
@@ -224,19 +222,8 @@ AppOutputPane::AppOutputPane() :
connect(m_attachButton, &QToolButton::clicked,
this, &AppOutputPane::attachToRunControl);
- m_zoomInButton->setToolTip(tr("Increase Font Size"));
- m_zoomInButton->setIcon(Utils::Icons::PLUS_TOOLBAR.icon());
- m_zoomInButton->setAutoRaise(true);
-
- connect(m_zoomInButton, &QToolButton::clicked,
- this, &AppOutputPane::zoomIn);
-
- m_zoomOutButton->setToolTip(tr("Decrease Font Size"));
- m_zoomOutButton->setIcon(Utils::Icons::MINUS.icon());
- m_zoomOutButton->setAutoRaise(true);
-
- connect(m_zoomOutButton, &QToolButton::clicked,
- this, &AppOutputPane::zoomOut);
+ connect(this, &Core::IOutputPane::zoomIn, this, &AppOutputPane::zoomIn);
+ connect(this, &Core::IOutputPane::zoomOut, this, &AppOutputPane::zoomOut);
m_settingsButton->setToolTip(tr("Open Settings Page"));
m_settingsButton->setIcon(Utils::Icons::SETTINGS_TOOLBAR.icon());
@@ -293,17 +280,8 @@ AppOutputPane::AppOutputPane() :
m_mainWidget->setLayout(layout);
- connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::fontSettingsChanged,
- this, &AppOutputPane::updateFontSettings);
-
- connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::behaviorSettingsChanged,
- this, &AppOutputPane::updateBehaviorSettings);
-
connect(SessionManager::instance(), &SessionManager::aboutToUnloadSession,
this, &AppOutputPane::aboutToUnloadSession);
-
- connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
- this, &AppOutputPane::storeZoomFactor);
}
AppOutputPane::~AppOutputPane()
@@ -317,12 +295,6 @@ AppOutputPane::~AppOutputPane()
delete m_mainWidget;
}
-void AppOutputPane::storeZoomFactor()
-{
- QSettings *settings = Core::ICore::settings();
- settings->setValue(SETTINGS_KEY, m_zoom);
-}
-
int AppOutputPane::currentIndex() const
{
if (const QWidget *w = m_tabWidget->currentWidget())
@@ -388,8 +360,8 @@ QWidget *AppOutputPane::outputWidget(QWidget *)
QList<QWidget*> AppOutputPane::toolBarWidgets() const
{
- return { m_reRunButton, m_stopButton, m_attachButton, m_zoomInButton,
- m_zoomOutButton, m_settingsButton, m_filterOutputLineEdit, m_formatterWidget };
+ return QList<QWidget *>{m_reRunButton, m_stopButton, m_attachButton, m_settingsButton,
+ m_filterOutputLineEdit, m_formatterWidget} + IOutputPane::toolBarWidgets();
}
QString AppOutputPane::displayName() const
@@ -432,25 +404,6 @@ void AppOutputPane::setFocus()
m_tabWidget->currentWidget()->setFocus();
}
-void AppOutputPane::updateFontSettings()
-{
- const TextEditor::FontSettings &fs = TextEditor::TextEditorSettings::fontSettings();
- for (const RunControlTab &rcTab : qAsConst(m_runControlTabs)) {
- rcTab.window->setBaseFont(fs.font());
- rcTab.window->setHighlightBgColor(fs.toTextCharFormat(TextEditor::C_SEARCH_RESULT)
- .background().color());
- rcTab.window->setHighlightTextColor(fs.toTextCharFormat(TextEditor::C_SEARCH_RESULT)
- .foreground().color());
- }
-}
-
-void AppOutputPane::updateBehaviorSettings()
-{
- bool zoomEnabled = TextEditor::TextEditorSettings::behaviorSettings().m_scrollWheelZooming;
- for (const RunControlTab &rcTab : qAsConst(m_runControlTabs))
- rcTab.window->setWheelZoomEnabled(zoomEnabled);
-}
-
void AppOutputPane::updateFilter()
{
const QString filter = m_filterOutputLineEdit->text();
@@ -540,24 +493,37 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc)
const TextEditor::FontSettings &fs = TextEditor::TextEditorSettings::fontSettings();
Core::Id contextId = Core::Id(C_APP_OUTPUT).withSuffix(counter++);
Core::Context context(contextId);
- Core::OutputWindow *ow = new Core::OutputWindow(context, m_tabWidget);
+ Core::OutputWindow *ow = new Core::OutputWindow(context, SETTINGS_KEY, m_tabWidget);
ow->setWindowTitle(tr("Application Output Window"));
ow->setWindowIcon(Icons::WINDOW.icon());
ow->setWordWrapEnabled(m_settings.wrapOutput);
ow->setMaxCharCount(m_settings.maxCharCount);
- ow->setWheelZoomEnabled(TextEditor::TextEditorSettings::behaviorSettings().m_scrollWheelZooming);
- ow->setBaseFont(fs.font());
ow->setHighlightBgColor(fs.toTextCharFormat(TextEditor::C_SEARCH_RESULT)
.background().color());
ow->setHighlightTextColor(fs.toTextCharFormat(TextEditor::C_SEARCH_RESULT)
.foreground().color());
- ow->setFontZoom(m_zoom);
+
+ auto updateFontSettings = [ow] {
+ ow->setBaseFont(TextEditor::TextEditorSettings::fontSettings().font());
+ };
+
+ auto updateBehaviorSettings = [ow] {
+ ow->setWheelZoomEnabled(
+ TextEditor::TextEditorSettings::behaviorSettings().m_scrollWheelZooming);
+ };
+
+ updateFontSettings();
+ updateBehaviorSettings();
connect(ow, &Core::OutputWindow::wheelZoom, this, [this, ow]() {
- m_zoom = ow->fontZoom();
+ float fontZoom = ow->fontZoom();
for (const RunControlTab &tab : qAsConst(m_runControlTabs))
- tab.window->setFontZoom(m_zoom);
+ tab.window->setFontZoom(fontZoom);
});
+ connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::fontSettingsChanged,
+ this, updateFontSettings);
+ connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::behaviorSettingsChanged,
+ this, updateBehaviorSettings);
auto *agg = new Aggregation::Aggregate;
agg->add(ow);
@@ -634,7 +600,6 @@ void AppOutputPane::loadSettings()
m_settings.wrapOutput = s->value(WRAP_OUTPUT_KEY, true).toBool();
m_settings.maxCharCount = s->value(MAX_LINES_KEY,
Core::Constants::DEFAULT_MAX_CHAR_COUNT).toInt() * 100;
- m_zoom = s->value(SETTINGS_KEY, 0).toFloat();
}
void AppOutputPane::showTabFor(RunControl *rc)
@@ -754,22 +719,16 @@ void AppOutputPane::enableDefaultButtons()
enableButtons(currentRunControl());
}
-void AppOutputPane::zoomIn()
+void AppOutputPane::zoomIn(int range)
{
for (const RunControlTab &tab : qAsConst(m_runControlTabs))
- tab.window->zoomIn(1);
- if (m_runControlTabs.isEmpty())
- return;
- m_zoom = m_runControlTabs.first().window->fontZoom();
+ tab.window->zoomIn(range);
}
-void AppOutputPane::zoomOut()
+void AppOutputPane::zoomOut(int range)
{
for (const RunControlTab &tab : qAsConst(m_runControlTabs))
- tab.window->zoomOut(1);
- if (m_runControlTabs.isEmpty())
- return;
- m_zoom = m_runControlTabs.first().window->fontZoom();
+ tab.window->zoomOut(range);
}
void AppOutputPane::enableButtons(const RunControl *rc)
@@ -789,8 +748,7 @@ void AppOutputPane::enableButtons(const RunControl *rc)
m_attachButton->setEnabled(false);
m_attachButton->setToolTip(msgAttachDebuggerTooltip());
}
- m_zoomInButton->setEnabled(true);
- m_zoomOutButton->setEnabled(true);
+ setZoomButtonsEnabled(true);
replaceAllChildWidgets(m_formatterWidget->layout(), rc->outputFormatter() ?
rc->outputFormatter()->toolbarWidgets() :
@@ -801,8 +759,7 @@ void AppOutputPane::enableButtons(const RunControl *rc)
m_attachButton->setEnabled(false);
m_attachButton->setToolTip(msgAttachDebuggerTooltip());
m_stopAction->setEnabled(false);
- m_zoomInButton->setEnabled(false);
- m_zoomOutButton->setEnabled(false);
+ setZoomButtonsEnabled(false);
}
m_formatterWidget->setVisible(m_formatterWidget->layout()->count());
}
diff --git a/src/plugins/projectexplorer/appoutputpane.h b/src/plugins/projectexplorer/appoutputpane.h
index c44e6c728f..16c652f1cd 100644
--- a/src/plugins/projectexplorer/appoutputpane.h
+++ b/src/plugins/projectexplorer/appoutputpane.h
@@ -119,8 +119,8 @@ private:
void updateFromSettings();
void enableDefaultButtons();
- void zoomIn();
- void zoomOut();
+ void zoomIn(int range);
+ void zoomOut(int range);
void enableButtons(const RunControl *rc);
@@ -143,9 +143,6 @@ private:
int tabWidgetIndexOf(int runControlIndex) const;
void handleOldOutput(Core::OutputWindow *window) const;
void updateCloseActions();
- void updateFontSettings();
- void storeZoomFactor();
- void updateBehaviorSettings();
void updateFilter();
void configureCurrentWindow();
void filterOutputButtonClicked();
@@ -167,14 +164,11 @@ private:
QToolButton *m_reRunButton;
QToolButton *m_stopButton;
QToolButton *m_attachButton;
- QToolButton *m_zoomInButton;
- QToolButton *m_zoomOutButton;
QToolButton * const m_settingsButton;
QAction *m_filterActionRegexp = nullptr;
QAction *m_filterActionCaseSensitive = nullptr;
Utils::FancyLineEdit *m_filterOutputLineEdit = nullptr;
QWidget *m_formatterWidget;
- float m_zoom;
AppOutputSettings m_settings;
bool m_filterRegexp = false;
bool m_filterCaseSensitive = false;
diff --git a/src/plugins/projectexplorer/compileoutputwindow.cpp b/src/plugins/projectexplorer/compileoutputwindow.cpp
index cd633054c7..022a436d93 100644
--- a/src/plugins/projectexplorer/compileoutputwindow.cpp
+++ b/src/plugins/projectexplorer/compileoutputwindow.cpp
@@ -76,31 +76,11 @@ class CompileOutputTextEdit : public Core::OutputWindow
{
Q_OBJECT
public:
- CompileOutputTextEdit(const Core::Context &context) : Core::OutputWindow(context)
+ CompileOutputTextEdit(const Core::Context &context) : Core::OutputWindow(context, SETTINGS_KEY)
{
- setWheelZoomEnabled(true);
-
- QSettings *settings = Core::ICore::settings();
- float zoom = settings->value(QLatin1String(SETTINGS_KEY), 0).toFloat();
- setFontZoom(zoom);
-
- fontSettingsChanged();
-
- connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::fontSettingsChanged,
- this, &CompileOutputTextEdit::fontSettingsChanged);
-
- connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested,
- this, &CompileOutputTextEdit::saveSettings);
-
setMouseTracking(true);
}
- void saveSettings()
- {
- QSettings *settings = Core::ICore::settings();
- settings->setValue(QLatin1String(SETTINGS_KEY), fontZoom());
- }
-
void addTask(const Task &task, int blocknumber)
{
m_taskids.insert(blocknumber, task.taskId);
@@ -110,11 +90,6 @@ public:
{
m_taskids.clear();
}
-private:
- void fontSettingsChanged()
- {
- setBaseFont(TextEditor::TextEditorSettings::fontSettings().font());
- }
protected:
void mouseMoveEvent(QMouseEvent *ev) override
@@ -158,8 +133,6 @@ private:
CompileOutputWindow::CompileOutputWindow(QAction *cancelBuildAction) :
m_cancelBuildButton(new QToolButton),
- m_zoomInButton(new QToolButton),
- m_zoomOutButton(new QToolButton),
m_settingsButton(new QToolButton),
m_formatter(new Utils::OutputFormatter)
{
@@ -185,23 +158,29 @@ CompileOutputWindow::CompileOutputWindow(QAction *cancelBuildAction) :
Utils::ProxyAction::proxyActionWithIcon(cancelBuildAction,
Utils::Icons::STOP_SMALL_TOOLBAR.icon());
m_cancelBuildButton->setDefaultAction(cancelBuildProxyButton);
- m_zoomInButton->setToolTip(tr("Increase Font Size"));
- m_zoomInButton->setIcon(Utils::Icons::PLUS_TOOLBAR.icon());
- m_zoomOutButton->setToolTip(tr("Decrease Font Size"));
- m_zoomOutButton->setIcon(Utils::Icons::MINUS.icon());
m_settingsButton->setToolTip(tr("Open Settings Page"));
m_settingsButton->setIcon(Utils::Icons::SETTINGS_TOOLBAR.icon());
+ auto updateFontSettings = [this] {
+ m_outputWindow->setBaseFont(TextEditor::TextEditorSettings::fontSettings().font());
+ };
+
+ auto updateZoomEnabled = [this] {
+ m_outputWindow->setWheelZoomEnabled(
+ TextEditor::TextEditorSettings::behaviorSettings().m_scrollWheelZooming);
+ };
+
+ setZoomButtonsEnabled(true);
+ updateFontSettings();
updateZoomEnabled();
- connect(TextEditor::TextEditorSettings::instance(),
- &TextEditor::TextEditorSettings::behaviorSettingsChanged,
- this, &CompileOutputWindow::updateZoomEnabled);
+ connect(this, &IOutputPane::zoomIn, m_outputWindow, &Core::OutputWindow::zoomIn);
+ connect(this, &IOutputPane::zoomOut, m_outputWindow, &Core::OutputWindow::zoomOut);
+ connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::fontSettingsChanged,
+ this, updateFontSettings);
+ connect(TextEditor::TextEditorSettings::instance(), &TextEditor::TextEditorSettings::behaviorSettingsChanged,
+ this, updateZoomEnabled);
- connect(m_zoomInButton, &QToolButton::clicked,
- this, [this]() { m_outputWindow->zoomIn(1); });
- connect(m_zoomOutButton, &QToolButton::clicked,
- this, [this]() { m_outputWindow->zoomOut(1); });
connect(m_settingsButton, &QToolButton::clicked, this, [] {
Core::ICore::showOptionsDialog(OPTIONS_PAGE_ID);
});
@@ -223,22 +202,10 @@ CompileOutputWindow::~CompileOutputWindow()
ExtensionSystem::PluginManager::removeObject(m_handler);
delete m_handler;
delete m_cancelBuildButton;
- delete m_zoomInButton;
- delete m_zoomOutButton;
delete m_settingsButton;
delete m_formatter;
}
-void CompileOutputWindow::updateZoomEnabled()
-{
- const TextEditor::BehaviorSettings &settings
- = TextEditor::TextEditorSettings::behaviorSettings();
- bool zoomEnabled = settings.m_scrollWheelZooming;
- m_zoomInButton->setEnabled(zoomEnabled);
- m_zoomOutButton->setEnabled(zoomEnabled);
- m_outputWindow->setWheelZoomEnabled(zoomEnabled);
-}
-
void CompileOutputWindow::updateFromSettings()
{
m_outputWindow->setWordWrapEnabled(m_settings.wrapOutput);
@@ -267,7 +234,7 @@ QWidget *CompileOutputWindow::outputWidget(QWidget *)
QList<QWidget *> CompileOutputWindow::toolBarWidgets() const
{
- return {m_cancelBuildButton, m_zoomInButton, m_zoomOutButton, m_settingsButton};
+ return QList<QWidget *>{m_cancelBuildButton, m_settingsButton} + IOutputPane::toolBarWidgets();
}
void CompileOutputWindow::appendText(const QString &text, BuildStep::OutputFormat format)
diff --git a/src/plugins/projectexplorer/compileoutputwindow.h b/src/plugins/projectexplorer/compileoutputwindow.h
index bf21345f70..05a660377a 100644
--- a/src/plugins/projectexplorer/compileoutputwindow.h
+++ b/src/plugins/projectexplorer/compileoutputwindow.h
@@ -91,14 +91,11 @@ private:
void loadSettings();
void storeSettings() const;
void updateFromSettings();
- void updateZoomEnabled();
CompileOutputTextEdit *m_outputWindow;
QHash<unsigned int, QPair<int, int>> m_taskPositions;
ShowOutputTaskHandler *m_handler;
QToolButton *m_cancelBuildButton;
- QToolButton *m_zoomInButton;
- QToolButton *m_zoomOutButton;
QToolButton * const m_settingsButton;
Utils::OutputFormatter *m_formatter;
CompileOutputSettings m_settings;
diff --git a/src/plugins/serialterminal/serialoutputpane.cpp b/src/plugins/serialterminal/serialoutputpane.cpp
index befc7e51a5..34657313f1 100644
--- a/src/plugins/serialterminal/serialoutputpane.cpp
+++ b/src/plugins/serialterminal/serialoutputpane.cpp
@@ -305,7 +305,7 @@ void SerialOutputPane::createNewOutputWindow(SerialControl *rc)
static uint counter = 0;
Core::Id contextId = Core::Id(Constants::C_SERIAL_OUTPUT).withSuffix(counter++);
Core::Context context(contextId);
- Core::OutputWindow *ow = new Core::OutputWindow(context, m_tabWidget);
+ Core::OutputWindow *ow = new Core::OutputWindow(context, QString(), m_tabWidget);
using TextEditor::TextEditorSettings;
auto fontSettingsChanged = [ow] {
ow->setBaseFont(TextEditorSettings::fontSettings().font());
diff --git a/src/plugins/vcsbase/vcsoutputwindow.cpp b/src/plugins/vcsbase/vcsoutputwindow.cpp
index a4fc9cbdd4..98af90bdf8 100644
--- a/src/plugins/vcsbase/vcsoutputwindow.cpp
+++ b/src/plugins/vcsbase/vcsoutputwindow.cpp
@@ -109,7 +109,7 @@ private:
};
OutputWindowPlainTextEdit::OutputWindowPlainTextEdit(QWidget *parent) :
- Core::OutputWindow(Core::Context(C_VCS_OUTPUT_PANE), parent)
+ Core::OutputWindow(Core::Context(C_VCS_OUTPUT_PANE), QString(), parent)
{
setReadOnly(true);
setUndoRedoEnabled(false);