diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp index 62c3d912555..5a184f6a6cc 100644 --- a/src/libs/utils/fancymainwindow.cpp +++ b/src/libs/utils/fancymainwindow.cpp @@ -198,8 +198,6 @@ public: class DockWidget : public QDockWidget { - Q_OBJECT - public: DockWidget(QWidget *inner, QWidget *parent) : QDockWidget(parent), m_inner(inner) @@ -219,15 +217,23 @@ public: m_timer.setSingleShot(true); m_timer.setInterval(500); - connect(&m_timer, SIGNAL(timeout()), this, SLOT(handleMouseTimeout())); + connect(&m_timer, &QTimer::timeout, this, &DockWidget::handleMouseTimeout); - connect(this, SIGNAL(topLevelChanged(bool)), this, SLOT(handleToplevelChanged(bool))); + connect(this, &QDockWidget::topLevelChanged, this, &DockWidget::handleToplevelChanged); + + connect(toggleViewAction(), &QAction::triggered, + [this]() { + if (isVisible()) + raise(); + }); auto origFloatButton = findChild(QLatin1String("qt_dockwidget_floatbutton")); - connect(m_titleBar->m_floatButton, SIGNAL(clicked()), origFloatButton, SIGNAL(clicked())); + connect(m_titleBar->m_floatButton, &QAbstractButton::clicked, + origFloatButton, &QAbstractButton::clicked); auto origCloseButton = findChild(QLatin1String("qt_dockwidget_closebutton")); - connect(m_titleBar->m_closeButton, SIGNAL(clicked()), origCloseButton, SIGNAL(clicked())); + connect(m_titleBar->m_closeButton, &QAbstractButton::clicked, + origCloseButton, &QAbstractButton::clicked); } bool eventFilter(QObject *, QEvent *event) @@ -257,7 +263,7 @@ public: QDockWidget::leaveEvent(event); } - Q_SLOT void handleMouseTimeout() + void handleMouseTimeout() { QPoint dist = m_startPos - QCursor::pos(); if (!isFloating() && dist.manhattanLength() < 4) { @@ -265,7 +271,7 @@ public: } } - Q_SLOT void handleToplevelChanged(bool floating) + void handleToplevelChanged(bool floating) { if (!floating) m_titleBar->setActive(false); @@ -312,8 +318,8 @@ FancyMainWindowPrivate::FancyMainWindowPrivate() : FancyMainWindow::FancyMainWindow(QWidget *parent) : QMainWindow(parent), d(new FancyMainWindowPrivate) { - connect(&d->m_resetLayoutAction, SIGNAL(triggered()), - this, SIGNAL(resetLayout())); + connect(&d->m_resetLayoutAction, &QAction::triggered, + this, &FancyMainWindow::resetLayout); } FancyMainWindow::~FancyMainWindow() @@ -328,30 +334,19 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget) QTC_CHECK(widget->windowTitle().size()); auto dockWidget = new DockWidget(widget, this); - connect(dockWidget->toggleViewAction(), SIGNAL(triggered()), - this, SLOT(onDockActionTriggered()), Qt::QueuedConnection); - connect(dockWidget, SIGNAL(visibilityChanged(bool)), - this, SLOT(onDockVisibilityChange(bool))); + + connect(dockWidget, &QDockWidget::visibilityChanged, + [this, dockWidget](bool visible) { + if (d->m_handleDockVisibilityChanges) + dockWidget->setProperty(dockWidgetActiveState, visible); + }); + + dockWidget->setProperty(dockWidgetActiveState, true); return dockWidget; } -void FancyMainWindow::onDockActionTriggered() -{ - QDockWidget *dw = qobject_cast(sender()->parent()); - if (dw) { - if (dw->isVisible()) - dw->raise(); - } -} - -void FancyMainWindow::onDockVisibilityChange(bool visible) -{ - if (d->m_handleDockVisibilityChanges) - sender()->setProperty(dockWidgetActiveState, visible); -} - void FancyMainWindow::setTrackingEnabled(bool enabled) { if (enabled) { @@ -495,5 +490,3 @@ void FancyMainWindow::setToolBarDockWidget(QDockWidget *dock) } } // namespace Utils - -#include "fancymainwindow.moc" diff --git a/src/libs/utils/fancymainwindow.h b/src/libs/utils/fancymainwindow.h index 8d2bb27e45f..e6778e10b0e 100644 --- a/src/libs/utils/fancymainwindow.h +++ b/src/libs/utils/fancymainwindow.h @@ -72,23 +72,18 @@ public: QDockWidget *toolBarDockWidget() const; void setToolBarDockWidget(QDockWidget *dock); + void setDockActionsVisible(bool v); + signals: // Emitted by resetLayoutAction(). Connect to a slot // restoring the default layout. void resetLayout(); -public slots: - void setDockActionsVisible(bool v); - protected: void hideEvent(QHideEvent *event); void showEvent(QShowEvent *event); void contextMenuEvent(QContextMenuEvent *event); -private slots: - void onDockActionTriggered(); - void onDockVisibilityChange(bool); - private: void handleVisibilityChanged(bool visible);