QskLayoutHint renamed to QskLayoutMetrics

This commit is contained in:
Uwe Rathmann 2021-12-15 08:45:29 +01:00
parent d0b07cc465
commit c3dc970a94
11 changed files with 149 additions and 147 deletions

View File

@ -20,7 +20,7 @@
#include <QskGradient.h>
#include <QskGraphicLabel.h>
#include <QskIntervalF.h>
#include <QskLayoutHint.h>
#include <QskLayoutMetrics.h>
#include <QskMargins.h>
#include <QskMessageWindow.h>
#include <QskPopup.h>
@ -201,7 +201,7 @@ void QskQml::registerTypes()
QSK_REGISTER_GADGET( QskGradient, "Gradient" );
QSK_REGISTER_GADGET( QskGradientStop, "GradientStop" );
QSK_REGISTER_GADGET( QskIntervalF, "IntervalF" );
QSK_REGISTER_GADGET( QskLayoutHint, "LayoutHint" );
QSK_REGISTER_GADGET( QskLayoutMetrics, "LayoutMetrics" );
QSK_REGISTER_GADGET( QskSizePolicy, "SizePolicy" );
QSK_REGISTER_GADGET( QskTextOptions, "TextOptions" );
QSK_REGISTER_GADGET( QskMargins, "Margins" );

View File

