From f16e8b05b7dbd8d466b4bb4ad9d09c53ce3d8105 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Tue, 26 May 2020 23:59:19 +0200 Subject: [PATCH 1/4] qt: Replaced QAction with QToolButton for BitcoinGUI toolbar buttons. This allows setting a size policy for the toolbar buttons so that they are stretched over the toolbar and resize on window size changes. --- src/qt/bitcoingui.cpp | 94 ++++++++++++++++++++++++++++--------------- src/qt/bitcoingui.h | 17 +++++--- 2 files changed, 73 insertions(+), 38 deletions(-) diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index ef76c7aa7a6c..cb0fae6117b7 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -40,6 +40,7 @@ #include #include +#include #include #include #include @@ -55,6 +56,7 @@ #include #include #include +#include #include #include @@ -118,6 +120,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle * rpcConsole(0), helpMessageDialog(0), modalOverlay(0), + tabGroup(0), prevBlocks(0), spinnerFrame(0), platformStyle(_platformStyle) @@ -279,13 +282,15 @@ BitcoinGUI::~BitcoinGUI() #endif delete rpcConsole; + delete tabGroup; } void BitcoinGUI::createActions() { - QActionGroup *tabGroup = new QActionGroup(this); + tabGroup = new QButtonGroup(this); - overviewAction = new QAction(tr("&Overview"), this); + overviewAction = new QToolButton(this); + overviewAction->setText(tr("&Overview")); overviewAction->setStatusTip(tr("Show general overview of wallet")); overviewAction->setToolTip(overviewAction->statusTip()); overviewAction->setCheckable(true); @@ -294,9 +299,10 @@ void BitcoinGUI::createActions() #else overviewAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_1)); #endif - tabGroup->addAction(overviewAction); + tabGroup->addButton(overviewAction); - sendCoinsAction = new QAction(tr("&Send"), this); + sendCoinsAction = new QToolButton(this); + sendCoinsAction->setText(tr("&Send")); sendCoinsAction->setStatusTip(tr("Send coins to a Dash address")); sendCoinsAction->setToolTip(sendCoinsAction->statusTip()); sendCoinsAction->setCheckable(true); @@ -305,13 +311,14 @@ void BitcoinGUI::createActions() #else sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2)); #endif - tabGroup->addAction(sendCoinsAction); + tabGroup->addButton(sendCoinsAction); sendCoinsMenuAction = new QAction(QIcon(":/icons/send"), sendCoinsAction->text(), this); sendCoinsMenuAction->setStatusTip(sendCoinsAction->statusTip()); sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip()); - privateSendCoinsAction = new QAction(tr("&PrivateSend"), this); + privateSendCoinsAction = new QToolButton(this); + privateSendCoinsAction->setText(tr("&PrivateSend")); privateSendCoinsAction->setStatusTip(tr("PrivateSend coins to a Dash address")); privateSendCoinsAction->setToolTip(privateSendCoinsAction->statusTip()); privateSendCoinsAction->setCheckable(true); @@ -320,13 +327,14 @@ void BitcoinGUI::createActions() #else privateSendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3)); #endif - tabGroup->addAction(privateSendCoinsAction); + tabGroup->addButton(privateSendCoinsAction); privateSendCoinsMenuAction = new QAction(QIcon(":/icons/send"), privateSendCoinsAction->text(), this); privateSendCoinsMenuAction->setStatusTip(privateSendCoinsAction->statusTip()); privateSendCoinsMenuAction->setToolTip(privateSendCoinsMenuAction->statusTip()); - receiveCoinsAction = new QAction(tr("&Receive"), this); + receiveCoinsAction = new QToolButton(this); + receiveCoinsAction->setText(tr("&Receive")); receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and dash: URIs)")); receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip()); receiveCoinsAction->setCheckable(true); @@ -335,13 +343,14 @@ void BitcoinGUI::createActions() #else receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_4)); #endif - tabGroup->addAction(receiveCoinsAction); + tabGroup->addButton(receiveCoinsAction); receiveCoinsMenuAction = new QAction(QIcon(":/icons/receiving_addresses"), receiveCoinsAction->text(), this); receiveCoinsMenuAction->setStatusTip(receiveCoinsAction->statusTip()); receiveCoinsMenuAction->setToolTip(receiveCoinsMenuAction->statusTip()); - historyAction = new QAction(tr("&Transactions"), this); + historyAction = new QToolButton(this); + historyAction->setText(tr("&Transactions")); historyAction->setStatusTip(tr("Browse transaction history")); historyAction->setToolTip(historyAction->statusTip()); historyAction->setCheckable(true); @@ -350,12 +359,13 @@ void BitcoinGUI::createActions() #else historyAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_5)); #endif - tabGroup->addAction(historyAction); + tabGroup->addButton(historyAction); #ifdef ENABLE_WALLET QSettings settings; if (settings.value("fShowMasternodesTab").toBool()) { - masternodeAction = new QAction(tr("&Masternodes"), this); + masternodeAction = new QToolButton(this); + masternodeAction->setText(tr("&Masternodes")); masternodeAction->setStatusTip(tr("Browse masternodes")); masternodeAction->setToolTip(masternodeAction->statusTip()); masternodeAction->setCheckable(true); @@ -364,29 +374,32 @@ void BitcoinGUI::createActions() #else masternodeAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_6)); #endif - tabGroup->addAction(masternodeAction); - connect(masternodeAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); - connect(masternodeAction, SIGNAL(triggered()), this, SLOT(gotoMasternodePage())); + tabGroup->addButton(masternodeAction); + connect(masternodeAction, SIGNAL(clicked()), this, SLOT(showNormalIfMinimized())); + connect(masternodeAction, SIGNAL(clicked()), this, SLOT(gotoMasternodePage())); } // These showNormalIfMinimized are needed because Send Coins and Receive Coins // can be triggered from the tray menu, and need to show the GUI to be useful. - connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); - connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage())); - connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); - connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage())); + connect(overviewAction, SIGNAL(clicked()), this, SLOT(showNormalIfMinimized())); + connect(overviewAction, SIGNAL(clicked()), this, SLOT(gotoOverviewPage())); + connect(sendCoinsAction, SIGNAL(clicked()), this, SLOT(showNormalIfMinimized())); + connect(sendCoinsAction, SIGNAL(clicked()), this, SLOT(gotoSendCoinsPage())); connect(sendCoinsMenuAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(sendCoinsMenuAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage())); - connect(privateSendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); - connect(privateSendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoPrivateSendCoinsPage())); + connect(privateSendCoinsAction, SIGNAL(clicked()), this, SLOT(showNormalIfMinimized())); + connect(privateSendCoinsAction, SIGNAL(clicked()), this, SLOT(gotoPrivateSendCoinsPage())); connect(privateSendCoinsMenuAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(privateSendCoinsMenuAction, SIGNAL(triggered()), this, SLOT(gotoPrivateSendCoinsPage())); - connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); - connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage())); + connect(receiveCoinsAction, SIGNAL(clicked()), this, SLOT(showNormalIfMinimized())); + connect(receiveCoinsAction, SIGNAL(clicked()), this, SLOT(gotoReceiveCoinsPage())); connect(receiveCoinsMenuAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); connect(receiveCoinsMenuAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage())); - connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormalIfMinimized())); - connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage())); + connect(historyAction, SIGNAL(clicked()), this, SLOT(showNormalIfMinimized())); + connect(historyAction, SIGNAL(clicked()), this, SLOT(gotoHistoryPage())); + + // Give the selected tab button a bolder font. + connect(tabGroup, SIGNAL(buttonToggled(QAbstractButton *, bool)), this, SLOT(highlightTabButton(QAbstractButton *, bool))); #endif // ENABLE_WALLET quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this); @@ -575,15 +588,25 @@ void BitcoinGUI::createToolBars() { QToolBar *toolbar = new QToolBar(tr("Tabs toolbar")); toolbar->setContextMenuPolicy(Qt::PreventContextMenu); - toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - toolbar->addAction(overviewAction); - toolbar->addAction(sendCoinsAction); - toolbar->addAction(privateSendCoinsAction); - toolbar->addAction(receiveCoinsAction); - toolbar->addAction(historyAction); + toolbar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + toolbar->setToolButtonStyle(Qt::ToolButtonTextOnly); + + overviewAction->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + sendCoinsAction->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + privateSendCoinsAction->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + receiveCoinsAction->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + historyAction->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + + toolbar->addWidget(overviewAction); + toolbar->addWidget(sendCoinsAction); + toolbar->addWidget(privateSendCoinsAction); + toolbar->addWidget(receiveCoinsAction); + toolbar->addWidget(historyAction); + QSettings settings; if (settings.value("fShowMasternodesTab").toBool() && masternodeAction) { - toolbar->addAction(masternodeAction); + masternodeAction->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + toolbar->addWidget(masternodeAction); } toolbar->setMovable(false); // remove unused icon in upper left corner overviewAction->setChecked(true); @@ -909,6 +932,13 @@ void BitcoinGUI::openClicked() } } +void BitcoinGUI::highlightTabButton(QAbstractButton *button, bool checked) +{ + QFont font = button->font(); + font.setBold(checked); + button->setFont(font); +} + void BitcoinGUI::gotoOverviewPage() { overviewAction->setChecked(true); diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index e927210773ff..4083cf6a654d 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -40,6 +40,7 @@ QT_BEGIN_NAMESPACE class QAction; class QProgressBar; class QProgressDialog; +class QToolButton; QT_END_NAMESPACE /** @@ -95,20 +96,20 @@ class BitcoinGUI : public QMainWindow QProgressDialog *progressDialog; QMenuBar *appMenuBar; - QAction *overviewAction; - QAction *historyAction; - QAction *masternodeAction; + QToolButton *overviewAction; + QToolButton *historyAction; + QToolButton *masternodeAction; QAction *quitAction; - QAction *sendCoinsAction; + QToolButton *sendCoinsAction; QAction *sendCoinsMenuAction; - QAction *privateSendCoinsAction; + QToolButton *privateSendCoinsAction; QAction *privateSendCoinsMenuAction; QAction *usedSendingAddressesAction; QAction *usedReceivingAddressesAction; QAction *signMessageAction; QAction *verifyMessageAction; QAction *aboutAction; - QAction *receiveCoinsAction; + QToolButton *receiveCoinsAction; QAction *receiveCoinsMenuAction; QAction *optionsAction; QAction *toggleHideAction; @@ -136,6 +137,7 @@ class BitcoinGUI : public QMainWindow RPCConsole *rpcConsole; HelpMessageDialog *helpMessageDialog; ModalOverlay *modalOverlay; + QButtonGroup *tabGroup; #ifdef Q_OS_MAC CAppNapInhibitor* m_app_nap_inhibitor = nullptr; @@ -251,6 +253,9 @@ private Q_SLOTS: /** Show open dialog */ void openClicked(); + + /** Highlight checked tab button */ + void highlightTabButton(QAbstractButton *button, bool checked); #endif // ENABLE_WALLET /** Show configuration dialog */ void optionsClicked(); From 7224de87b9dae834be2e2cfc56691b94a1c958b9 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Tue, 26 May 2020 23:59:39 +0200 Subject: [PATCH 2/4] qt: Give the BitcoinGUI's toolbar more style --- src/qt/res/css/dark.css | 5 ++++- src/qt/res/css/general.css | 31 ++++++++++++++++++------------- src/qt/res/css/light.css | 5 ++++- src/qt/res/css/trad.css | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/src/qt/res/css/dark.css b/src/qt/res/css/dark.css index 2769c999f27f..724d874b0265 100644 --- a/src/qt/res/css/dark.css +++ b/src/qt/res/css/dark.css @@ -295,7 +295,10 @@ QTextEdit { QToolBar / QToolButton ******************************************************/ -/***** No dark.css specific coloring here yet *****/ +QToolBar > QToolButton:checked { + background-color: #444; + color: #ccc; +} /****************************************************** QTreeWidget diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index ca68b0fe1caa..c2ebeb528e9e 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -626,26 +626,31 @@ QToolBar / QToolButton QToolBar { background-color: #008de4; - border: 0; + border: none; + width: 100%; padding: 0; margin: 0; + spacing: 0; + min-height: 50px; + max-height: 50px; } QToolBar > QToolButton { - background-color: #008de4; - border: 0; - font-size: 14px; - min-width: 70px; - min-height: 48%; - max-height: 48%; - padding: 0 10px; - margin: 0; - color: #f5f5f5; + background-color: transparent; + border: none; + min-height: 50px; + max-height: 50px; + font-size: 16px; + letter-spacing: 3px; + color: #ffffff; + width: 100%; + padding: 1px; + text-align: center; } -QToolBar > QToolButton:checked { - border: 0; - font-weight: bold; +QToolBar > QToolButton:hover:!checked { + background-color: #005e98; + color: #DCDCDC; } QToolBar > QToolButton:disabled { diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css index 882d68f1b98c..b8e62b15c46f 100644 --- a/src/qt/res/css/light.css +++ b/src/qt/res/css/light.css @@ -291,7 +291,10 @@ QTextEdit { QToolBar / QToolButton ******************************************************/ -/***** No light.css specific coloring here yet *****/ +QToolBar > QToolButton:checked { + background-color: #f6f6f6; + color: #333333; +} /****************************************************** QTreeWidget diff --git a/src/qt/res/css/trad.css b/src/qt/res/css/trad.css index 49c8152e072c..95c0e1977a90 100644 --- a/src/qt/res/css/trad.css +++ b/src/qt/res/css/trad.css @@ -25,6 +25,43 @@ Loaded in GUIUtil::loadStyleSheet() in guitil.cpp. */ +/****************************************************** +QToolBar / QToolButton +******************************************************/ + +QToolBar { + border: none; + width: 100%; + padding: 0; + margin: 0; + spacing: 0; +} + +QToolBar > QToolButton { + background-color: #008de4; + border: none; + min-height: 50px; + font-size: 16px; + color: #fff; + width: 100%; + padding: 1px; + text-align: center; +} + +QToolBar > QToolButton:hover:!checked { + background-color: #005e98; + color: #DCDCDC; +} + +QToolBar > QToolButton:checked { + background-color: #00000000; + color: #333; +} + +QToolBar > QToolButton:disabled { + color: #444; +} + /****************************************************** ModalOverlay ******************************************************/ From 7dee67112100f8618325264ed1b253ef81e9a831 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Wed, 27 May 2020 00:24:44 +0200 Subject: [PATCH 3/4] qt: Give the toolbar logo a higher resolution This also removes the blue logo because its not longer used. --- src/Makefile.qt.include | 1 - src/qt/bitcoingui.cpp | 13 ++----------- src/qt/dash.qrc | 1 - src/qt/res/css/general.css | 7 ++++--- src/qt/res/css/trad.css | 7 +++++++ src/qt/res/images/dash_logo_toolbar.png | Bin 1732 -> 9493 bytes src/qt/res/images/dash_logo_toolbar_blue.png | Bin 2479 -> 0 bytes 7 files changed, 13 insertions(+), 16 deletions(-) delete mode 100644 src/qt/res/images/dash_logo_toolbar_blue.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 854257d03cf1..c76ade2fd2d3 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -337,7 +337,6 @@ RES_IMAGES = \ 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/radio_normal.png \ qt/res/images/radio_normal_hover.png \ qt/res/images/radio_normal_pressed.png \ diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index cb0fae6117b7..7e67ea6c4f3b 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -611,19 +611,10 @@ void BitcoinGUI::createToolBars() toolbar->setMovable(false); // remove unused icon in upper left corner overviewAction->setChecked(true); - // Add Dash logo on the right side - QWidget* spacer = new QWidget(); - spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - toolbar->addWidget(spacer); - QLabel *logoLabel = new QLabel(); - QString logoImage = ":/images/dash_logo_toolbar"; - if (!GUIUtil::dashThemeActive()) { - logoImage = ":/images/dash_logo_toolbar_blue"; - } + logoLabel->setObjectName("lblToolbarLogo"); + logoLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - QPixmap logoPixmap(logoImage); - logoLabel->setPixmap(logoPixmap); toolbar->addWidget(logoLabel); /** Create additional container for toolbar and walletFrame and make it the central widget. diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc index b66c470d61ac..05c12c995c3a 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -98,7 +98,6 @@ 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/radio_normal.png res/images/radio_normal_hover.png res/images/radio_normal_pressed.png diff --git a/src/qt/res/css/general.css b/src/qt/res/css/general.css index c2ebeb528e9e..96492f481634 100644 --- a/src/qt/res/css/general.css +++ b/src/qt/res/css/general.css @@ -657,9 +657,10 @@ QToolBar > QToolButton:disabled { color: #444; } -QToolBar > QLabel { - border: 0; - margin: 10px 0 0 0; +QToolBar QLabel#lblToolbarLogo { + padding: 12px; + image: url(':/images/dash_logo_toolbar'); + height: 2.5em; } /****************************************************** diff --git a/src/qt/res/css/trad.css b/src/qt/res/css/trad.css index 95c0e1977a90..84bd8c2808eb 100644 --- a/src/qt/res/css/trad.css +++ b/src/qt/res/css/trad.css @@ -62,6 +62,13 @@ QToolBar > QToolButton:disabled { color: #444; } +QToolBar QLabel#lblToolbarLogo { + background-color: #008de4; + padding: 12px; + image: url(':/images/dash_logo_toolbar'); + height: 2.5em; +} + /****************************************************** ModalOverlay ******************************************************/ diff --git a/src/qt/res/images/dash_logo_toolbar.png b/src/qt/res/images/dash_logo_toolbar.png index 2f58e83e7072372cd33929b658112749f191de51..46322307b75ce6db4db3b788e30f14c5cea28750 100644 GIT binary patch literal 9493 zcmeHNWm6kWw5C9DiaSMvySqyX#WlFwODXOUineG8?rz1sMFSLvVlD2)odyjAa=E|b z-t%E+cW3wP%yVR(vvXo~wBF(4P~)JWpx^`5l=VB7q5%xG^@Nm{t8ffO^r zYp0{NC069~-R^j0q@@@WZr%ymuZJhZYY;-_i__b9)Z^$AGZ#$0(e)DS0cG0e)m0p6?g9)_uCLvBR4TX*oN=6_zB zi`;fbkfzT1h+1(QpZxOsE@yBuX!3Kwn|8Silhq^z1*^|QeDzp=VcEjaX?3{8ZMEHP z^){?4J27!2@rbUwZaMK`*odptyM#pgX)^TAG4QtIfRQLm=P%tlj}999ZbAm$y-p6XZu^IveQoQvy_>1>eY&VR|-!iHwzI*Rm?MWs#xkymOuNow1r=EXYd;eDjfL6D4BW!=I2=gMHnU~(|5 zb|#RDy4VHpts}mYn#6|y2_>U4ep>*(ka$vrsxvmY%!#tV&xh(|S76xeC*Feeo9G$h z1cz~X>5;@~IeQiCAR&i}uWa&6{EQcQYSTJ;S`Vl=aAj(!kORg9FqM%ot1s=F4<74Y zs}w`>JHX(zdGV!8>=r3&f>6wM8R9K=NgfY0_$q3E>cv1dtTJeVNiE3?;}ke@qA^s` zPK!gIL_QZV2ENI{jb+ar=r-qp!hHp-d5WBLI4Beu$19rHjVIg%01?06J5yy`trrtI zq=0gqmP5ztZU}KQpOk(!(q<|#k5_CKJH(`gMiXOcY-3N%B`GHjd6@@FTkLT|t%lC}?@v!{lE4DIwNJ_w#P~C8Uy)(_16;z8k=Wr^?^kU>F{Vridt~Z?}y^REynaXGL@8J#{xccN+@c z2%fkIZTGW>{M%?WFCb9FRu*xFyG5$HrhGs)uO{(GEtUiHM_?dXp;tJ%_@-c}BBOM1 zby<9hGFLbTG+_gF$2(`1F?8hu_@b`XDD{FCGr*LDG0H$4HJSc=`Mv3gV3|2eVikH~ zbf78tapRLb7r>z8Q{^o^gPiE(FV71FEM>#*h&R~bM(S1Q$)79dO!ggWWl*E5jx(&n z*jp_Xf!8$egZB42aHvHXqPTVDQ^|T-t5Xb6HTCWpjVCVNt(B-d!_5NKJ_Y&@ z{JOdky{}D6(AmDu3Yi&(nG&nNCtdfmU(j|Uuayoy@11wsc&J?bj^7pWch*7E;@{c# z%!W=xmBn-IIQ*DBE9ChK7uS#OhtsBzyJ4kf5K;Bt4Em!ucjSY106hNwy3Xm=;y*Dr zcuafOo%_RU6&|lG^~;~gKl!hV=!R}?3n5EG`K<9Wk!+fsLXmqzH{M*0y!_4qvOZZJ{dOoF+=crADmET%#&hL#Q7MPCsEg5U^M2M9P~vOyC}@} z=V98l%XKZ)G;Tu-Z&!FI9lkv^tt+#aQ)#;So^d3wlldU6NW- zo*FW)Bi?r*L!JFgF<%3nAq0wC8Y)@dRDkfC)_L`m`lQY1gaXaK2%)kNm@bzHR`Y}t~c8e6~JUhCEi(>WdIKCGQszvy+m1Xnkw&4GNQ zt|A2TZR%3`=BNqW$N#i=G8KO2QSWOJqgdY9#Anulizx5T$SK%yD%kwN#S=l#(ETyh zG(^V$qg^V|-_6an8F9kcPYNG~yv6&FNA4e!9VgsI!0#v5h&LIJ2ayRsXy=D}`ueDE zu8sKlkn`5%+g&NkzLuJ=0(vs(0~6cs%1|e)7l)R;PN@cNUuWAb3g9nDhD&i7mcejO zU!jIANX#F;=drY{>8eqT*UfFomx z3n8oEug6%M_PeEoQ1tJILfo=MbJ#C}O4arj?UD*0EkD!9e(BgDLw;I;+n1uRD(j56 z+@AQ3Hj(-7bDkferbl5&jTQBS1FyzkuNQb#C>C+1y}`G%;bGBZtI1sjy|WTMwqNw% zNd@6DQ3v}#lZM+eGx~s*sVONlyW(8j+CuURpzH+sYvCH0ka(2K?@FJg4gc#8g=K>R z{Y5+E%v8wjFGjfGTz-m%BvY;E;Wq)>1-mW@rwXW>E0T{YWEe@MuA+^+oJQ~)>+v8| zauv$FP;9D_2H)<*sQT9R%N*yf?X!~SlZ>6iv04A1!b<>%}p~#jN&iux2rc^Z>vKy|ZqK%lBuA zZ86)iY}~f}=W(3RP~!dXWAi~^WQpog2_)Q?L;|tJ=>|x2J>dO{KjHw>z!kooQg#4# zVj(b38UlV#vK2m@Gb81k@XAT55c?AewZrmb-@oi~3iVhe5;#6fX!xcV+A#_Q#d&sv zKSz|^k}N)jb7R)>XBk_uEQ~A%EOwlBY!NkeP!% zI0M2S)1u|oKHl9s3EGI_FsDLJpWCB9)iVw8lMvlA*_J6^9Ls1+TBCx~0M8D1XMn>KX1aB4Ux4_2Y)b1ELgwH; z7+2m9y}C&4tXux?o3LgWs@2`mKj_+VEs4x{O=S~Tj{@gTq_##G? z=fmKy9DzqJ=j3cp*4aUn1~Qbog8c5Y-#I3s7`!l#(R|iMONGh3_b9A-`|QHnDEv$b z02-gD;%%(vr-GPrP%jz*uQryVr?AmZgaCnEs)fe5+zRSViTTYVqi$D5wm+jcS;TpJ z(TYecB2|FWxRO`e&k@C~9!NLl?Pd;%n0C&8l1X2xFIx7i$lyk#%@Xm&RLwL4v`FHW?4|@pGS2y z(mi`tb2M)~ECj4dbbn!0s6o|cz-jM$i0riYbQf6cCS4~mN343nhPa_Of9 zUw=?nDC)E9eRg)W*S)8TEFx$zK4J&ls}qCP*t?P<<{AVWaqtZ*$h|waI1}RaFsIqo z);45XGViA*&+r7(tzOsJ?vf3IqNyP@2(P<3wxI@ojAQ&QeATyZoo6AvM>s>xze}VYFJ%o83|Kzi#j8LK>>qHK zj}cV`UIdl(P4K}eK?-fGOL}k!X~#r3l8dmeWbdE7UfkZJ@|Ln`{h$%GoJYsP7^Y2J#m zb(>R?OR{Zal6^XLfJ3IIKme#!q!F7t3RKHh6|s&8i>@OFDb9bCv|XWcg#Q{ZB~3n( zH#CF?-tlX|%X>{!h(RX5x`yjDf2_AI31D^FT8DB$Se&dR=ERMfMF`2GA(%$2l2H#p zhwH0^X3GF7B+>VeZDUOI*a?rT9$fnUC^&BtAaPQ%ljs>k{`kT;W@~rcfT}1xD$oi`P2^k)2y-|~txYTor|ys~HMDy0&t6orqk|0U_S zmGYul%Hzl$C3j^j+s(RqB{cTV+cI|if==O>T!yZ|82{685Q(eIc;Ct;BMUrK4p8-F z$gM;SI(KH%S$jc|iTIF@hRcCnV4cRxEEqlYSz{T6mxT?rqKi{5wgUL=S?GPi0~!W^xL)zSdrycfMZR9VGrJ2?~bXMqt&V&zeF9LMGA%z2JX&0^yY9 z^SmiIcIVP2sr}&Jb4^6%Qtr|L#Ba2|0yCPut#A{G@t&uHbzu`23$zm&auuuQB90Ff zAA@eP_}bUqFH#y)0I?ZGNfSQ%B(x(2w;zDIhruL~)@*W{MgQ$OV~8qCT}0`Prp&(? zoBv?K-D}UO2A0}QIR0d@NNt7YdbSSLN0Yam!6)?#HEmsPoDaz+c4Zt6N|&a-(&TbU zT+0a7jMt=GHn*?Cj1M`*9&n>DENF71V1r@^w6Bin(9}*IDkrM_W?}lA9{)pHEQf$v z4{yrRgVfmyubGnj-E@UV{}UO|H{ELdCK-!!gNKt%&XA(&)i-qE%Nh;2gJZ)yzQmDt zixCl|%%0EwkVjI=UcB5~%>rA0{b#CY>W1JkEM6uP8x}sblubo_L`O7r7;$UG;gTtt zWKARweZ++g{?OU|2asZw)g96K}@jLP<_VtzY;1l$ldv2jO;*a>aEw z7*63*Hicl(DbWnFiz*eV?!M_BjTHfrkQMe}1@&wXmkdeM7f6tGV zvWYXJA26`;z!^uHi|HeRFraLd>e1Na8QRiegENA9_;Fby>c)@7Kj!GKQ=LM;m3cnb z6%7hzW$P9og6KPzEF?3j(GDuP-bPTZrbUp(kGxQ$TPt#Hh`@!AgOa_~hfJ=jykM=l zndLU60z`#59(dkMORvo`N5ayqEIZbOV4-;mO!{G-7hhjmgk-~Z#g6sDE10(3h)l#M zMt!&Rx5jdKxp0h-k@V~3zwgIdZg@|3*QU>y(l^W2_<1lImO%C@8%y+@W)#3E-Yx=& zu+IWHw`&gr{Dw2s1D*NxkG$`U+;sM7!d9od1|j}0HK7V%X$O6{kM*+K=W8vG`oUOA z=b<5F`~nLy80d1y(b?D8k#8xSmuY6ud`uvXPOgV%Nztl`T9|(=LXu#W`ipktD1>V# zt16lkx~|L#{mL@tp78P`feRCdJ9_$ha-r&-=xHwg+#UaCk6wv)uWx2d2N=q)o~=Bl~>l7 z4``H4#>^PlC=|lMBTN9O;WwUmO(gjt+f#8I#7(T9q)9-6>6_RQS3vv%Vissi<)1!1 zw?nDCx^r6La$)kc5BLa;kM+e(BevJXNK3R=E2!dL4H64I|Eh^d8P)=_nQO4gzai*| zz9BwB08p_#PH2G&8_3t&#a!Y%SlY+ZI-lYAKOR0h^vGNeIAZ{z>VpgqiqCluBI5*c zp1wz(O-k|Bn;~-2a^24mUZ>4=Rm-KcL!_(pP6ziIbsTl|jYC<2@S|v+w4KEFhP9`a zFG+=8L$EOPTH7!LV|rM>)Q)P~be==dfqaL;FBobE!g2?6us!DD?ThfHi?av02)HY{ z-^7YH_7YYju6O+?TRDERCNI0b#nJDdn6C5kvEYP~Pb&!SIdCP~kDwi)wTuqM!Gs8z z=nt9C6kS>PZ?I@(aH^?Z&u-~KB5*@wNI=B1T>eNjAD)UsUe~4N6X(*Rg4N`NBt>cC zQ(OxlJ-4*(@J7-Epa1xZDQbmQsaNPUE>V8k2N#-lPcwi>Ib+A&-{``mXvp>P#sN5L z?L7kC0VYQ=o_hQ^7lNY?i`W46TK)*Fzk5!zSlD2DZjqz2W=h@U?ss&7F=~5v#CC}% z#rw0Ov+~WyzNKS?9BeS}@_22wO!M)si{w%5k>uJt60E9`Q&}mxU?m3waK!Vz`-?|6 zu(b6>^fbWq)m`j_QL=b0quM0=FEkwkV#trURj4tT_Hl6;*y29kRr*J_E!oZc)#Uz0w{i!It!FzpM9Ily@~$ z+54XIVk~{gpv2A|oAS=FA*DG+oafYM%HOTQagelwB!mCv9v`?AwsPBC-bFEKcSh3kc4#LB62H?+`m>GIX^~nGzS9Lu${)XML1^ERc%=3H` zxwjsMoRoWJRiMSWT)U%QO7U-FijI=ky4zI>lV>#2d!4%N=q%hn`!=QgXC6OQx)tFc z)Dt!G=m{$pAQ<}j8#RbRpm`B{jmQmkf{{ZuDb5}27)JuLNo-rlGTQ4ZVQM;0sjozWvIcDAx`z>W}ejOB`e zQp^$h<9UHlc7#Ik#~KR9s!^XSZjwVlL8q(ZX1%nkJ*|vJ39PF&WzZyv{0FC)rj)ko zvXY~a`d`7kuTA1(vEBP&+{fnUgXdc;!2*y>2RhM~BIU#8=!J;BPEZP>LZ%m1;?ZrL zTWe#QXT#GEN#rwrUpFOD80j1c*9sTPSjqm@kWl(5S)@dVl2s2b!=(rBnP6}}ysqnJ zm*%?mvsUTtctyPZSpJLA7|zkExp-gK8lbk&XZwvo#t}aH4W7gV5%~H zA5bgwI+aYkt7xz}z_6A5Pv?JU&pH!bmXpR;3DMD{@l7+m>2fON?mlK3YQ# zioR#_oGYO1@xO?(iP5XUaF+JZt_5k*M$Fk75>JaVe$a5f-S?{8yxzszeL*$#AG9kN=hcp80$%9(kDuO65FJ7W zY4rBM5OuL8xfKS+;DFAn(^t~kkz|zH^P1xwnEQolP0*J>j(nkoTZTZ`qiHcU#yf#q zb>EwXSsil2#{25eUPd5NRx2j4ihi0ev`uKl_5uM}x`(_b5yLcG>M5Iy^M>HXn*i&M z!@zA}W*gr<3K*{~!CKo+YiKcSeKyh`-|q*`28RIgqRaG&7$FaizLmmXZdKej*mcM+ zestcf)?GUkNEiE+kd}|E%=`m2*?#pYtFg&7hyqz)GkacYQ^ZUBgy!_VYcaI`Va->h zSxN%{{fD7Cts0ByRonBov<7;e@`U%r)htZ+&NJ{=%(zWM68we8y#eD6k$j@gJM{R~~dUiN8B< zQCw%-xILCB1#dni^eNdSe_l`R%`O+D{~m2)6ZMi_lmA@3C+mps!vhxOI}=jqrIaqx zU{S_P&S3m(r&_UgmbjaIo`Dm0oE%Ye$ZkHcSjV%S#CA>!lBx3OM-H02Tp~UwWrOci zH6)<7>fUs;Sx3gYr^t#nE92&EGan*^FK8&4y;h>%G0n0M{Po1>FR19-S+eHi^Ip)b zp87?Gm&jV3rJB<1k?~dx#oBQFxnfavK|!!=R;&niqF)4)$}8UYp&Rui5zD&PTi!yM zE#cRVP}w$r;h~a^RT0DY`=f+L3Lzy%+<~F9I>h>`l0o*2ewb z(*uf*5tr~MQ53Bl@4qnvrGK@MCX-3}6^BZ)196l~w|*WjCDviL zv+UmERrrKKppN&Pq(xjB)OSUS;&T8Cb_-r-%*BH~9UVy;<@E;pBxJipqNZ=oA6U){ zgo>Fo?L>R?-Ft4UeB78vX*9xZ?wiP+;t!>|n&cwv9PL#cu_YKNVajLz{HK33GI4%c z!&c~9t3X=2>dqzrZQ*!P)9*~mlCiM8_o-8JvrQ5yq@{N@lWfz4b8e>a>5vQWB=Wdw zWk!|8_4&w>Q)f$z)N-GmzJatNAdOr)P@hM=hB`cJe?8X~MdgsXiV$&(Y?H$jdFfWb uL+gjS2q*VstZ_KE93uzb%;3IsCy4WdFpugc>umnFRRO4?rChIQ9q~Wh!pv^~ literal 1732 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 Date: Sat, 27 Jun 2020 20:18:53 +0200 Subject: [PATCH 4/4] qt: Restore the traditional themes toolbar previous styles and logo --- src/Makefile.qt.include | 1 + src/qt/dash.qrc | 1 + src/qt/res/css/trad.css | 36 +------------------ src/qt/res/images/dash_logo_toolbar_blue.png | Bin 0 -> 34912 bytes 4 files changed, 3 insertions(+), 35 deletions(-) create mode 100644 src/qt/res/images/dash_logo_toolbar_blue.png diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index c76ade2fd2d3..854257d03cf1 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -337,6 +337,7 @@ RES_IMAGES = \ 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/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 05c12c995c3a..b66c470d61ac 100644 --- a/src/qt/dash.qrc +++ b/src/qt/dash.qrc @@ -98,6 +98,7 @@ 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/radio_normal.png res/images/radio_normal_hover.png res/images/radio_normal_pressed.png diff --git a/src/qt/res/css/trad.css b/src/qt/res/css/trad.css index 84bd8c2808eb..23d618ff5013 100644 --- a/src/qt/res/css/trad.css +++ b/src/qt/res/css/trad.css @@ -29,43 +29,9 @@ Loaded in GUIUtil::loadStyleSheet() in guitil.cpp. QToolBar / QToolButton ******************************************************/ -QToolBar { - border: none; - width: 100%; - padding: 0; - margin: 0; - spacing: 0; -} - -QToolBar > QToolButton { - background-color: #008de4; - border: none; - min-height: 50px; - font-size: 16px; - color: #fff; - width: 100%; - padding: 1px; - text-align: center; -} - -QToolBar > QToolButton:hover:!checked { - background-color: #005e98; - color: #DCDCDC; -} - -QToolBar > QToolButton:checked { - background-color: #00000000; - color: #333; -} - -QToolBar > QToolButton:disabled { - color: #444; -} - QToolBar QLabel#lblToolbarLogo { - background-color: #008de4; padding: 12px; - image: url(':/images/dash_logo_toolbar'); + image: url(':/images/dash_logo_toolbar_blue'); height: 2.5em; } diff --git a/src/qt/res/images/dash_logo_toolbar_blue.png b/src/qt/res/images/dash_logo_toolbar_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..3c932d1d69cedff2f1f80966e8045e8d15a20453 GIT binary patch literal 34912 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 W9=r!C1$q1wJD8n~gLSPHCiy>M#t)$Y literal 0 HcmV?d00001