qt: Add "Alternating Row Color" settings for the Peers Tab

Github-Pull: gui#307
Rebased-From: b124c2fe600b343a2bc66ff8eb0aaf43aa99f4db
This commit is contained in:
Hennadii Stepanov 2021-05-01 16:40:28 +03:00 committed by Luke Dashjr
parent 55bd5d8015
commit 9166bb76d5
7 changed files with 40 additions and 8 deletions

View File

@ -893,9 +893,6 @@
<property name="tabKeyNavigation">
<bool>false</bool>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="textElideMode">
<enum>Qt::ElideMiddle</enum>
</property>
@ -957,9 +954,6 @@
<property name="tabKeyNavigation">
<bool>false</bool>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>560</width>
<height>440</height>
<width>646</width>
<height>529</height>
</rect>
</property>
<property name="windowTitle">
@ -796,6 +796,16 @@
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="peersTabAlternatingRowColors">
<property name="toolTip">
<string>Alternate the row colors for the &quot;Peers&quot; and &quot;Banned peers&quot; tables in the Peers tab.</string>
</property>
<property name="text">
<string>Alternate row colors in the Peers tab</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_Display">
<property name="orientation">

View File

@ -319,6 +319,7 @@ void OptionsDialog::setMapper()
#endif
/* Display */
mapper->addMapping(ui->peersTabAlternatingRowColors, OptionsModel::PeersTabAlternatingRowColors);
mapper->addMapping(ui->lang, OptionsModel::Language);
mapper->addMapping(ui->unit, OptionsModel::DisplayUnit);
mapper->addMapping(ui->thirdPartyTxUrls, OptionsModel::ThirdPartyTxUrls);

View File

@ -258,6 +258,12 @@ bool OptionsModel::Init(bilingual_str& error)
}
Q_EMIT fontForMoneyChanged(getFontForMoney());
if (!settings.contains("PeersTabAlternatingRowColors")) {
settings.setValue("PeersTabAlternatingRowColors", "false");
}
m_peers_tab_alternating_row_colors = settings.value("PeersTabAlternatingRowColors").toBool();
Q_EMIT peersTabAlternatingRowColorsChanged(m_peers_tab_alternating_row_colors);
m_mask_values = settings.value("mask_values", false).toBool();
return true;
@ -466,6 +472,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con
return QString::fromStdString(SettingToString(setting(), ""));
case FontForMoney:
return QVariant::fromValue(m_font_money);
case PeersTabAlternatingRowColors:
return m_peers_tab_alternating_row_colors;
case CoinControlFeatures:
return fCoinControlFeatures;
case EnablePSBTControls:
@ -649,6 +657,11 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
Q_EMIT fontForMoneyChanged(getFontForMoney());
break;
}
case PeersTabAlternatingRowColors:
m_peers_tab_alternating_row_colors = value.toBool();
settings.setValue("PeersTabAlternatingRowColors", m_peers_tab_alternating_row_colors);
Q_EMIT peersTabAlternatingRowColorsChanged(m_peers_tab_alternating_row_colors);
break;
case CoinControlFeatures:
fCoinControlFeatures = value.toBool();
settings.setValue("fCoinControlFeatures", fCoinControlFeatures);

View File

@ -63,6 +63,7 @@ public:
ThirdPartyTxUrls, // QString
Language, // QString
FontForMoney, // FontChoice
PeersTabAlternatingRowColors, // bool
CoinControlFeatures, // bool
SubFeeFromAmount, // bool
ThreadsScriptVerif, // int
@ -104,6 +105,7 @@ public:
BitcoinUnit getDisplayUnit() const { return m_display_bitcoin_unit; }
QString getThirdPartyTxUrls() const { return strThirdPartyTxUrls; }
QFont getFontForMoney() const;
bool getPeersTabAlternatingRowColors() const { return m_peers_tab_alternating_row_colors; }
bool getCoinControlFeatures() const { return fCoinControlFeatures; }
bool getSubFeeFromAmount() const { return m_sub_fee_from_amount; }
bool getEnablePSBTControls() const { return m_enable_psbt_controls; }
@ -131,6 +133,7 @@ private:
BitcoinUnit m_display_bitcoin_unit;
QString strThirdPartyTxUrls;
FontChoice m_font_money{FontChoiceAbstract::EmbeddedFont};
bool m_peers_tab_alternating_row_colors;
bool fCoinControlFeatures;
bool m_sub_fee_from_amount;
bool m_enable_psbt_controls;
@ -153,6 +156,7 @@ Q_SIGNALS:
void coinControlFeaturesChanged(bool);
void showTrayIconChanged(bool);
void fontForMoneyChanged(const QFont&);
void peersTabAlternatingRowColorsChanged(bool);
};
Q_DECLARE_METATYPE(OptionsModel::FontChoice)

View File

@ -16,6 +16,7 @@
#include <qt/bantablemodel.h>
#include <qt/clientmodel.h>
#include <qt/guiutil.h>
#include <qt/optionsmodel.h>
#include <qt/peertablesortproxy.h>
#include <qt/platformstyle.h>
#include <qt/walletmodel.h>
@ -489,6 +490,7 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
m_peer_widget_header_state = settings.value("PeersTabPeerHeaderState").toByteArray();
m_banlist_widget_header_state = settings.value("PeersTabBanlistHeaderState").toByteArray();
m_alternating_row_colors = settings.value("PeersTabAlternatingRowColors").toBool();
constexpr QChar nonbreaking_hyphen(8209);
const std::vector<QString> CONNECTION_TYPE_DOC{
@ -684,6 +686,11 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
connect(model, &ClientModel::mempoolSizeChanged, this, &RPCConsole::setMempoolSize);
connect(model->getOptionsModel(), &OptionsModel::peersTabAlternatingRowColorsChanged, [this](bool alternating_row_colors) {
ui->peerWidget->setAlternatingRowColors(alternating_row_colors);
ui->banlistWidget->setAlternatingRowColors(alternating_row_colors);
});
// set up peer table
ui->peerWidget->setModel(model->peerTableSortProxy());
ui->peerWidget->verticalHeader()->hide();
@ -699,6 +706,7 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
ui->peerWidget->horizontalHeader()->setSectionResizeMode(PeerTableModel::Age, QHeaderView::ResizeToContents);
ui->peerWidget->horizontalHeader()->setStretchLastSection(true);
ui->peerWidget->setItemDelegateForColumn(PeerTableModel::NetNodeId, new PeerIdViewDelegate(this));
ui->peerWidget->setAlternatingRowColors(m_alternating_row_colors);
// create peer table context menu
peersTableContextMenu = new QMenu(this);
@ -731,6 +739,7 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
}
ui->banlistWidget->horizontalHeader()->setSectionResizeMode(BanTableModel::Address, QHeaderView::ResizeToContents);
ui->banlistWidget->horizontalHeader()->setStretchLastSection(true);
ui->banlistWidget->setAlternatingRowColors(m_alternating_row_colors);
// create ban table context menu
banTableContextMenu = new QMenu(this);

View File

@ -179,6 +179,7 @@ private:
bool m_is_executing{false};
QByteArray m_peer_widget_header_state;
QByteArray m_banlist_widget_header_state;
bool m_alternating_row_colors{false};
/** Update UI with latest network info from model. */
void updateNetworkState();