Improved source documentation and images

This commit is contained in:
Uwe Kindler 2019-12-16 08:06:38 +01:00
parent b47a777f5c
commit 5af6b4e324
8 changed files with 40 additions and 7 deletions

View File

@ -384,7 +384,7 @@ CMainWindow::CMainWindow(QWidget *parent) :
// uncomment the follwing line if you want to use non opaque undocking and splitter // uncomment the follwing line if you want to use non opaque undocking and splitter
// moevements // moevements
// CDockManager::setConfigFlags(CDockManager::DefaultNonOpaqueConfig); CDockManager::setConfigFlags(CDockManager::DefaultNonOpaqueConfig);
// Now create the dock manager and its content // Now create the dock manager and its content
d->DockManager = new CDockManager(this); d->DockManager = new CDockManager(this);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -61,22 +61,33 @@ class CFloatingWidgetTitleBar;
class CDockingStateReader; class CDockingStateReader;
/** /**
* Pure virtual interface for floating widgets * Pure virtual interface for floating widgets.
* This interface is used for opaque and non-opaque undocking. If opaque
* undocking is used, the a real CFloatingDockContainer widget will be created
*/ */
class IFloatingWidget class IFloatingWidget
{ {
public: public:
/**
* Starts floating.
* This function should get called typically from a mouse press event
* handler
*/
virtual void startFloating(const QPoint& DragStartMousePos, const QSize& Size, virtual void startFloating(const QPoint& DragStartMousePos, const QSize& Size,
eDragState DragState, QWidget* MouseEventHandler) = 0; eDragState DragState, QWidget* MouseEventHandler) = 0;
/** /**
* Moves the widget to a new position relative to the position given when * Moves the widget to a new position relative to the position given when
* startFloating() was called * startFloating() was called.
* This function should be called from a mouse mouve event handler to
* move the floating widget on mouse move events.
*/ */
virtual void moveFloating() = 0; virtual void moveFloating() = 0;
/** /**
* Tells the widget that to finish dragging if the mouse is released * Tells the widget that to finish dragging if the mouse is released.
* This function should be called from a mouse release event handler
* to finish the dragging
*/ */
virtual void finishDragging() = 0; virtual void finishDragging() = 0;
}; };

View File

@ -316,7 +316,7 @@ void CFloatingOverlay::paintEvent(QPaintEvent* event)
painter.drawPixmap(QPoint(0, 0), d->ContentPreviewPixmap); painter.drawPixmap(QPoint(0, 0), d->ContentPreviewPixmap);
} }
// If we do not have a window frame then we paint a QRubberBadn like // If we do not have a window frame then we paint a QRubberBand like
// frameless window // frameless window
if (!CDockManager::configFlags().testFlag(CDockManager::DragPreviewHasWindowFrame)) if (!CDockManager::configFlags().testFlag(CDockManager::DragPreviewHasWindowFrame))
{ {

View File

@ -21,7 +21,9 @@ struct FloatingOverlayPrivate;
/** /**
* A floating overlay is a temporary floating widget that is just used to * A floating overlay is a temporary floating widget that is just used to
* indicate the floating widget movement * indicate the floating widget movement.
* This widget is used as a placeholder for drag operations for non-opaque
* docking
*/ */
class CFloatingOverlay : public QWidget, public IFloatingWidget class CFloatingOverlay : public QWidget, public IFloatingWidget
{ {
@ -30,7 +32,14 @@ private:
friend class FloatingOverlayPrivate; friend class FloatingOverlayPrivate;
protected: protected:
/**
* Updates the drop overlays
*/
virtual void moveEvent(QMoveEvent *event) override; virtual void moveEvent(QMoveEvent *event) override;
/**
* Cares about painting the
*/
virtual void paintEvent(QPaintEvent *e) override; virtual void paintEvent(QPaintEvent *e) override;
/** /**
@ -40,7 +49,16 @@ protected:
public: public:
using Super = QWidget; using Super = QWidget;
/**
* Creates an instance for undocking the DockWidget in Content parameter
*/
CFloatingOverlay(CDockWidget* Content); CFloatingOverlay(CDockWidget* Content);
/**
* Creates an instance for undocking the DockArea given in Content
* parameters
*/
CFloatingOverlay(CDockAreaWidget* Content); CFloatingOverlay(CDockAreaWidget* Content);
/** /**
@ -48,6 +66,8 @@ public:
*/ */
~CFloatingOverlay(); ~CFloatingOverlay();
public: // implements IFloatingWidget -----------------------------------------
virtual void startFloating(const QPoint& DragStartMousePos, const QSize& Size, virtual void startFloating(const QPoint& DragStartMousePos, const QSize& Size,
eDragState DragState, QWidget* MouseEventHandler) override; eDragState DragState, QWidget* MouseEventHandler) override;
@ -58,7 +78,9 @@ public:
virtual void moveFloating() override; virtual void moveFloating() override;
/** /**
* Finishes dragging * Finishes dragging.
* Hides the dock overlays and executes the real undocking and docking
* of the assigned Content widget
*/ */
virtual void finishDragging() override; virtual void finishDragging() override;
}; };