qskinny/src/common/QskSizePolicy.cpp

71 lines
1.8 KiB
C++
Raw Normal View History

2017-07-21 18:21:34 +02:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#include "QskSizePolicy.h"
QskSizePolicy::Policy QskSizePolicy::policy( Qt::Orientation orientation ) const
{
return ( orientation == Qt::Horizontal )
? horizontalPolicy() : verticalPolicy();
}
void QskSizePolicy::setPolicy( Qt::Orientation orientation, Policy policy )
{
if ( orientation == Qt::Horizontal )
setHorizontalPolicy( policy );
else
setVerticalPolicy( policy );
}
QskSizePolicy::ConstraintType QskSizePolicy::constraintType() const
{
if ( horizontalPolicy() & ConstrainedFlag )
return QskSizePolicy::WidthForHeight;
if ( verticalPolicy() & ConstrainedFlag )
return QskSizePolicy::HeightForWidth;
return QskSizePolicy::Unconstrained;
}
Qt::SizeHint QskSizePolicy::effectiveSizeHintType(
Qt::SizeHint which, Qt::Orientation orientation ) const
{
const auto policy = ( orientation == Qt::Horizontal )
? horizontalPolicy() : verticalPolicy();
if ( which == Qt::MinimumSize )
{
if ( !( policy & ShrinkFlag ) )
return Qt::PreferredSize;
}
else if ( which == Qt::MaximumSize )
{
if ( !( policy & ( GrowFlag | ExpandFlag ) ) )
return Qt::PreferredSize;
}
return which;
}
2017-07-21 18:21:34 +02:00
#ifndef QT_NO_DEBUG_STREAM
2018-07-19 14:10:48 +02:00
#include <qdebug.h>
2017-07-21 18:21:34 +02:00
QDebug operator<<( QDebug debug, const QskSizePolicy& policy )
{
QDebugStateSaver saver( debug );
debug.nospace();
debug << "SizePolicy" << '(';
debug << policy.horizontalPolicy() << ", " << policy.verticalPolicy();
debug << ')';
return debug;
}
#endif
#include "moc_QskSizePolicy.cpp"