Skip to content

Commit 372389d

Browse files
authored
Disable styling for scrollbars on macos (#3182)
* Do not add spacing to tx list header on macos * Only style scrollbars when not on macos
1 parent e078109 commit 372389d

File tree

7 files changed

+110
-180
lines changed

7 files changed

+110
-180
lines changed

src/Makefile.qt.include

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ RES_IMAGES = \
318318
RES_CSS = \
319319
qt/res/css/light.css \
320320
qt/res/css/light-hires.css \
321+
qt/res/css/scrollbars.css \
321322
qt/res/css/trad.css
322323

323324
RES_MOVIES = $(wildcard $(srcdir)/qt/res/movies/spinner-*.png)

src/qt/bitcoingui.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,19 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *_platformStyle, const NetworkStyle *
247247
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; }");
248248
}
249249

250+
#ifndef Q_OS_MAC
251+
// Apply some styling to scrollbars
252+
QString theme = settings.value("theme", "").toString();
253+
if (theme != "trad") { // No scrollbar styling for the traditional theme
254+
QFile qFile(QString(":/css/scrollbars"));
255+
QString styleSheet;
256+
if (qFile.open(QFile::ReadOnly)) {
257+
styleSheet = QLatin1String(qFile.readAll());
258+
}
259+
this->setStyleSheet(styleSheet);
260+
}
261+
#endif
262+
250263
statusBar()->addWidget(progressBarLabel);
251264
statusBar()->addWidget(progressBar);
252265
statusBar()->addPermanentWidget(frameBlocks);

src/qt/dash.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
<qresource prefix="/css">
5757
<file alias="light">res/css/light.css</file>
5858
<file alias="light-hires">res/css/light-hires.css</file>
59+
<file alias="scrollbars">res/css/scrollbars.css</file>
5960
<file alias="trad">res/css/trad.css</file>
6061
</qresource>
6162
<qresource prefix="/images">

src/qt/res/css/light-hires.css

Lines changed: 3 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,6 @@ border:0px;
309309
}
310310

311311
.QTableView { /* Table - has to be selected as a class otherwise it throws off QCalendarWidget */
312-
background:transparent;
313312
border:0px solid #fff;
314313
}
315314

@@ -323,91 +322,9 @@ background-color:#f0f0f0;
323322
color:#333;
324323
}
325324

326-
QScrollBar { /* Scroll Bar */
327-
328-
}
329-
330-
QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
331-
border:0;
332-
background:#ffffff;
333-
width:18px;
334-
margin: 18px 0px 18px 0px;
335-
}
336-
337-
QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
338-
border:0;
339-
background:#ffffff;
340-
height:18px;
341-
margin: 0px 18px 0px 18px;
342-
}
343-
344-
345-
QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */
346-
background:#e0e0e0;
347-
min-height:10px;
348-
}
349-
350-
QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */
351-
background:#e0e0e0;
352-
min-width:10px;
353-
}
354-
355-
QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */
356-
background:#F8F6F6;
357-
}
358-
359-
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */
360-
background-color:#F8F6F6;
361-
border: 1px solid #f2f0f0;
362-
width:16px;
363-
height:16px;
364-
}
365-
366-
QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
367-
background-color:#e0e0e0;
368-
}
369-
370-
QScrollBar::sub-line:vertical { /* Vertical - top button position */
371-
subcontrol-position:top;
372-
subcontrol-origin: margin;
373-
}
374-
375-
QScrollBar::add-line:vertical { /* Vertical - bottom button position */
376-
subcontrol-position:bottom;
377-
subcontrol-origin: margin;
378-
}
379-
380-
QScrollBar::sub-line:horizontal { /* Vertical - left button position */
381-
subcontrol-position:left;
382-
subcontrol-origin: margin;
383-
}
384-
385-
QScrollBar::add-line:horizontal { /* Vertical - right button position */
386-
subcontrol-position:right;
387-
subcontrol-origin: margin;
388-
}
389-
390-
QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */
391-
width:10px;
392-
height:10px;
393-
}
394-
395-
QScrollBar:up-arrow {
396-
background-image: url(':/images/arrow_up_small');
397-
}
398-
399-
QScrollBar:down-arrow {
400-
background-image: url(':/images/arrow_down_small');
401-
}
402-
403-
QScrollBar:left-arrow {
404-
background-image: url(':/images/arrow_left_small');
405-
}
406-
407-
QScrollBar:right-arrow {
408-
background-image: url(':/images/arrow_right_small');
409-
}
410-
325+
/* Do NOT apply any styles to QScrollBar here,
326+
* it's OS dependent and should be handled via platform specific code.
327+
*/
411328

412329
/*******************************************************/
413330

@@ -761,10 +678,6 @@ QDialog#HelpMessageDialog QScrollArea * {
761678
background-color:#ffffff;
762679
}
763680

764-
QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
765-
border:0;
766-
}
767-
768681
/* About Dash Dialog */
769682
QDialog#AboutDialog {
770683
background-color:#F8F6F6;

src/qt/res/css/light.css

Lines changed: 3 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,6 @@ border:0px;
309309
}
310310

311311
.QTableView { /* Table - has to be selected as a class otherwise it throws off QCalendarWidget */
312-
background:transparent;
313312
border:0px solid #fff;
314313
}
315314

@@ -323,91 +322,9 @@ background-color:#f0f0f0;
323322
color:#333;
324323
}
325324

