aboutsummaryrefslogtreecommitdiff
path: root/src/qt/overviewpage.cpp
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-04-08 20:42:03 +0300
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-01 15:07:11 +0300
commit97a6b5e06a532a4ee029c8ba59c3438369f8b049 (patch)
tree8cf7020fcc86534286aeed0b2adb51136bb3b3a7 /src/qt/overviewpage.cpp
parentd05f1b278d9846de5142a4ac3f53c84145330dd1 (diff)
downloadbitcoin-97a6b5e06a532a4ee029c8ba59c3438369f8b049.tar.xz
qt: Make OverviewPage aware of runtime palette change
This change fixes the GUI when changing appearance on macOS.
Diffstat (limited to 'src/qt/overviewpage.cpp')
-rw-r--r--src/qt/overviewpage.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
index 7f12b1d2b5..27783bdf87 100644
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -78,6 +78,7 @@ public:
{
QIcon iconWatchonly = qvariant_cast<QIcon>(index.data(TransactionTableModel::WatchonlyDecorationRole));
QRect watchonlyRect(boundingRect.right() + 5, mainRect.top()+ypad+halfheight, 16, halfheight);
+ iconWatchonly = platformStyle->TextColorIcon(iconWatchonly);
iconWatchonly.paint(painter, watchonlyRect);
address_rect_min_width += 5 + watchonlyRect.width();
}
@@ -143,6 +144,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent)
ui(new Ui::OverviewPage),
clientModel(nullptr),
walletModel(nullptr),
+ m_platform_style{platformStyle},
txdelegate(new TxViewDelegate(platformStyle, this))
{
ui->setupUi(this);
@@ -150,7 +152,7 @@ OverviewPage::OverviewPage(const PlatformStyle *platformStyle, QWidget *parent)
m_balances.balance = -1;
// use a SingleColorIcon for the "out of sync warning" icon
- QIcon icon = platformStyle->SingleColorIcon(":/icons/warning");
+ QIcon icon = m_platform_style->SingleColorIcon(QStringLiteral(":/icons/warning"));
ui->labelTransactionsStatus->setIcon(icon);
ui->labelWalletStatus->setIcon(icon);
@@ -298,6 +300,17 @@ void OverviewPage::setWalletModel(WalletModel *model)
updateDisplayUnit();
}
+void OverviewPage::changeEvent(QEvent* e)
+{
+#ifdef Q_OS_MACOS
+ if (e->type() == QEvent::PaletteChange) {
+ QIcon icon = m_platform_style->SingleColorIcon(QStringLiteral(":/icons/warning"));
+ ui->labelTransactionsStatus->setIcon(icon);
+ ui->labelWalletStatus->setIcon(icon);
+ }
+#endif
+}
+
void OverviewPage::updateDisplayUnit()
{
if(walletModel && walletModel->getOptionsModel())