avoid useless constraints
This commit is contained in:
parent
73572dd06e
commit
09117c4f6d
|
@ -229,8 +229,8 @@ void AnchorBox::updateHints()
|
||||||
|
|
||||||
Solver solver;
|
Solver solver;
|
||||||
|
|
||||||
setupAnchorConstraints( solver );
|
setupAnchorConstraints( false, solver );
|
||||||
setupSizeConstraints( solver );
|
setupSizeConstraints( true, solver );
|
||||||
|
|
||||||
{
|
{
|
||||||
solver.updateVariables();
|
solver.updateVariables();
|
||||||
|
@ -305,8 +305,8 @@ void AnchorBox::updateVariables( qreal width, qreal height )
|
||||||
|
|
||||||
if ( !solver.hasConstraints() )
|
if ( !solver.hasConstraints() )
|
||||||
{
|
{
|
||||||
setupAnchorConstraints( solver );
|
setupAnchorConstraints( true, solver );
|
||||||
setupSizeConstraints( solver );
|
setupSizeConstraints( true, solver );
|
||||||
|
|
||||||
const double strength = 0.9 * Strength::required;
|
const double strength = 0.9 * Strength::required;
|
||||||
|
|
||||||
|
@ -320,7 +320,7 @@ void AnchorBox::updateVariables( qreal width, qreal height )
|
||||||
solver.updateVariables();
|
solver.updateVariables();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnchorBox::setupAnchorConstraints( Solver& solver )
|
void AnchorBox::setupAnchorConstraints( bool layoutChildren, Solver& solver )
|
||||||
{
|
{
|
||||||
auto& geometries = m_data->geometries;
|
auto& geometries = m_data->geometries;
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ void AnchorBox::setupAnchorConstraints( Solver& solver )
|
||||||
solver.addConstraint( expr1 == expr2 );
|
solver.addConstraint( expr1 == expr2 );
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
if ( anchor.item2 != this )
|
if ( layoutChildren && anchor.item2 != this )
|
||||||
{
|
{
|
||||||
const auto o = qskOrientation( anchor.edge1 );
|
const auto o = qskOrientation( anchor.edge1 );
|
||||||
|
|
||||||
|
@ -386,7 +386,7 @@ void AnchorBox::setupAnchorConstraints( Solver& solver )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnchorBox::setupSizeConstraints( Solver& solver )
|
void AnchorBox::setupSizeConstraints( bool layoutChildren, Solver& solver )
|
||||||
{
|
{
|
||||||
auto& geometries = m_data->geometries;
|
auto& geometries = m_data->geometries;
|
||||||
|
|
||||||
|
@ -409,6 +409,7 @@ void AnchorBox::setupSizeConstraints( Solver& solver )
|
||||||
solver.addConstraint( r.height() >= minSize.height() );
|
solver.addConstraint( r.height() >= minSize.height() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( layoutChildren )
|
||||||
{
|
{
|
||||||
// preferred size
|
// preferred size
|
||||||
const auto prefSize = qskSizeConstraint( item, Qt::PreferredSize );
|
const auto prefSize = qskSizeConstraint( item, Qt::PreferredSize );
|
||||||
|
|
|
@ -40,8 +40,8 @@ class AnchorBox : public QskControl
|
||||||
private:
|
private:
|
||||||
void updateHints();
|
void updateHints();
|
||||||
void updateVariables( qreal width, qreal height );
|
void updateVariables( qreal width, qreal height );
|
||||||
void setupAnchorConstraints( Solver& );
|
void setupAnchorConstraints( bool layoutChildren, Solver& );
|
||||||
void setupSizeConstraints( Solver& );
|
void setupSizeConstraints( bool layoutChildren, Solver& );
|
||||||
|
|
||||||
class PrivateData;
|
class PrivateData;
|
||||||
std::unique_ptr< PrivateData > m_data;
|
std::unique_ptr< PrivateData > m_data;
|
||||||
|
|
Loading…
Reference in New Issue