326-
QScrollBar { /* Scroll Bar */
327-
328-
}
329-
330-
QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
331-
border:0;
332-
background:#ffffff;
333-
width:18px;
334-
margin: 18px 0px 18px 0px;
335-
}
336-
337-
QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
338-
border:0;
339-
background:#ffffff;
340-
height:18px;
341-
margin: 0px 18px 0px 18px;
342-
}
343-
344-
345-
QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */
346-
background:#e0e0e0;
347-
min-height:10px;
348-
}
349-
350-
QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */
351-
background:#e0e0e0;
352-
min-width:10px;
353-
}
354-
355-
QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */
356-
background:#F8F6F6;
357-
}
358-
359-
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */
360-
background-color:#F8F6F6;
361-
border: 1px solid #f2f0f0;
362-
width:16px;
363-
height:16px;
364-
}
365-
366-
QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
367-
background-color:#e0e0e0;
368-
}
369-
370-
QScrollBar::sub-line:vertical { /* Vertical - top button position */
371-
subcontrol-position:top;
372-
subcontrol-origin: margin;
373-
}
374-
375-
QScrollBar::add-line:vertical { /* Vertical - bottom button position */
376-
subcontrol-position:bottom;
377-
subcontrol-origin: margin;
378-
}
379-
380-
QScrollBar::sub-line:horizontal { /* Vertical - left button position */
381-
subcontrol-position:left;
382-
subcontrol-origin: margin;
383-
}
384-
385-
QScrollBar::add-line:horizontal { /* Vertical - right button position */
386-
subcontrol-position:right;
387-
subcontrol-origin: margin;
388-
}
389-
390-
QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */
391-
width:10px;
392-
height:10px;
393-
}
394-
395-
QScrollBar:up-arrow {
396-
background-image: url(':/images/arrow_up_small');
397-
}
398-
399-
QScrollBar:down-arrow {
400-
background-image: url(':/images/arrow_down_small');
401-
}
402-
403-
QScrollBar:left-arrow {
404-
background-image: url(':/images/arrow_left_small');
405-
}
406-
407-
QScrollBar:right-arrow {
408-
background-image: url(':/images/arrow_right_small');
409-
}
410-
325+
/* Do NOT apply any styles to QScrollBar here,
326+
* it's OS dependent and should be handled via platform specific code.
327+
*/
411328

412329
/*******************************************************/
413330

@@ -761,10 +678,6 @@ QDialog#HelpMessageDialog QScrollArea * {
761678
background-color:#ffffff;
762679
}
763680

764-
QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
765-
border:0;
766-
}
767-
768681
/* About Dash Dialog */
769682
QDialog#AboutDialog {
770683
background-color:#F8F6F6;

src/qt/res/css/scrollbars.css

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
2+
border:0;
3+
background:#ffffff;
4+
width:18px;
5+
margin: 18px 0px 18px 0px;
6+
}
7+
8+
QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
9+
border:0;
10+
background:#ffffff;
11+
height:18px;
12+
margin: 0px 18px 0px 18px;
13+
}
14+
15+
QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */
16+
background:#e0e0e0;
17+
min-height:10px;
18+
}
19+
20+
QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */
21+
background:#e0e0e0;
22+
min-width:10px;
23+
}
24+
25+
QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */
26+
background:#F8F6F6;
27+
}
28+
29+
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */
30+
background-color:#F8F6F6;
31+
border: 1px solid #f2f0f0;
32+
width:16px;
33+
height:16px;
34+
}
35+
36+
QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
37+
background-color:#e0e0e0;
38+
}
39+
40+
QScrollBar::sub-line:vertical { /* Vertical - top button position */
41+
subcontrol-position:top;
42+
subcontrol-origin: margin;
43+
}
44+
45+
QScrollBar::add-line:vertical { /* Vertical - bottom button position */
46+
subcontrol-position:bottom;
47+
subcontrol-origin: margin;
48+
}
49+
50+
QScrollBar::sub-line:horizontal { /* Vertical - left button position */
51+
subcontrol-position:left;
52+
subcontrol-origin: margin;
53+
}
54+
55+
QScrollBar::add-line:horizontal { /* Vertical - right button position */
56+
subcontrol-position:right;
57+
subcontrol-origin: margin;
58+
}
59+
60+
QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */
61+
width:10px;
62+
height:10px;
63+
}
64+
65+
QScrollBar:up-arrow {
66+
background-image: url(':/images/arrow_up_small');
67+
}
68+
69+
QScrollBar:down-arrow {
70+
background-image: url(':/images/arrow_down_small');
71+
}
72+
73+
QScrollBar:left-arrow {
74+
background-image: url(':/images/arrow_left_small');
75+
}
76+
77+
QScrollBar:right-arrow {
78+
background-image: url(':/images/arrow_right_small');
79+
}
80+
81+
QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
82+
border:0;
83+
}
84+
85+
.QTableView { /* Table - has to be selected as a class otherwise it throws off QCalendarWidget */
86+
background:transparent;
87+
}

src/qt/transactionview.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
153153
vlayout->addWidget(createDateRangeWidget());
154154
vlayout->addWidget(view);
155155
vlayout->setSpacing(0);
156+
#ifndef Q_OS_MAC
156157
int width = view->verticalScrollBar()->sizeHint().width();
157158
// Cover scroll bar width with spacing
158159
if (platformStyle->getUseExtraSpacing()) {
@@ -162,6 +163,7 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
162163
}
163164
// Always show scroll bar
164165
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
166+
#endif
165167
view->setTabKeyNavigation(false);
166168
view->setContextMenuPolicy(Qt::CustomContextMenu);
167169

0 commit comments

Comments
 (0)