diff --git a/3rdparty/fancytabwidget/fancytabwidget.cpp b/3rdparty/fancytabwidget/fancytabwidget.cpp index 2c8fff5ff..7bc31c124 100644 --- a/3rdparty/fancytabwidget/fancytabwidget.cpp +++ b/3rdparty/fancytabwidget/fancytabwidget.cpp @@ -477,14 +477,10 @@ void FancyTabWidget::removeTab(int index) m_tabBar->removeTab(index); } -void FancyTabWidget::setBackgroundBrush(const QBrush &brush) +void FancyTabWidget::setBackgroundPixmap(const QPixmap& pixmap) { - QPalette pal = m_tabBar->palette(); - pal.setBrush(QPalette::Mid, brush); - m_tabBar->setPalette(pal); - pal = m_cornerWidgetContainer->palette(); - pal.setBrush(QPalette::Mid, brush); - m_cornerWidgetContainer->setPalette(pal); + m_backgroundPixmap = pixmap; + update(); } void FancyTabWidget::paintEvent(QPaintEvent *event) @@ -495,6 +491,19 @@ void FancyTabWidget::paintEvent(QPaintEvent *event) QRect rect = m_selectionWidget->rect().adjusted(0, 0, 1, 0); rect = style()->visualRect(layoutDirection(), geometry(), rect); Utils::StyleHelper::verticalGradient(&painter, rect, rect); + + if (!m_backgroundPixmap.isNull()) { + QRect pixmap_rect(m_backgroundPixmap.rect()); + pixmap_rect.moveTo(rect.topLeft()); + + while (pixmap_rect.top() < rect.bottom()) { + QRect source_rect(pixmap_rect.intersected(rect)); + source_rect.moveTo(0, 0); + painter.drawPixmap(pixmap_rect.topLeft(), m_backgroundPixmap, source_rect); + pixmap_rect.moveTop(pixmap_rect.bottom() - 10); + } + } + painter.setPen(Utils::StyleHelper::borderColor()); painter.drawLine(rect.topRight(), rect.bottomRight()); diff --git a/3rdparty/fancytabwidget/fancytabwidget.h b/3rdparty/fancytabwidget/fancytabwidget.h index da647fb4e..7db8a462b 100644 --- a/3rdparty/fancytabwidget/fancytabwidget.h +++ b/3rdparty/fancytabwidget/fancytabwidget.h @@ -140,7 +140,7 @@ public: void addTab(QWidget *tab, const QIcon &icon, const QString &label); void addSpacer(int size = 40); void removeTab(int index); - void setBackgroundBrush(const QBrush &brush); + void setBackgroundPixmap(const QPixmap& pixmap); void addCornerWidget(QWidget *widget); void insertCornerWidget(int pos, QWidget *widget); int cornerWidgetCount() const; @@ -171,6 +171,7 @@ private: QStackedLayout *m_modesStack; QWidget *m_selectionWidget; QStatusBar *m_statusBar; + QPixmap m_backgroundPixmap; }; } // namespace Internal diff --git a/data/data.qrc b/data/data.qrc index a5747d1b7..fbb5ec854 100644 --- a/data/data.qrc +++ b/data/data.qrc @@ -264,5 +264,6 @@ icons/32x32/wiimotedev.png schema-17.sql lyrics/ultimate_providers.xml + sidebar_background.png diff --git a/data/sidebar_background.png b/data/sidebar_background.png new file mode 100644 index 000000000..9f34525ec Binary files /dev/null and b/data/sidebar_background.png differ diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index cff37927e..55b31141b 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -189,6 +189,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg AddFancyTab(new QWidget, IconLoader::Load("view-media-lyrics"), tr("Artist info")); ui_->tabs->statusBar()->hide(); + ui_->tabs->setBackgroundPixmap(QPixmap(":/sidebar_background.png")); StyleHelper::setBaseColor(palette().color(QPalette::Highlight).darker()); track_position_timer_->setInterval(1000);