Skip to content

Commit 87954e4

Browse files
Merged #518 - Add more options to determine the minimum size of a dock widget
1 parent f9b5ef8 commit 87954e4

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

src/DockWidget.cpp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,13 @@ void CDockWidget::setMinimumSizeHintMode(eMinimumSizeHintMode Mode)
622622
}
623623

624624

625+
//============================================================================
626+
CDockWidget::eMinimumSizeHintMode CDockWidget::minimumSizeHintMode() const
627+
{
628+
return d->MinimumSizeHintMode;
629+
}
630+
631+
625632
//============================================================================
626633
bool CDockWidget::isCentralWidget() const
627634
{
@@ -990,14 +997,20 @@ void CDockWidget::setClosedState(bool Closed)
990997
//============================================================================
991998
QSize CDockWidget::minimumSizeHint() const
992999
{
993-
if (d->MinimumSizeHintMode == CDockWidget::MinimumSizeHintFromDockWidget || !d->Widget)
1000+
if (!d->Widget)
9941001
{
9951002
return QSize(60, 40);
9961003
}
997-
else
1004+
1005+
switch (d->MinimumSizeHintMode)
9981006
{
999-
return d->Widget->minimumSizeHint();
1007+
case MinimumSizeHintFromDockWidget: return QSize(60, 40);
1008+
case MinimumSizeHintFromContent: return d->Widget->minimumSizeHint();
1009+
case MinimumSizeHintFromDockWidgetMinimumSize: return minimumSize();
1010+
case MinimumSizeHintFromContentMinimumSize: return d->Widget->minimumSize();
10001011
}
1012+
1013+
return d->Widget->minimumSizeHint();
10011014
}
10021015

10031016

src/DockWidget.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,12 +208,17 @@ private Q_SLOTS:
208208
* reimplements minimumSizeHint() function to return a very small minimum
209209
* size hint. If you would like to adhere the minimumSizeHint() from the
210210
* content widget, then set the minimumSizeHintMode() to
211-
* MinimumSizeHintFromContent.
211+
* MinimumSizeHintFromContent. If you would like to use the minimumSize()
212+
* value of the content widget or the dock widget, then you can use the
213+
* MinimumSizeHintFromDockWidgetMinimumSize or
214+
* MinimumSizeHintFromContentMinimumSize modes.
212215
*/
213216
enum eMinimumSizeHintMode
214217
{
215218
MinimumSizeHintFromDockWidget,
216-
MinimumSizeHintFromContent
219+
MinimumSizeHintFromContent,
220+
MinimumSizeHintFromDockWidgetMinimumSize,
221+
MinimumSizeHintFromContentMinimumSize,
217222
};
218223

219224

@@ -411,6 +416,11 @@ private Q_SLOTS:
411416
*/
412417
void setMinimumSizeHintMode(eMinimumSizeHintMode Mode);
413418

419+
/**
420+
* Get the minimum size hint mode configured by setMinimumSizeHintMode
421+
*/
422+
eMinimumSizeHintMode minimumSizeHintMode() const;
423+
414424
/**
415425
* Returns true if the dock widget is set as central widget of it's dock manager
416426
*/

0 commit comments

Comments
 (0)