From 3fb6da7d6a9a7b949866f2166072ee849f2cb728 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Tue, 19 May 2020 16:17:06 +0200 Subject: [PATCH 01/11] qt: Updated loadStylesheet and added general.css for shared styles --- src/Makefile.qt.include | 1 + src/qt/dash.qrc | 1 + src/qt/guiutil.cpp | 46 ++++++++++++++++++++++++++++---------- src/qt/guiutil.h | 3 +++ src/qt/res/css/general.css | 8 +++++++ 5 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 src/qt/res/css/general.css diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index ecc2e51dc933..6e119d621546 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -318,6 +318,7 @@ RES_IMAGES = \ RES_CSS = \ qt/res/css/dark.css \ + qt/res/css/general.css \ qt/res/css/light.css \ qt/res/css/scrollbars.css \ qt/res/css/trad.css diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index 52b004165d96..0e3e53d58cd4 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -55,6 +55,7 @@ res/icons/network_disabled.png + res/css/general.css res/css/scrollbars.css diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index b5614e7d0efc..4f56b8f0543f 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -974,22 +974,44 @@ void migrateQtSettings() // Open CSS when configured QString loadStyleSheet() { - QSettings settings; - QString theme = settings.value("theme", "").toString(); + static std::unique_ptr stylesheet; - QDir themes(":themes"); - // Make sure settings are pointing to an existent theme - if (theme.isEmpty() || !themes.exists(theme)) { - theme = defaultTheme; - settings.setValue("theme", theme); - } + if (stylesheet.get() == nullptr) { + + stylesheet = std::make_unique(); + + QSettings settings; + QDir themes(":themes"); + QString theme = settings.value("theme", "").toString(); + + // Make sure settings are pointing to an existent theme + if (theme.isEmpty() || !themes.exists(theme)) { + theme = defaultTheme; + settings.setValue("theme", theme); + } + + // If light/dark theme is used load general styles first + if (dashThemeActive()) { + QFile qFileGeneral(":css/general"); + if (qFileGeneral.open(QFile::ReadOnly)) { + stylesheet.get()->append(QLatin1String(qFileGeneral.readAll())); + } + } - QFile qFile(":themes/" + theme); - if (qFile.open(QFile::ReadOnly)) { - return QLatin1String(qFile.readAll()); + QFile qFileTheme(":themes/" + theme); + if (qFileTheme.open(QFile::ReadOnly)) { + stylesheet.get()->append(QLatin1String(qFileTheme.readAll())); + } } - return QString(); + return *stylesheet.get(); +} + +bool dashThemeActive() +{ + QSettings settings; + QString theme = settings.value("theme", "").toString(); + return theme == defaultTheme || theme == darkThemePrefix; } void setClipboard(const QString& str) diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 400d4c234aa9..f8494040412a 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -233,6 +233,9 @@ namespace GUIUtil /** Load global CSS theme */ QString loadStyleSheet(); + /** Check if a dash specific theme is activated (light/dark) */ + bool dashThemeActive(); + /* Convert QString to OS specific boost path through UTF-8 */ fs::path qstringToBoostPath(const QString &path); diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css new file mode 100644 index 000000000000..0ce1372f19fb --- /dev/null +++ b/src/qt/res/css/general.css @@ -0,0 +1,8 @@ +/** + Copyright (c) 2018-2019 The Dash Core developers + Distributed under the MIT/X11 software license, see the accompanying + file COPYING or http://www.opensource.org/licenses/mit-license.php. + + This file contains style changes used by both dash themes: "Light" and "Dark" +**/ + From 9d68ce7941fad09bde214f1418637f833a579fb3 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Mon, 25 May 2020 14:39:57 +0200 Subject: [PATCH 02/11] qt: Customized QRadioButton and QCheckBox - Introduced new images for QCheckBox and QRadioButton - Make use of Hover/Pressed/Disabled/Indeterminate states - Use customized Checkboxes and Radio-Buttons in CoinControlWidget --- src/Makefile.qt.include | 24 ++++- src/qt/dash.qrc | 22 +++- src/qt/res/css/dark.css | 85 +-------------- src/qt/res/css/general.css | 102 ++++++++++++++++++ src/qt/res/css/light.css | 88 +-------------- src/qt/res/images/checkbox_checked.png | Bin 0 -> 1233 bytes .../res/images/checkbox_checked_disabled.png | Bin 0 -> 981 bytes src/qt/res/images/checkbox_checked_hover.png | Bin 0 -> 1333 bytes .../res/images/checkbox_checked_pressed.png | Bin 0 -> 1093 bytes src/qt/res/images/checkbox_normal.png | Bin 0 -> 457 bytes .../res/images/checkbox_normal_disabled.png | Bin 0 -> 431 bytes src/qt/res/images/checkbox_normal_hover.png | Bin 0 -> 509 bytes src/qt/res/images/checkbox_normal_pressed.png | Bin 0 -> 447 bytes src/qt/res/images/checkbox_partly_checked.png | Bin 0 -> 1029 bytes .../checkbox_partly_checked_disabled.png | Bin 0 -> 998 bytes .../images/checkbox_partly_checked_hover.png | Bin 0 -> 1176 bytes .../checkbox_partly_checked_pressed.png | Bin 0 -> 891 bytes src/qt/res/images/checked.png | Bin 242 -> 0 bytes src/qt/res/images/radio_checked.png | Bin 0 -> 1698 bytes src/qt/res/images/radio_checked_disabled.png | Bin 0 -> 1602 bytes src/qt/res/images/radio_checked_hover.png | Bin 0 -> 1701 bytes src/qt/res/images/radio_checked_pressed.png | Bin 0 -> 1405 bytes src/qt/res/images/radio_normal.png | Bin 0 -> 1465 bytes src/qt/res/images/radio_normal_disabled.png | Bin 0 -> 1377 bytes src/qt/res/images/radio_normal_hover.png | Bin 0 -> 1473 bytes src/qt/res/images/radio_normal_pressed.png | Bin 0 -> 1219 bytes src/qt/res/images/unchecked.png | Bin 113 -> 0 bytes 27 files changed, 149 insertions(+), 172 deletions(-) create mode 100644 src/qt/res/images/checkbox_checked.png create mode 100644 src/qt/res/images/checkbox_checked_disabled.png create mode 100644 src/qt/res/images/checkbox_checked_hover.png create mode 100644 src/qt/res/images/checkbox_checked_pressed.png create mode 100644 src/qt/res/images/checkbox_normal.png create mode 100644 src/qt/res/images/checkbox_normal_disabled.png create mode 100644 src/qt/res/images/checkbox_normal_hover.png create mode 100644 src/qt/res/images/checkbox_normal_pressed.png create mode 100644 src/qt/res/images/checkbox_partly_checked.png create mode 100644 src/qt/res/images/checkbox_partly_checked_disabled.png create mode 100644 src/qt/res/images/checkbox_partly_checked_hover.png create mode 100644 src/qt/res/images/checkbox_partly_checked_pressed.png delete mode 100644 src/qt/res/images/checked.png create mode 100644 src/qt/res/images/radio_checked.png create mode 100644 src/qt/res/images/radio_checked_disabled.png create mode 100644 src/qt/res/images/radio_checked_hover.png create mode 100644 src/qt/res/images/radio_checked_pressed.png create mode 100644 src/qt/res/images/radio_normal.png create mode 100644 src/qt/res/images/radio_normal_disabled.png create mode 100644 src/qt/res/images/radio_normal_hover.png create mode 100644 src/qt/res/images/radio_normal_pressed.png delete mode 100644 src/qt/res/images/unchecked.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 6e119d621546..dd456fec29cd 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -308,13 +308,31 @@ RES_IMAGES = \ qt/res/images/arrow_left_small.png \ qt/res/images/arrow_right_small.png \ qt/res/images/arrow_up_small.png \ - qt/res/images/checked.png \ + qt/res/images/checkbox_normal.png \ + qt/res/images/checkbox_normal_hover.png \ + qt/res/images/checkbox_normal_pressed.png \ + qt/res/images/checkbox_normal_disabled.png \ + qt/res/images/checkbox_checked.png \ + qt/res/images/checkbox_checked_hover.png \ + qt/res/images/checkbox_checked_pressed.png \ + qt/res/images/checkbox_checked_disabled.png \ + qt/res/images/checkbox_partly_checked.png \ + qt/res/images/checkbox_partly_checked_hover.png \ + qt/res/images/checkbox_partly_checked_pressed.png \ + qt/res/images/checkbox_partly_checked_disabled.png \ qt/res/images/dash_logo_horizontal.png \ qt/res/images/dash_logo_toolbar.png \ qt/res/images/dash_logo_toolbar_blue.png \ qt/res/images/qtreeview_selected.png \ - qt/res/images/splash.png \ - qt/res/images/unchecked.png + qt/res/images/radio_normal.png \ + qt/res/images/radio_normal_hover.png \ + qt/res/images/radio_normal_pressed.png \ + qt/res/images/radio_checked.png \ + qt/res/images/radio_checked_hover.png \ + qt/res/images/radio_checked_pressed.png \ + qt/res/images/radio_normal_disabled.png \ + qt/res/images/radio_checked_disabled.png \ + qt/res/images/splash.png RES_CSS = \ qt/res/css/dark.css \ diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index 0e3e53d58cd4..8cd7a8b3a866 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -69,13 +69,31 @@ res/images/arrow_left_small.png res/images/arrow_right_small.png res/images/arrow_up_small.png - res/images/checked.png + res/images/checkbox_normal.png + res/images/checkbox_normal_hover.png + res/images/checkbox_normal_pressed.png + res/images/checkbox_normal_disabled.png + res/images/checkbox_checked.png + res/images/checkbox_checked_hover.png + res/images/checkbox_checked_pressed.png + res/images/checkbox_checked_disabled.png + res/images/checkbox_partly_checked.png + res/images/checkbox_partly_checked_hover.png + res/images/checkbox_partly_checked_pressed.png + res/images/checkbox_partly_checked_disabled.png res/images/dash_logo_horizontal.png res/images/dash_logo_toolbar.png res/images/dash_logo_toolbar_blue.png res/images/qtreeview_selected.png + res/images/radio_normal.png + res/images/radio_normal_hover.png + res/images/radio_normal_pressed.png + res/images/radio_checked.png + res/images/radio_checked_hover.png + res/images/radio_checked_pressed.png + res/images/radio_normal_disabled.png + res/images/radio_checked_disabled.png res/images/splash.png - res/images/unchecked.png res/movies/spinner-000.png diff --git a/src/qt/res/css/dark.css b/src/qt/res/css/dark.css index 7d0e6b071a19..39ce51805b4a 100644 --- a/src/qt/res/css/dark.css +++ b/src/qt/res/css/dark.css @@ -82,20 +82,13 @@ background-color: #555; /*******************************************************/ -QLabel { /* Base Text Size & Color */ +QLabel, +QCheckBox, +QRadioButton { /* Base Text Size & Color */ font-size:12px; color: #ccc; } -.QCheckBox { /* Checkbox Labels */ -color: #ccc; -background-color:transparent; -} - -.QCheckBox:hover { -background-color:transparent; -} - .QValidatedLineEdit, .QLineEdit { /* Text Entry Fields */ border: 1px solid #1c75bc; font-size:11px; @@ -114,16 +107,6 @@ font-size:12px; background-color: #3e3e3e; } -.QRadioButton { -color: #aaa; -background-color:transparent; -} - -.QRadioButton:checked { -color: #ccc; -background-color:transparent; -} - QWidget { /* override text selection background color for all text widgets */ selection-background-color: #999; } @@ -261,47 +244,6 @@ QAbstractSpinBox::down-arrow { image:url(':/images/arrow_down_small'); } -QCheckBox { -spacing: 5px; -} - -QCheckBox::indicator { -width: 16px; -height: 16px; -} - -QCheckBox::indicator:unchecked { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:unchecked:hover { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:unchecked:pressed { -image:url(':/images/checked'); -} - -QCheckBox::indicator:checked { -image:url(':/images/checked'); -} - -QCheckBox::indicator:checked:hover { -image:url(':/images/checked'); -} - -QCheckBox::indicator:checked:pressed { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:indeterminate:hover { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:indeterminate:pressed { -image:url(':/images/checked'); -} - /*******************************************************/ QHeaderView { /* Table Header */ @@ -656,15 +598,6 @@ color: #aaa; padding-bottom:8px; } -QDialog#OptionsDialog QCheckBox { -min-height:20px; -} - -QDialog#OptionsDialog QCheckBox#displayAddresses { -min-height:33px; - -} - QDialog#OptionsDialog QGroupBox { color: #ccc; } @@ -1142,9 +1075,6 @@ QDialog#SendCoinsDialog .QFrame#frameCoinControl .QWidget#widgetCoinControl > .Q padding:2px; } -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QCheckBox#checkBoxCoinControlChange { /* Custom Change Label */ -} - QDialog#SendCoinsDialog .QFrame#frameCoinControl .QValidatedLineEdit#lineEditCoinControlChange { /* Custom Change Address */ } @@ -1201,15 +1131,6 @@ QDialog#SendCoinsDialog .QPushButton#addButton:pressed { border:1px solid #9e9e9e; } -QDialog#SendCoinsDialog .QCheckBox#checkUsePrivateSend { /* PrivateSend Checkbox */ -color: #ccc; -font-weight:bold; -border-radius:5px; -padding-top:20px; -padding-bottom:18px; -margin-right:20px; -} - /* This QLabel uses name = "label" which conflicts with Address Book -> New Address */ /* To maximize backwards compatibility this formatting has been removed */ diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index 0ce1372f19fb..f26a99abae8f 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -6,3 +6,105 @@ This file contains style changes used by both dash themes: "Light" and "Dark" **/ + +/****************************************************** +QRadioButton +******************************************************/ + +QRadioButton { + background-color: transparent; +} +QRadioButton::indicator { + width: 13px; + height: 13px; + margin-right: 5px; +} +QRadioButton::indicator:unchecked { + image: url(':/images/radio_normal'); +} +QRadioButton::indicator:hover:unchecked { + image: url(':/images/radio_normal_hover'); +} +QRadioButton::indicator:unchecked:pressed { + image: url(':/images/radio_normal_pressed'); +} +QRadioButton::indicator:checked { + image: url(':/images/radio_checked'); +} +QRadioButton::indicator:checked:hover { + image: url(':/images/radio_checked_hover'); +} +QRadioButton::indicator:checked:pressed { + image: url(':/images/radio_checked_pressed'); +} +QRadioButton::indicator:checked:disabled { + image: url(':/images/radio_checked_disabled'); +} +QRadioButton::indicator:unchecked:disabled { + image: url(':/images/radio_normal_disabled'); +} + +/****************************************************** +QCheckBox & QTreeWidget::indicator checkboxes +******************************************************/ + +QCheckBox{ + background-color: transparent; + min-height:20px; +} +QTreeWidget::indicator, +QCheckBox::indicator { + width: 13px; + height: 13px; + margin-right: 5px; +} + +QTreeWidget::indicator:unchecked, +QCheckBox::indicator:unchecked { + image: url(':/images/checkbox_normal'); +} +QTreeWidget::indicator:hover:unchecked, +QCheckBox::indicator:hover:unchecked { + image: url(':/images/checkbox_normal_hover'); +} +QTreeWidget::indicator:unchecked:pressed, +QCheckBox::indicator:unchecked:pressed { + image: url(':/images/checkbox_normal_pressed'); +} +QTreeWidget::indicator:unchecked:disabled, +QCheckBox::indicator:unchecked:disabled { + image: url(':/images/checkbox_normal_disabled'); +} +QTreeWidget::indicator:checked, +QCheckBox::indicator:checked { + image: url(':/images/checkbox_checked'); +} +QTreeWidget::indicator:checked:hover, +QCheckBox::indicator:checked:hover { + image: url(':/images/checkbox_checked_hover'); +} +QTreeWidget::indicator:checked:pressed, +QCheckBox::indicator:checked:pressed { + image: url(':/images/checkbox_checked_pressed'); +} +QTreeWidget::indicator:checked:disabled, +QCheckBox::indicator:checked:disabled { + image: url(':/images/checkbox_checked_disabled'); +} +QTreeWidget::indicator:indeterminate, +QCheckBox::indicator:indeterminate { + image: url(':/images/checkbox_partly_checked'); +} +QTreeWidget::indicator:indeterminate:hover, +QCheckBox::indicator:indeterminate:hover { + image: url(':/images/checkbox_partly_checked_hover'); +} +QTreeWidget::indicator:indeterminate:pressed, +QCheckBox::indicator:indeterminate:pressed { + image: url(':/images/checkbox_partly_checked_pressed'); +} +QTreeWidget::indicator:indeterminate:disabled, +QCheckBox::indicator:indeterminate:disabled { + image: url(':/images/checkbox_partly_checked_disabled'); +} + diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css index 5e24d95b22a9..dfd843883dac 100644 --- a/src/qt/res/css/light.css +++ b/src/qt/res/css/light.css @@ -80,20 +80,13 @@ background-color:#F8F6F6; /*******************************************************/ -QLabel { /* Base Text Size & Color */ +QLabel, +QCheckBox, +QRadioButton { /* Base Text Size & Color */ font-size:12px; color:#333333; } -.QCheckBox { /* Checkbox Labels */ -color:#333333; -background-color:transparent; -} - -.QCheckBox:hover { -background-color:transparent; -} - .QValidatedLineEdit, .QLineEdit { /* Text Entry Fields */ border: 1px solid #82C3E6; font-size:11px; @@ -246,47 +239,6 @@ QAbstractSpinBox::down-arrow { image:url(':/images/arrow_down_small'); } -QCheckBox { -spacing: 5px; -} - -QCheckBox::indicator { -width: 16px; -height: 16px; -} - -QCheckBox::indicator:unchecked { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:unchecked:hover { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:unchecked:pressed { -image:url(':/images/checked'); -} - -QCheckBox::indicator:checked { -image:url(':/images/checked'); -} - -QCheckBox::indicator:checked:hover { -image:url(':/images/checked'); -} - -QCheckBox::indicator:checked:pressed { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:indeterminate:hover { -image:url(':/images/unchecked'); -} - -QCheckBox::indicator:indeterminate:pressed { -image:url(':/images/checked'); -} - /*******************************************************/ QHeaderView { /* Table Header */ @@ -623,15 +575,6 @@ color:#818181; padding-bottom:8px; } -QDialog#OptionsDialog QCheckBox { -min-height:20px; -} - -QDialog#OptionsDialog QCheckBox#displayAddresses { -min-height:33px; - -} - /* TOOLS MENU */ QWidget#RPCConsole { /* RPC Console Dialog Box */ @@ -1092,9 +1035,6 @@ QDialog#SendCoinsDialog .QFrame#frameCoinControl .QWidget#widgetCoinControl > .Q padding:2px; } -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QCheckBox#checkBoxCoinControlChange { /* Custom Change Label */ -} - QDialog#SendCoinsDialog .QFrame#frameCoinControl .QValidatedLineEdit#lineEditCoinControlChange { /* Custom Change Address */ } @@ -1151,16 +1091,6 @@ QDialog#SendCoinsDialog .QPushButton#addButton:pressed { border:1px solid #9e9e9e; } -QDialog#SendCoinsDialog .QCheckBox#checkUsePrivateSend { /* PrivateSend Checkbox */ -color:#616161; -font-weight:bold; -background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, fx:0.5, fy:0.5, stop:0 rgba(248, 246, 246, 128), stop: 1 rgba(0, 0, 0, 0)); -border-radius:5px; -padding-top:20px; -padding-bottom:18px; -margin-right:20px; -} - /* This QLabel uses name = "label" which conflicts with Address Book -> New Address */ /* To maximize backwards compatibility this formatting has been removed */ @@ -1324,16 +1254,6 @@ min-height:25px; QDialog#CoinControlDialog .QDialogButtonBox#buttonBox QPushButton { /* Coin Control 'OK' button */ } -QDialog#CoinControlDialog .QFrame#frame .QRadioButton#radioTreeMode { /* Coin Control Tree Mode Selector */ -color:#818181; -background-color:transparent; -} - -QDialog#CoinControlDialog .QFrame#frame .QRadioButton#radioListMode { /* Coin Control List Mode Selector */ -color:#818181; -background-color:transparent; -} - QDialog#CoinControlDialog QHeaderView::section:first { /* Bug Fix: the number "1" displays in this table for some reason... */ color:transparent; } @@ -1536,5 +1456,3 @@ background-color:#F8F6F6; QDialog#TransactionDescDialog QTextEdit { /* Contents of Receive Coin Dialog */ border:1px solid #d7d7d7; } - - diff --git a/src/qt/res/images/checkbox_checked.png b/src/qt/res/images/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..9558d3877ed890374b5bda62d75a55579c9bd6bc GIT binary patch literal 1233 zcmV;?1TOoDP))6vy9knVBoDs33+iiOZr^SpF7e%6OJ}_XCu^K|!pNxQw|QC(F#}`u}42EG1Gv zwiG94>B)0h&)oYxa9(T=(F>n-k!ja`^4k*^CHXHeO!7;;N&ci)puGJNixl4rAu@FOmvNIC>q~UG_asZ6cnY!l888ZE6^PbB8{L@&Oke{evm&_>?+5{F8C(x7tB%P%)iJRfl|X0c zP7V*)z{sqa(U9bvv&OTy;o{`q@2~#k&v&oP{hibDNhFek&d}XJv!}rZMrOq{j+xB~ z<$YKQH&Ubxx`V-lH?x6}S@GS))A~6NA0RYfEkb+imtOizbwwf2RX6Ak29wjw21c-! zfYS=V$={z48Xlxn2N5;5Ku74R8+0!NPOAau9AG@K`P(_*TuT9)Xlr@kx4!MBN!7#p zO#akEZ>jFq1ulbgjNr6Z00wL?_o8sC)^SAlQ@Wp~Pvkv>25+~Fhll>^<37!9rnGQ| zrVka3tSg$>gPvON>_K;2)W8;rbu?@XVEj z79KcM&H{EF`s|S?hc$A_P~+Qxe=#m#3%l%w@m>YU3SQns|4Mk^kU0wwQEl}Flb6op zL>s1m?vAj)Z@txtSrJ8hsGO|=dq{(ex-XniE_=x9q*YeSx}UjY!so0qe>1T16yL?R z8pATIR}aIR@G9EJzh6oN3)e$w`yYnRS-=8fK*OdEES}}L(qhkAs6@V|$E_I2yCD@c zXW?1E;yNilVD#(tTUsJalmjc|n>;HHuku6q8lg4dDiAJb;aR{|GO#}nLkz45J>@Ki z?m`ha!~h*SXI)so9!B_;!yeo4ORFgqAZLw1!vLf87w_X`&;B_Mt-3=lOwM`+PAstT z?j|dsr9K5m7ca4}zH>I1hm*5UV^`7qG&`v|1ciLGbbs-7O8n()cwj80B=T$gGO1Z% zqyUf2Uef(9c1<~!-NV|KRSWD<6A2PVa_^4?xb}r} z7{S28I4*1)z}2@#0EwJF=8}?OvvSYI23&pfYfaJg5pRjW817e3^uXoYn}uQR4twk} z9s!K7hm1aT$j4!_Mm}}WKMc^g<0|YxFr{FEX@I`VxC5f$F?I#hkeGbxVV`<|jh~kB zUqAcAG!%?ok3|Eh=`h{s{@hf#&R#-R=jw#xFg1bNf>DpQ%6N)4NpzQQB+~fuHAa;Y_5(X=Ty+s!_rfV8dx59K|zfxXM=Wk+Q?c`03 z?UFupuwP|5`@9YCWj!&l9_}1TJ5&_R>+q;MDR#j(S7=mR+X4s0QZD4&JWV|(-Tvj1F-E~a0)%q&zP_1N{D@0z$ zmRfoClkzjw^z0@WUE48My%iO#&rd4iC0^c64m-Nv^Ws z8q;vvfPuF9t8s@TfJb`l)%2VspROlLt(j^&^-~0}dO5(NAB5od8;YjwY)2!20ZMNw zTxRMoa-E5`Mqo8w>@RHa@x;jyv^4|2_m~EwsQ-=&?RNmq^XS@|fUT1({giVXt}u1* zBmMFsYij_Ok5rGvZyB7bx6!^}$&T_zL~TvL8TF~XHD5&>&JiI*Tf->xdwvqabRN!m z!?ZOHZ^JeS6K!L})uCJBZET3Pu>$(g1AaQsL$!^WNrY~VOuZ^ox3v2(Hbz_>qIIXn zbY6M+kdtGlFblNq)|f7w%_yUdox=b4uHR-5QoY`pqD`}fe#txXy z?5$|pE+Ib-(ogzI$8;QZN-e1(FfZXwsRlAGF%*omjb-G=R-AHFnpGd;^EmASTlyu% zl@(D}RyJN$p?qam11q}>S=sf^$}YUpzT(qP2ATN>DZzuc%Z=0g00000NkvXXu0mjf DLRHDh literal 0 HcmV?d00001 diff --git a/src/qt/res/images/checkbox_checked_hover.png b/src/qt/res/images/checkbox_checked_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..04ddcbc039c5f96e46edd1c9b32dd4a0522ba9cd GIT binary patch literal 1333 zcmX9-e>~G^9RJ!h+DJ}K(GOizRFZz^oYWPe6JDe`?iyXVTtuP$!q+rP_o_}MqPmK^ zTBj&YwlN#?D<)|tG0DCYo1cqq=EwJ*>5u3Ae15z?pZDi^p4W3Jz|YGRZ-s{-$kfN% zBM|Iv`elsON4~Y+3qb}Y0ltSlflJ{c@g*OCk@&Kg#X>1uc?`RY%tc@c8mxB_3J;-G z$|xKenJd$~oO#p-`&lST;UEw|E|T!F2QbeRzX!C0mmklTd;plh{s{BYm?s^2$?rOJXa1R zve{kK%6=3@VZMS=(Fe%jL{#1&I1x~x0!0pz-Gx#?6&J~CM(Gs;U?hEtC#MU5jQ|6# z8wX8NMdOSnb&7B({k0~&Neu>IG^!bmlN7+@4`#lZOA!vI)vG``ECPHvy?T&dtza}v zq}6|!zfXCxV2IhGOBN{88os28#?qTKw5rdkwWCb&bV|)|O3er?8iVUp8CgBP;Hgd} z1o{O*Q&|Sn*lD9V99A=DJ*7kTXl3r$S%Vp+E?rxEc~)n50BbcjqnkBcfy>qA;Z9jk zFF+bsV)FZBpY~#g7c@@W-|$+AIcaX=BvqRlM27axs*RitOak_=wyeDUbB9s)%z`zV z>-lT2NtiAO!o2qJ_~9`5c+st>pss^UGDuyMk~v?*|huT z-zrH}8@9f1%2`%CNkz8wMDbdi+eW?{z-9lrcT*4hdXVd$@nbe;iTEr5Jtonv{>Dv7 zNXlX;<8ylWXr$+*;MRxqGt?TvRJcu^+26Lp74}P;*PB0P7A@*q?Y#A5gTHHG+-62~ z!L4g^Cmx4vu*65~_P-zEptk6{L$FyFe34JKU9v;zw>{zc!1|^38D#On+CXF9g*QD; zw20bro-7X9k!5Zc)v;8(jq#hr!=Zwm8YeKh+WKIdyIC`HcU-557;~pI&gqt>CTV3! ztICpH4w)77)_t>Ch&M8U!alN1y;|M!d4H4=3n;s;B+sZ4%PicEg|8ZnpNi&c8);T~ z%XhxVWrh-cjN)etTr;`8PFL?bcG_b|IIVLzlDg4}Lb6^?``hdmyIwsg9r|L#w= zEu$;fG3CM0`8AVxspuN4zsrSUsi;f%#Zq~w>h{==W6yTh{vztAXgxPv*m#t1x4}m0Nf5d!>_FBj z)5UvZk@v&CCzROHE%;zkOm5EFmYhqvRmSa>X~L&53Ytwf9a-GYc%)Ta(9j5~iO`dO zS>tv`me)pN8pUPr WTEE=kA13%qkdLRI$J2dbjQ;_GRnp1; literal 0 HcmV?d00001 diff --git a/src/qt/res/images/checkbox_checked_pressed.png b/src/qt/res/images/checkbox_checked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..181b7a633eaabefb975f5a0626e3ba71c1c5f888 GIT binary patch literal 1093 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$)C}+maRqW2g4-E_I~ao77(!Qp z+3gITlRzS&4Ir)qm<$3cXlDp*fhq`WgK2DMXaFk!%7y^V0VAN|pf-?!p1BMWoeV*p z4557>F3`-hnP6o=1?>#}EevUCU}L+%4uF^d)(A2OXvKe!EXY`(W7 zhS=4{5C}9plp&&>A*dDP;E)c6kXDAE7LfTMPeI%d)ZPkq09aR84@2ZchKPQ!;!cLB zNerP~4B%a8Ouv6LeEQH|wv=5;Mta{L*6%-N%d&n`%zWtZ_Q|76 z#=9xA?EgmdiVLPq(PUOI;_-Ku-y3tCZerU>p*$4N3lKwP9fz#$d zX1Mg(J6U=2uDXP84$NKO7`&$caAf_0DgSh2);HfS-nDtDW?FXpyz^U)mu=+?KDWf} zINz;>_9untFyYE=WhMTL_tN88R zDjBfst8@mRiCdel#!^!iA8C_`k1f_LPJYdqTpqx0c}{nO;JO246Ajk&PQ4Iu$V$lF zzctp}bldi?wbrU}7B^OIXx)3gzuJD|e5TnN_jb$hXZv3WJf^mbe^K+S|Jy&YO71ed3|M_tvwbe<~H`?y<63 z^(ph@Zz<(x2by@!zkT>+jeKTJ!=C(mjhvF(?mtpVva@}#b>jIN&dE&dp;2|XfW{}5>3lJzpXe@$O0AtSP{jytvX z=@08O^1=VBW^JiATy^r-sg3Ciqs90=9?PoKK8-kTwyQ?7%j4IvM^9Z9-%Ix&EfP^& z^jA#L8ozy*;7DN8I>*_w~p0rF}=+V+6Z(k8I;B)iKk5X}F-_a?T^8TzTW% y7~|ZT#<|ywWrdAo1B_&Qjbu*+$+OEI_{|?&pZ!=fL}wc)TYI|txvXV0HsgF;Ll4hDob z|8s_!-$7PP|H?4q8^ffx40Hc6^gUzfeFMGaQgQ3;_3g6`D+sh+>=v4o%KCf<^Qmq3 z|1*Z?Y?rOL_4B8Oe?2?(AHBU46S(y57s}+;%!4?fsbz7MGt|)QY@(8Z>od zd1`5-$;$JbrRz1MwOB%VC0Fiqd$K{ZP*3Q5m$BF5f-mitE!{pgr1vv@ob&H6=N@ks zZZVyR4G9OEST`F~AKCa!IeW(@HRJ3xo6oUaYdmDtyU+GiPwBVQ#UF02`67O7Woo5q S_kTuEoOrtWxvXgwv+ z+S;b3rna^=quM*|Kt-}8L4Lsu|320+|N8l-Z0VoB{U2BwKG{9^&h&fVkALhB811Lo z$AR2`-qXb~q~g}w>)WLc8Su1Td~KrMXi_zK&avP7l?JWh*zcm9;Em0$r+)IE6Np(Bu`%grm#B8wnuwO8%6=yDu7^WSX1XTFmZ){` miCoN7u{!n7j=jCNj^X~9*f-xNwQmJ_jlt8^&t;ucLK6Tdw!P8- literal 0 HcmV?d00001 diff --git a/src/qt/res/images/checkbox_normal_hover.png b/src/qt/res/images/checkbox_normal_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..d62207f941412e102bd2cbe4d5050080d7592ee0 GIT binary patch literal 509 zcmV_bhY1fwcd2L-*~&@Z>`v>s{eVqU!rZL8OLyX1MiIgUa@U%lCrG^?$|jg30!Jz2$tr>3O>2htU3f!08b+kOu$&03vi! zPE!E+iU9-r`~I!#`uKwb{rdci{R2k*_yY$1nF08i{K?5j%U50*0002=Nkln2xmdky0SGskBZrH^L8Q@Q1Tq*3-f0`-_(1+7M0v$2LhMB+gC)>^?fr-O(FAHh8( z+O++|JI*_m<5S;mh|+t2QZ$se?{UGDDdLYdr$&?rrAOyJ#wz0eOr8wk%7(0|z`jZx zC6a27VzQ`_?zhYts*|nAsRH9al)pyI$bhRBH^@u*1*;e8;LA)O2% z9SmVT458f&G1C|#CxyHIQw3_5EeY}qX82df{PEY%kAEI~=xQZ6(+nCNK-B{PZuB&PFuH#uZb$CzR zEHEp%5o(^2^GvAoc*w(h#~Qbmhde3#bX3zd<2=WkJ4%bb@b?MEtclo|bhJxUJ8Vrv z%TZ-N6M5Iep(Zn3lVeNNI`~8`W~x}7`d7>Mt*?&ZW=4W0+ndWhpwRSm^>bP0l+XkK D2v@XD literal 0 HcmV?d00001 diff --git a/src/qt/res/images/checkbox_partly_checked.png b/src/qt/res/images/checkbox_partly_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..beb54be76b64f3e9626486283b7364197f4138fa GIT binary patch literal 1029 zcmV+g1p51lP)a6 zrhd|=H*3e6_p`0>^V1SlJpP8HHBH>0B4z@f^d?sz=O-9SmS; z7`aK(R8~sN^itPWKs~zwwJrtZ_*|(-etCE`UNC?KOkg9`TBiHxZYdy}<;eCj+!whI z4rHmGm16hVR=gA#zyc<)fl+Q_%z}Vr1=nNRa3g8v&cWi+OR6Mt@2Go}hsCU1tgqRWgYdl~CYxqX9eYx+ULO38X z^MV@3>nJguv`L+oG>+gq@K z5v<|a<@oZA2W7D}!r6jV4}DLMgKx@0h!uv|!2lL8fenmc#eog_*MPA_VECdS_=1$fc`8(;%$fDNz#Hoykh0P8hvz^WlOO^*+0}Y_ZM|<{zdM_pX7LdQ~lVP zustz!lB!=`r263t)G~3Ftg(N|O8pBDVcch{JMx|EpMxu5_49ABlk@;XFpE|4{!Okm zh>uwpo^kK(aBcACZL;Rml;pC#J<;Z2%sQlwgIAwF^s^9KZ#p5_%5B1-N zh2i2IC>Q@DkXmGrl5Oy&#AAwh2G{@_U;`X0Gr$Je02|=r`opv@@27{aHnJ9%j=1H+ zBW{8Ch}!}%;x>7VxNSTmZll()---wF6S7|cRh9^JCbBu|00000NkvXXu0mjf#%TN^ literal 0 HcmV?d00001 diff --git a/src/qt/res/images/checkbox_partly_checked_disabled.png b/src/qt/res/images/checkbox_partly_checked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7d1ef94643d00a285a06b7e75d13386e24adc72a GIT binary patch literal 998 zcmV zuawVb4T`ZkpsF>kl+qDNEk$Wo3ZeT^@D2vBfC+4Yy^Y0cf2-BfB*lc3a$HC`%Tf2U z48yo&Ca?jzJB-l^26mc=P+(5TuuOvuj9?8g&e8Q~4fBJvcc-Nk;~b$0M5NQa?4@mw z@Gd(nhG`s(U=46`W4zxtjAxQ0(Y1PA*J`!C5%)Hn5m;1!)Nx)o^fq{WH9Q5$NZz2-W-<3+G zvtATMk>*OeLOLQsWRWJ4P&Y4CY|6P35oxmkc{&Wk4)hBHr>(~MhpW{pj^7eO%yOKu zC4}tc;h0$vMC|4v_DHuHjRxQcodBoj2odcttvSWg8PP2K@W=!30@ppfJFCEEj~{1UW1YYM z(a%NN+P^GV_vXueC5~rVf27wNXS1ag8ZivRPdR>w2l!qI6Aes8(lpoi z@o?1q3X>B|M$$8edteXjfjzJXcCdM1 z5A1>ci)lG{^)PoYm*(#E;oQ9-p1V%~a`%zPT>p#*Oke{eSo8Ox)?EJ-4@@@eZAq!3 Uqsi&Tf&c&j07*qoM6N<$f{*p(J^%m! literal 0 HcmV?d00001 diff --git a/src/qt/res/images/checkbox_partly_checked_hover.png b/src/qt/res/images/checkbox_partly_checked_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..171b82728036d45f40341f7d25eed44ba2439811 GIT binary patch literal 1176 zcmV;J1ZVq+P)BropK7laXc6&rgNWBRB6k@p72tJ`zc9e^>G~c4o8c`BDvtm5 z<<3bFOFN@c%N~x^ITNuuTSU(%%b5(~x_3Li!vG6Ru)&yZ#zZy)Tjz{ZJ2A_d6@mpO z*kFX!pq&$XSwq9}0Kg~J3FA`3QX?}=!^-yz3rw)V2&=)5Tef!qCln}}_+)jvNNpJs z$<2cqrLgXD0N34Re8%^)d0>PU;EAcw+ro`3CoHNwv1wlE;nc#4*R)cPwo{b;90v@K8IMJA)1>a$S1t!>Fgw$xVZT+Tvt0 zZ{N*%Lfnv-CvJ!YRQQIE_=?Z?4g)OS2*av?8_xjdw?Gr&WG-X~ah+TYwD1vM@fqJ? zI1{+>!oaBv@X-t~wWlr`^m3i@)xh`E)dELm5O72TYhVqmfiD)+vIw7y2zt+gzC01K7tZ-l8uB+KI3<~w3(=YeR& zsr#a9y6-brblq##*!RDicjyVWzn{17(Rcsa@$4Ig`=6Opc;v}N<%b?zRNnX?7EPUZ z?czGzFQQUHbH$1qX;HpJ*o|y7?Yu4bcgHQKBZlhi&UnT;o$~y?m}PfGEvGkHcX}vV zi|hfm$$j0@xlWFYd(Ok2y?p6)CCh1->XY|7n5b`j2LHZ4B5t{6U~|QZTd}cp(`(B& z^ooyHwTr~RO+5GYN^Wb;+C+U5lFL#nni2ba7fF3`V?REhT2y&F1AWcFbE=Nqf|a%W zhr0NXdK@${t%eDA8`dlKP0PuF?4i%MkBPX|FlQS0__YJe?LRNy&?lthV;mO{P2!Ka zzDG##w|oVTTJ~?try?9EVEm!w(ZBc!Oq2dC8DQW$q@n;#srEi@UU*E;RI^v-S<8whW87WzX?7!in03rx@Uq zn+7j5{U-M zftx5SkO|7X(&LYioXC#!A@0w9v%K+kH!yythu5hzEXe7h@A718ZOn9Dt&MHL!kdDLgNxh3?hE(7jw5y4Qz8_kwunJ^={bM;@X3 qjA!1BCpEP)316a;`hZv7p8Mc}( zRt0pqHXye=AV)}*=BNZ16bqQZ23r7ottlYepCZQ}C0k6%`b=(1C>Ah*4U9aD(F<50 zH7Qp_eQ5|RU;-N$!HRK?Q!kxkY6XEF;tm*>nm`%TL`vISBKC+yC^j&H6&E+gyDX<8 zP*uNB5zv*o04si7b?Iue5Hn(r^MDbo;T_EpXw05jwSo7JEbk#Xem>daQBDZ4B4)%6 z20qhZ10z_&+qhFYA9x(S6mFQShSP zh*)8W9Sm_`uzm%2B3v0m1cn_E{YB}wzoJ+Pv4a6DzYdJv%N0Yc2G{@_U;}J`4X^<= zzy>&XfP=q~3=2y_soFm+(j|_A{z?Qm)o0sv|IrQnS18!^@>O)++e9b*4Rl2crJKKz z&XjB;w`wD~-WIY-c7(dDd|01LY@k|2Rltw}R&Wn804xl!PT*$vGc=?{8*UCMJi}9ZZ(95? zcl<`W+JNOF{J2>J&3yH-bfrEZOZQ{xZ1EmE;KOB(z=MDBg*Yx%shH1-{d$1$e##kr zyv^AD`{+uqwnDDUy zaT^~fI4(X;_~QlT>HL*EeYLK^1CHeN`u(NW^|amh3X$c%;`sXf z{x+rQz~cC@+xEclpXdMp0BcD^K~y-)?a)gKfG`XM(AFBi)%v~vRn<@eg3SmnT<9#r zBTQnK9GZdTcuCJvJmN)h8U|sFIzBQIwt7%opc~QjDlY s|4&rPo|96HDAhy-3@d1MwPN$pY=R2~{96UJ$N&HU07*qoM6N<$f(Z_HkN^Mx diff --git a/src/qt/res/images/radio_checked.png b/src/qt/res/images/radio_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..c0d7a33fcf68ae99e8af3b5b4c297a45c64cd8fd GIT binary patch literal 1698 zcmXYydpy+X9><@#Fj&TIVxw2qbx~|i_0|03F zob(JpW*0?Q!6+goR&D^Go}VTKdLdf?&jHGFP{;z2le$xItu3F;28=9=s=vk(3EceyM6iN$}pb*vGLF}pa~I<8Z@l~aY4D< z3}UH6(}vI_9^$%D*lj9a))#wjt0#8 z9D1tpvpdhvQ13cI;M0T z!&udTxR_!QpbJ6CM^Ld1ZZCl%5h&XL1wz1BK_gfMUcQB8h!usU&*A9vXhd1OibZHe zVjMh+gJwYKIw)Rg0X??Ja^LXG@a&2i`5!;!N6XlfCP;|t{V+e}m z+7gMS#p zXFI-iTj$9Sg`m6~GH~zn1b4r));e%QWtnAc^&Xeu;N`~H>zb`QI=L*YGO>0HeF-He?L4igiW@zl|m>DY~!GFucNYu*hV5M(*3{+8xA(oen zA1}_mc|rO_7yD-k zhN@@XX&$kB*2$XmpAKFjsc6tA59j74+l-02UQHGk1vn+|ZdbVg(Y_3Pf3&6}e>j;MAtdh&kRNAmr$vJVFeo@Ej*>@!FlMitTRa489_&)QXP;Qf? zZme^BZOCRICw=^x-%@i@SM)u?etSQhx1~AzsMgVtW$v9M_r;UZ9onTtFZ-8*LqUEW z_UD^M(aX+f;zMZ;$DdvKkI<$%Fqn7n^)( zDq_up>Jq+zMYigb47Aw9DEzgn_W6GEN0%3?8sR{ta?UC88Q!N0etw5Rr@bTfA( zPoGMpMDXi3*@mI#?o8pAy5lX$=gALk7Bw!rg>OBp)GMM2~bvxQvkT z`b=kb8YHcK)KG%1d@9ACmxVic+K{7Xd|mw=wssvqqv*9!moBCJ8tdAotMreXgSWot ze35&rH}hw2`3&|5XO^Q{URa4HY|qsRMshO($4b1e9*bnI-L~^Ry5#*wRNmmOyNj%` z{a`iO#`IB5#FJ6=ix-@hzdbf;*wkJu);zP?YyDz+v!@Yews_qnJ=RL77#(k`5nqpZ zv|HyE*L{L^$A#rhx_af5g!Hw)zfsTqu*_`%bqmdyg#Tz(4##yT%u0yH;Rk;iPK?20 zen0-cQ)s(Xqd(3YI$n9zb|y70FOvJ>7eALRyZA2ZcvN20&V#L>Qx^x4JXDG657d)% zJlJD@(Z3Ux+6SnsGpe6kQ{>hZOLDP0?A#F_WpHodIupasZeuyc*)Xrm~ aM-Ggs^9|b3q*TRc@i>STpS2F91erQ0C|6Ze{fW*)gb0@eiZ$1 zB(<7_@Yo2C1Hq^8)A4vZh!fFNHiENZw4$Pd2@BXT#(_{U3S<&^$xM{sKu7|f#fCLq z92f-wqo9C^;7KUKLU8bv17k^uAQ4YXM3NIS3&S%DL-Aq=f;57FK?oQHM6h5Cyft|) z7sp9p&JSgfW(9{6ONamzlgUiN&jJ({`X3$G0@|5a3aDqnykn_FEJVnHFn|RHCLuzN z00?2B1QQdoAx$M1%je@lp%CZu1p*xG69|MDh9WS8AP5Y@;J4rc0UsFfIL^Z`K92{( z5Coth2o!QPf*~Fs2M8#N3WP$?hVl47dvbCzVBqn1pp_s94Gsiw_!x#29dk+p40NUs z&6lL3nEghcQO%vBt<=(0s+8ZgDrXfI8`@|YDsAL(`^IMnBWG6KmPsXZOT7iN?ZHkf zO-zh;d{@eQC;Fx%8|E}m&0^7(T1(c==3UM{`7+?{CsS^n@)LJ@>SRFIp@0!tHi@J? z>*cZ2j~h~cK2kL3WSr`fJLbf;a_HFS*wN8ZGoKviQg}>yxN!hWtavS%Vb@TuP50wle|&Az#$uf#Yc3v5sr@^By-j*i&k{E49O?WJLBE2F%3o1rMrWG`hdzG&8a+AF z>BJ56J$iv66+OM^=xWnQIiMFFp;fn}@cg4@u=6LHL z>*nb!q}PyNcG?Ds`^4fPTV^vFTD6eSGKq`npfN`m;F(+>X_7mqTL+8caz^!Job{b1I>0Myw9_G1Q{i=zk~x}oP-tf#mS?zAps2I8D)U`@ zuu&nOrY|(QV%`#-roOTwYiuH7BErMj^dg$0h+Qy$KX1?~LfTtg=!dFIZ`OX8wk{kn z-)y$(>44Sg!qFRZ)};r%yx^pj1oI+N?|4VEXQ(j~_Y+HO6}qc1#BJX~op`PYR_QR7?d)(>Bj zTvDyWhvH-3)P`i`<+s&NNUB|gf-=}3|I+&+U81ZYE<4d%;&N%|ok?ueZek}qkbP18 zbbi^n-fGu3lS!d0E*u>VbMsv$#g&xkwI#=T(YZ&;TcTWJupTpqJ)>LJb}5d0Onc^> z>7qUG3hIw)35dJe7`e>z>>i8LZ}&!ac~UaMoJD<4ODye+^epaOm%3$G^Fv#My;oH7 zr8%ir9or=mqRs395%BK%!|m-1L$@c2MH$wA zMbm3KA-C*;ZAN9}JLbc7d%k1^ze{kE*_q`Mv=RH>@>oB-KCFgiUFEoR3if4fX()A1 zv83CV8R#!COO=O+b@XEyk4Ai)YMvP0QG{$u9=mBAlQl2ns9X>h9I&>l+wi6Qam6@Y z(3rk#O$7*L!uJmF+nY;YHe0+=DS~|?EWhdgM$75HZRqswW0u26Dj^@d zt!;k%o+UR(C%?z@xtP52b64XO|B#rT*hGvE>r~mKgqGY)*|KlMf8LrjZ&)8&=3ac+ z)6Upt*8yAHL>a!+EvHN2LRE{7%Bh*la|qhd8B^!}mOlM|Qd{5dHFYh?PoyM>4@7_H z9}j0lP0t%IyO*$ES)X7UT|m9S$~htIoJ&>4tmauSsy9-RO>=8@JUDS^HMny~UR0XL I4fjytzuj&ST>t<8 literal 0 HcmV?d00001 diff --git a/src/qt/res/images/radio_checked_hover.png b/src/qt/res/images/radio_checked_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d21a866206ede775f5af3f2c29bdbddd0ab606 GIT binary patch literal 1701 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 GfBOF#K4i!M literal 0 HcmV?d00001 diff --git a/src/qt/res/images/radio_normal.png b/src/qt/res/images/radio_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..886a2f87c5823efbf0e79efcf9d57bc39902c843 GIT binary patch literal 1465 zcmXw3c{r3?7(cT#gDhiqIYF|rO}#ya0e0F)q(45MP?;uxaamp-%?CX=^4mV|F0eHo;E2k~rN>H>(L zz@nHm1CnONP>~57T*eYA0GGZ5GI+R@IZVbfNL|FD{KP4cJO?sXK*A(8l?&1qLCOL# zVFILZLGnBn4bzv1$S6LQOH5$nQ|Hl165$c(LrETL!!5|}f<0Kr@>e(3SMfy5CSe1I zTib!(*xKCMl4<_3MQxm;U?1=!Y&i}!8+Q1|YZcN`JDLdr1&111cKWXqqZx3t?%x4FASSD{=qZ+ZeaC{ zo6?;9UQDE3Z_Xnys5i~fy7;*VHFGj2i+aq)-I(ihuP9_R?h-%5fibw3Ri86me8M1% zz+ z$CwV7kU|Zq?V^57?OgS<-bzV_?;W;`+cT7>>V?;rQeADOW~YTOddS!bnMb{RrFj09 z8kG^?E&R1Ot)=pVbSLXAMXQIBwKikk&Y~~$pgeO}ToRN+G5c57%H$Gd`PcT*F56egl!;lNoc7Yw zkJRE9ir5?KmE5PsW=XglS@%`Y;j2e|^Jo0Il21VH&~kpfZ_8-a&dqxr!FuF79i28W zZvx&6dpuElvH7yX_U5eDsy;n6rg&()+_<<@gX;c_A8dOtsiK1>9Ilm5mejJ&S3WhF zF5^Y`-S_Dtfge)X4R*N93%u6$7Zhs0WEM=ZE&ojO*6P1?OeY~S^{CXz6yd!@0cL&tkancsF?jnA Nwlu$BR{E0%?H@p<$BqC1 literal 0 HcmV?d00001 diff --git a/src/qt/res/images/radio_normal_disabled.png b/src/qt/res/images/radio_normal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9ab75e7d512beeb1697dfc622d12a20fc876133e GIT binary patch literal 1377 zcmXAo2~ZPf6vvk%peQIXFdRk^XayAu^#Tv144|BWa9II|Dwr@B8m>-}}FvSy5=nUSlI0BM5?w z{rCA$LEg1^Ezw(4?47+JNQV|06yXbw+^<0p#Q#NPWF)9Tq@<((g~Q>dr>BFY)oQ^J z(rVc#kAvVG4u^r|aA1su^0Kjf4uY`}i~}RJwY6D9NhVPMU?!H6#mi+QI4C$U%0_rx zE(~-QN&ph@KuM{nV4?(_C}JW4zyLpNlwhEOY(kWc=4KV2ODaAWPe{Q~-~sSor=Set z=#iW<7J{=dV4Fh_5HJHCG4Z^F{PO@~Aw1BHg$lu)117>a0~G?Ei3{1lGnNBL;6x}C z^7#b8=i@krBCtRp1pWj90*1K=0wW-S{Sk}@n8oh{^LadhP{_k^Aix|piXb?TFCYjM zMKKHmJqYkJAz0iJUJTG0$MFFv0qMF=; zQZF~El#Y+4r`qCZ4^$^to)hpBkqpi}R6g}zaCCufI#|^?iyw;i&DVKqCuis+OL0q5Qev8Mp=ast!-4jes}#3GS;}>awHpiy-j1Nv5J)#*lK<#X1uw` zv@SNo_Pq=1lf_?G?@!tG2aNca#`JeG=4vg~KM${|{y>nj4(e{%m1D4xBl8Mj{KGn#1|mTM=TXbrNL#j+zO_B4`{;hjYB%JI9! zsbK|bQ_l-77H3b_FVmB`UVH0$eS^yds6E7e;CZ&0%zqQQ?L(Oxq*BaDiYTt8X690T zZFQr{ORc_s@kD#H%)xO-R7apVk~du3xY_SnuwGWKqe)d<$UC`7j&RN8M6*GC@9$*^ z)JuC~mskEH4)3n;)|ZLmyF{kH{p2<87H*{Ob2YUw?^BcV$WLD|6wRfi_fHN((oO;uqzO%XT zN_k1a&L-Kbq+c?py_ZBUeX!Bt39ViKvW_orOX-@fs`eH>B$F&Ty!FhELGTMh{=OkT I3h#K~f1Z4iVE_OC literal 0 HcmV?d00001 diff --git a/src/qt/res/images/radio_normal_hover.png b/src/qt/res/images/radio_normal_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..4cb7a5c94e105e6f16466bb7d3f65efb228d765c GIT binary patch literal 1473 zcmX9-2{fBo6#j|5R7-2AmeHnKT8ydoC=OLiVx(#;T~SM`sfHRP#QKNPPG~WumSRwp zi9NBeA=DOhM(nXfVrkXB6EeT{ocqrE?swn&?)UCFk7#9ykPtg11^|GBInu-$+Vu~Y z2<(tKt9k&##(|t75$%k6dwg2z)9g{Hmt{>ZUzPMtv(Lpmuho ze(#ELw`4kr#KTsxzE?T8>M3su6B2aI>2c5P(<7Ebcirf8@3IL9U@KX^RfkfL0W@it z#N%E0v-XFwZ{_6Ef&n`c3F`QJ*|-;F6gm%rhgKo~*s4iPF%z=n_@Upukb$e3@}xkn zSOK*h-wGC{bjZJk<5NC%=(8LWXFGnNW5`U;k`YhJm{;i-*w4dNvOp3KG7kw7+Sdqe zYoRSm;hme|om=?2>Cl$tu#S!3rg{GwHuOeFA+UZXqMv72!2`#qJ9aXEd(`w z38H=tY?uvfmHyU*Pb+*?JJx2iVet?%7}D#3!Vj-9Q|y9Y{VBqjyZ z*n6$ST?LqA@gnU!jN$XVpMU?L*W5<&D%+W})1=LfrN-_mnmapN3-t)u4iyv;0RR?g zZenEX@0gQl=QEEy7SW3&Ke_LAltQa>c59%QFwRnFzVZiKDwfsmajP?(dJ|EKW)6h| z^i+d4wcB+D01cbgEx}%pmR?{>bf;ly(-C{-{Ah7~53K_FZxu|R|D(sj4*k<1(=idBJ#eYgBF zQ+R7Hb}i78wK6xyj$r!P7{*wbJhaXq=H;zVIfTGItzRLu7q`E<)6HQ}!;_bp_Wm(>b;f?nY_z?Cb>1kD~<+gEL_1|<&U`a@g z%o23uzE(2{9+0c)+DoJAIWXZe`!W}wG&h z40Kf@`3*AKVv+hqW8uP$E#dVeu7AO^gqNG5DvA%(8-q%OG%=H{BZQ!n%jFV|+g8Q5 z<6JN>g_0(r5|4}8g@ZI8{$pxTuzB&mF(IzPuo?-(b$X`dz*Bn7_I82Wgm*V|M@@v4)4 zSN6AN6gK&(3|XoxI;%cOdQ0ggE6l@Q#E>cL(~3iJj!bpT*<+i0vM#tN8#bM!Zw%WT zzJ8uxbyRe4g;OIJbe9~UHK!KEmo9Fn35K$k$bdIeGk0#STmina$8Ki8weas$p!?@oPPwKCa+IIx!!kRO#n2ggDCXbWO(7b$gSjS2LDl%(%w#gF4%i YqT;&QJBZw3=+^`0rj{l}H=V-%2k{>eTL1t6 literal 0 HcmV?d00001 diff --git a/src/qt/res/images/radio_normal_pressed.png b/src/qt/res/images/radio_normal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..444124c6d4c644b03fdeb4126c0b4e251199a701 GIT binary patch literal 1219 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$41ui-o|8c0vE2-zK*engp`i#1M$3K#i>op`jo(A#DsmHO6T$W7`;ldO%u$4hRCuf=vUN07O7t zK-9qy)B=_QGCCNdCNYHfF+@&ei0B8I5IKP%q>~}M7v$QoZicWPhR|-1mWT-qVZC{5 zsck?{dX@zF1vC8q%gpqH<=@X=tbhJ6{$mt(Wq-rXmM7uZxIby<`)_O6@0^ibHedPr zhmU7paRlg=wr4X>-nEzY_%<*3{D_-h4&M0n_0SLb@CfgzA8-6*U|?4Cba4!+h+8^6 zz5JDhKwJFHL)&5ubf=Vfytj3jbo=(Hxs&ev|L_5JI3qoygNB#@2w^&ghanEw~Hii$r^6wLVA9(loRg~J{j7dV1HKyFW_3E$QgWDC{ z>zJ?h_9q%$(s|t-tTsn~+S1-hA0E4jUanNP{zrJUtLG#IPVm;nx9NFc*Ej@i|%Y>&eDX?L;-5X^{~j6LYiHJQzVFq| zsLn`J<1JYfUw`P?ja&1%ZUqJkvmKW%U_RSXHfP4W{6_oq?C5E7$%^L_D=LJ~AJ{4K zG1)V3a?gf~^LB`M7&RRK$am+k!on{*CYy0S{QX00!wlcoqBknUrKkRy(#C$j=&9PO z|-xp?eF@Na?2i{#5?7o}Rp(>KZdH784 z%@?or8qzd0TAV91I@+DRCUMMW2-B>dwx^-7Nn*zYvD&$z3$~gS-6{FYZozfvW3p}O z+>24%pawNhyl{JOzgG9!7)vSR^iPssx16afm+n4#=f%IYr(61%h0?2! zcX#%GHxiQ9=$x9Pt?KhKSTk2>>D!eh2LG;4+*55gN$aS?Rvz6rhX22U8K!!z54sq> zD=$RPYN~eF-=g;3`0j0@_KDi2CR%H!cnL4RWVgy>otExqug&W|`2|n3?%2|6>tM7wg8_H*Z=?jGxR>G=@6C#iZGT0 z`2{mLJiCzw Date: Mon, 25 May 2020 14:45:10 +0200 Subject: [PATCH 03/11] qt: Removed qtreeview_selected image This looks weird in the dark theme. Will introduce new arrows here. --- src/Makefile.qt.include | 1 - src/qt/dash.qrc | 1 - src/qt/res/css/dark.css | 4 +--- src/qt/res/css/light.css | 4 +--- src/qt/res/images/qtreeview_selected.png | Bin 111 -> 0 bytes 5 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 src/qt/res/images/qtreeview_selected.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index dd456fec29cd..15dd9d0b99d9 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -323,7 +323,6 @@ RES_IMAGES = \ qt/res/images/dash_logo_horizontal.png \ qt/res/images/dash_logo_toolbar.png \ qt/res/images/dash_logo_toolbar_blue.png \ - qt/res/images/qtreeview_selected.png \ qt/res/images/radio_normal.png \ qt/res/images/radio_normal_hover.png \ qt/res/images/radio_normal_pressed.png \ diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index 8cd7a8b3a866..f9f36420cff6 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -84,7 +84,6 @@ res/images/dash_logo_horizontal.png res/images/dash_logo_toolbar.png res/images/dash_logo_toolbar_blue.png - res/images/qtreeview_selected.png res/images/radio_normal.png res/images/radio_normal_hover.png res/images/radio_normal_pressed.png diff --git a/src/qt/res/css/dark.css b/src/qt/res/css/dark.css index 39ce51805b4a..128e8a3b7834 100644 --- a/src/qt/res/css/dark.css +++ b/src/qt/res/css/dark.css @@ -1320,7 +1320,6 @@ color: #ccc; } QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:selected { /* Coin Control Branch Icon */ -background-image: url(':/images/qtreeview_selected'); background-repeat:no-repeat; background-position:center; background-color: #666; @@ -1328,7 +1327,6 @@ color: #ccc; } QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:checked { /* Coin Control Branch Icon */ -background-image: url(':/images/qtreeview_selected'); background-repeat:no-repeat; background-position:center; background-color: #333; @@ -1502,7 +1500,7 @@ QLabel#transactionSumLabel { /* Example of setObjectName for widgets without nam color: #ccc; font-weight:bold; } - + QLabel#transactionSum { /* Example of setObjectName for widgets without name */ color: #ccc; } diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css index dfd843883dac..6f8042f4707d 100644 --- a/src/qt/res/css/light.css +++ b/src/qt/res/css/light.css @@ -1278,7 +1278,6 @@ color:#333; } QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:selected { /* Coin Control Branch Icon */ -background-image: url(':/images/qtreeview_selected'); background-repeat:no-repeat; background-position:center; background-color:#f7f7f7; @@ -1286,7 +1285,6 @@ color:#333; } QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:checked { /* Coin Control Branch Icon */ -background-image: url(':/images/qtreeview_selected'); background-repeat:no-repeat; background-position:center; background-color:#f7f7f7; @@ -1442,7 +1440,7 @@ QLabel#transactionSumLabel { /* Example of setObjectName for widgets without nam color:#333333; font-weight:bold; } - + QLabel#transactionSum { /* Example of setObjectName for widgets without name */ color:#333333; } diff --git a/src/qt/res/images/qtreeview_selected.png b/src/qt/res/images/qtreeview_selected.png deleted file mode 100644 index 2656a1efa43ec83b28ce1515a8665440773cf766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{g0VEjo3~z4-Qf8hmjv*44lYjK_8ca~FVp^Ty zcC|KV(NxFD_maD|U0WKO_p?niDl*}+>zt@J&yq?Hb9UAC@GwkImcP-+zON5tlBcVm J%Q~loCIH8>B? Date: Mon, 25 May 2020 15:50:39 +0200 Subject: [PATCH 04/11] qt: Redesigned arrows and their usage - Added new arrow images - Make use of Hover/Pressed/Disabled states for QAbstractSpinBox and QComboBox - Use custom arrows in QHeaderView - Use custom arrows in QTreeWidget branch selectors --- src/Makefile.qt.include | 21 ++- src/qt/dash.qrc | 21 ++- src/qt/res/css/dark.css | 12 -- src/qt/res/css/general.css | 132 ++++++++++++++++++ src/qt/res/css/light.css | 12 -- src/qt/res/css/scrollbars.css | 32 ++++- src/qt/res/images/arrow_down.png | Bin 212 -> 0 bytes src/qt/res/images/arrow_down_hover.png | Bin 0 -> 324 bytes src/qt/res/images/arrow_down_normal.png | Bin 0 -> 369 bytes src/qt/res/images/arrow_down_pressed.png | Bin 0 -> 325 bytes src/qt/res/images/arrow_down_small.png | Bin 246 -> 0 bytes src/qt/res/images/arrow_left_hover.png | Bin 0 -> 373 bytes src/qt/res/images/arrow_left_normal.png | Bin 0 -> 379 bytes src/qt/res/images/arrow_left_pressed.png | Bin 0 -> 350 bytes src/qt/res/images/arrow_left_small.png | Bin 253 -> 0 bytes src/qt/res/images/arrow_light_down_hover.png | Bin 0 -> 372 bytes src/qt/res/images/arrow_light_down_normal.png | Bin 0 -> 354 bytes src/qt/res/images/arrow_light_up_hover.png | Bin 0 -> 359 bytes src/qt/res/images/arrow_light_up_normal.png | Bin 0 -> 345 bytes src/qt/res/images/arrow_right_hover.png | Bin 0 -> 353 bytes src/qt/res/images/arrow_right_normal.png | Bin 0 -> 378 bytes src/qt/res/images/arrow_right_pressed.png | Bin 0 -> 340 bytes src/qt/res/images/arrow_right_small.png | Bin 254 -> 0 bytes src/qt/res/images/arrow_up_hover.png | Bin 0 -> 347 bytes src/qt/res/images/arrow_up_normal.png | Bin 0 -> 368 bytes src/qt/res/images/arrow_up_pressed.png | Bin 0 -> 331 bytes src/qt/res/images/arrow_up_small.png | Bin 247 -> 0 bytes 27 files changed, 192 insertions(+), 38 deletions(-) delete mode 100644 src/qt/res/images/arrow_down.png create mode 100644 src/qt/res/images/arrow_down_hover.png create mode 100644 src/qt/res/images/arrow_down_normal.png create mode 100644 src/qt/res/images/arrow_down_pressed.png delete mode 100644 src/qt/res/images/arrow_down_small.png create mode 100644 src/qt/res/images/arrow_left_hover.png create mode 100644 src/qt/res/images/arrow_left_normal.png create mode 100644 src/qt/res/images/arrow_left_pressed.png delete mode 100644 src/qt/res/images/arrow_left_small.png create mode 100644 src/qt/res/images/arrow_light_down_hover.png create mode 100644 src/qt/res/images/arrow_light_down_normal.png create mode 100644 src/qt/res/images/arrow_light_up_hover.png create mode 100644 src/qt/res/images/arrow_light_up_normal.png create mode 100644 src/qt/res/images/arrow_right_hover.png create mode 100644 src/qt/res/images/arrow_right_normal.png create mode 100644 src/qt/res/images/arrow_right_pressed.png delete mode 100644 src/qt/res/images/arrow_right_small.png create mode 100644 src/qt/res/images/arrow_up_hover.png create mode 100644 src/qt/res/images/arrow_up_normal.png create mode 100644 src/qt/res/images/arrow_up_pressed.png delete mode 100644 src/qt/res/images/arrow_up_small.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 15dd9d0b99d9..fdef98f2d514 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -303,11 +303,22 @@ BITCOIN_QT_CPP += $(BITCOIN_QT_WALLET_CPP) endif RES_IMAGES = \ - qt/res/images/arrow_down.png \ - qt/res/images/arrow_down_small.png \ - qt/res/images/arrow_left_small.png \ - qt/res/images/arrow_right_small.png \ - qt/res/images/arrow_up_small.png \ + qt/res/images/arrow_down_normal.png \ + qt/res/images/arrow_down_hover.png \ + qt/res/images/arrow_down_pressed.png \ + qt/res/images/arrow_left_normal.png \ + qt/res/images/arrow_left_hover.png \ + qt/res/images/arrow_left_pressed.png \ + qt/res/images/arrow_right_normal.png \ + qt/res/images/arrow_right_hover.png \ + qt/res/images/arrow_right_pressed.png \ + qt/res/images/arrow_up_normal.png \ + qt/res/images/arrow_up_hover.png \ + qt/res/images/arrow_up_pressed.png \ + qt/res/images/arrow_light_down_normal.png \ + qt/res/images/arrow_light_down_hover.png \ + qt/res/images/arrow_light_up_normal.png \ + qt/res/images/arrow_light_up_hover.png \ qt/res/images/checkbox_normal.png \ qt/res/images/checkbox_normal_hover.png \ qt/res/images/checkbox_normal_pressed.png \ diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index f9f36420cff6..8b5487478e58 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -64,11 +64,22 @@ res/css/trad.css - res/images/arrow_down.png - res/images/arrow_down_small.png - res/images/arrow_left_small.png - res/images/arrow_right_small.png - res/images/arrow_up_small.png + res/images/arrow_down_normal.png + res/images/arrow_down_hover.png + res/images/arrow_down_pressed.png + res/images/arrow_left_normal.png + res/images/arrow_left_hover.png + res/images/arrow_left_pressed.png + res/images/arrow_right_normal.png + res/images/arrow_right_hover.png + res/images/arrow_right_pressed.png + res/images/arrow_up_normal.png + res/images/arrow_up_hover.png + res/images/arrow_up_pressed.png + res/images/arrow_light_down_normal.png + res/images/arrow_light_down_hover.png + res/images/arrow_light_up_normal.png + res/images/arrow_light_up_hover.png res/images/checkbox_normal.png res/images/checkbox_normal_hover.png res/images/checkbox_normal_pressed.png diff --git a/src/qt/res/css/dark.css b/src/qt/res/css/dark.css index 128e8a3b7834..36c11200bec2 100644 --- a/src/qt/res/css/dark.css +++ b/src/qt/res/css/dark.css @@ -167,10 +167,6 @@ width:25px; border:0px; } -QComboBox::down-arrow { -border-image: url(':/images/arrow_down') 0 0 0 0 stretch stretch; -} - QComboBox QListView { color: #aaa; background: #555; @@ -222,10 +218,6 @@ padding-left:5px; padding-top:2px; } -QAbstractSpinBox::up-arrow { -image:url(':/images/arrow_up_small'); -} - QAbstractSpinBox::down-button { subcontrol-origin: border; subcontrol-position: bottom right; @@ -240,10 +232,6 @@ padding-left:5px; padding-bottom:2px; } -QAbstractSpinBox::down-arrow { -image:url(':/images/arrow_down_small'); -} - /*******************************************************/ QHeaderView { /* Table Header */ diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index f26a99abae8f..f365afd21db1 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -7,6 +7,77 @@ **/ +/****************************************************** +QAbstractSpinBox +******************************************************/ + +QAbstractSpinBox::up-arrow { + width: 20px; + height: 20px; + image:url(':/images/arrow_up_normal'); +} +QAbstractSpinBox::up-arrow:hover { + width: 20px; + height: 20px; + image:url(':/images/arrow_up_hover'); +} +QAbstractSpinBox::up-arrow:pressed { + width: 20px; + height: 20px; + image:url(':/images/arrow_up_pressed'); +} +QAbstractSpinBox::up-arrow:disabled { + width: 20px; + height: 20px; + image:url(':/images/arrow_light_up_hover'); +} + +QAbstractSpinBox::down-arrow { + width: 20px; + height: 20px; + image:url(':/images/arrow_down_normal'); +} +QAbstractSpinBox::down-arrow:hover { + width: 20px; + height: 20px; + image:url(':/images/arrow_down_hover'); +} +QAbstractSpinBox::down-arrow:pressed { + width: 20px; + height: 20px; + image:url(':/images/arrow_down_pressed'); +} +QAbstractSpinBox::down-arrow:disabled { + width: 20px; + height: 20px; + image:url(':/images/arrow_light_down_hover'); +} + +/****************************************************** +QComboBox +******************************************************/ + +QComboBox::down-arrow { + width: 20px; + height: 20px; + border-image: url(':/images/arrow_down_normal') 0 0 0 0 stretch stretch; +} +QComboBox::down-arrow:hover { + width: 20px; + height: 20px; + border-image: url(':/images/arrow_down_hover') 0 0 0 0 stretch stretch; +} +QComboBox::down-arrow:pressed { + width: 20px; + height: 20px; + border-image: url(':/images/arrow_down_pressed') 0 0 0 0 stretch stretch; +} +QComboBox::down-arrow:disabled { + width: 20px; + height: 20px; + border-image: url(':/images/arrow_light_down_hover') 0 0 0 0 stretch stretch; +} + /****************************************************** QRadioButton ******************************************************/ @@ -108,3 +179,64 @@ QCheckBox::indicator:indeterminate:disabled { image: url(':/images/checkbox_partly_checked_disabled'); } +/****************************************************** +QHeaderView +******************************************************/ + +QHeaderView::down-arrow { + width: 20px; + height: 20px; + image: url(':/images/arrow_light_down_normal'); + subcontrol-position: right center; + subcontrol-origin: margin; + margin-right: 5px; +} +QHeaderView::down-arrow:hover { + width: 20px; + height: 20px; + image: url(':/images/arrow_light_down_hover'); + subcontrol-position: right center; + subcontrol-origin: margin; + margin-right: 5px; +} + +QHeaderView::up-arrow { + width: 20px; + height: 20px; + image: url(':/images/arrow_light_up_normal'); + subcontrol-position: right center; + subcontrol-origin: margin; + margin-right: 5px; +} +QHeaderView::up-arrow:hover { + width: 20px; + height: 20px; + image: url(':/images/arrow_light_up_hover'); + subcontrol-position: right center; + subcontrol-origin: margin; + margin-right: 5px; +} + +/****************************************************** +QTreeWidget +******************************************************/ + +QTreeWidget { + background-color: transparent; +} +QTreeWidget::branch::closed:has-children { + margin: 0 -2px 0 2px; + image: url(':/images/arrow_right_normal'); +} +QTreeWidget::branch::closed:has-children:hover { + margin: 0 -2px 0 2px; + image: url(':/images/arrow_right_hover'); +} +QTreeWidget::branch::open { + margin: 0 -2px 0 2px; + image: url(':/images/arrow_down_normal'); +} +QTreeWidget::branch::open:hover { + margin: 0 -2px 0 2px; + image: url(':/images/arrow_down_hover'); +} diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css index 6f8042f4707d..97869ad61e89 100644 --- a/src/qt/res/css/light.css +++ b/src/qt/res/css/light.css @@ -164,10 +164,6 @@ width:25px; border:0px; } -QComboBox::down-arrow { -border-image: url(':/images/arrow_down') 0 0 0 0 stretch stretch; -} - QComboBox QListView { background:#fff; padding: 3px; @@ -217,10 +213,6 @@ padding-left:5px; padding-top:2px; } -QAbstractSpinBox::up-arrow { -image:url(':/images/arrow_up_small'); -} - QAbstractSpinBox::down-button { subcontrol-origin: border; subcontrol-position: bottom right; @@ -235,10 +227,6 @@ padding-left:5px; padding-bottom:2px; } -QAbstractSpinBox::down-arrow { -image:url(':/images/arrow_down_small'); -} - /*******************************************************/ QHeaderView { /* Table Header */ diff --git a/src/qt/res/css/scrollbars.css b/src/qt/res/css/scrollbars.css index 9e736156d1b6..8024a9ba37a2 100644 --- a/src/qt/res/css/scrollbars.css +++ b/src/qt/res/css/scrollbars.css @@ -63,19 +63,43 @@ QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:ri } QScrollBar:up-arrow { - background-image: url(':/images/arrow_up_small'); + background-image: url(':/images/arrow_up_normal'); +} +QScrollBar:up-arrow:hover { + background-image: url(':/images/arrow_up_hover'); +} +QScrollBar:up-arrow:pressed { + background-image: url(':/images/arrow_up_pressed'); } QScrollBar:down-arrow { - background-image: url(':/images/arrow_down_small'); + background-image: url(':/images/arrow_down_normal'); +} +QScrollBar:down-arrow:hover { + background-image: url(':/images/arrow_down_hover'); +} +QScrollBar:down-arrow:pressed { + background-image: url(':/images/arrow_down_pressed'); } QScrollBar:left-arrow { - background-image: url(':/images/arrow_left_small'); + background-image: url(':/images/arrow_left_normal'); +} +QScrollBar:left-arrow:hover { + background-image: url(':/images/arrow_left_hover'); +} +QScrollBar:left-arrow:pressed { + background-image: url(':/images/arrow_left_pressed'); } QScrollBar:right-arrow { - background-image: url(':/images/arrow_right_small'); + background-image: url(':/images/arrow_right_normal'); +} +QScrollBar:right-arrow:hover { + background-image: url(':/images/arrow_right_hover'); +} +QScrollBar:right-arrow:pressed { + background-image: url(':/images/arrow_right_pressed'); } QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal { diff --git a/src/qt/res/images/arrow_down.png b/src/qt/res/images/arrow_down.png deleted file mode 100644 index e26c529d23d162c7a4cf3a1136a62faca0bf4b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{3?%2B3|#`G3<7*YT>t<7uiLhnc=Ygvz)qlE z{*oZSU;F98 zjsroB=L(&Ev}Ve!Tr=(V+9|HLC%j*Dce7sCv|P`P>G78?UYb^O?Tc#skGgk^j}Ec0 U9^m2M4K$Cz)78&qol`;+03&Z!Z~y=R diff --git a/src/qt/res/images/arrow_down_hover.png b/src/qt/res/images/arrow_down_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e574108a31adeb62f3677e1bd73cfe5349b244dd GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^<{-?$1|(P9zU0Qhz{u_C;uuoF`1Xb(#~}xiV})1m z9ZcI0xi#5;<-B7)#(KN5)9@`G>teO9GSzk;^)Ql1_;$qnmd}OE7^EnLtTpN~%IL9>n zmPwSJt(aHebUP?+KTE|AX0hqN@-z>0U+UC+@MZqN9YN8J4E|gOtaHxEluW(<{E6yh zubBrXB}@ywdHLLnzH5%Tk2c*Y3*?ew| zo+!wh9V<%#9u zCsNa&sLp;OIu(R~TEwP;L`0@O;h+3OcE%I)MIb|fdKr74u=YP;=zYS{|7457h=Hc6;d*9#v{+9Fqsk+}gzE|rP zonw_Q?67#$q1*=}xD_6CbRYZ7CbdvCO8kzOU3ptn>VsP^`ih=R`L%%M>zYF6pGC{> zaQgXTBr+b!{Q@7qbI*11^6_*E|p*Ic=e<=3kmxwy06Px5o%?~I_F=#!N)9Zfd`R{%Nj1vY~J|&_Z*uP zBTexLsWY3js&BE{UQk=%8#C=T->XGd@x}t~GKEJ3QHXh8nOzkDU$<>Db&==8n?Hf( zOP2)s1v4;c`8DOXn~Uj0KRA8j+$|e%?iJ09{n;}d47*usbb!jtJY5_^IIfqTGURgs zau3QXF5L6z$p883b_#(RQ+#Z{9&6wd{j>FVdQ&MBb@06`gFrvLx| diff --git a/src/qt/res/images/arrow_left_hover.png b/src/qt/res/images/arrow_left_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d45c3e605b48a6ad6eec6f747900c10568cea9 GIT binary patch literal 373 zcmV-*0gC>KP)4Kn?Hz0en^ijogJ9HZ$1eNrUAT_%s&)+aof$bzs)8D9ww+nE3BuXD@jGG4 zf)|B(c^`QCJbdiT>=;4_A%qY@NC8y#Wvg~^Pi)v8+OWENnwAU#;-XVO)K7IPwtE^h z-A?%vbMZ=pQqP(AFfM&!w`%&ulaj-()dUxpCk7WMHs0g_s5o))K}~RR`5S|a6Bq9C zqM_pQIR+P(HxH<|`Mq$yIQ0uIu5Q{jaq%89uJY}=xcIEj;NnK3^uPAqSzajQhN6L& zuyOfc4K*$YPGIBufv6Yf3)r|kLD;zd1VNt}LbE8Ya^cvN%))cfhcU{VW&aL3t!;N; z5U6}S5+5JMb*~!su1+!_`;ibr2qAxuZZC!$lINKJnt zJmrbl)F&#lpGbg3v{zkaX!vim@Tu{FCkFGMm@j?`Q~+d~Equa1`H92+|FYAcm@R(B z)(_IFH0z1(JfPmkToa$LPk3Ur;E^Rzhg`EbCKZaPgoEknyd)ykT?Kt@8ralkN(>^LtsdQTxx`cm3*9Ziz8#PXEmi(4!W2 UiDAzQpvxFMUHx3vIVCg!0Mi|@82|tP literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_left_pressed.png b/src/qt/res/images/arrow_left_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..b74418330aa70b1d469c8e09fd48f63d20d31914 GIT binary patch literal 350 zcmV-k0iphhP)`x7-NjpP~Y}M^O0!U7d_vU_IgbqQXBhzeSf}*@6(|N2(U-r zyx2@MjcSLz1gKb(uWE)p1qKNhCkBRV(sLk?aGKu(fP{^F~%5Uj4{Uk0rOotf&#;BVgLXD07*qoM6N<$f=b4ftpET3 literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_left_small.png b/src/qt/res/images/arrow_left_small.png deleted file mode 100644 index eb0f63ecf20d9dfde02329669785978b2e19c25d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&g#`G7xc>kDU$<>Db&==8n?Hf( zOP2)s1v4<{XmLmTt$5JXe>&G;#tFmhbIrHf8EwqP#k%%-@dB0Edb&7#`kF(*39Nys4uYYc^Jz%bz{a{P79&B XRC5j|_dqXspg|0tu6{1-oD!M<$T(hZ diff --git a/src/qt/res/images/arrow_light_down_hover.png b/src/qt/res/images/arrow_light_down_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..852b762186f2e2cf79632b7e5220bd2db8255b51 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^<{-?$3?%2XDwP1K>Hwb**Z=?jSIk^jF=a_b&y0$$ zX%*emDkd(dn7#^xnmQ_gpt`1_wXb5@ii#;qD{AU0CM^P~pS-xDs-~i@v0~~nka%@% zMN?YnTDn1~wHG7;B%3=cn!73*+A2CGRZLq6GHvF%^}6d11D&B+ z666=mz}9@}*3Ff6u0Q_&f1g4sTx;=(TcD)>pU77qhllE8U&< zvul&SfrgHOOt0u{A6y1ub27x3z+zBte9=M1?Ut8Pgg&ebxsLQ E0J8tByZ`_I literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_light_down_normal.png b/src/qt/res/images/arrow_light_down_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfe55b8b9f96c3b0ae0ac3fcbee4b91b1a7a2a4 GIT binary patch literal 354 zcmV-o0iFJdP)z2&(O)t&aS`8vB1f-!O5n)%Co`AufNH#z{$(a z&#Jx3$ji;W#mdUf&&`03mczPE!C0sO<6Z%~xRl`+}sv1GSf){YLue{Qdm;{r&#;Zh!`! zj0zb5004eTL_t(|UhUCI7J@(!1kprr!nwo-XFWFjzwd z8LA;e4P@v984B~?=>Fz1~60E5CMJ!=?bW# zW7zAlxOWvBHfQy1-b8#lX4f7kVH}*nIji?E?Av2@9`JR>-k!ldg`F`D0?FoI`$Lof z_n-jpv40HQlj(bmgEPpy$pvCeh_J`GIe4OnQM@xqCg*`rQIDh6UQndML|ow;dMH|( zBAxME@Hmy`axPTziyIdzrb(l_5dO?*E-6~oi+jJt8WXoKY_&$%IFsXOHqjau|D~O1 z4zXaNNuI+fZeidhMpTL1t600000xB}~42>q%go6-OP002ovPDHLk FV1jl!oi+df literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_light_up_normal.png b/src/qt/res/images/arrow_light_up_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..dd4a83de1d4e9c3e6e1ee1ddd070f252e21f8435 GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^<{-?$1|(P9zU0Qhz^LHq;uuoF`1X3E8;he1+Xux( z;;%)SUT{{meGy`8oUpQFs_>54w|Cr~J9F;bx3e~`7jR-Zm5)77>{h#*n^6Z@!3oGj!f;K(5x;!s#Tj<)|YbIn*;)=U^Klk>xdgZC_ zJl=S%+*j89lVhp5r*Dq=rfad2j@B$$W$r2Vxv*R9WYWXwJ{yt*MRfjz$tb*&?x{%< z^w}U&ko5nRy+w4__KjUXcT9J8+C6V-yO;Uh8&7*S{!LNTW19Ej<-L}VpRc~!D!+Tq z)@}7?ewbwJ%seK3Y=*+qcar;66z`rrI`j6VYqtVVYu?S#6h5wEa_Y#%%bNpqroWF= pw6EJNXY_6-|C&8r4~w{=-mwoj6#aG2<|k`Gd{0+Dmvv4FO#nY^ouU8$ literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_right_hover.png b/src/qt/res/images/arrow_right_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..7f430f9d11d16a6b269f13b1d469d9ef78692657 GIT binary patch literal 353 zcmV-n0iOPeP)+~tCJ5T@#!vZz zAaYUn@qX|+|FSbXhKPuWh=~3|&I?~d(>sqFu1fp1Oq++kSvDy8<@1UQsg}LC&^}4z zovqT5K~VViK*HW+`P-(lV7ks#@mPa?tf<-x(`7cq6OH+0u{2#J0Yh1yvk`2Zu7-`% zjbP(+HFBH=g2w3ra-5!npm7>_HW=hZ#JHL4!B)*WV%$`AQxuZZC!$lINKJnt zJmrbX>?dMVL0s)sS0$!BVQBbox$vp+q9^7Ho*FE8sx%9v%xb|S-FZ(O_W$Rf{KRbG z6SKw7WT!u2pYVih;uDdnKocGtF8~?E*8jwO@l&IPPYvcj0g5p6K4I*A!rK3YrT>XR z*$j4|-6|zPe!&d4-hX-f?b7GZY#*2mixX$xd}Ftg=zoNoT{&$Yh4Qg|=x z3ZVL4PZ!6KinzB|-1!b02sj5;sT|ea``yd>`~JiR6>*8YwfpO}nT`aUdU`7?>GI7K zoefK6`(C~&Up+5H{BGWn{NC$le`Y@{Vf{bzMaH7VoqcLnvtCHJ9(OCbv)*+3O|Ny{ z)@MbxK55$K%z1LI!cMM9-VY&%SL~=V<8?}FYVglaGfaZbi+cbE#yx;Kj5pC z>B1-o`2;~z*ep4N6+v9Q^q^lIbv!Oz!KTGK>nugSZjXaSy625^YvMTng1m8VO&sTe zym4;D8|RLQ<6xO?Z7^76jGM!EE7CS&+zdWj?`(@RZt;HqW{oedh>xrX$^+>rh)=9T zd`!B2gi`~L_bgb+dqA$|ZRc{+k)p`zgc0000kDU$<>Db&==8n?Hf( zOP2)s1v4;+iJRLnw%=;bJ(qo=$#90l>HY^R{Gz$FboT06Y5KU`cAZyh3 diff --git a/src/qt/res/images/arrow_up_hover.png b/src/qt/res/images/arrow_up_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..caa043629d68f78f766171b8eb0f8827b7e73394 GIT binary patch literal 347 zcmV-h0i^zkP)6NIyQ<3m=< zi6HC_JHz*be?9n^@NNYF00000002N@27|CDZM9yM)!Oc9SQ0rYtUptR9=Tg?nA5N; z9u&A4_wkjcu}B>cFy@+o7(Om8JVOht<7F{j?>b31LB&w5g1L zjxg@MFtitSoU*j9482AeH&xngi{qkj{(EdPKcPx!N tQHF+%#=qMu{Z0xWw*UYD00000@Ch56%@qEIX5;_>002ovPDHLkV1knon6dx> literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_up_normal.png b/src/qt/res/images/arrow_up_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..d727135f178a177da98e951475ef4bdee5921d0e GIT binary patch literal 368 zcmV-$0gwKPP)oxoBlC> zVfaNpsgK!%c&3T-0001kNkl7_j5#+o-oUem7d|w=|5}n!MpOtLa^NM_w~)H%E)v)_kXxIy5+T7wY*Lw9k;u!{odFe z+3O}@-h3n1Wh%efD(>oQ4>l-$VX=&JE&2J7>xitw8%>wkDU$<>Db&==8n?Hf( zOP2)s1v4-hIyBA5?q_UX!7Xlc>)eUc52AI%%-eJQw0siZ?g1(@_jGX#;gDrLXvo!I zz`(FEX5kJC&cFZJx%2q=l9(76L|z?kFkCR>blu9u+~xl1Q&)wx?ga|hxtX!qDhVAs Q2sDDh)78&qol`;+0Q7rW0{{R3 From 1542a0f9f2b9de98c12d60c4412b14adc56266c6 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Mon, 25 May 2020 16:15:59 +0200 Subject: [PATCH 05/11] qt: Slightly increased checkboxes and radio buttons --- src/qt/res/css/general.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index f365afd21db1..2e0882d2c0ab 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -86,8 +86,8 @@ QRadioButton { background-color: transparent; } QRadioButton::indicator { - width: 13px; - height: 13px; + width: 15px; + height: 15px; margin-right: 5px; } QRadioButton::indicator:unchecked { @@ -125,8 +125,8 @@ QCheckBox{ } QTreeWidget::indicator, QCheckBox::indicator { - width: 13px; - height: 13px; + width: 15px; + height: 15px; margin-right: 5px; } From 51ac6ac82e43ac6f5c0426673f9707d3fbb1914e Mon Sep 17 00:00:00 2001 From: xdustinface Date: Mon, 25 May 2020 16:33:12 +0200 Subject: [PATCH 06/11] qt: Move the scrollbars css loading into loadStyleSheet This way all windows will have the same scrollbars and not only the main window. --- src/qt/bitcoingui.cpp | 13 ------------- src/qt/guiutil.cpp | 8 ++++++++ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 81d127cc8f2d..3a497e69d988 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -241,19 +241,6 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle * progressBar->setStyleSheet("QProgressBar { background-color: #F8F8F8; border: 1px solid grey; border-radius: 7px; padding: 1px; text-align: center; } QProgressBar::chunk { background: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #00CCFF, stop: 1 #33CCFF); border-radius: 7px; margin: 0px; }"); } -#ifndef Q_OS_MAC - // Apply some styling to scrollbars - QString theme = settings.value("theme", "").toString(); - if (theme != "Traditional") { // No scrollbar styling for the traditional theme - QFile qFile(QString(":/css/scrollbars")); - QString styleSheet; - if (qFile.open(QFile::ReadOnly)) { - styleSheet = QLatin1String(qFile.readAll()); - } - this->setStyleSheet(this->styleSheet().append(styleSheet)); - } -#endif - statusBar()->addWidget(progressBarLabel); statusBar()->addWidget(progressBar); statusBar()->addPermanentWidget(frameBlocks); diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 4f56b8f0543f..5decc0538184 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -996,6 +996,14 @@ QString loadStyleSheet() if (qFileGeneral.open(QFile::ReadOnly)) { stylesheet.get()->append(QLatin1String(qFileGeneral.readAll())); } + +#ifndef Q_OS_MAC + // Apply some styling to scrollbars + QFile qFileScrollbars(QString(":/css/scrollbars")); + if (qFileScrollbars.open(QFile::ReadOnly)) { + stylesheet.get()->append(QLatin1String(qFileScrollbars.readAll())); + } +#endif } QFile qFileTheme(":themes/" + theme); From b7609cde7e1f39967cec60b81aac9d4d9d8f12e3 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Mon, 25 May 2020 16:46:58 +0200 Subject: [PATCH 07/11] qt: Use padding instead of margin for QTreeWidget::branch styles Use of margin here lead to a 2px vertical line at the left edge cause of the background below. --- src/qt/res/css/general.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index 2e0882d2c0ab..ce69878559de 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -225,18 +225,18 @@ QTreeWidget { background-color: transparent; } QTreeWidget::branch::closed:has-children { - margin: 0 -2px 0 2px; + padding: 0 -2px 0 2px; image: url(':/images/arrow_right_normal'); } QTreeWidget::branch::closed:has-children:hover { - margin: 0 -2px 0 2px; + padding: 0 -2px 0 2px; image: url(':/images/arrow_right_hover'); } QTreeWidget::branch::open { - margin: 0 -2px 0 2px; + padding: 0 -2px 0 2px; image: url(':/images/arrow_down_normal'); } QTreeWidget::branch::open:hover { - margin: 0 -2px 0 2px; + padding: 0 -2px 0 2px; image: url(':/images/arrow_down_hover'); } From 77a2085404603073875a93eb0b3e704c21991924 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Mon, 25 May 2020 23:22:51 +0200 Subject: [PATCH 08/11] qt: Use border-image for the scrollbar arrows and adjust the size. background-image lead to not showing the arrows here because it obviously was scaled incorrect with the higher resolution of the image files. --- src/qt/res/css/scrollbars.css | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/qt/res/css/scrollbars.css b/src/qt/res/css/scrollbars.css index 8024a9ba37a2..f8fd8befbde8 100644 --- a/src/qt/res/css/scrollbars.css +++ b/src/qt/res/css/scrollbars.css @@ -58,48 +58,48 @@ QScrollBar::add-line:horizontal { /* Vertical - right button position */ } QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */ - width:10px; - height:10px; + width:18px; + height:18px; } QScrollBar:up-arrow { - background-image: url(':/images/arrow_up_normal'); + border-image: url(':/images/arrow_up_normal'); } QScrollBar:up-arrow:hover { - background-image: url(':/images/arrow_up_hover'); + border-image: url(':/images/arrow_up_hover'); } QScrollBar:up-arrow:pressed { - background-image: url(':/images/arrow_up_pressed'); + border-image: url(':/images/arrow_up_pressed'); } QScrollBar:down-arrow { - background-image: url(':/images/arrow_down_normal'); + border-image: url(':/images/arrow_down_normal'); } QScrollBar:down-arrow:hover { - background-image: url(':/images/arrow_down_hover'); + border-image: url(':/images/arrow_down_hover'); } QScrollBar:down-arrow:pressed { - background-image: url(':/images/arrow_down_pressed'); + border-image: url(':/images/arrow_down_pressed'); } QScrollBar:left-arrow { - background-image: url(':/images/arrow_left_normal'); + border-image: url(':/images/arrow_left_normal'); } QScrollBar:left-arrow:hover { - background-image: url(':/images/arrow_left_hover'); + border-image: url(':/images/arrow_left_hover'); } QScrollBar:left-arrow:pressed { - background-image: url(':/images/arrow_left_pressed'); + border-image: url(':/images/arrow_left_pressed'); } QScrollBar:right-arrow { - background-image: url(':/images/arrow_right_normal'); + border-image: url(':/images/arrow_right_normal'); } QScrollBar:right-arrow:hover { - background-image: url(':/images/arrow_right_hover'); + border-image: url(':/images/arrow_right_hover'); } QScrollBar:right-arrow:pressed { - background-image: url(':/images/arrow_right_pressed'); + border-image: url(':/images/arrow_right_pressed'); } QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal { From 99bf9053b6b4c20909d0bb436a2a0848ac7559aa Mon Sep 17 00:00:00 2001 From: xdustinface Date: Tue, 26 May 2020 11:21:04 +0200 Subject: [PATCH 09/11] qt: Add missing grey arrows and make use of disabled states of scrollbar arrows --- src/Makefile.qt.include | 4 ++++ src/qt/dash.qrc | 4 ++++ src/qt/res/css/scrollbars.css | 12 ++++++++++++ src/qt/res/images/arrow_light_left_hover.png | Bin 0 -> 1088 bytes src/qt/res/images/arrow_light_left_normal.png | Bin 0 -> 1047 bytes src/qt/res/images/arrow_light_right_hover.png | Bin 0 -> 1335 bytes src/qt/res/images/arrow_light_right_normal.png | Bin 0 -> 1319 bytes 7 files changed, 20 insertions(+) create mode 100644 src/qt/res/images/arrow_light_left_hover.png create mode 100644 src/qt/res/images/arrow_light_left_normal.png create mode 100644 src/qt/res/images/arrow_light_right_hover.png create mode 100644 src/qt/res/images/arrow_light_right_normal.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index fdef98f2d514..287bb896e945 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -317,6 +317,10 @@ RES_IMAGES = \ qt/res/images/arrow_up_pressed.png \ qt/res/images/arrow_light_down_normal.png \ qt/res/images/arrow_light_down_hover.png \ + qt/res/images/arrow_light_left_normal.png \ + qt/res/images/arrow_light_left_hover.png \ + qt/res/images/arrow_light_right_normal.png \ + qt/res/images/arrow_light_right_hover.png \ qt/res/images/arrow_light_up_normal.png \ qt/res/images/arrow_light_up_hover.png \ qt/res/images/checkbox_normal.png \ diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index 8b5487478e58..b66c470d61ac 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -78,6 +78,10 @@ res/images/arrow_up_pressed.png res/images/arrow_light_down_normal.png res/images/arrow_light_down_hover.png + res/images/arrow_light_left_normal.png + res/images/arrow_light_left_hover.png + res/images/arrow_light_right_normal.png + res/images/arrow_light_right_hover.png res/images/arrow_light_up_normal.png res/images/arrow_light_up_hover.png res/images/checkbox_normal.png diff --git a/src/qt/res/css/scrollbars.css b/src/qt/res/css/scrollbars.css index f8fd8befbde8..dd4ef5a83ed0 100644 --- a/src/qt/res/css/scrollbars.css +++ b/src/qt/res/css/scrollbars.css @@ -71,6 +71,9 @@ QScrollBar:up-arrow:hover { QScrollBar:up-arrow:pressed { border-image: url(':/images/arrow_up_pressed'); } +QScrollBar:up-arrow:disabled { + border-image: url(':/images/arrow_light_up_hover'); +} QScrollBar:down-arrow { border-image: url(':/images/arrow_down_normal'); @@ -81,6 +84,9 @@ QScrollBar:down-arrow:hover { QScrollBar:down-arrow:pressed { border-image: url(':/images/arrow_down_pressed'); } +QScrollBar:down-arrow:disabled { + border-image: url(':/images/arrow_light_down_hover'); +} QScrollBar:left-arrow { border-image: url(':/images/arrow_left_normal'); @@ -91,6 +97,9 @@ QScrollBar:left-arrow:hover { QScrollBar:left-arrow:pressed { border-image: url(':/images/arrow_left_pressed'); } +QScrollBar:left-arrow:disabled { + border-image: url(':/images/arrow_light_left_hover'); +} QScrollBar:right-arrow { border-image: url(':/images/arrow_right_normal'); @@ -101,6 +110,9 @@ QScrollBar:right-arrow:hover { QScrollBar:right-arrow:pressed { border-image: url(':/images/arrow_right_pressed'); } +QScrollBar:right-arrow:disabled { + border-image: url(':/images/arrow_light_right_hover'); +} QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal { border:0; diff --git a/src/qt/res/images/arrow_light_left_hover.png b/src/qt/res/images/arrow_light_left_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..4b53599426e1ff42b9d78461a882dd7d7ec88497 GIT binary patch literal 1088 zcmeAS@N?(olHy`uVBq!ia0vp^<{-?$1|(P9zT^g^7>k44ofy`glX(f`1f)iIruq6Z zXaU(A3`~qd49p-UK*-RZ$-n|;Gcc$DX$A)71&j#U1x#>R^99TZHb`M~#3N6jA(5FO z5hW46K32*3xq68y`AMmI6}bf<1q?P7RzPNMYDuC(MQ%=Bu~mhw5?F;5kPQ;nS5g2g zDap1~itr6kaLzAERWQ{v(KAr8<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O) z@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6 ztE2?72o50bEXhnm*pycc^%l^B`XCv7Lp=k1xYbrvRz7m39X_pPu}9q~;(K z!6>RK@36i;YX-a4m*kgs zHUt*P{oea%*LJ6eF*E#DgzzNzn1_G;=k)N*>MMFKx7W>XI+N?9F(;RQdhxXo`7Ph? znKLg4u;AA)x4-Rbb!q#(jqBEmSnzGOF~58ERxoR9!k>MY9#njs`g3NBpTo+6`3-xc zgr@L)XS7(Y>Zn?vi}vn~+nV}ANO$4kZqEFX^;yCjM9a3p_BX`Hpu_kN!Ao)5mU z&6`k44ofy`glX(f`1f)iIruq6Z zXaU(A3`~qd49p-UK*-RZ$-n|;Gcc$DX$A)71&j#U1x#>R^99TZHb`M~#3N6jA(5FO z5hW46K32*3xq68y`AMmI6}bf<1q?P7RzPNMYDuC(MQ%=Bu~mhw5?F;5kPQ;nS5g2g zDap1~itr6kaLzAERWQ{v(KAr8<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O) z@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6 ztE2?72o50bEXhnm*pycc^%l^B`XCv7Lp=k1xYFAudBxrpP+PLq#5 zP8yRh8$bVDpXL|blF-1kfI)+S3qc(SVf}E0;}~Q3_Or#3?N1dP-kTk|uJJzhiq=%Y z-qd1~NlVUN%$V7?ZY9^hi8qSwEIuArAn?@MXSQ+Oe1jd!ZhrM*4eb*T4*0xdO8NIk z#q~SIn64Y`-WM0Jbjcyro+(RyniO|(FYz>aZL7Qau`knX)8lIjW9I%oyD^e`o_gQx z;ynjDIAZ2xm+z_z^uCw;*}^bir}+5^Ibp_QcXoz7iMVon2Din@z%=g3c4|UBGmDk@ z`c=NKkkfG6yKd^nPiI#5t1=#azT%&*s&;wInde`AFe$BHc_>jv?_|&yhN%-BMbFh= z^>5#no!-)$C%pb@*c=X@-TCErjxKU5wO=mSv#R(p)3$5jQ~M8Iko_s` zx;1sZHh~E#v1tV=mW2T-3c(f^8_qm*VJd1AW<9~1$8%$LU00jRv||sr+_~<}Eb3xY zTvT?bs9m{X@~;Gey)(D&`OtXef`ropkB3Y6?e>0+Z<{8&V_kdAefQ>xZ@<=-xH0!U z5%@Quy7KakaFv))l`U_6{8+bZccl}zo^U14;Rz?zg^xN2qDNDG@B`^7+VhJZbA?!d OvYDr=pUXO@geCwu(0%Iw literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_light_right_hover.png b/src/qt/res/images/arrow_light_right_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..e8000aef90c89cf10bbcf249c0fdc132238e77cd GIT binary patch literal 1335 zcmeAS@N?(olHy`uVBq!ia0vp^<{-?$1|(P9zT^g^SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP$D2T!ZXd+mq822=3roA z6k=covKWDop*@p<1sd^Q;1t0|sHWgMtW^QUpqC!P(PF}H9g{=};g%ywu64qBz04piUwpEJo z4N!2-FG^J~)icpEP_pAvP*AWbN=dT{a&d!d2l8x{GD=Dctn~HE%ggo3jrH=2()A53 zEiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`VEGWs$&r<-Io0ybeT4JlD1hNPY zAnq*5Ohed|R}A$Q(1ZFQ8GS=N1AT1TQY$iXXamVWw1NEvvCal$n3aD~W-8FZAZOVb z+JG%U5kol724sqrbAC>KQE)+Gaw?D?Z@OO(surg z(uxIZ9xdH&u<`n_L(4Z@K6a|&WzV9{qiSv5i`B%AxnG!cEJ!&1z^NmboVY&dajj{3 z%$Jhvu;IpBZo~GJnP+^?o%#9i|C=*R5BNnLSOXYC7!cGI?Sx3Nr~SX?*1z|tK}Km=5G19XAU@3*KzDVZ7>** zt!%!u`jsy&2N{2JZS~z*Ab!{9-Tm!zr<*7W@cpZ+k1yU>k@VeD$o+Kc(SuuK_7zSL zd3UBF$zO6okVT&tS0#HuZ}X{#uNtyst}uOnyx@+|Rkr6$r}nUKJyhs0^ZSA_3qFoN zaz64Yy02{lUUUC?&11nATqnKF{Znz%j;zxqY%+!K>JLA-pQrzyzfZXJSDv%;lMt0T z7o@(=iKzHsyLY3_JIj5(3;u2DIdbpP?bj2{e*ToY#(iA&cHH~Vt{>bt?Ax@)T8+2I z_;sP4O~9m=GqRUeJy$Y}>k7JOD1IvUs?~CV9_CfelPk1#`I&Cddhn{x)7ECz!HRep znWay|q#M|d-?3>qIPskaTa~Xg&-0!|=aNedFWLWE@hGGuaaMHV^3)8K9l<<3u@_!F zH(4F#>y&A?)oOm$J%QgV7_=I=7BC^G3yEAc%&cXT?|QPDfQm*2Pgg&ebxsLQ0F7AO ALI3~& literal 0 HcmV?d00001 diff --git a/src/qt/res/images/arrow_light_right_normal.png b/src/qt/res/images/arrow_light_right_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..7428af55bce6d61c2afabaa4a4d2ead7d657ceb3 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^<{-?$1|(P9zT^g^SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP$D2T!ZXd+mq822=3roA z6k=covKWDop*@p<1sd^Q;1t0|sHWgMtW^QUpqC!P(PF}H9g{=};g%ywu64qBz04piUwpEJo z4N!2-FG^J~)icpEP_pAvP*AWbN=dT{a&d!d2l8x{GD=Dctn~HE%ggo3jrH=2()A53 zEiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`VEGWs$&r<-Io0ybeT4JlD1hNPY zAnq*5Ohed|R}A$Q(1ZFQ8GS=N1AT1TQY$iXXamVWw1NEvvCal$n3aD~W-8FZAZOVb z+JG%U5kol724sqrbAC>KQE)+Gaw=6}*TOx0Ut4te-3_M4UYydXxG5QK*I;NU;iWmn?`?*` z(I$;Eturn!NqkoFY);+(nck8u513dT7y}qY7!cGyE{V2<6K2;xDR9xuk-8gXw_eUo zH2>_u7Z(r4RqozWW3_Ah$LgSFW4%?@GpAI|xv*I4m|Rhe`1Lj4yfe4%F!-0<_smgl zZS; zY@hl90gJeXLl1T}=zMovSimyjshx(*y4eR$pUS;#Ah&3V-|JZ%7EHp|m1Y^G%Uxhn zu2W+>_jUg^TmP!R(+hgTjvuLd-l2BqzX65eVLXUem8>~n)BXSe literal 0 HcmV?d00001 From 1538f01008e2784dbe132ca0f89f8c73002da2f6 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Tue, 26 May 2020 11:54:43 +0200 Subject: [PATCH 10/11] qt: Adjust dashThemeActive and also use it in BitcoinGUI::createToolBars --- src/qt/bitcoingui.cpp | 3 +-- src/qt/guiutil.cpp | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 3a497e69d988..4da94010b4c7 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -607,9 +607,8 @@ void BitcoinGUI::createToolBars() toolbar->addWidget(spacer); QLabel *logoLabel = new QLabel(); - QString theme = settings.value("theme", "").toString(); QString logoImage = ":/images/dash_logo_toolbar"; - if (theme == "Traditional") { + if (!GUIUtil::dashThemeActive()) { logoImage = ":/images/dash_logo_toolbar_blue"; } diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 5decc0538184..12af1fa506eb 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -85,6 +85,8 @@ void ForceActivation(); namespace GUIUtil { +// The name of the traditional theme +static const QString traditionalTheme = "Traditional"; // The theme to set by default if settings are missing or incorrect static const QString defaultTheme = "Light"; // The prefix a theme name should have if we want to apply dark colors and styles to it @@ -1019,7 +1021,7 @@ bool dashThemeActive() { QSettings settings; QString theme = settings.value("theme", "").toString(); - return theme == defaultTheme || theme == darkThemePrefix; + return theme != traditionalTheme; } void setClipboard(const QString& str) From 96b6acf552aae895021801905c36c457a48e20be Mon Sep 17 00:00:00 2001 From: xdustinface Date: Thu, 28 May 2020 02:35:26 +0200 Subject: [PATCH 11/11] qt: Fixed copyright year in general.css --- src/qt/res/css/general.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index ce69878559de..9bcdaec401b8 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -1,5 +1,5 @@ /** - Copyright (c) 2018-2019 The Dash Core developers + Copyright (c) 2020 The Dash Core developers Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php.