From b15c4ecd10af4f0f7ad06cf7dfebae77ef8aa7c2 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sat, 18 Jul 2020 15:52:36 +0200 Subject: [PATCH] Fix check for context tab in TabSwitched Broken with Qt 6 --- src/core/mainwindow.cpp | 2 +- src/widgets/fancytabwidget.cpp | 5 +++++ src/widgets/fancytabwidget.h | 7 ++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp index f5d018bfe..5755a04c8 100644 --- a/src/core/mainwindow.cpp +++ b/src/core/mainwindow.cpp @@ -1197,7 +1197,7 @@ void MainWindow::TrackSkipped(PlaylistItemPtr item) { void MainWindow::TabSwitched() { - if (playing_widget_ && ui_->action_toggle_show_sidebar->isChecked() && (ui_->tabs->tabBar()->tabData(ui_->tabs->currentIndex()).toString().toLower() != "context" || !context_view_->album_enabled())) { + if (playing_widget_ && ui_->action_toggle_show_sidebar->isChecked() && (ui_->tabs->currentIndex() != ui_->tabs->IndexOfTab(context_view_) || !context_view_->album_enabled())) { ui_->widget_playing->SetEnabled(); } else { diff --git a/src/widgets/fancytabwidget.cpp b/src/widgets/fancytabwidget.cpp index c1681621c..d95174b32 100644 --- a/src/widgets/fancytabwidget.cpp +++ b/src/widgets/fancytabwidget.cpp @@ -538,6 +538,11 @@ bool FancyTabWidget::DisableTab(QWidget *widget_view) { } +int FancyTabWidget::IndexOfTab(QWidget *widget) { + if (!tabs_.contains(widget)) return -1; + return QTabWidget::indexOf(tabs_[widget]->page()); +} + void FancyTabWidget::paintEvent(QPaintEvent *pe) { if (mode() != FancyTabWidget::Mode_LargeSidebar && mode() != FancyTabWidget::Mode_SmallSidebar) { diff --git a/src/widgets/fancytabwidget.h b/src/widgets/fancytabwidget.h index 5d073bd5e..74d9a4860 100644 --- a/src/widgets/fancytabwidget.h +++ b/src/widgets/fancytabwidget.h @@ -48,11 +48,12 @@ class FancyTabWidget : public QTabWidget { public: explicit FancyTabWidget(QWidget *parent = nullptr); - void AddTab(QWidget *widget_view, const QString &name, const QIcon &icon, const QString &label); + void AddTab(QWidget *widget_view, const QString &name, const QIcon &icon, const QString &label); bool EnableTab(QWidget *widget_view); bool DisableTab(QWidget *widget_view); int insertTab(const int idx, QWidget *page, const QIcon &icon, const QString &label); void addBottomWidget(QWidget* widget_view); + int IndexOfTab(QWidget *widget); void setBackgroundPixmap(const QPixmap& pixmap); void addSpacer(); @@ -101,11 +102,11 @@ class FancyTabWidget : public QTabWidget { void addMenuItem(QActionGroup* group, const QString& text, Mode mode); QPixmap background_pixmap_; - QMenu* menu_; + QMenu *menu_; Mode mode_; QWidget *bottom_widget_; - QMap tabs_; + QMap tabs_; bool bg_color_system_; bool bg_gradient_;