DockAreaTabBar: Avoid using sender()

Remove unneeded includes.

Change-Id: Ic6c6933039aa337a16e6871a472eb8d74b5e2a63
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
Jarek Kobus
2022-07-20 18:18:44 +02:00
parent b216b73506
commit a8b8ea3056
2 changed files with 27 additions and 43 deletions

View File

@@ -36,12 +36,8 @@
#include "dockareatabbar.h" #include "dockareatabbar.h"
#include "dockareawidget.h" #include "dockareawidget.h"
#include "dockmanager.h"
#include "dockoverlay.h"
#include "dockwidget.h" #include "dockwidget.h"
#include "dockwidgettab.h" #include "dockwidgettab.h"
#include "floatingdockcontainer.h"
#include "floatingdragpreview.h"
#include <QApplication> #include <QApplication>
#include <QBoxLayout> #include <QBoxLayout>
@@ -172,20 +168,18 @@ namespace ADS
void DockAreaTabBar::insertTab(int index, DockWidgetTab *dockWidgetTab) void DockAreaTabBar::insertTab(int index, DockWidgetTab *dockWidgetTab)
{ {
d->m_tabsLayout->insertWidget(index, dockWidgetTab); d->m_tabsLayout->insertWidget(index, dockWidgetTab);
connect(dockWidgetTab, &DockWidgetTab::clicked, this, &DockAreaTabBar::onTabClicked); connect(dockWidgetTab, &DockWidgetTab::clicked,
connect(dockWidgetTab, this, [this, dockWidgetTab] { onTabClicked(dockWidgetTab); });
&DockWidgetTab::closeRequested, connect(dockWidgetTab, &DockWidgetTab::closeRequested,
this, this, [this, dockWidgetTab] { onTabCloseRequested(dockWidgetTab); });
&DockAreaTabBar::onTabCloseRequested); connect(dockWidgetTab, &DockWidgetTab::closeOtherTabsRequested,
connect(dockWidgetTab, this, [this, dockWidgetTab] { onCloseOtherTabsRequested(dockWidgetTab); });
&DockWidgetTab::closeOtherTabsRequested, connect(dockWidgetTab, &DockWidgetTab::moved,
this, this, [this, dockWidgetTab](const QPoint &globalPosition) {
&DockAreaTabBar::onCloseOtherTabsRequested); onTabWidgetMoved(dockWidgetTab, globalPosition);
connect(dockWidgetTab, &DockWidgetTab::moved, this, &DockAreaTabBar::onTabWidgetMoved); });
connect(dockWidgetTab, connect(dockWidgetTab, &DockWidgetTab::elidedChanged,
&DockWidgetTab::elidedChanged, this, &DockAreaTabBar::elidedChanged);
this,
&DockAreaTabBar::elidedChanged);
dockWidgetTab->installEventFilter(this); dockWidgetTab->installEventFilter(this);
emit tabInserted(index); emit tabInserted(index);
if (index <= d->m_currentIndex) if (index <= d->m_currentIndex)
@@ -255,13 +249,9 @@ namespace ADS
d->m_tabsLayout->itemAt(d->m_currentIndex)->widget()); d->m_tabsLayout->itemAt(d->m_currentIndex)->widget());
} }
void DockAreaTabBar::onTabClicked() void DockAreaTabBar::onTabClicked(DockWidgetTab *sourceTab)
{ {
DockWidgetTab *tab = qobject_cast<DockWidgetTab *>(sender()); const int index = d->m_tabsLayout->indexOf(sourceTab);
if (!tab)
return;
int index = d->m_tabsLayout->indexOf(tab);
if (index < 0) if (index < 0)
return; return;
@@ -269,19 +259,17 @@ namespace ADS
emit tabBarClicked(index); emit tabBarClicked(index);
} }
void DockAreaTabBar::onTabCloseRequested() void DockAreaTabBar::onTabCloseRequested(DockWidgetTab *sourceTab)
{ {
DockWidgetTab *tab = qobject_cast<DockWidgetTab *>(sender()); const int index = d->m_tabsLayout->indexOf(sourceTab);
int index = d->m_tabsLayout->indexOf(tab);
closeTab(index); closeTab(index);
} }
void DockAreaTabBar::onCloseOtherTabsRequested() void DockAreaTabBar::onCloseOtherTabsRequested(DockWidgetTab *sourceTab)
{ {
auto senderTab = qobject_cast<DockWidgetTab *>(sender());
for (int i = 0; i < count(); ++i) { for (int i = 0; i < count(); ++i) {
auto currentTab = tab(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 // 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 // be in the layout, and thus the index needs to be updated to not skip any tabs
int offset = currentTab->dockWidget()->features().testFlag( int offset = currentTab->dockWidget()->features().testFlag(
@@ -306,13 +294,9 @@ namespace ADS
return qobject_cast<DockWidgetTab *>(d->m_tabsLayout->itemAt(index)->widget()); return qobject_cast<DockWidgetTab *>(d->m_tabsLayout->itemAt(index)->widget());
} }
void DockAreaTabBar::onTabWidgetMoved(const QPoint &globalPosition) void DockAreaTabBar::onTabWidgetMoved(DockWidgetTab *sourceTab, const QPoint &globalPosition)
{ {
DockWidgetTab *movingTab = qobject_cast<DockWidgetTab *>(sender()); const int fromIndex = d->m_tabsLayout->indexOf(sourceTab);
if (!movingTab)
return;
int fromIndex = d->m_tabsLayout->indexOf(movingTab);
auto mousePos = mapFromGlobal(globalPosition); auto mousePos = mapFromGlobal(globalPosition);
mousePos.rx() = qMax(d->firstTab()->geometry().left(), mousePos.x()); mousePos.rx() = qMax(d->firstTab()->geometry().left(), mousePos.x());
mousePos.rx() = qMin(d->lastTab()->geometry().right(), mousePos.x()); mousePos.rx() = qMin(d->lastTab()->geometry().right(), mousePos.x());
@@ -320,7 +304,7 @@ namespace ADS
// Find tab under mouse // Find tab under mouse
for (int i = 0; i < count(); ++i) { for (int i = 0; i < count(); ++i) {
DockWidgetTab *dropTab = tab(i); DockWidgetTab *dropTab = tab(i);
if (dropTab == movingTab || !dropTab->isVisibleTo(this) if (dropTab == sourceTab || !dropTab->isVisibleTo(this)
|| !dropTab->geometry().contains(mousePos)) || !dropTab->geometry().contains(mousePos))
continue; continue;
@@ -332,8 +316,8 @@ namespace ADS
} }
if (toIndex > -1) { if (toIndex > -1) {
d->m_tabsLayout->removeWidget(movingTab); d->m_tabsLayout->removeWidget(sourceTab);
d->m_tabsLayout->insertWidget(toIndex, movingTab); d->m_tabsLayout->insertWidget(toIndex, sourceTab);
qCInfo(adsLog) << "tabMoved from" << fromIndex << "to" << toIndex; qCInfo(adsLog) << "tabMoved from" << fromIndex << "to" << toIndex;
emit tabMoved(fromIndex, toIndex); emit tabMoved(fromIndex, toIndex);
setCurrentIndex(toIndex); setCurrentIndex(toIndex);

View File

@@ -65,10 +65,10 @@ private:
friend class DockAreaTabBarPrivate; friend class DockAreaTabBarPrivate;
friend class DockAreaTitleBar; friend class DockAreaTitleBar;
void onTabClicked(); void onTabClicked(DockWidgetTab *sourceTab);
void onTabCloseRequested(); void onTabCloseRequested(DockWidgetTab *sourceTab);
void onCloseOtherTabsRequested(); void onCloseOtherTabsRequested(DockWidgetTab *sourceTab);
void onTabWidgetMoved(const QPoint &globalPos); void onTabWidgetMoved(DockWidgetTab *sourceTab, const QPoint &globalPos);
protected: protected:
void wheelEvent(QWheelEvent *event) override; void wheelEvent(QWheelEvent *event) override;