From a8b8ea3056d88c04d17a0bb56c15cbbb42a6b78f Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 20 Jul 2022 18:18:44 +0200 Subject: [PATCH] DockAreaTabBar: Avoid using sender() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove unneeded includes. Change-Id: Ic6c6933039aa337a16e6871a472eb8d74b5e2a63 Reviewed-by: Henning Gründl --- .../advanceddockingsystem/dockareatabbar.cpp | 62 +++++++------------ .../advanceddockingsystem/dockareatabbar.h | 8 +-- 2 files changed, 27 insertions(+), 43 deletions(-) diff --git a/src/libs/advanceddockingsystem/dockareatabbar.cpp b/src/libs/advanceddockingsystem/dockareatabbar.cpp index 3208f0c7560..84b70017498 100644 --- a/src/libs/advanceddockingsystem/dockareatabbar.cpp +++ b/src/libs/advanceddockingsystem/dockareatabbar.cpp @@ -36,12 +36,8 @@ #include "dockareatabbar.h" #include "dockareawidget.h" -#include "dockmanager.h" -#include "dockoverlay.h" #include "dockwidget.h" #include "dockwidgettab.h" -#include "floatingdockcontainer.h" -#include "floatingdragpreview.h" #include #include @@ -172,20 +168,18 @@ namespace ADS void DockAreaTabBar::insertTab(int index, DockWidgetTab *dockWidgetTab) { d->m_tabsLayout->insertWidget(index, dockWidgetTab); - connect(dockWidgetTab, &DockWidgetTab::clicked, this, &DockAreaTabBar::onTabClicked); - connect(dockWidgetTab, - &DockWidgetTab::closeRequested, - this, - &DockAreaTabBar::onTabCloseRequested); - connect(dockWidgetTab, - &DockWidgetTab::closeOtherTabsRequested, - this, - &DockAreaTabBar::onCloseOtherTabsRequested); - connect(dockWidgetTab, &DockWidgetTab::moved, this, &DockAreaTabBar::onTabWidgetMoved); - connect(dockWidgetTab, - &DockWidgetTab::elidedChanged, - this, - &DockAreaTabBar::elidedChanged); + connect(dockWidgetTab, &DockWidgetTab::clicked, + this, [this, dockWidgetTab] { onTabClicked(dockWidgetTab); }); + connect(dockWidgetTab, &DockWidgetTab::closeRequested, + this, [this, dockWidgetTab] { onTabCloseRequested(dockWidgetTab); }); + connect(dockWidgetTab, &DockWidgetTab::closeOtherTabsRequested, + this, [this, dockWidgetTab] { onCloseOtherTabsRequested(dockWidgetTab); }); + connect(dockWidgetTab, &DockWidgetTab::moved, + this, [this, dockWidgetTab](const QPoint &globalPosition) { + onTabWidgetMoved(dockWidgetTab, globalPosition); + }); + connect(dockWidgetTab, &DockWidgetTab::elidedChanged, + this, &DockAreaTabBar::elidedChanged); dockWidgetTab->installEventFilter(this); emit tabInserted(index); if (index <= d->m_currentIndex) @@ -255,13 +249,9 @@ namespace ADS d->m_tabsLayout->itemAt(d->m_currentIndex)->widget()); } - void DockAreaTabBar::onTabClicked() + void DockAreaTabBar::onTabClicked(DockWidgetTab *sourceTab) { - DockWidgetTab *tab = qobject_cast(sender()); - if (!tab) - return; - - int index = d->m_tabsLayout->indexOf(tab); + const int index = d->m_tabsLayout->indexOf(sourceTab); if (index < 0) return; @@ -269,19 +259,17 @@ namespace ADS emit tabBarClicked(index); } - void DockAreaTabBar::onTabCloseRequested() + void DockAreaTabBar::onTabCloseRequested(DockWidgetTab *sourceTab) { - DockWidgetTab *tab = qobject_cast(sender()); - int index = d->m_tabsLayout->indexOf(tab); + const int index = d->m_tabsLayout->indexOf(sourceTab); closeTab(index); } - void DockAreaTabBar::onCloseOtherTabsRequested() + void DockAreaTabBar::onCloseOtherTabsRequested(DockWidgetTab *sourceTab) { - auto senderTab = qobject_cast(sender()); for (int i = 0; i < count(); ++i) { auto currentTab = tab(i); - if (currentTab->isClosable() && !currentTab->isHidden() && currentTab != senderTab) { + if (currentTab->isClosable() && !currentTab->isHidden() && currentTab != sourceTab) { // If the dock widget is deleted with the closeTab() call, its tab it will no longer // be in the layout, and thus the index needs to be updated to not skip any tabs int offset = currentTab->dockWidget()->features().testFlag( @@ -306,13 +294,9 @@ namespace ADS return qobject_cast(d->m_tabsLayout->itemAt(index)->widget()); } - void DockAreaTabBar::onTabWidgetMoved(const QPoint &globalPosition) + void DockAreaTabBar::onTabWidgetMoved(DockWidgetTab *sourceTab, const QPoint &globalPosition) { - DockWidgetTab *movingTab = qobject_cast(sender()); - if (!movingTab) - return; - - int fromIndex = d->m_tabsLayout->indexOf(movingTab); + const int fromIndex = d->m_tabsLayout->indexOf(sourceTab); auto mousePos = mapFromGlobal(globalPosition); mousePos.rx() = qMax(d->firstTab()->geometry().left(), mousePos.x()); mousePos.rx() = qMin(d->lastTab()->geometry().right(), mousePos.x()); @@ -320,7 +304,7 @@ namespace ADS // Find tab under mouse for (int i = 0; i < count(); ++i) { DockWidgetTab *dropTab = tab(i); - if (dropTab == movingTab || !dropTab->isVisibleTo(this) + if (dropTab == sourceTab || !dropTab->isVisibleTo(this) || !dropTab->geometry().contains(mousePos)) continue; @@ -332,8 +316,8 @@ namespace ADS } if (toIndex > -1) { - d->m_tabsLayout->removeWidget(movingTab); - d->m_tabsLayout->insertWidget(toIndex, movingTab); + d->m_tabsLayout->removeWidget(sourceTab); + d->m_tabsLayout->insertWidget(toIndex, sourceTab); qCInfo(adsLog) << "tabMoved from" << fromIndex << "to" << toIndex; emit tabMoved(fromIndex, toIndex); setCurrentIndex(toIndex); diff --git a/src/libs/advanceddockingsystem/dockareatabbar.h b/src/libs/advanceddockingsystem/dockareatabbar.h index f1e91a7117d..2805685282a 100644 --- a/src/libs/advanceddockingsystem/dockareatabbar.h +++ b/src/libs/advanceddockingsystem/dockareatabbar.h @@ -65,10 +65,10 @@ private: friend class DockAreaTabBarPrivate; friend class DockAreaTitleBar; - void onTabClicked(); - void onTabCloseRequested(); - void onCloseOtherTabsRequested(); - void onTabWidgetMoved(const QPoint &globalPos); + void onTabClicked(DockWidgetTab *sourceTab); + void onTabCloseRequested(DockWidgetTab *sourceTab); + void onCloseOtherTabsRequested(DockWidgetTab *sourceTab); + void onTabWidgetMoved(DockWidgetTab *sourceTab, const QPoint &globalPos); protected: void wheelEvent(QWheelEvent *event) override;