diff options
Diffstat (limited to 'src/libs/advanceddockingsystem/dockwidget.h')
-rw-r--r-- | src/libs/advanceddockingsystem/dockwidget.h | 67 |
1 files changed, 62 insertions, 5 deletions
diff --git a/src/libs/advanceddockingsystem/dockwidget.h b/src/libs/advanceddockingsystem/dockwidget.h index 687704e365..ee9626d7da 100644 --- a/src/libs/advanceddockingsystem/dockwidget.h +++ b/src/libs/advanceddockingsystem/dockwidget.h @@ -152,8 +152,8 @@ public: using Super = QFrame; enum DockWidgetFeature { - DockWidgetClosable = 0x01, - DockWidgetMovable = 0x02,///< this feature is not properly implemented yet and is ignored + DockWidgetClosable = 0x01,///< dock widget has a close button + DockWidgetMovable = 0x02,///< dock widget is movable and can be moved to a new position in the current dock container DockWidgetFloatable = 0x04, DockWidgetDeleteOnClose = 0x08, ///< deletes the dock widget when it is closed CustomCloseHandling = 0x10, @@ -226,13 +226,13 @@ public: /** * Virtual Destructor */ - virtual ~DockWidget() override; + ~DockWidget() override; /** * We return a fixed minimum size hint or the size hint of the content * widget if minimum size hint mode is MinimumSizeHintFromContent */ - virtual QSize minimumSizeHint() const override; + QSize minimumSizeHint() const override; /** * Sets the widget for the dock widget to widget. @@ -435,11 +435,31 @@ public: void setTabToolTip(const QString &text); #endif + /** + * Returns true if the dock widget is floating and if the floating dock + * container is full screen + */ + bool isFullScreen() const; + + /** + * Returns true if this dock widget is in a dock area, that contains at + * least 2 opened dock widgets + */ + bool isTabbed() const; + + /** + * Returns true if this dock widget is the current one in the dock + * area widget that contains it. + * If the dock widget is the only opened dock widget in a dock area, + * the true is returned + */ + bool isCurrentTab() const; + public: // reimplements QFrame /** * Emits titleChanged signal if title change event occurs */ - virtual bool event(QEvent *event) override; + bool event(QEvent *event) override; /** * This property controls whether the dock widget is open or closed. @@ -448,6 +468,23 @@ public: // reimplements QFrame void toggleView(bool open = true); /** + * Makes this dock widget the current tab in its dock area. + * The function only has an effect, if the dock widget is open. A call + * to this function will not toggle the view, so if it is closed, + * nothing will happen + */ + void setAsCurrentTab(); + + /** + * Brings the dock widget to the front + * This means: + * - If the dock widget is tabbed with other dock widgets but its tab is not current, it's made current. + * - If the dock widget is floating, QWindow::raise() is called. + * This only applies if the dock widget is already open. If closed, does nothing. + */ + void raise(); + + /** * This function will make a docked widget floating */ void setFloating(); @@ -463,6 +500,26 @@ public: // reimplements QFrame */ void closeDockWidget(); + /** + * Shows the widget in full-screen mode. + * Normally this function only affects windows. To make the interface + * compatible to QDockWidget, this function also maximizes a floating + * dock widget. + * + * \note Full-screen mode works fine under Windows, but has certain + * problems (doe not work) under X (Linux). These problems are due to + * limitations of the ICCCM protocol that specifies the communication + * between X11 clients and the window manager. ICCCM simply does not + * understand the concept of non-decorated full-screen windows. + */ + void showFullScreen(); + + /** + * This function complements showFullScreen() to restore the widget + * after it has been in full screen mode. + */ + void showNormal(); + signals: /** * This signal is emitted if the dock widget is opened or closed |