aboutsummaryrefslogtreecommitdiff
path: root/src/qt/guiutil.h
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-28 18:04:50 +0300
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2021-05-28 18:07:44 +0300
commit123b401e0acf3b26f149711bdf06d7f6eced1968 (patch)
tree332489bb57cfd42aa4254858ab786d7cf03394f1 /src/qt/guiutil.h
parent8115c2ad7dc87cc37662421875b728ffc29aaffd (diff)
parentc231254a65d390a3350fcef456d57e4a6eca0506 (diff)
Merge bitcoin-core/gui#275: Support runtime appearance adjustment on macOS
c231254a65d390a3350fcef456d57e4a6eca0506 qt: Make TransactionView aware of runtime palette change (Hennadii Stepanov) 2b622d4aced1848393989ee906b1f9d2436f1c1a qt: Make CoinControlDialog aware of runtime palette change (Hennadii Stepanov) 97a6b5e06a532a4ee029c8ba59c3438369f8b049 qt: Make OverviewPage aware of runtime palette change (Hennadii Stepanov) d05f1b278d9846de5142a4ac3f53c84145330dd1 qt: Make UnitDisplayStatusBarControl aware of runtime palette change (Hennadii Stepanov) 6b2ce65392dc98250e84941370e975048b8afc54 qt: Replace base class of ClickableLabel with ThemedLabel (Hennadii Stepanov) ff530a2093c294a1093e1b00fb66ab0a98851c04 qt: Use GUIUtil::ThemedLabel class (Hennadii Stepanov) d99ef327a885874fed1c4e35e0f47b10290c6bd9 qt: Add GUIUtil::ThemedLabel class (Hennadii Stepanov) c054720e08b5549913f54b9b4bc4e4002617ff23 qt: Make SignVerifyMessageDialog aware of runtime palette change (Hennadii Stepanov) 0dcc3fac433b341eb6e1d3a2fb4d2de1595e8e88 qt: Make SendCoinsEntry aware of runtime palette change (Hennadii Stepanov) fa18d28e1242c2948814df1082ee12c2fecf5403 qt: Make RPCConsole aware of runtime palette change (Hennadii Stepanov) f1083826e3e68803da86af6efba21c4080769b5c qt: Make BitcoinGUI aware of runtime palette change (Hennadii Stepanov) ce17861dc419b0d1fc1d933000f484dd08bacf5b qt: Make PlatformStyle aware of runtime palette change (Hennadii Stepanov) Pull request description: On macOS switching appearance (Light -> Dark or Dark -> Light) when Bitcoin Core is running makes the GUI pretty unusable. This bug is especially important when a user chose the "Auto" mode to adjust appearance automatically. This PR fixes Bitcoin Core behavior. This is an alternative to #268. ACKs for top commit: Sjors: tACK c231254a65d390a3350fcef456d57e4a6eca0506 on macOS 11.4 goums: ACK c231254a65d390a3350fcef456d57e4a6eca0506 promag: Tested ACK c231254a65d390a3350fcef456d57e4a6eca0506 on macOS Big Sur arm64. jarolrod: tACK c231254a65d390a3350fcef456d57e4a6eca0506 Tree-SHA512: 122dda3e4c9703f68cec60613c536ca59d04c93f2c03398559f2361b8d279ae534800e8e677d94a33e10e769d00be54295a704e98afa2e986a06146b9f164854
Diffstat (limited to 'src/qt/guiutil.h')
-rw-r--r--src/qt/guiutil.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
index 9c2ad74e1e..06a3b63668 100644
--- a/src/qt/guiutil.h
+++ b/src/qt/guiutil.h
@@ -27,6 +27,7 @@
#include <chrono>
#include <utility>
+class PlatformStyle;
class QValidatedLineEdit;
class SendCoinsRecipient;
@@ -231,10 +232,32 @@ namespace GUIUtil
qreal calculateIdealFontSize(int width, const QString& text, QFont font, qreal minPointSize = 4, qreal startPointSize = 14);
- class ClickableLabel : public QLabel
+ class ThemedLabel : public QLabel
{
Q_OBJECT
+ public:
+ explicit ThemedLabel(const PlatformStyle* platform_style, QWidget* parent = nullptr);
+ void setThemedPixmap(const QString& image_filename, int width, int height);
+
+ protected:
+ void changeEvent(QEvent* e) override;
+
+ private:
+ const PlatformStyle* m_platform_style;
+ QString m_image_filename;
+ int m_pixmap_width;
+ int m_pixmap_height;
+ void updateThemedPixmap();
+ };
+
+ class ClickableLabel : public ThemedLabel
+ {
+ Q_OBJECT
+
+ public:
+ explicit ClickableLabel(const PlatformStyle* platform_style, QWidget* parent = nullptr);
+
Q_SIGNALS:
/** Emitted when the label is clicked. The relative mouse coordinates of the click are
* passed to the signal.