Merge f6dd067d58
into 7acd0f9c63
This commit is contained in:
commit
f010da4f0e
|
@ -325,23 +325,11 @@ QSizeF QskSegmentedBarSkinlet::segmentSizeHint(
|
||||||
{
|
{
|
||||||
using Q = QskSegmentedBar;
|
using Q = QskSegmentedBar;
|
||||||
|
|
||||||
const QSizeF sizeSymbol =
|
|
||||||
bar->symbolHint( Q::Icon | Q::Selected ).defaultSize();
|
|
||||||
|
|
||||||
QSizeF segmentSize;
|
QSizeF segmentSize;
|
||||||
|
|
||||||
for ( int i = 0; i < bar->count(); i++ )
|
for ( int i = 0; i < bar->count(); i++ )
|
||||||
{
|
{
|
||||||
const auto option = bar->optionAt( i );
|
const auto size = sampleSizeHint( bar, which, QSizeF(), Q::Segment, i );
|
||||||
|
|
||||||
auto iconSize = option.icon().graphic().defaultSize();
|
|
||||||
iconSize = iconSize.expandedTo( sizeSymbol );
|
|
||||||
|
|
||||||
LayoutEngine layoutEngine( bar, i );
|
|
||||||
layoutEngine.setGraphicTextElements( bar,
|
|
||||||
Q::Text, option.text(), Q::Icon, iconSize );
|
|
||||||
|
|
||||||
const auto size = layoutEngine.sizeHint( which, QSizeF() );
|
|
||||||
segmentSize = segmentSize.expandedTo( size );
|
segmentSize = segmentSize.expandedTo( size );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -490,6 +478,30 @@ QskAspect::States QskSegmentedBarSkinlet::sampleStates(
|
||||||
return states;
|
return states;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSizeF QskSegmentedBarSkinlet::sampleSizeHint( const QskSkinnable* skinnable,
|
||||||
|
Qt::SizeHint which, const QSizeF& constraint, QskAspect::Subcontrol, int index ) const
|
||||||
|
{
|
||||||
|
if ( which != Qt::PreferredSize )
|
||||||
|
return QSizeF();
|
||||||
|
|
||||||
|
using Q = QskSegmentedBar;
|
||||||
|
auto bar = static_cast< const QskSegmentedBar* >( skinnable );
|
||||||
|
const auto option = bar->optionAt( index );
|
||||||
|
|
||||||
|
const QSizeF sizeSymbol =
|
||||||
|
bar->symbolHint( Q::Icon | Q::Selected ).defaultSize();
|
||||||
|
|
||||||
|
auto iconSize = option.icon().graphic().defaultSize();
|
||||||
|
iconSize = iconSize.expandedTo( sizeSymbol );
|
||||||
|
|
||||||
|
LayoutEngine layoutEngine( bar, index );
|
||||||
|
layoutEngine.setGraphicTextElements( bar,
|
||||||
|
Q::Text, option.text(), Q::Icon, iconSize );
|
||||||
|
|
||||||
|
const auto size = layoutEngine.sizeHint( which, constraint );
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
QSGNode* QskSegmentedBarSkinlet::updateSampleNode( const QskSkinnable* skinnable,
|
QSGNode* QskSegmentedBarSkinlet::updateSampleNode( const QskSkinnable* skinnable,
|
||||||
QskAspect::Subcontrol subControl, int index, QSGNode* node ) const
|
QskAspect::Subcontrol subControl, int index, QSGNode* node ) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,6 +48,9 @@ class QSK_EXPORT QskSegmentedBarSkinlet : public QskSkinlet
|
||||||
QskAspect::States sampleStates( const QskSkinnable*,
|
QskAspect::States sampleStates( const QskSkinnable*,
|
||||||
QskAspect::Subcontrol, int index ) const override;
|
QskAspect::Subcontrol, int index ) const override;
|
||||||
|
|
||||||
|
QSizeF sampleSizeHint( const QskSkinnable*, Qt::SizeHint, const QSizeF&,
|
||||||
|
QskAspect::Subcontrol, int ) const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QSGNode* updateSubNode( const QskSkinnable*,
|
QSGNode* updateSubNode( const QskSkinnable*,
|
||||||
quint8 nodeRole, QSGNode* ) const override;
|
quint8 nodeRole, QSGNode* ) const override;
|
||||||
|
|
|
@ -753,6 +753,12 @@ QVariant QskSkinlet::sampleAt( const QskSkinnable*,
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSizeF QskSkinlet::sampleSizeHint( const QskSkinnable*,
|
||||||
|
Qt::SizeHint, const QSizeF&, QskAspect::Subcontrol, int ) const
|
||||||
|
{
|
||||||
|
return QSizeF();
|
||||||
|
}
|
||||||
|
|
||||||
QSizeF QskSkinlet::hintWithoutConstraint(
|
QSizeF QskSkinlet::hintWithoutConstraint(
|
||||||
const QSizeF& hint, const QSizeF& constraint ) const
|
const QSizeF& hint, const QSizeF& constraint ) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,6 +64,9 @@ class QSK_EXPORT QskSkinlet
|
||||||
virtual QVariant sampleAt( const QskSkinnable*,
|
virtual QVariant sampleAt( const QskSkinnable*,
|
||||||
QskAspect::Subcontrol, int index ) const;
|
QskAspect::Subcontrol, int index ) const;
|
||||||
|
|
||||||
|
virtual QSizeF sampleSizeHint( const QskSkinnable*,
|
||||||
|
Qt::SizeHint, const QSizeF&, QskAspect::Subcontrol, int ) const;
|
||||||
|
|
||||||
const QVector< quint8 >& nodeRoles() const;
|
const QVector< quint8 >& nodeRoles() const;
|
||||||
|
|
||||||
void setOwnedBySkinnable( bool on );
|
void setOwnedBySkinnable( bool on );
|
||||||
|
|
Loading…
Reference in New Issue