forked from qt-creator/qt-creator
DockAreaTabBar: Avoid using sender()
Remove unneeded includes. Change-Id: Ic6c6933039aa337a16e6871a472eb8d74b5e2a63 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user