diff --git a/src/calibre/gui2/progress_indicator/CalibreStyle.cpp b/src/calibre/gui2/progress_indicator/CalibreStyle.cpp index fe0bb6cf54..7fb32280b2 100644 --- a/src/calibre/gui2/progress_indicator/CalibreStyle.cpp +++ b/src/calibre/gui2/progress_indicator/CalibreStyle.cpp @@ -141,10 +141,15 @@ draw_arrow(Qt::ArrowType type, QPainter *painter, const QStyleOption *option, co // scrollbar {{{ void CalibreStyle::draw_scrollbar(const QStyleOptionSlider *scroll_bar, QPainter * painter, const QWidget * widget) const { + bool is_dark = is_color_dark(scroll_bar->palette.color(QPalette::Window)); bool horizontal = scroll_bar->orientation == Qt::Horizontal; - QColor outline = scroll_bar->palette.window().color().darker(140); - QColor alphaOutline = outline; + QColor alphaOutline = scroll_bar->palette.window().color(); + if (is_dark) { + alphaOutline = alphaOutline.darker(140); + } else { + alphaOutline = alphaOutline.lighter(180); + } alphaOutline.setAlpha(180); QRect scrollBarSubLine = subControlRect(CC_ScrollBar, scroll_bar, SC_ScrollBarSubLine, widget); @@ -158,10 +163,17 @@ CalibreStyle::draw_scrollbar(const QStyleOptionSlider *scroll_bar, QPainter * pa QLinearGradient gradient(rect.center().x(), rect.top(), rect.center().x(), rect.bottom()); if (!horizontal) gradient = QLinearGradient(rect.left(), rect.center().y(), rect.right(), rect.center().y()); QColor buttonColor = scroll_bar->palette.color(QPalette::Button); - gradient.setColorAt(0, buttonColor.darker(107)); - gradient.setColorAt(0.1, buttonColor.darker(105)); - gradient.setColorAt(0.9, buttonColor.darker(105)); - gradient.setColorAt(1, buttonColor.darker(107)); + if (is_dark) { + gradient.setColorAt(0, buttonColor.darker(107)); + gradient.setColorAt(0.1, buttonColor.darker(105)); + gradient.setColorAt(0.9, buttonColor.darker(105)); + gradient.setColorAt(1, buttonColor.darker(107)); + } else { + gradient.setColorAt(0, buttonColor.darker(105)); + gradient.setColorAt(0.1, buttonColor.darker(103)); + gradient.setColorAt(0.9, buttonColor.darker(103)); + gradient.setColorAt(1, buttonColor.darker(105)); + } painter->save(); painter->setPen(Qt::NoPen); painter->fillRect(rect, gradient); @@ -177,11 +189,12 @@ CalibreStyle::draw_scrollbar(const QStyleOptionSlider *scroll_bar, QPainter * pa // Paint slider gradient = QLinearGradient(scrollBarSlider.center().x(), scrollBarSlider.top(), scrollBarSlider.center().x(), scrollBarSlider.bottom()); if (!horizontal) gradient = QLinearGradient(scrollBarSlider.left(), scrollBarSlider.center().y(), scrollBarSlider.right(), scrollBarSlider.center().y()); - QColor m = scroll_bar->palette.window().color().lighter(130); + QColor m = scroll_bar->palette.window().color(); + m = is_dark ? m.lighter(130) : m.darker(115); if (scroll_bar->state & State_MouseOver) { - gradient.setColorAt(0, m.lighter()); gradient.setColorAt(1, m.lighter(175)); + gradient.setColorAt(0, is_dark ? m.lighter() : m.darker(115)); gradient.setColorAt(1, is_dark ? m.lighter(175) : m.darker(145)); } else { - gradient.setColorAt(0, m); gradient.setColorAt(1, m.lighter()); + gradient.setColorAt(0, m); gradient.setColorAt(1, is_dark ? m.lighter() : m.darker(135)); } painter->save(); painter->setRenderHint(QPainter::Antialiasing, true); @@ -277,7 +290,7 @@ void CalibreStyle::drawComplexControl(ComplexControl control, const QStyleOption case CC_ScrollBar: { const QStyleOptionSlider *scroll_bar = qstyleoption_cast(option); - if (!transient_scroller && scroll_bar && is_color_dark(option->palette.color(QPalette::Window))) { + if (!transient_scroller && scroll_bar) { this->draw_scrollbar(scroll_bar, painter, widget); return; }} break;