Skip to content

Commit 727a2f8

Browse files
committed
GUI: Make Peers table aware of runtime palette change
This change fixes the GUI when changing appearance on macOS.
1 parent c592f7c commit 727a2f8

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

src/qt/peertablemodel.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,18 @@ void PeerTableModel::DrawIcons()
132132
m_icon_conn_out = m_platform_style.TextColorIcon(QIcon(QPixmap::fromImage(icon_out)));
133133
}
134134

135+
void PeerTableModel::updatePalette()
136+
{
137+
m_icon_conn_in = m_platform_style.TextColorIcon(m_icon_conn_in);
138+
m_icon_conn_out = m_platform_style.TextColorIcon(m_icon_conn_out);
139+
if (m_peers_data.empty()) return;
140+
Q_EMIT dataChanged(
141+
createIndex(0, Direction),
142+
createIndex(m_peers_data.size() - 1, Direction),
143+
QVector<int>{Qt::DecorationRole}
144+
);
145+
}
146+
135147
void PeerTableModel::startAutoRefresh()
136148
{
137149
timer->start();

src/qt/peertablemodel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class PeerTableModel : public QAbstractTableModel
7777

7878
public Q_SLOTS:
7979
void refresh();
80+
void updatePalette();
8081

8182
private:
8283
//! Internal peer data structure.

src/qt/rpcconsole.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
673673
connect(model, &ClientModel::mempoolSizeChanged, this, &RPCConsole::setMempoolSize);
674674

675675
// set up peer table
676+
clientModel->getPeerTableModel()->updatePalette();
676677
ui->peerWidget->setModel(model->peerTableSortProxy());
677678
ui->peerWidget->verticalHeader()->hide();
678679
ui->peerWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
@@ -926,6 +927,10 @@ void RPCConsole::changeEvent(QEvent* e)
926927
QUrl(ICON_MAPPING[i].url),
927928
platformStyle->SingleColorImage(ICON_MAPPING[i].source).scaled(QSize(consoleFontSize * 2, consoleFontSize * 2), Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
928929
}
930+
931+
if (clientModel && clientModel->getPeerTableModel()) {
932+
clientModel->getPeerTableModel()->updatePalette();
933+
}
929934
}
930935

931936
QWidget::changeEvent(e);

0 commit comments

Comments
 (0)