Skip to content

Commit

Permalink
Merged githubuser0xFFFF#518 - Add more options to determine the minim…
Browse files Browse the repository at this point in the history
…um size of a dock widget
  • Loading branch information
githubuser0xFFFF authored and jonjenssen committed Aug 1, 2023
1 parent 114f270 commit ebbb7ad
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 5 deletions.
19 changes: 16 additions & 3 deletions src/DockWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,13 @@ void CDockWidget::setMinimumSizeHintMode(eMinimumSizeHintMode Mode)
}


//============================================================================
CDockWidget::eMinimumSizeHintMode CDockWidget::minimumSizeHintMode() const
{
return d->MinimumSizeHintMode;
}


//============================================================================
bool CDockWidget::isCentralWidget() const
{
Expand Down Expand Up @@ -990,14 +997,20 @@ void CDockWidget::setClosedState(bool Closed)
//============================================================================
QSize CDockWidget::minimumSizeHint() const
{
if (d->MinimumSizeHintMode == CDockWidget::MinimumSizeHintFromDockWidget || !d->Widget)
if (!d->Widget)
{
return QSize(60, 40);
}
else

switch (d->MinimumSizeHintMode)
{
return d->Widget->minimumSizeHint();
case MinimumSizeHintFromDockWidget: return QSize(60, 40);
case MinimumSizeHintFromContent: return d->Widget->minimumSizeHint();
case MinimumSizeHintFromDockWidgetMinimumSize: return minimumSize();
case MinimumSizeHintFromContentMinimumSize: return d->Widget->minimumSize();
}

return d->Widget->minimumSizeHint();
}


Expand Down
14 changes: 12 additions & 2 deletions src/DockWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -208,12 +208,17 @@ private Q_SLOTS:
* reimplements minimumSizeHint() function to return a very small minimum
* size hint. If you would like to adhere the minimumSizeHint() from the
* content widget, then set the minimumSizeHintMode() to
* MinimumSizeHintFromContent.
* MinimumSizeHintFromContent. If you would like to use the minimumSize()
* value of the content widget or the dock widget, then you can use the
* MinimumSizeHintFromDockWidgetMinimumSize or
* MinimumSizeHintFromContentMinimumSize modes.
*/
enum eMinimumSizeHintMode
{
MinimumSizeHintFromDockWidget,
MinimumSizeHintFromContent
MinimumSizeHintFromContent,
MinimumSizeHintFromDockWidgetMinimumSize,
MinimumSizeHintFromContentMinimumSize,
};


Expand Down Expand Up @@ -411,6 +416,11 @@ private Q_SLOTS:
*/
void setMinimumSizeHintMode(eMinimumSizeHintMode Mode);

/**
* Get the minimum size hint mode configured by setMinimumSizeHintMode
*/
eMinimumSizeHintMode minimumSizeHintMode() const;

/**
* Returns true if the dock widget is set as central widget of it's dock manager
*/
Expand Down

0 comments on commit ebbb7ad

Please sign in to comment.