Skip to content

Commit 67f2631

Browse files
committed
gui: Add monospaced font settings
1 parent 22e0114 commit 67f2631

File tree

5 files changed

+134
-1
lines changed

5 files changed

+134
-1
lines changed

src/qt/forms/optionsdialog.ui

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -705,6 +705,106 @@
705705
</item>
706706
</layout>
707707
</item>
708+
<item>
709+
<widget class="QGroupBox" name="font_groupBox">
710+
<property name="title">
711+
<string>Monospaced font in the Overview tab:</string>
712+
</property>
713+
<layout class="QVBoxLayout" name="font_verticalLayout">
714+
<item>
715+
<layout class="QHBoxLayout" name="embeddedFont_horizontalLayout">
716+
<item>
717+
<widget class="QRadioButton" name="embeddedFont_radioButton">
718+
<property name="text">
719+
<string>embedded &quot;%1&quot;</string>
720+
</property>
721+
</widget>
722+
</item>
723+
<item>
724+
<spacer name="embeddedFont_horizontalSpacer">
725+
<property name="orientation">
726+
<enum>Qt::Horizontal</enum>
727+
</property>
728+
<property name="sizeHint" stdset="0">
729+
<size>
730+
<width>40</width>
731+
<height>20</height>
732+
</size>
733+
</property>
734+
</spacer>
735+
</item>
736+
<item>
737+
<layout class="QVBoxLayout" name="embeddedFont_verticalLayout">
738+
<item>
739+
<widget class="QLabel" name="embeddedFont_label_1">
740+
<property name="text">
741+
<string>111.11111111 BTC</string>
742+
</property>
743+
</widget>
744+
</item>
745+
<item>
746+
<widget class="QLabel" name="embeddedFont_label_9">
747+
<property name="text">
748+
<string>909.09090909 BTC</string>
749+
</property>
750+
</widget>
751+
</item>
752+
</layout>
753+
</item>
754+
</layout>
755+
</item>
756+
<item>
757+
<widget class="Line" name="font_line">
758+
<property name="orientation">
759+
<enum>Qt::Horizontal</enum>
760+
</property>
761+
</widget>
762+
</item>
763+
<item>
764+
<layout class="QHBoxLayout" name="systemFont_horizontalLayout">
765+
<item>
766+
<widget class="QRadioButton" name="systemFont_radioButton">
767+
<property name="text">
768+
<string>closest matching &quot;%1&quot;</string>
769+
</property>
770+
</widget>
771+
</item>
772+
<item>
773+
<spacer name="systemFont_horizontalSpacer">
774+
<property name="orientation">
775+
<enum>Qt::Horizontal</enum>
776+
</property>
777+
<property name="sizeHint" stdset="0">
778+
<size>
779+
<width>40</width>
780+
<height>20</height>
781+
</size>
782+
</property>
783+
</spacer>
784+
</item>
785+
<item>
786+
<layout class="QVBoxLayout" name="systemFont_verticalLayout">
787+
<item>
788+
<widget class="QLabel" name="systemFont_label_1">
789+
<property name="text">
790+
<string>111.11111111 BTC</string>
791+
</property>
792+
</widget>
793+
</item>
794+
<item>
795+
<widget class="QLabel" name="systemFont_label_9">
796+
<property name="text">
797+
<string>909.09090909 BTC</string>
798+
</property>
799+
</widget>
800+
</item>
801+
</layout>
802+
</item>
803+
</layout>
804+
</item>
805+
</layout>
806+
</widget>
807+
</item>
708808
<item>
709809
<spacer name="verticalSpacer_Display">
710810
<property name="orientation">

src/qt/optionsdialog.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,20 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
144144
ui->minimizeToTray->setEnabled(false);
145145
}
146146

147+
QFont embedded_font{GUIUtil::fixedPitchFont(true)};
148+
ui->embeddedFont_radioButton->setText(ui->embeddedFont_radioButton->text().arg(QFontInfo(embedded_font).family()));
149+
embedded_font.setWeight(QFont::Bold);
150+
ui->embeddedFont_label_1->setFont(embedded_font);
151+
ui->embeddedFont_label_9->setFont(embedded_font);
152+
153+
QFont system_font{GUIUtil::fixedPitchFont(false)};
154+
ui->systemFont_radioButton->setText(ui->systemFont_radioButton->text().arg(QFontInfo(system_font).family()));
155+
system_font.setWeight(QFont::Bold);
156+
ui->systemFont_label_1->setFont(system_font);
157+
ui->systemFont_label_9->setFont(system_font);
158+
// Checking the embeddedFont_radioButton automatically unchecks the systemFont_radioButton.
159+
ui->systemFont_radioButton->setChecked(true);
160+
147161
GUIUtil::handleCloseWindowShortcut(this);
148162
}
149163

