Qtcalculations only for Qt::MinimumSize
This commit is contained in:
parent
f6a4e8d2d6
commit
d89adc4459
|
@ -21,31 +21,6 @@ QskSubWindowSkinlet::QskSubWindowSkinlet( QskSkin* skin )
|
|||
|
||||
QskSubWindowSkinlet::~QskSubWindowSkinlet() = default;
|
||||
|
||||
QSizeF QskSubWindowSkinlet::sizeHint( const QskSkinnable* skinnable,
|
||||
Qt::SizeHint, const QSizeF& size ) const
|
||||
{
|
||||
using Q = QskSubWindow;
|
||||
|
||||
const auto subWindow = static_cast< const QskSubWindow* >( skinnable );
|
||||
|
||||
auto panelSize = subWindow->strutSizeHint( QskSubWindow::Panel );
|
||||
auto s = size.expandedTo( panelSize );
|
||||
|
||||
const auto decorations = subWindow->decorations();
|
||||
|
||||
if ( ( decorations & Q::TitleBar ) && ( decorations & Q::Title ) )
|
||||
{
|
||||
auto titleBarSize = subWindow->strutSizeHint( QskSubWindow::TitleBarPanel );
|
||||
if( titleBarSize.isValid() )
|
||||
{
|
||||
s = s.expandedTo( { titleBarSize.width(), 0 } );
|
||||
s.rheight() += titleBarSize.height();
|
||||
}
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
QRectF QskSubWindowSkinlet::subControlRect( const QskSkinnable* skinnable,
|
||||
const QRectF& contentsRect, QskAspect::Subcontrol subControl ) const
|
||||
{
|
||||
|
@ -210,4 +185,32 @@ QRectF QskSubWindowSkinlet::titleRect(
|
|||
return rect;
|
||||
}
|
||||
|
||||
QSizeF QskSubWindowSkinlet::sizeHint( const QskSkinnable* skinnable,
|
||||
Qt::SizeHint which, const QSizeF& ) const
|
||||
{
|
||||
using Q = QskSubWindow;
|
||||
|
||||
if ( which != Qt::MinimumSize )
|
||||
return QSizeF();
|
||||
|
||||
const auto subWindow = static_cast< const QskSubWindow* >( skinnable );
|
||||
|
||||
auto hint = subWindow->strutSizeHint( Q::Panel );
|
||||
|
||||
if ( subWindow->decorations() != Q::NoDecoration )
|
||||
{
|
||||
const auto size = subWindow->strutSizeHint( Q::TitleBarPanel );
|
||||
|
||||
hint.rwidth() = qMax( hint.width(), size.width() );
|
||||
|
||||
if ( size.height() >= 0 )
|
||||
{
|
||||
hint.rheight() = qMax( hint.height(), 0.0 );
|
||||
hint.rheight() += size.height();
|
||||
}
|
||||
}
|
||||
|
||||
return hint;
|
||||
}
|
||||
|
||||
#include "moc_QskSubWindowSkinlet.cpp"
|
||||
|
|
Loading…
Reference in New Issue