diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include
index ffe8402bad03a..3cfa64258a1fe 100644
--- a/src/Makefile.qt.include
+++ b/src/Makefile.qt.include
@@ -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)
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index c0b19089bd1db..a208e164ecd76 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -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);
diff --git a/src/qt/dash.qrc b/src/qt/dash.qrc
index 7991649349386..d5d7c660541a3 100644
--- a/src/qt/dash.qrc
+++ b/src/qt/dash.qrc
@@ -56,6 +56,7 @@
res/css/light.css
res/css/light-hires.css
+ res/css/scrollbars.css
res/css/trad.css
diff --git a/src/qt/res/css/light-hires.css b/src/qt/res/css/light-hires.css
index 6049b0031348a..f71eb4388c7a1 100644
--- a/src/qt/res/css/light-hires.css
+++ b/src/qt/res/css/light-hires.css
@@ -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;
}
@@ -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.
+*/
/*******************************************************/
@@ -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;
diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css
index 6049b0031348a..f71eb4388c7a1 100644
--- a/src/qt/res/css/light.css
+++ b/src/qt/res/css/light.css
@@ -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;
}
@@ -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.
+*/
/*******************************************************/
@@ -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;
diff --git a/src/qt/res/css/scrollbars.css b/src/qt/res/css/scrollbars.css
new file mode 100644
index 0000000000000..9e736156d1b68
--- /dev/null
+++ b/src/qt/res/css/scrollbars.css
@@ -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;
+}
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp
index 764372ef27da7..d42a61eaea214 100644
--- a/src/qt/transactionview.cpp
+++ b/src/qt/transactionview.cpp
@@ -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()) {
@@ -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);