minor code rearrangements

This commit is contained in:
Uwe Rathmann 2025-03-17 11:37:06 +01:00
parent 36bea57477
commit 23a7859de6
4 changed files with 29 additions and 38 deletions

View File

@ -203,11 +203,15 @@ QSizeF QskMaterial3TextFieldSkinlet::sizeHint( const QskSkinnable* skinnable,
if ( isOutlined( textField ) ) if ( isOutlined( textField ) )
{ {
const QFontMetrics fm( textField->effectiveFont( Q::Header ) ); hint.rheight() += 0.5 * textField->effectiveFontHeight( Q::Header );
hint.rheight() += 0.5 * fm.height(); }
if ( hasCharacterCount( textField )
|| !effectiveText( textField, Q::Footer ).isEmpty() )
{
hint.rheight() += textHeight( textField, Q::Footer );
} }
hint.rheight() += effectiveFooterHeight( textField );
hint = hint.expandedTo( skinnable->strutSizeHint( Q::Panel ) ); hint = hint.expandedTo( skinnable->strutSizeHint( Q::Panel ) );
return hint; return hint;
@ -241,18 +245,4 @@ QString QskMaterial3TextFieldSkinlet::effectiveText(
return Inherited::effectiveText( textField, subControl ); return Inherited::effectiveText( textField, subControl );
} }
qreal QskMaterial3TextFieldSkinlet::effectiveFooterHeight(
const QskTextField* textField ) const
{
if ( hasCharacterCount( textField ) )
{
const auto h = textField->effectiveFontHeight( Q::Footer );
const auto margins = textField->marginHint( Q::Footer );
return h + margins.top() + margins.bottom();
}
return Inherited::effectiveFooterHeight( textField );
}
#include "moc_QskMaterial3TextFieldSkinlet.cpp" #include "moc_QskMaterial3TextFieldSkinlet.cpp"

View File

@ -36,8 +36,6 @@ class QSK_MATERIAL3_EXPORT QskMaterial3TextFieldSkinlet : public QskTextFieldSki
QString effectiveText( const QskTextField*, QString effectiveText( const QskTextField*,
QskAspect::Subcontrol ) const override; QskAspect::Subcontrol ) const override;
qreal effectiveFooterHeight( const QskTextField* ) const override;
}; };
#endif #endif

View File

@ -9,19 +9,6 @@
using Q = QskTextField; using Q = QskTextField;
static qreal qskEffectiveTextHeight( const QskTextField* textField,
QskAspect::Subcontrol subControl )
{
auto h = textField->effectiveFontHeight( subControl );
const auto margins = textField->marginHint( subControl );
h += margins.top() + margins.bottom();
const auto sz = textField->strutSizeHint( subControl );
return qMax( h, sz.height() );
}
QskTextFieldSkinlet::QskTextFieldSkinlet( QskSkin* skin ) QskTextFieldSkinlet::QskTextFieldSkinlet( QskSkin* skin )
: Inherited( skin ) : Inherited( skin )
{ {
@ -221,8 +208,8 @@ QRectF QskTextFieldSkinlet::inputPanelRect(
Q::Header/Q::Footer being available. Q::Header/Q::Footer being available.
*/ */
auto top = qskEffectiveTextHeight( textField, Q::Header ); auto top = textHeight( textField, Q::Header );
auto bottom = qskEffectiveTextHeight( textField, Q::Footer ); auto bottom = textHeight( textField, Q::Footer );
if ( rect.height() < top + h + bottom ) if ( rect.height() < top + h + bottom )
{ {
@ -270,6 +257,19 @@ QSizeF QskTextFieldSkinlet::sizeHint( const QskSkinnable* skinnable,
return hint; return hint;
} }
qreal QskTextFieldSkinlet::textHeight( const QskTextField* textField,
QskAspect::Subcontrol subControl ) const
{
auto h = textField->effectiveFontHeight( subControl );
const auto margins = textField->marginHint( subControl );
h += margins.top() + margins.bottom();
const auto sz = textField->strutSizeHint( subControl );
return qMax( h, sz.height() );
}
QString QskTextFieldSkinlet::effectiveText( QString QskTextFieldSkinlet::effectiveText(
const QskTextField* textField, QskAspect::Subcontrol subcontrol ) const const QskTextField* textField, QskAspect::Subcontrol subcontrol ) const
{ {
@ -299,13 +299,13 @@ QString QskTextFieldSkinlet::effectiveText(
qreal QskTextFieldSkinlet::effectiveHeaderHeight( const QskTextField* textField ) const qreal QskTextFieldSkinlet::effectiveHeaderHeight( const QskTextField* textField ) const
{ {
const auto text = effectiveText( textField, Q::Header ); const auto text = effectiveText( textField, Q::Header );
return text.isEmpty() ? 0.0 : qskEffectiveTextHeight( textField, Q::Header ); return text.isEmpty() ? 0.0 : textHeight( textField, Q::Header );
} }
qreal QskTextFieldSkinlet::effectiveFooterHeight( const QskTextField* textField ) const qreal QskTextFieldSkinlet::effectiveFooterHeight( const QskTextField* textField ) const
{ {
const auto text = effectiveText( textField, Q::Footer ); const auto text = effectiveText( textField, Q::Footer );
return text.isEmpty() ? 0.0 : qskEffectiveTextHeight( textField, Q::Footer ); return text.isEmpty() ? 0.0 : textHeight( textField, Q::Footer );
} }
#include "moc_QskTextFieldSkinlet.cpp" #include "moc_QskTextFieldSkinlet.cpp"

View File

@ -47,11 +47,14 @@ class QSK_EXPORT QskTextFieldSkinlet : public QskSkinlet
virtual QString effectiveText( const QskTextField*, virtual QString effectiveText( const QskTextField*,
QskAspect::Subcontrol ) const; QskAspect::Subcontrol ) const;
qreal effectiveHeaderHeight( const QskTextField* ) const; qreal textHeight( const QskTextField*, QskAspect::Subcontrol ) const;
virtual qreal effectiveFooterHeight( const QskTextField* ) const;
private: private:
QRectF inputPanelRect( const QskTextField*, const QRectF& ) const; QRectF inputPanelRect( const QskTextField*, const QRectF& ) const;
qreal effectiveFooterHeight( const QskTextField* ) const;
qreal effectiveHeaderHeight( const QskTextField* ) const;
}; };
#endif #endif