Skip to content

Commit 57ee44f

Browse files
committed
GUI: Make Peers table aware of runtime palette change
This change fixes the GUI when changing appearance on macOS.
1 parent 85cbda7 commit 57ee44f

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
@@ -136,6 +136,18 @@ void PeerTableModel::DrawIcons()
136136
m_icon_conn_out = m_platform_style.TextColorIcon(QIcon(QPixmap::fromImage(icon_out)));
137137
}
138138

139+
void PeerTableModel::updatePalette()
140+
{
141+
m_icon_conn_in = m_platform_style.TextColorIcon(m_icon_conn_in);
142+
m_icon_conn_out = m_platform_style.TextColorIcon(m_icon_conn_out);
143+
if (m_peers_data.empty()) return;
144+
Q_EMIT dataChanged(
145+
createIndex(0, Direction),
146+
createIndex(m_peers_data.size() - 1, Direction),
147+
QVector<int>{Qt::DecorationRole}
148+
);
149+
}
150+
139151
void PeerTableModel::startAutoRefresh()
140152
{
141153
timer->start();

src/qt/peertablemodel.h

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

7777
public Q_SLOTS:
7878
void refresh();
79+
void updatePalette();
7980

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

src/qt/rpcconsole.cpp

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

684684
// set up peer table
685+
clientModel->getPeerTableModel()->updatePalette();
685686
ui->peerWidget->setModel(model->peerTableSortProxy());
686687
ui->peerWidget->verticalHeader()->hide();
687688
ui->peerWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
@@ -933,6 +934,10 @@ void RPCConsole::changeEvent(QEvent* e)
933934
QUrl(ICON_MAPPING[i].url),
934935
platformStyle->SingleColorImage(ICON_MAPPING[i].source).scaled(QSize(consoleFontSize * 2, consoleFontSize * 2), Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
935936
}
937+
938+
if (clientModel && clientModel->getPeerTableModel()) {
939+
clientModel->getPeerTableModel()->updatePalette();
940+
}
936941
}
937942

938943
QWidget::changeEvent(e);

0 commit comments

Comments
 (0)