aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2016-01-22 18:00:36 +0100
committerJonas Schnelli <dev@jonasschnelli.ch>2016-01-22 21:46:42 +0100
commit3a3a9273255f1caa68c96c327489938f7f310806 (patch)
treeeeadedd11546c2c561d73f11fc4d3f9c836bfe08
parentfc0899400082496bf2b3e061105e1e6a13399889 (diff)
[Qt] Add option to increase/decrease font size in the console window
-rw-r--r--src/Makefile.qt.include2
-rw-r--r--src/qt/bitcoin.qrc2
-rw-r--r--src/qt/forms/debugwindow.ui136
-rw-r--r--src/qt/res/icons/fontbigger.pngbin0 -> 1180 bytes
-rw-r--r--src/qt/res/icons/fontsmaller.pngbin0 -> 951 bytes
-rw-r--r--src/qt/rpcconsole.cpp59
-rw-r--r--src/qt/rpcconsole.h4
7 files changed, 168 insertions, 35 deletions
diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include
index a390d96a9f..82e95abcf9 100644
--- a/src/Makefile.qt.include
+++ b/src/Makefile.qt.include
@@ -245,6 +245,8 @@ RES_ICONS = \
qt/res/icons/eye_minus.png \
qt/res/icons/eye_plus.png \
qt/res/icons/filesave.png \
+ qt/res/icons/fontbigger.png \
+ qt/res/icons/fontsmaller.png \
qt/res/icons/history.png \
qt/res/icons/info.png \
qt/res/icons/key.png \
diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc
index c899e95506..3c9b9d283c 100644
--- a/src/qt/bitcoin.qrc
+++ b/src/qt/bitcoin.qrc
@@ -46,6 +46,8 @@
<file alias="about_qt">res/icons/about_qt.png</file>
<file alias="verify">res/icons/verify.png</file>
<file alias="warning">res/icons/warning.png</file>
+ <file alias="fontbigger">res/icons/fontbigger.png</file>
+ <file alias="fontsmaller">res/icons/fontsmaller.png</file>
</qresource>
<qresource prefix="/movies">
<file alias="spinner-000">res/movies/spinner-000.png</file>
diff --git a/src/qt/forms/debugwindow.ui b/src/qt/forms/debugwindow.ui
index 2471470363..045eb80d95 100644
--- a/src/qt/forms/debugwindow.ui
+++ b/src/qt/forms/debugwindow.ui
@@ -450,39 +450,90 @@
<property name="spacing">
<number>3</number>
</property>
- <item>
- <widget class="QTextEdit" name="messagesWidget">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>100</height>
- </size>
- </property>
- <property name="readOnly">
- <bool>true</bool>
- </property>
- <property name="tabKeyNavigation" stdset="0">
- <bool>false</bool>
- </property>
- <property name="columnCount" stdset="0">
- <number>2</number>
- </property>
- </widget>
- </item>
+ <property name="bottomMargin">
+ <number>5</number>
+ </property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
- <number>3</number>
+ <number>4</number>
</property>
<item>
- <widget class="QLabel" name="label">
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="fontSmallerButton">
+ <property name="maximumSize">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Decrease Font Size</string>
+ </property>
<property name="text">
- <string notr="true">&gt;</string>
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/fontsmaller</normaloff>:/icons/fontsmaller</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>24</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="lineEdit"/>
+ <widget class="QPushButton" name="fontBiggerButton">
+ <property name="maximumSize">
+ <size>
+ <width>24</width>
+ <height>24</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Increase Font Size</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../bitcoin.qrc">
+ <normaloff>:/icons/fontbigger</normaloff>:/icons/fontbigger</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>24</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ </widget>
</item>
<item>
<widget class="QPushButton" name="clearButton">
@@ -495,6 +546,9 @@
<property name="toolTip">
<string>Clear console</string>
</property>
+ <property name="layoutDirection">
+ <enum>Qt::LeftToRight</enum>
+ </property>
<property name="text">
<string/>
</property>
@@ -508,6 +562,42 @@
<property name="autoDefault">
<bool>false</bool>
</property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTextEdit" name="messagesWidget">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>100</height>
+ </size>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="tabKeyNavigation" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="columnCount" stdset="0">
+ <number>2</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayoutPrompt">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="lineEdit">
+ <property name="placeholderText">
+ <string>&gt;</string>
+ </property>
</widget>
</item>
</layout>
diff --git a/src/qt/res/icons/fontbigger.png b/src/qt/res/icons/fontbigger.png
new file mode 100644
index 0000000000..5ca5c563b2
--- /dev/null
+++ b/src/qt/res/icons/fontbigger.png
Binary files differ
diff --git a/src/qt/res/icons/fontsmaller.png b/src/qt/res/icons/fontsmaller.png
new file mode 100644
index 0000000000..1a6bb3a61f
--- /dev/null
+++ b/src/qt/res/icons/fontsmaller.png
Binary files differ
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp
index fb36020317..40c54225f5 100644
--- a/src/qt/rpcconsole.cpp
+++ b/src/qt/rpcconsole.cpp
@@ -27,6 +27,7 @@
#include <QKeyEvent>
#include <QMenu>
#include <QScrollBar>
+#include <QSettings>
#include <QSignalMapper>
#include <QThread>
#include <QTime>
@@ -41,9 +42,9 @@
// TODO: receive errors and debug messages through ClientModel
const int CONSOLE_HISTORY = 50;
-const QSize ICON_SIZE(24, 24);
-
const int INITIAL_TRAFFIC_GRAPH_MINS = 30;
+const QSize FONT_RANGE(4, 40);
+const char fontSizeSettingsKey[] = "consoleFontSize";
const struct {
const char *url;
@@ -245,7 +246,8 @@ RPCConsole::RPCConsole(const PlatformStyle *platformStyle, QWidget *parent) :
cachedNodeid(-1),
platformStyle(platformStyle),
peersTableContextMenu(0),
- banTableContextMenu(0)
+ banTableContextMenu(0),
+ consoleFontSize(0)
{
ui->setupUi(this);
GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this);
@@ -254,12 +256,16 @@ RPCConsole::RPCConsole(const PlatformStyle *platformStyle, QWidget *parent) :
ui->openDebugLogfileButton->setIcon(platformStyle->SingleColorIcon(":/icons/export"));
}
ui->clearButton->setIcon(platformStyle->SingleColorIcon(":/icons/remove"));
+ ui->fontBiggerButton->setIcon(platformStyle->SingleColorIcon(":/icons/fontbigger"));
+ ui->fontSmallerButton->setIcon(platformStyle->SingleColorIcon(":/icons/fontsmaller"));
// Install event filter for up and down arrow
ui->lineEdit->installEventFilter(this);
ui->messagesWidget->installEventFilter(this);
connect(ui->clearButton, SIGNAL(clicked()), this, SLOT(clear()));
+ connect(ui->fontBiggerButton, SIGNAL(clicked()), this, SLOT(fontBigger()));
+ connect(ui->fontSmallerButton, SIGNAL(clicked()), this, SLOT(fontSmaller()));
connect(ui->btnClearTrafficGraph, SIGNAL(clicked()), ui->trafficGraph, SLOT(clear()));
// set library version labels
@@ -288,6 +294,8 @@ RPCConsole::RPCConsole(const PlatformStyle *platformStyle, QWidget *parent) :
ui->detailWidget->hide();
ui->peerHeading->setText(tr("Select a peer to view detailed information."));
+ QSettings settings;
+ consoleFontSize = settings.value(fontSizeSettingsKey, QFontInfo(QFont()).pointSize()).toInt();
clear();
}
@@ -453,6 +461,39 @@ static QString categoryClass(int category)
}
}
+void RPCConsole::fontBigger()
+{
+ setFontSize(consoleFontSize+1);
+}
+
+void RPCConsole::fontSmaller()
+{
+ setFontSize(consoleFontSize-1);
+}
+
+void RPCConsole::setFontSize(int newSize)
+{
+ QSettings settings;
+
+ //don't allow a insane font size
+ if (newSize < FONT_RANGE.width() || newSize > FONT_RANGE.height())
+ return;
+
+ // temp. store the console content
+ QString str = ui->messagesWidget->toHtml();
+
+ // replace font tags size in current content
+ str.replace(QString("font-size:%1pt").arg(consoleFontSize), QString("font-size:%1pt").arg(newSize));
+
+ // store the new font size
+ consoleFontSize = newSize;
+ settings.setValue(fontSizeSettingsKey, consoleFontSize);
+
+ // clear console (reset icon sizes, default stylesheet) and re-add the content
+ clear();
+ ui->messagesWidget->setHtml(str);
+}
+
void RPCConsole::clear()
{
ui->messagesWidget->clear();
@@ -468,26 +509,20 @@ void RPCConsole::clear()
ui->messagesWidget->document()->addResource(
QTextDocument::ImageResource,
QUrl(ICON_MAPPING[i].url),
- platformStyle->SingleColorImage(ICON_MAPPING[i].source).scaled(ICON_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+ platformStyle->SingleColorImage(ICON_MAPPING[i].source).scaled(QSize(consoleFontSize*2, consoleFontSize*2), Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
}
// Set default style sheet
QFontInfo fixedFontInfo(GUIUtil::fixedPitchFont());
- // Try to make fixed font adequately large on different OS
-#ifdef WIN32
- QString ptSize = QString("%1pt").arg(QFontInfo(QFont()).pointSize() * 10 / 8);
-#else
- QString ptSize = QString("%1pt").arg(QFontInfo(QFont()).pointSize() * 8.5 / 9);
-#endif
ui->messagesWidget->document()->setDefaultStyleSheet(
QString(
"table { }"
- "td.time { color: #808080; padding-top: 3px; } "
+ "td.time { color: #808080; font-size: %2; padding-top: 3px; } "
"td.message { font-family: %1; font-size: %2; white-space:pre-wrap; } "
"td.cmd-request { color: #006060; } "
"td.cmd-error { color: red; } "
"b { color: #006060; } "
- ).arg(fixedFontInfo.family(), ptSize)
+ ).arg(fixedFontInfo.family(), QString("%1pt").arg(consoleFontSize))
);
message(CMD_REPLY, (tr("Welcome to the Bitcoin Core RPC console.") + "<br>" +
diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h
index 8a48179c57..83b543e546 100644
--- a/src/qt/rpcconsole.h
+++ b/src/qt/rpcconsole.h
@@ -78,6 +78,9 @@ private Q_SLOTS:
public Q_SLOTS:
void clear();
+ void fontBigger();
+ void fontSmaller();
+ void setFontSize(int newSize);
/** Append the message to the message widget */
void message(int category, const QString &message, bool html = false);
/** Set number of connections shown in the UI */
@@ -134,6 +137,7 @@ private:
RPCTimerInterface *rpcTimerInterface;
QMenu *peersTableContextMenu;
QMenu *banTableContextMenu;
+ int consoleFontSize;
};
#endif // BITCOIN_QT_RPCCONSOLE_H