Skip to content

Commit

Permalink
Disable styling for scrollbars on macos (bitcoin#3182)
Browse files Browse the repository at this point in the history
* Do not add spacing to tx list header on macos

* Only style scrollbars when not on macos
  • Loading branch information
UdjinM6 authored Oct 31, 2019
1 parent e078109 commit 372389d
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 180 deletions.
1 change: 1 addition & 0 deletions src/Makefile.qt.include
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@ RES_IMAGES = \
RES_CSS = \
qt/res/css/light.css \
qt/res/css/light-hires.css \
qt/res/css/scrollbars.css \
qt/res/css/trad.css

RES_MOVIES = $(wildcard $(srcdir)/qt/res/movies/spinner-*.png)
Expand Down
13 changes: 13 additions & 0 deletions src/qt/bitcoingui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,19 @@ 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 != "trad") { // 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(styleSheet);
}
#endif

statusBar()->addWidget(progressBarLabel);
statusBar()->addWidget(progressBar);
statusBar()->addPermanentWidget(frameBlocks);
Expand Down
1 change: 1 addition & 0 deletions src/qt/dash.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
<qresource prefix="/css">
<file alias="light">res/css/light.css</file>
<file alias="light-hires">res/css/light-hires.css</file>
<file alias="scrollbars">res/css/scrollbars.css</file>
<file alias="trad">res/css/trad.css</file>
</qresource>
<qresource prefix="/images">
Expand Down
93 changes: 3 additions & 90 deletions src/qt/res/css/light-hires.css
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,6 @@ border:0px;
}

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

Expand All @@ -323,91 +322,9 @@ background-color:#f0f0f0;
color:#333;
}

QScrollBar { /* Scroll Bar */

}

QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
border:0;
background:#ffffff;
width:18px;
margin: 18px 0px 18px 0px;
}

QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
border:0;
background:#ffffff;
height:18px;
margin: 0px 18px 0px 18px;
}


QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */
background:#e0e0e0;
min-height:10px;
}

QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */
background:#e0e0e0;
min-width:10px;
}

QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */
background:#F8F6F6;
}

QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */
background-color:#F8F6F6;
border: 1px solid #f2f0f0;
width:16px;
height:16px;
}

QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
background-color:#e0e0e0;
}

QScrollBar::sub-line:vertical { /* Vertical - top button position */
subcontrol-position:top;
subcontrol-origin: margin;
}

QScrollBar::add-line:vertical { /* Vertical - bottom button position */
subcontrol-position:bottom;
subcontrol-origin: margin;
}

QScrollBar::sub-line:horizontal { /* Vertical - left button position */
subcontrol-position:left;
subcontrol-origin: margin;
}

QScrollBar::add-line:horizontal { /* Vertical - right button position */
subcontrol-position:right;
subcontrol-origin: margin;
}

QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */
width:10px;
height:10px;
}

QScrollBar:up-arrow {
background-image: url(':/images/arrow_up_small');
}

QScrollBar:down-arrow {
background-image: url(':/images/arrow_down_small');
}

QScrollBar:left-arrow {
background-image: url(':/images/arrow_left_small');
}

QScrollBar:right-arrow {
background-image: url(':/images/arrow_right_small');
}

/* Do NOT apply any styles to QScrollBar here,
* it's OS dependent and should be handled via platform specific code.
*/

/*******************************************************/

Expand Down Expand Up @@ -761,10 +678,6 @@ QDialog#HelpMessageDialog QScrollArea * {
background-color:#ffffff;
}

QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
border:0;
}

/* About Dash Dialog */
QDialog#AboutDialog {
background-color:#F8F6F6;
Expand Down
93 changes: 3 additions & 90 deletions src/qt/res/css/light.css
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,6 @@ border:0px;
}

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

Expand All @@ -323,91 +322,9 @@ background-color:#f0f0f0;
color:#333;
}

QScrollBar { /* Scroll Bar */

}

QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
border:0;
background:#ffffff;
width:18px;
margin: 18px 0px 18px 0px;
}

QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
border:0;
background:#ffffff;
height:18px;
margin: 0px 18px 0px 18px;
}


QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */
background:#e0e0e0;
min-height:10px;
}

QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */
background:#e0e0e0;
min-width:10px;
}

QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */
background:#F8F6F6;
}

QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */
background-color:#F8F6F6;
border: 1px solid #f2f0f0;
width:16px;
height:16px;
}

QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
background-color:#e0e0e0;
}

QScrollBar::sub-line:vertical { /* Vertical - top button position */
subcontrol-position:top;
subcontrol-origin: margin;
}

QScrollBar::add-line:vertical { /* Vertical - bottom button position */
subcontrol-position:bottom;
subcontrol-origin: margin;
}

QScrollBar::sub-line:horizontal { /* Vertical - left button position */
subcontrol-position:left;
subcontrol-origin: margin;
}

QScrollBar::add-line:horizontal { /* Vertical - right button position */
subcontrol-position:right;
subcontrol-origin: margin;
}

QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */
width:10px;
height:10px;
}

QScrollBar:up-arrow {
background-image: url(':/images/arrow_up_small');
}

QScrollBar:down-arrow {
background-image: url(':/images/arrow_down_small');
}

QScrollBar:left-arrow {
background-image: url(':/images/arrow_left_small');
}

QScrollBar:right-arrow {
background-image: url(':/images/arrow_right_small');
}

/* Do NOT apply any styles to QScrollBar here,
* it's OS dependent and should be handled via platform specific code.
*/

/*******************************************************/

Expand Down Expand Up @@ -761,10 +678,6 @@ QDialog#HelpMessageDialog QScrollArea * {
background-color:#ffffff;
}

QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
border:0;
}

/* About Dash Dialog */
QDialog#AboutDialog {
background-color:#F8F6F6;
Expand Down
87 changes: 87 additions & 0 deletions src/qt/res/css/scrollbars.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
border:0;
background:#ffffff;
width:18px;
margin: 18px 0px 18px 0px;
}

QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
border:0;
background:#ffffff;
height:18px;
margin: 0px 18px 0px 18px;
}

QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */
background:#e0e0e0;
min-height:10px;
}

QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */
background:#e0e0e0;
min-width:10px;
}

QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */
background:#F8F6F6;
}

QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */
background-color:#F8F6F6;
border: 1px solid #f2f0f0;
width:16px;
height:16px;
}

QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
background-color:#e0e0e0;
}

QScrollBar::sub-line:vertical { /* Vertical - top button position */
subcontrol-position:top;
subcontrol-origin: margin;
}

QScrollBar::add-line:vertical { /* Vertical - bottom button position */
subcontrol-position:bottom;
subcontrol-origin: margin;
}

QScrollBar::sub-line:horizontal { /* Vertical - left button position */
subcontrol-position:left;
subcontrol-origin: margin;
}

QScrollBar::add-line:horizontal { /* Vertical - right button position */
subcontrol-position:right;
subcontrol-origin: margin;
}

QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */
width:10px;
height:10px;
}

QScrollBar:up-arrow {
background-image: url(':/images/arrow_up_small');
}

QScrollBar:down-arrow {
background-image: url(':/images/arrow_down_small');
}

QScrollBar:left-arrow {
background-image: url(':/images/arrow_left_small');
}

QScrollBar:right-arrow {
background-image: url(':/images/arrow_right_small');
}

QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
border:0;
}

.QTableView { /* Table - has to be selected as a class otherwise it throws off QCalendarWidget */
background:transparent;
}
2 changes: 2 additions & 0 deletions src/qt/transactionview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
vlayout->addWidget(createDateRangeWidget());
vlayout->addWidget(view);
vlayout->setSpacing(0);
#ifndef Q_OS_MAC
int width = view->verticalScrollBar()->sizeHint().width();
// Cover scroll bar width with spacing
if (platformStyle->getUseExtraSpacing()) {
Expand All @@ -162,6 +163,7 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
}
// Always show scroll bar
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
#endif
view->setTabKeyNavigation(false);
view->setContextMenuPolicy(Qt::CustomContextMenu);

Expand Down

0 comments on commit 372389d

Please sign in to comment.