diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp index fe20e36c01d..1b7f8703415 100644 --- a/src/plugins/coreplugin/fancytabwidget.cpp +++ b/src/plugins/coreplugin/fancytabwidget.cpp @@ -215,6 +215,7 @@ void FancyTabBar::mousePressEvent(QMouseEvent *event) // menu arrow clicked emit menuTriggered(index, event); } else { + emit currentAboutToChange(index); m_currentIndex = index; update(); // update tab bar before showing widget @@ -396,6 +397,7 @@ void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const void FancyTabBar::setCurrentIndex(int index) { if (isTabEnabled(index) && index != m_currentIndex) { + emit currentAboutToChange(index); m_currentIndex = index; update(); emit currentChanged(m_currentIndex); @@ -520,6 +522,7 @@ FancyTabWidget::FancyTabWidget(QWidget *parent) mainLayout->addLayout(vlayout); setLayout(mainLayout); + connect(m_tabBar, &FancyTabBar::currentAboutToChange, this, &FancyTabWidget::currentAboutToShow); connect(m_tabBar, &FancyTabBar::currentChanged, this, &FancyTabWidget::showWidget); connect(m_tabBar, &FancyTabBar::menuTriggered, this, &FancyTabWidget::menuTriggered); } @@ -598,7 +601,7 @@ void FancyTabWidget::addCornerWidget(QWidget *widget) int FancyTabWidget::currentIndex() const { - return m_modesStack->currentIndex(); + return m_tabBar->currentIndex(); } QStatusBar *FancyTabWidget::statusBar() const @@ -613,7 +616,6 @@ void FancyTabWidget::setCurrentIndex(int index) void FancyTabWidget::showWidget(int index) { - emit currentAboutToShow(index); m_modesStack->setCurrentIndex(index); QWidget *w = m_modesStack->currentWidget(); if (QTC_GUARD(w)) { diff --git a/src/plugins/coreplugin/fancytabwidget.h b/src/plugins/coreplugin/fancytabwidget.h index 19038add89b..c9a7264d80e 100644 --- a/src/plugins/coreplugin/fancytabwidget.h +++ b/src/plugins/coreplugin/fancytabwidget.h @@ -125,6 +125,7 @@ public: QRect tabRect(int index) const; signals: + void currentAboutToChange(int index); void currentChanged(int index); void menuTriggered(int index, QMouseEvent *event);