@ -5,7 +5,7 @@
#include "QskControlPrivate.h"
#include "QskSetup.h"
#include "QskLayoutHint.h"
#include "QskLayoutMetrics.h"
static inline void qskSendEventTo( QObject* object, QEvent::Type type )
{
@ -173,10 +173,10 @@ QSizeF QskControlPrivate::implicitSizeHint(
qreal h = constraint.height();
if ( w < 0.0 )
w = QskLayoutHint::combined( which, contentsHint.width(), layoutHint.width() );
w = QskLayoutMetrics::combined( which, contentsHint.width(), layoutHint.width() );
if ( h < 0.0 )
h = QskLayoutHint::combined( which, contentsHint.height(), layoutHint.height() );
h = QskLayoutMetrics::combined( which, contentsHint.height(), layoutHint.height() );
return QSizeF( w, h );
}

View File

@ -4,7 +4,7 @@
*****************************************************************************/
#include "QskGridLayoutEngine.h"
#include "QskLayoutHint.h"
#include "QskLayoutMetrics.h"
#include "QskLayoutChain.h"
#include "QskSizePolicy.h"
#include "QskQuick.h"
@ -30,7 +30,7 @@ namespace
public:
inline bool isDefault() const
{
return m_stretch < 0 && m_hint.isDefault();
return m_stretch < 0 && m_metrics.isDefault();
}
bool setStretch( int stretch )
@ -43,11 +43,11 @@ namespace
return false;
}
bool setHint( Qt::SizeHint which, qreal size )
bool setMetric( Qt::SizeHint which, qreal metric )
{
if ( size != m_hint.size( which ) )
if ( metric != m_metrics.metric( which ) )
{
m_hint.setSize( which, size );
m_metrics.setMetric( which, metric );
return true;
}
return false;
@ -56,7 +56,7 @@ namespace
QskLayoutChain::CellData cell() const
{
QskLayoutChain::CellData cell;
cell.hint = m_hint.normalized();
cell.metrics = m_metrics.normalized();
cell.stretch = m_stretch;
cell.canGrow = m_stretch != 0;
cell.isValid = true;
@ -65,13 +65,13 @@ namespace
}
inline int stretch() const { return m_stretch; }
inline QskLayoutHint hint() const { return m_hint; }
inline QskLayoutMetrics metrics() const { return m_metrics; }
int position = -1;
private:
int m_stretch = -1;
QskLayoutHint m_hint;
QskLayoutMetrics m_metrics;
};
int maxPosition() const
@ -95,12 +95,12 @@ namespace
return setValueAt( index, setStretch );
}
bool setHintAt( int index, Qt::SizeHint which, qreal size )
bool setMetricAt( int index, Qt::SizeHint which, qreal size )
{
auto setHint = [which, size]( Setting& s )
{ return s.setHint( which, size ); };
auto setMetric = [which, size]( Setting& s )
{ return s.setMetric( which, size ); };
return setValueAt( index, setHint );
return setValueAt( index, setMetric );
}
Setting settingAt( int index ) const
@ -276,9 +276,9 @@ QskLayoutChain::CellData Element::cell( Qt::Orientation orientation ) const
const qreal value = ( orientation == Qt::Horizontal )
? m_spacing.width() : m_spacing.height();
cell.hint.setMinimum( value );
cell.hint.setPreferred( value );
cell.hint.setMaximum( value );
cell.metrics.setMinimum( value );
cell.metrics.setPreferred( value );
cell.metrics.setMaximum( value );
}
else
{
@ -423,7 +423,7 @@ int QskGridLayoutEngine::stretchFactor(
bool QskGridLayoutEngine::setRowSizeHint(
int row, Qt::SizeHint which, qreal height )
{
if ( !m_data->rowSettings.setHintAt( row, which, height ) )
if ( !m_data->rowSettings.setMetricAt( row, which, height ) )
return false;
if ( row >= m_data->rowCount )
@ -436,13 +436,13 @@ bool QskGridLayoutEngine::setRowSizeHint(
qreal QskGridLayoutEngine::rowSizeHint( int row, Qt::SizeHint which ) const
{
const auto& settings = m_data->rowSettings;
return settings.settingAt( row ).hint().size( which );
return settings.settingAt( row ).metrics().metric( which );
}
bool QskGridLayoutEngine::setColumnSizeHint(
int column, Qt::SizeHint which, qreal width )
{
if ( !m_data->columnSettings.setHintAt( column, which, width ) )
if ( !m_data->columnSettings.setMetricAt( column, which, width ) )
return false;
if ( column >= m_data->columnCount )
@ -455,7 +455,7 @@ bool QskGridLayoutEngine::setColumnSizeHint(
qreal QskGridLayoutEngine::columnSizeHint( int column, Qt::SizeHint which ) const
{
const auto& settings = m_data->columnSettings;
return settings.settingAt( column ).hint().size( which );
return settings.settingAt( column ).metrics().metric( which );
}
int QskGridLayoutEngine::insertItem( QQuickItem* item, const QRect& grid )
@ -645,7 +645,7 @@ void QskGridLayoutEngine::setupChain( Qt::Orientation orientation,
auto cell = element.cell( orientation );
if ( element.item() )
cell.hint = layoutHint( element.item(), orientation, constraint );
cell.metrics = layoutMetrics( element.item(), orientation, constraint );
chain.expandCell( grid.top(), cell );
}
@ -671,7 +671,7 @@ void QskGridLayoutEngine::setupChain( Qt::Orientation orientation,
constraint = qskSegmentLength( constraints, grid.left(), grid.right() );
auto cell = element->cell( orientation );
cell.hint = layoutHint( element->item(), orientation, constraint );
cell.metrics = layoutMetrics( element->item(), orientation, constraint );
chain.expandCells( grid.top(), grid.height(), cell );
}

View File

@ -52,21 +52,21 @@ void QskLayoutChain::shrinkCell( int index, const CellData& newCell )
if ( newCell.stretch >= 0 )
cell.stretch = qMax( cell.stretch, newCell.stretch );
if ( !newCell.hint.isDefault() )
if ( !newCell.metrics.isDefault() )
{
auto& hint = cell.hint;
auto& newHint = newCell.hint;
auto& metrics = cell.metrics;
auto& newMetrics = newCell.metrics;
hint.setMinimum( qMax( hint.minimum(), newHint.minimum() ) );
hint.setPreferred( qMax( hint.preferred(), newHint.preferred() ) );
metrics.setMinimum( qMax( metrics.minimum(), newMetrics.minimum() ) );
metrics.setPreferred( qMax( metrics.preferred(), newMetrics.preferred() ) );
if ( newHint.maximum() < hint.maximum() )
if ( newMetrics.maximum() < metrics.maximum() )
{
hint.setMaximum( newHint.maximum() );
metrics.setMaximum( newMetrics.maximum() );
cell.isShrunk = true;
}
cell.hint.normalize();
cell.metrics.normalize();
}
}
}
@ -88,10 +88,10 @@ void QskLayoutChain::expandCell( int index, const CellData& newCell )
cell.canGrow |= newCell.canGrow;
cell.stretch = qMax( cell.stretch, newCell.stretch );
cell.hint.setSizes(
qMax( cell.hint.minimum(), newCell.hint.minimum() ),
qMax( cell.hint.preferred(), newCell.hint.preferred() ),
qMax( cell.hint.maximum(), newCell.hint.maximum() )
cell.metrics.setMetrics(
qMax( cell.metrics.minimum(), newCell.metrics.minimum() ),
qMax( cell.metrics.preferred(), newCell.metrics.preferred() ),
qMax( cell.metrics.maximum(), newCell.metrics.maximum() )
);
}
}
@ -121,18 +121,18 @@ void QskLayoutChain::expandCells(
QskLayoutChain::Segments preferred;
QskLayoutChain::Segments maximum;
const auto chainHint = chain.boundingHint();
const auto chainMetrics = chain.boundingMetrics();
if ( multiCell.hint.minimum() > chainHint.minimum() )
minimum = chain.segments( multiCell.hint.minimum() );
if ( multiCell.metrics.minimum() > chainMetrics.minimum() )
minimum = chain.segments( multiCell.metrics.minimum() );
if ( multiCell.hint.preferred() > chainHint.preferred() )
preferred = chain.segments( multiCell.hint.preferred() );
if ( multiCell.metrics.preferred() > chainMetrics.preferred() )
preferred = chain.segments( multiCell.metrics.preferred() );
if ( chainHint.maximum() == QskLayoutHint::unlimited )
if ( chainMetrics.maximum() == QskLayoutMetrics::unlimited )
{
if ( multiCell.hint.maximum() < QskLayoutHint::unlimited )
maximum = chain.segments( multiCell.hint.maximum() );
if ( multiCell.metrics.maximum() < QskLayoutMetrics::unlimited )
maximum = chain.segments( multiCell.metrics.maximum() );
}
for ( int i = 0; i < count; i++ )
@ -143,13 +143,13 @@ void QskLayoutChain::expandCells(
cell.stretch = qMax( cell.stretch, multiCell.stretch );
if ( !minimum.isEmpty() )
cell.hint.expandMinimum( minimum[i].length );
cell.metrics.expandMinimum( minimum[i].length );
if ( !preferred.isEmpty() )
cell.hint.expandPreferred( preferred[i].length );
cell.metrics.expandPreferred( preferred[i].length );
if ( !maximum.isEmpty() && !cell.isValid )
cell.hint.setMaximum( maximum[i].length );
cell.metrics.setMaximum( maximum[i].length );
if ( !cell.isValid )
{
@ -170,28 +170,28 @@ void QskLayoutChain::finish()
if ( !m_cells.empty() )
{
const auto maxMaximum = QskLayoutHint::unlimited;
const auto maxMaximum = QskLayoutMetrics::unlimited;
for ( auto& cell : m_cells )
{
if ( !cell.isValid )
continue;
minimum += cell.hint.minimum();
preferred += cell.hint.preferred();
minimum += cell.metrics.minimum();
preferred += cell.metrics.preferred();
if ( maximum < maxMaximum )
{
if ( cell.stretch == 0 && !cell.canGrow )
{
maximum += cell.hint.preferred();
maximum += cell.metrics.preferred();
}
else
{
if ( cell.hint.maximum() == maxMaximum )
if ( cell.metrics.maximum() == maxMaximum )
maximum = maxMaximum;
else
maximum += cell.hint.maximum();
maximum += cell.metrics.maximum();
}
}
@ -208,9 +208,9 @@ void QskLayoutChain::finish()
maximum += spacing;
}
m_boundingHint.setMinimum( minimum );
m_boundingHint.setPreferred( preferred );
m_boundingHint.setMaximum( maximum );
m_boundingMetrics.setMinimum( minimum );
m_boundingMetrics.setPreferred( preferred );
m_boundingMetrics.setMaximum( maximum );
}
bool QskLayoutChain::setSpacing( qreal spacing )
@ -231,21 +231,21 @@ QskLayoutChain::Segments QskLayoutChain::segments( qreal size ) const
Segments segments;
if ( size <= m_boundingHint.minimum() )
if ( size <= m_boundingMetrics.minimum() )
{
segments = distributed( Qt::MinimumSize, 0.0, 0.0 );
}
else if ( size < m_boundingHint.preferred() )
else if ( size < m_boundingMetrics.preferred() )
{
segments = minimumExpanded( size );
}
else if ( size <= m_boundingHint.maximum() )
else if ( size <= m_boundingMetrics.maximum() )
{
segments = preferredStretched( size );
}
else
{
const qreal padding = size - m_boundingHint.maximum();
const qreal padding = size - m_boundingMetrics.maximum();
qreal offset = 0.0;
qreal extra = 0.0;;
@ -297,10 +297,10 @@ QskLayoutChain::Segments QskLayoutChain::distributed(
segment.start = offset;
qreal size = cell.hint.size( which );
qreal size = cell.metrics.metric( which );
#if 1
if ( which == Qt::MaximumSize && size == QskLayoutHint::unlimited )
if ( which == Qt::MaximumSize && size == QskLayoutMetrics::unlimited )
{
/*
We have some special handling in QskLayoutChain::finish,
@ -308,7 +308,7 @@ QskLayoutChain::Segments QskLayoutChain::distributed(
size of a cell to the bounding maximum size.
No good way to have this here, TODO ...
*/
size = cell.hint.size( Qt::PreferredSize );
size = cell.metrics.metric( Qt::PreferredSize );
}
#endif
@ -356,8 +356,8 @@ QskLayoutChain::Segments QskLayoutChain::minimumExpanded( qreal size ) const
qreal sumFactors = 0.0;
QVarLengthArray< qreal > factors( m_cells.size() );
const qreal desired = m_boundingHint.preferred() - m_boundingHint.minimum();
const qreal available = size - m_boundingHint.minimum();
const qreal desired = m_boundingMetrics.preferred() - m_boundingMetrics.minimum();
const qreal available = size - m_boundingMetrics.minimum();
for ( int i = 0; i < m_cells.size(); i++ )
{
@ -398,8 +398,8 @@ QskLayoutChain::Segments QskLayoutChain::minimumExpanded( qreal size ) const
}
}
#else
const qreal factor = ( size - m_boundingHint.minimum() ) /
( m_boundingHint.preferred() - m_boundingHint.minimum() );
const qreal factor = ( size - m_boundingMetrics.minimum() ) /
( m_boundingMetrics.preferred() - m_boundingMetrics.minimum() );
for ( int i = 0; i < m_cells.count(); i++ )
{
@ -417,8 +417,8 @@ QskLayoutChain::Segments QskLayoutChain::minimumExpanded( qreal size ) const
fillSpacing = m_spacing;
segment.start = offset;
segment.length = cell.hint.minimum()
+ factor * ( cell.hint.preferred() - cell.hint.minimum() );
segment.length = cell.metrics.minimum()
+ factor * ( cell.metrics.preferred() - cell.metrics.minimum() );
offset += segment.length;
}
@ -448,7 +448,7 @@ QskLayoutChain::Segments QskLayoutChain::preferredStretched( qreal size ) const
continue;
}
if ( cell.hint.preferred() >= cell.hint.maximum() )
if ( cell.metrics.preferred() >= cell.metrics.maximum() )
{
factors[i] = 0.0;
}
@ -477,7 +477,7 @@ QskLayoutChain::Segments QskLayoutChain::preferredStretched( qreal size ) const
const auto size = sumSizes * factors[i] / sumFactors;
const auto& hint = m_cells[i].hint;
const auto& hint = m_cells[i].metrics;
const auto boundedSize =
qBound( hint.preferred(), size, hint.maximum() );
@ -519,7 +519,7 @@ QskLayoutChain::Segments QskLayoutChain::preferredStretched( qreal size ) const
if ( factor > 0.0 )
segment.length = sumSizes * factor / sumFactors;
else
segment.length = cell.hint.preferred();
segment.length = cell.metrics.preferred();
}
offset += segment.length;
@ -553,7 +553,7 @@ QDebug operator<<( QDebug debug, const QskLayoutChain::CellData& cell )
}
else
{
debug << "( " << cell.hint << ", "
debug << "( " << cell.metrics << ", "
<< cell.stretch << ", " << cell.canGrow << " )";
}

View File

@ -6,7 +6,7 @@
#ifndef QSK_LAYOUT_CHAIN_H
#define QSK_LAYOUT_CHAIN_H
#include <QskLayoutHint.h>
#include <QskLayoutMetrics.h>
#include <qrect.h>
#include <qvector.h>
@ -29,17 +29,17 @@ class QskLayoutChain
class CellData
{
public:
inline qreal size( int which ) const
inline qreal metric( int which ) const
{
return hint.size( which );
return metrics.metric( which );
}
inline void setSize( int which, qreal size )
inline void setMetric( int which, qreal size )
{
hint.setSize( which, size );
metrics.setMetric( which, size );
}
QskLayoutHint hint;
QskLayoutMetrics metrics;
int stretch = 0;
bool canGrow = false;
@ -73,7 +73,7 @@ class QskLayoutChain
int fillMode() const { return m_fillMode; }
Segments segments( qreal size ) const;
QskLayoutHint boundingHint() const { return m_boundingHint; }
QskLayoutMetrics boundingMetrics() const { return m_boundingMetrics; }
inline qreal constraint() const { return m_constraint; }
inline int count() const { return m_cells.size(); }
@ -83,7 +83,7 @@ class QskLayoutChain
Segments minimumExpanded( qreal size ) const;
Segments preferredStretched( qreal size ) const;
QskLayoutHint m_boundingHint;
QskLayoutMetrics m_boundingMetrics;
qreal m_constraint = -2.0;
qreal m_spacing = 0;

View File

@ -5,7 +5,7 @@
#include "QskLayoutEngine2D.h"
#include "QskLayoutChain.h"
#include "QskLayoutHint.h"
#include "QskLayoutMetrics.h"
#include "QskControl.h"
#include "QskQuick.h"
@ -94,7 +94,7 @@ static inline qreal qskEffectiveConstraint( const QQuickItem* item,
value = qskEffectiveSizeHint( item, which ).height();
if ( value < 0.0 )
value = ( which == Qt::MaximumSize ) ? QskLayoutHint::unlimited : 0.0;
value = ( which == Qt::MaximumSize ) ? QskLayoutMetrics::unlimited : 0.0;
return value;
}
@ -469,19 +469,19 @@ QSizeF QskLayoutEngine2D::sizeHint(
QSizeF hint;
if ( constraint.width() <= 0.0 )
hint.rwidth() = columnChain.boundingHint().size( which );
hint.rwidth() = columnChain.boundingMetrics().metric( which );
if ( constraint.height() <= 0.0 )
hint.rheight() = rowChain.boundingHint().size( which );
hint.rheight() = rowChain.boundingMetrics().metric( which );
return hint;
}
QskLayoutHint QskLayoutEngine2D::layoutHint( const QQuickItem* item,
QskLayoutMetrics QskLayoutEngine2D::layoutMetrics( const QQuickItem* item,
Qt::Orientation orientation, qreal constraint ) const
{
if ( item == nullptr )
return QskLayoutHint();
return QskLayoutMetrics();
const auto policy = qskSizePolicy( item ).policy( orientation );
@ -522,7 +522,7 @@ QskLayoutHint QskLayoutEngine2D::layoutHint( const QQuickItem* item,
preferred = minimum;
}
return QskLayoutHint( minimum, preferred, maximum );
return QskLayoutMetrics( minimum, preferred, maximum );
}
void QskLayoutEngine2D::setupChain( Qt::Orientation orientation ) const

View File

@ -14,7 +14,7 @@
#include <memory>
class QQuickItem;
class QskLayoutHint;
class QskLayoutMetrics;
class QskLayoutEngine2D
{
@ -57,7 +57,7 @@ class QskLayoutEngine2D
protected:
void layoutItem( QQuickItem*, const QRect& grid ) const;
QskLayoutHint layoutHint( const QQuickItem*,
QskLayoutMetrics layoutMetrics( const QQuickItem*,
Qt::Orientation, qreal constraint ) const;
enum

View File

@ -3,25 +3,25 @@
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#include "QskLayoutHint.h"
#include "QskLayoutMetrics.h"
#include "QskControl.h"
#include <qnamespace.h>
#include <algorithm>
void QskLayoutHint::setSize( int which, qreal size ) noexcept
void QskLayoutMetrics::setMetric( int which, qreal metric ) noexcept
{
switch (which)
{
case Qt::MinimumSize:
m_minimum = size;
m_minimum = metric;
break;
case Qt::PreferredSize:
m_preferred = size;
m_preferred = metric;
break;
case Qt::MaximumSize:
m_maximum = size;
m_maximum = metric;
break;
default:
@ -29,21 +29,21 @@ void QskLayoutHint::setSize( int which, qreal size ) noexcept
}
}
void QskLayoutHint::expandTo( const QskLayoutHint& other ) noexcept
void QskLayoutMetrics::expandTo( const QskLayoutMetrics& other ) noexcept
{
m_minimum = std::max( m_minimum, other.m_minimum );
m_preferred = std::max( m_preferred, other.m_preferred );
m_maximum = std::max( m_maximum, other.m_maximum );
}
void QskLayoutHint::normalize() noexcept
void QskLayoutMetrics::normalize() noexcept
{
m_minimum = std::max( m_minimum, qreal( 0.0 ) );
m_maximum = std::max( m_minimum, m_maximum );
m_preferred = qBound( m_minimum, m_preferred, m_maximum );
}
qreal QskLayoutHint::combined( int which, qreal value1, qreal value2 ) noexcept
qreal QskLayoutMetrics::combined( int which, qreal value1, qreal value2 ) noexcept
{
if ( which == Qt::MaximumSize )
{
@ -65,25 +65,25 @@ qreal QskLayoutHint::combined( int which, qreal value1, qreal value2 ) noexcept
static inline QString qskHintValueString( qreal value )
{
if ( value >= QskLayoutHint::unlimited )
if ( value >= QskLayoutMetrics::unlimited )
return QStringLiteral( "unlimited" );
else
return QString::number( value );
}
QDebug operator<<( QDebug debug, const QskLayoutHint& hint )
QDebug operator<<( QDebug debug, const QskLayoutMetrics& metrics )
{
QDebugStateSaver saver( debug );
debug.nospace();
debug << "LayoutHint" << "( "
<< qskHintValueString( hint.minimum() ) << ", "
<< qskHintValueString( hint.preferred() ) << ", "
<< qskHintValueString( hint.maximum() ) << " )";
debug << "LayoutMetrics" << "( "
<< qskHintValueString( metrics.minimum() ) << ", "
<< qskHintValueString( metrics.preferred() ) << ", "
<< qskHintValueString( metrics.maximum() ) << " )";
return debug;
}
#endif
#include "moc_QskLayoutHint.cpp"
#include "moc_QskLayoutMetrics.cpp"

View File

@ -3,15 +3,15 @@
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#ifndef QSK_LAYOUT_HINT_H
#define QSK_LAYOUT_HINT_H
#ifndef QSK_LAYOUT_METRICS_H
#define QSK_LAYOUT_METRICS_H
#include "QskGlobal.h"
#include <qglobal.h>
#include <qmetatype.h>
#include <limits>
class QSK_EXPORT QskLayoutHint
class QSK_EXPORT QskLayoutMetrics
{
Q_GADGET
@ -20,19 +20,19 @@ class QSK_EXPORT QskLayoutHint
Q_PROPERTY( qreal maximum READ maximum WRITE setMaximum )
public:
constexpr QskLayoutHint() noexcept = default;
constexpr QskLayoutHint( qreal minimum, qreal preferred, qreal maximum ) noexcept;
constexpr QskLayoutMetrics() noexcept = default;
constexpr QskLayoutMetrics( qreal minimum, qreal preferred, qreal maximum ) noexcept;
void normalize() noexcept;
QskLayoutHint normalized() const noexcept;
QskLayoutMetrics normalized() const noexcept;
constexpr bool isDefault() const noexcept;
qreal size( int which ) const noexcept;
void setSize( int which, qreal size ) noexcept;
qreal metric( int which ) const noexcept;
void setMetric( int which, qreal metric ) noexcept;
constexpr bool operator==( const QskLayoutHint& ) const noexcept;
constexpr bool operator!=( const QskLayoutHint& ) const noexcept;
constexpr bool operator==( const QskLayoutMetrics& ) const noexcept;
constexpr bool operator!=( const QskLayoutMetrics& ) const noexcept;
void setMinimum( qreal value ) noexcept;
constexpr qreal minimum() const noexcept;
@ -43,8 +43,8 @@ class QSK_EXPORT QskLayoutHint
void setMaximum( qreal value ) noexcept;
constexpr qreal maximum() const noexcept;
void setSizes( qreal minimum, qreal preferred, qreal maximum ) noexcept;
void expandTo( const QskLayoutHint& ) noexcept;
void setMetrics( qreal minimum, qreal preferred, qreal maximum ) noexcept;
void expandTo( const QskLayoutMetrics& ) noexcept;
void expandMinimum( qreal value ) noexcept;
void expandPreferred( qreal value ) noexcept;
@ -56,18 +56,18 @@ class QSK_EXPORT QskLayoutHint
private:
qreal m_minimum = 0.0;
qreal m_preferred = 0.0;
qreal m_maximum = QskLayoutHint::unlimited;
qreal m_maximum = QskLayoutMetrics::unlimited;
};
Q_DECLARE_TYPEINFO( QskLayoutHint, Q_MOVABLE_TYPE );
Q_DECLARE_METATYPE( QskLayoutHint )
Q_DECLARE_TYPEINFO( QskLayoutMetrics, Q_MOVABLE_TYPE );
Q_DECLARE_METATYPE( QskLayoutMetrics )
QT_WARNING_PUSH
QT_WARNING_DISABLE_CLANG("-Wfloat-equal")
QT_WARNING_DISABLE_GCC("-Wfloat-equal")
QT_WARNING_DISABLE_INTEL(1572)
inline constexpr QskLayoutHint::QskLayoutHint(
inline constexpr QskLayoutMetrics::QskLayoutMetrics(
qreal minimum, qreal preferred, qreal maximum ) noexcept
: m_minimum( minimum )
, m_preferred( preferred )
@ -75,55 +75,55 @@ inline constexpr QskLayoutHint::QskLayoutHint(
{
}
inline constexpr qreal QskLayoutHint::minimum() const noexcept
inline constexpr qreal QskLayoutMetrics::minimum() const noexcept
{
return m_minimum;
}
inline void QskLayoutHint::setMinimum( qreal value ) noexcept
inline void QskLayoutMetrics::setMinimum( qreal value ) noexcept
{
m_minimum = value;
}
inline constexpr qreal QskLayoutHint::preferred() const noexcept
inline constexpr qreal QskLayoutMetrics::preferred() const noexcept
{
return m_preferred;
}
inline void QskLayoutHint::setPreferred( qreal value ) noexcept
inline void QskLayoutMetrics::setPreferred( qreal value ) noexcept
{
m_preferred = value;
}
inline constexpr qreal QskLayoutHint::maximum() const noexcept
inline constexpr qreal QskLayoutMetrics::maximum() const noexcept
{
return m_maximum;
}
inline void QskLayoutHint::setMaximum( qreal value ) noexcept
inline void QskLayoutMetrics::setMaximum( qreal value ) noexcept
{
m_maximum = value;
}
inline void QskLayoutHint::expandMinimum( qreal value ) noexcept
inline void QskLayoutMetrics::expandMinimum( qreal value ) noexcept
{
if ( value > m_minimum )
m_minimum = value;
}
inline void QskLayoutHint::expandPreferred( qreal value ) noexcept
inline void QskLayoutMetrics::expandPreferred( qreal value ) noexcept
{
if ( value > m_preferred )
m_preferred = value;
}
inline void QskLayoutHint::expandMaximum( qreal value ) noexcept
inline void QskLayoutMetrics::expandMaximum( qreal value ) noexcept
{
if ( value > m_maximum )
m_maximum = value;
}
inline void QskLayoutHint::setSizes(
inline void QskLayoutMetrics::setMetrics(
qreal minimum, qreal preferred, qreal maximum ) noexcept
{
m_minimum = minimum;
@ -131,7 +131,7 @@ inline void QskLayoutHint::setSizes(
m_maximum = maximum;
}
inline qreal QskLayoutHint::size( int which ) const noexcept
inline qreal QskLayoutMetrics::metric( int which ) const noexcept
{
switch( which )
{
@ -148,25 +148,27 @@ inline qreal QskLayoutHint::size( int which ) const noexcept
return 0.0;
}
inline constexpr bool QskLayoutHint::isDefault() const noexcept
inline constexpr bool QskLayoutMetrics::isDefault() const noexcept
{
return ( m_minimum == 0.0 ) && ( m_preferred == 0.0 )
&& ( m_maximum == QskLayoutHint::unlimited );
&& ( m_maximum == QskLayoutMetrics::unlimited );
}
inline constexpr bool QskLayoutHint::operator==( const QskLayoutHint& other ) const noexcept
inline constexpr bool QskLayoutMetrics::operator==(
const QskLayoutMetrics& other ) const noexcept
{
return ( m_preferred == other.m_preferred )
&& ( m_minimum == other.m_minimum )
&& ( m_maximum == other.m_maximum );
}
inline constexpr bool QskLayoutHint::operator!=( const QskLayoutHint& other ) const noexcept
inline constexpr bool QskLayoutMetrics::operator!=(
const QskLayoutMetrics& other ) const noexcept
{
return !( *this == other );
}
inline QskLayoutHint QskLayoutHint::normalized() const noexcept
inline QskLayoutMetrics QskLayoutMetrics::normalized() const noexcept
{
auto hint = *this;
hint.normalize();
@ -178,7 +180,7 @@ QT_WARNING_POP
#ifndef QT_NO_DEBUG_STREAM
class QDebug;
QSK_EXPORT QDebug operator<<( QDebug, const QskLayoutHint& );
QSK_EXPORT QDebug operator<<( QDebug, const QskLayoutMetrics& );
#endif

View File

@ -4,7 +4,7 @@
*****************************************************************************/
#include "QskLinearLayoutEngine.h"
#include "QskLayoutHint.h"
#include "QskLayoutMetrics.h"
#include "QskLayoutChain.h"
#include "QskSizePolicy.h"
#include "QskQuick.h"
@ -138,11 +138,11 @@ QskLayoutChain::CellData Element::cell(
{
if ( isLayoutOrientation )
{
cell.hint.setMinimum( m_spacing );
cell.hint.setPreferred( m_spacing );
cell.metrics.setMinimum( m_spacing );
cell.metrics.setPreferred( m_spacing );
if ( m_stretch <= 0 )
cell.hint.setMaximum( m_spacing );
cell.metrics.setMaximum( m_spacing );
cell.stretch = qMax( m_stretch, 0 );
}
@ -445,7 +445,7 @@ void QskLinearLayoutEngine::setupChain( Qt::Orientation orientation,
auto cell = element.cell( orientation, isLayoutOrientation );
if ( element.item() )
cell.hint = layoutHint( element.item(), orientation, constraint );
cell.metrics = layoutMetrics( element.item(), orientation, constraint );
chain.expandCell( index2, cell );

View File

@ -286,7 +286,7 @@ HEADERS += \
layouts/QskIndexedLayoutBox.h \
layouts/QskLayoutChain.h \
layouts/QskLayoutEngine2D.cpp \
layouts/QskLayoutHint.h \
layouts/QskLayoutMetrics.h \
layouts/QskLinearBox.h \
layouts/QskLinearLayoutEngine.h \
layouts/QskStackBoxAnimator.h \
@ -298,7 +298,7 @@ SOURCES += \
layouts/QskIndexedLayoutBox.cpp \
layouts/QskLayoutChain.cpp \
layouts/QskLayoutEngine2D.cpp \
layouts/QskLayoutHint.cpp \
layouts/QskLayoutMetrics.cpp \
layouts/QskLinearBox.cpp \
layouts/QskLinearLayoutEngine.cpp \
layouts/QskStackBoxAnimator.cpp \