From 5d380708e107c67bfb66040bb7a444b976b18888 Mon Sep 17 00:00:00 2001 From: Uwe Kindler Date: Fri, 7 Sep 2018 13:13:44 +0200 Subject: [PATCH] Added support for make a single tab floating via double click --- src/DockWidgetTab.cpp | 16 ++++++++++++++++ src/DockWidgetTab.h | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/src/DockWidgetTab.cpp b/src/DockWidgetTab.cpp index 486fd4f..5040c60 100644 --- a/src/DockWidgetTab.cpp +++ b/src/DockWidgetTab.cpp @@ -373,6 +373,22 @@ const QIcon& CDockWidgetTab::icon() const { return d->Icon; } + + +//============================================================================ +void CDockWidgetTab::mouseDoubleClickEvent(QMouseEvent *event) +{ + // If this is the last dock area in a dock container it does not make + // sense to move it to a new floating widget and leave this one + // empty + if (!d->DockArea->dockContainer()->isFloating() || d->DockArea->count() > 1) + { + d->startFloating(); + } + + Super::mouseDoubleClickEvent(event); +} + } // namespace ads //--------------------------------------------------------------------------- diff --git a/src/DockWidgetTab.h b/src/DockWidgetTab.h index b81d85d..dd2c07e 100644 --- a/src/DockWidgetTab.h +++ b/src/DockWidgetTab.h @@ -59,7 +59,13 @@ protected: virtual void mouseReleaseEvent(QMouseEvent* ev) override; virtual void mouseMoveEvent(QMouseEvent* ev) override; + /** + * Double clicking the tab widget makes the assigned dock widget floating + */ + virtual void mouseDoubleClickEvent(QMouseEvent *event) override; + public: + using Super = QFrame; /** * Default Constructor * param[in] DockWidget The dock widget this title bar belongs to