forked from qt-creator/qt-creator
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>
This commit is contained in:
committed by
André Hartmann
parent
e127d599ac
commit
48073b2990
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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 {
|
||||
|
@@ -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()
|
||||
|
@@ -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;
|
||||
};
|
||||
|
@@ -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());
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
@@ -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());
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user