forked from qt-creator/qt-creator
DockFocusController: Avoid using sender() for visibilityChanged()
Use Qt::SingleShotConnection connection instead and remove disconnect. Change-Id: If3ec082bb2341277bfeb781b13986492a88172e6 Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -158,24 +158,14 @@ void DockFocusControllerPrivate::updateDockWidgetFocus(DockWidget *dockWidget)
|
||||
emit m_dockManager->focusedDockWidgetChanged(old, dockWidget);
|
||||
} else {
|
||||
m_oldFocusedDockWidget = old;
|
||||
QObject::connect(dockWidget,
|
||||
&DockWidget::visibilityChanged,
|
||||
q,
|
||||
&DockFocusController::onDockWidgetVisibilityChanged);
|
||||
QObject::connect(dockWidget, &DockWidget::visibilityChanged, q,
|
||||
[this, dockWidget](bool visible) {
|
||||
if (visible)
|
||||
emit m_dockManager->focusedDockWidgetChanged(m_oldFocusedDockWidget, dockWidget);
|
||||
}, Qt::SingleShotConnection);
|
||||
}
|
||||
}
|
||||
|
||||
void DockFocusController::onDockWidgetVisibilityChanged(bool visible)
|
||||
{
|
||||
auto dockWidget = qobject_cast<DockWidget *>(sender());
|
||||
QObject::disconnect(dockWidget,
|
||||
&DockWidget::visibilityChanged,
|
||||
this,
|
||||
&DockFocusController::onDockWidgetVisibilityChanged);
|
||||
if (dockWidget && visible)
|
||||
emit d->m_dockManager->focusedDockWidgetChanged(d->m_oldFocusedDockWidget, dockWidget);
|
||||
}
|
||||
|
||||
DockFocusController::DockFocusController(DockManager *dockManager)
|
||||
: QObject(dockManager)
|
||||
, d(new DockFocusControllerPrivate(this))
|
||||
|
@@ -30,7 +30,6 @@ private:
|
||||
void onFocusWindowChanged(QWindow *focusWindow);
|
||||
void onFocusedDockAreaViewToggled(bool open);
|
||||
void onStateRestored();
|
||||
void onDockWidgetVisibilityChanged(bool visible);
|
||||
|
||||
public:
|
||||
/**
|
||||
|
Reference in New Issue
Block a user