forked from qt-creator/qt-creator
General Messages Pane: Add font settings and zoom
As the settings are managed by TextEditor, but Core does not depend on TextEditor, no signal connection can be used. Instead, call the needed functions in MessageManager directly. Fixes: QTCREATORBUG-18908 Change-Id: Idc81f1071d5228cd6582e3a00189a5db24288fc6 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
committed by
André Hartmann
parent
68a10d71e7
commit
ee801a0eb5
@@ -30,11 +30,20 @@
|
||||
#include "find/basetextfind.h"
|
||||
|
||||
#include <aggregation/aggregate.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <utils/utilsicons.h>
|
||||
|
||||
#include <QFont>
|
||||
#include <QToolButton>
|
||||
|
||||
namespace Core {
|
||||
namespace Internal {
|
||||
|
||||
MessageOutputWindow::MessageOutputWindow()
|
||||
const char zoomSettingsKey[] = "Core/MessageOutput/Zoom";
|
||||
|
||||
MessageOutputWindow::MessageOutputWindow() :
|
||||
m_zoomInButton(new QToolButton),
|
||||
m_zoomOutButton(new QToolButton)
|
||||
{
|
||||
m_widget = new OutputWindow(Context(Constants::C_GENERAL_OUTPUT_PANE));
|
||||
m_widget->setReadOnly(true);
|
||||
@@ -49,10 +58,27 @@ MessageOutputWindow::MessageOutputWindow()
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -82,6 +108,11 @@ 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");
|
||||
@@ -126,5 +157,30 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user