@@ -246,6 +260,7 @@ void OptionsDialog::setMapper()
246260
mapper->addMapping(ui->lang, OptionsModel::Language);
247261
mapper->addMapping(ui->unit, OptionsModel::DisplayUnit);
248262
mapper->addMapping(ui->thirdPartyTxUrls, OptionsModel::ThirdPartyTxUrls);
263+
mapper->addMapping(ui->embeddedFont_radioButton, OptionsModel::UseEmbeddedMonospacedFont);
249264
}
250265

251266
void OptionsDialog::setOkButtonState(bool fState)

src/qt/optionsmodel.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,12 @@ void OptionsModel::Init(bool resetSettings)
163163
addOverriddenOption("-lang");
164164

165165
language = settings.value("language").toString();
166+
167+
if (!settings.contains("UseEmbeddedMonospacedFont")) {
168+
settings.setValue("UseEmbeddedMonospacedFont", "true");
169+
}
170+
m_use_embedded_monospaced_font = settings.value("UseEmbeddedMonospacedFont").toBool();
171+
Q_EMIT useEmbeddedMonospacedFontChanged(m_use_embedded_monospaced_font);
166172
}
167173

168174
/** Helper function to copy contents from one QSettings to another.
@@ -326,6 +332,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
326332
return strThirdPartyTxUrls;
327333
case Language:
328334
return settings.value("language");
335+
case UseEmbeddedMonospacedFont:
336+
return m_use_embedded_monospaced_font;
329337
case CoinControlFeatures:
330338
return fCoinControlFeatures;
331339
case Prune:
@@ -453,6 +461,11 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
453461
setRestartRequired(true);
454462
}
455463
break;
464+
case UseEmbeddedMonospacedFont:
465+
m_use_embedded_monospaced_font = value.toBool();
466+
settings.setValue("UseEmbeddedMonospacedFont", m_use_embedded_monospaced_font);
467+
Q_EMIT useEmbeddedMonospacedFontChanged(m_use_embedded_monospaced_font);
468+
break;
456469
case CoinControlFeatures:
457470
fCoinControlFeatures = value.toBool();
458471
settings.setValue("fCoinControlFeatures", fCoinControlFeatures);

src/qt/optionsmodel.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class OptionsModel : public QAbstractListModel
5959
DisplayUnit, // BitcoinUnits::Unit
6060
ThirdPartyTxUrls, // QString
6161
Language, // QString
62+
UseEmbeddedMonospacedFont, // bool
6263
CoinControlFeatures, // bool
6364
ThreadsScriptVerif, // int
6465
Prune, // bool
@@ -84,6 +85,7 @@ class OptionsModel : public QAbstractListModel
8485
bool getMinimizeOnClose() const { return fMinimizeOnClose; }
8586
int getDisplayUnit() const { return nDisplayUnit; }
8687
QString getThirdPartyTxUrls() const { return strThirdPartyTxUrls; }
88+
bool getUseEmbeddedMonospacedFont() const { return m_use_embedded_monospaced_font; }
8789
bool getCoinControlFeatures() const { return fCoinControlFeatures; }
8890
const QString& getOverriddenByCommandLine() { return strOverriddenByCommandLine; }
8991

@@ -107,6 +109,7 @@ class OptionsModel : public QAbstractListModel
107109
QString language;
108110
int nDisplayUnit;
109111
QString strThirdPartyTxUrls;
112+
bool m_use_embedded_monospaced_font;
110113
bool fCoinControlFeatures;
111114
/* settings that were overridden by command-line */
112115
QString strOverriddenByCommandLine;
@@ -120,6 +123,7 @@ class OptionsModel : public QAbstractListModel
120123
void displayUnitChanged(int unit);
121124
void coinControlFeaturesChanged(bool);
122125
void showTrayIconChanged(bool);
126+
void useEmbeddedMonospacedFontChanged(bool);
123127
};
124128

125129
#endif // BITCOIN_QT_OPTIONSMODEL_H

src/qt/overviewpage.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ void OverviewPage::setClientModel(ClientModel *model)
258258
connect(model, &ClientModel::alertsChanged, this, &OverviewPage::updateAlerts);
259259
updateAlerts(model->getStatusBarWarnings());
260260

261-
setMonospacedFont(false);
261+
connect(model->getOptionsModel(), &OptionsModel::useEmbeddedMonospacedFontChanged, this, &OverviewPage::setMonospacedFont);
262+
setMonospacedFont(model->getOptionsModel()->getUseEmbeddedMonospacedFont());
262263
}
263264
}
264265

0 commit comments

Comments
 (0)