TabWidget: Improve size hints

This commit is contained in:
Johannes Lorenz
2019-07-22 01:11:30 +02:00
parent aa8f9361c6
commit ba6a86d331

View File

@@ -319,8 +319,8 @@ QSize TabWidget::minimumSizeHint() const
for ( widgetStack::const_iterator it = m_widgets.begin();
it != m_widgets.end(); ++it )
{
maxWidth = std::max(maxWidth, it->w->width());
maxHeight = std::max(maxHeight, it->w->height());
maxWidth = std::max(maxWidth, it->w->minimumSizeHint().width());
maxHeight = std::max(maxHeight, it->w->minimumSizeHint().height());
}
// "-1" :
// in "addTab", under "Position tab's window", the widget is
@@ -335,7 +335,21 @@ QSize TabWidget::minimumSizeHint() const
QSize TabWidget::sizeHint() const
{
return minimumSizeHint();
if (m_resizable)
{
int maxWidth = 0, maxHeight = 0;
for ( widgetStack::const_iterator it = m_widgets.begin();
it != m_widgets.end(); ++it )
{
maxWidth = std::max(maxWidth, it->w->sizeHint().width());
maxHeight = std::max(maxHeight, it->w->sizeHint().height());
}
// "-1" :
// in "addTab", under "Position tab's window", the widget is
// moved up by 1 pixel
return QSize(maxWidth + 4, maxHeight + m_tabbarHeight - 1);
}
else { return QWidget::sizeHint(); }
}