diff --git a/src/calcwidget.cpp b/src/calcwidget.cpp
index dbfbdfc..93bd7b9 100644
--- a/src/calcwidget.cpp
+++ b/src/calcwidget.cpp
@@ -6,6 +6,8 @@
#include "calcwidget.h"
#include "ui_calcwidget.h"
#include "mainwindow.h"
+#include "components.h"
+#include "utils/ColorScheme.h"
CalcWidget::CalcWidget(QWidget *parent) :
QWidget(parent),
@@ -15,8 +17,7 @@ CalcWidget::CalcWidget(QWidget *parent) :
m_ctx = MainWindow::getContext();
ui->imageExchange->setBackgroundRole(QPalette::Base);
- QPixmap pm(":/assets/images/exchange.png");
- ui->imageExchange->setPixmap(pm);
+ ui->imageExchange->setAssets(":/assets/images/exchange.png", ":/assets/images/exchange_white.png");
ui->imageExchange->setScaledContents(true);
ui->imageExchange->setFixedSize(26, 26);
@@ -134,6 +135,10 @@ void CalcWidget::initComboBox() {
this->m_comboBoxInit = true;
}
+void CalcWidget::skinChanged() {
+ ui->imageExchange->setMode(ColorScheme::hasDarkBackground(this));
+}
+
CalcWidget::~CalcWidget() {
delete ui;
}
diff --git a/src/calcwidget.h b/src/calcwidget.h
index 04d6e8b..42f94bf 100644
--- a/src/calcwidget.h
+++ b/src/calcwidget.h
@@ -28,6 +28,7 @@ public slots:
void toComboChanged(const QString& data);
void initFiat();
void initCrypto();
+ void skinChanged();
private:
Ui::CalcWidget *ui;
diff --git a/src/calcwidget.ui b/src/calcwidget.ui
index 674516b..dbd49bb 100644
--- a/src/calcwidget.ui
+++ b/src/calcwidget.ui
@@ -84,7 +84,7 @@
-
-
+
exchange image
@@ -159,6 +159,13 @@
+
+
+ DoublePixmapLabel
+ QLabel
+
+
+
diff --git a/src/components.cpp b/src/components.cpp
index 9e3ae51..4e02c65 100644
--- a/src/components.cpp
+++ b/src/components.cpp
@@ -5,6 +5,24 @@
#include
+DoublePixmapLabel::DoublePixmapLabel(QWidget *parent)
+ : QLabel(parent)
+{}
+
+void DoublePixmapLabel::setAssets(const QString &firstAsset, const QString &secondAsset)
+{
+ m_first.load(firstAsset);
+ m_second.load(secondAsset);
+ this->setPixmap(m_first);
+}
+
+void DoublePixmapLabel::setMode(bool mode) {
+ if (mode != m_mode) {
+ this->setPixmap(mode ? m_second : m_first);
+ }
+ m_mode = mode;
+}
+
StatusBarButton::StatusBarButton(const QIcon &icon, const QString &tooltip, QWidget *parent) : QPushButton(parent) {
setIcon(icon);
setToolTip(tooltip);
diff --git a/src/components.h b/src/components.h
index 996fdbc..546c27b 100644
--- a/src/components.h
+++ b/src/components.h
@@ -11,6 +11,23 @@
#include
#include
+class DoublePixmapLabel : public QLabel
+{
+Q_OBJECT
+
+public:
+ explicit DoublePixmapLabel(QWidget *parent = nullptr);
+
+public slots:
+ void setAssets(const QString &firstAsset, const QString &secondAsset);
+ void setMode(bool mode);
+
+private:
+ bool m_mode = false;
+ QPixmap m_first;
+ QPixmap m_second;
+};
+
class StatusBarButton : public QPushButton
{
Q_OBJECT
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 4191ef6..0f3c6fc 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1019,6 +1019,8 @@ void MainWindow::skinChanged(const QString &skinName) {
qApp->setStyleSheet(m_skins[skinName]);
qDebug() << QString("Skin changed to %1").arg(skinName);
ColorScheme::updateFromWidget(this);
+
+ ui->conversionWidget->skinChanged();
}
void MainWindow::closeEvent(QCloseEvent *event) {
diff --git a/src/utils/ColorScheme.cpp b/src/utils/ColorScheme.cpp
index be4555a..4862c11 100644
--- a/src/utils/ColorScheme.cpp
+++ b/src/utils/ColorScheme.cpp
@@ -20,7 +20,7 @@ bool ColorScheme::hasDarkBackground(QWidget *widget) {
}
void ColorScheme::updateFromWidget(QWidget *widget, bool forceDark) {
- darkScheme = forceDark or ColorScheme::hasDarkBackground(widget);
+ darkScheme = forceDark || ColorScheme::hasDarkBackground(widget);
}
QString ColorSchemeItem::asStylesheet(bool background) {