forked from qt-creator/qt-creator
FancyMainWindow: Avoid using sender()
Pass a context object to visibilityChanged() connection. Change-Id: Ic146c443c21ac7ee56f16aa84d71186f23dd31da Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -394,15 +394,16 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget, bool immutable)
|
||||
auto dockWidget = new DockWidget(widget, this, immutable);
|
||||
|
||||
if (!immutable) {
|
||||
connect(dockWidget, &QDockWidget::visibilityChanged,
|
||||
connect(dockWidget, &QDockWidget::visibilityChanged, this,
|
||||
[this, dockWidget](bool visible) {
|
||||
if (d->m_handleDockVisibilityChanges)
|
||||
dockWidget->setProperty(dockWidgetActiveState, visible);
|
||||
});
|
||||
|
||||
connect(dockWidget->toggleViewAction(), &QAction::triggered,
|
||||
this, &FancyMainWindow::onDockActionTriggered,
|
||||
Qt::QueuedConnection);
|
||||
connect(dockWidget->toggleViewAction(), &QAction::triggered, this, [dockWidget] {
|
||||
if (dockWidget->isVisible())
|
||||
dockWidget->raise();
|
||||
}, Qt::QueuedConnection);
|
||||
|
||||
dockWidget->setProperty(dockWidgetActiveState, true);
|
||||
}
|
||||
@@ -410,15 +411,6 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget, bool immutable)
|
||||
return dockWidget;
|
||||
}
|
||||
|
||||
void FancyMainWindow::onDockActionTriggered()
|
||||
{
|
||||
auto dw = qobject_cast<QDockWidget *>(sender()->parent());
|
||||
if (dw) {
|
||||
if (dw->isVisible())
|
||||
dw->raise();
|
||||
}
|
||||
}
|
||||
|
||||
void FancyMainWindow::setTrackingEnabled(bool enabled)
|
||||
{
|
||||
if (enabled) {
|
||||
|
@@ -85,8 +85,6 @@ protected:
|
||||
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||
|
||||
private:
|
||||
void onDockActionTriggered();
|
||||
|
||||
void handleVisibilityChanged(bool visible);
|
||||
|
||||
FancyMainWindowPrivate *d;
|
||||
|
Reference in New Issue
Block a user