heightForWidth/widthForHeight improved
This commit is contained in:
parent
4eb74f5b71
commit
62de379794
|
@ -639,33 +639,13 @@ void QskInputPanel::keyReleaseEvent( QKeyEvent* event )
|
||||||
|
|
||||||
qreal QskInputPanel::heightForWidth( qreal width ) const
|
qreal QskInputPanel::heightForWidth( qreal width ) const
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
This code looks like as it could be generalized
|
|
||||||
and moved to QskLinearBox. TODO ...
|
|
||||||
*/
|
|
||||||
|
|
||||||
const auto margins = this->margins();
|
const auto margins = this->margins();
|
||||||
|
|
||||||
width -= margins.left() + margins.right();
|
width -= margins.left() + margins.right();
|
||||||
|
|
||||||
const auto padding = innerPadding(
|
const auto padding = innerPadding( Panel, QSizeF( width, width ) );
|
||||||
Panel, QSizeF( width, width ) );
|
|
||||||
|
|
||||||
width -= padding.left() + padding.right();
|
width -= padding.left() + padding.right();
|
||||||
|
|
||||||
qreal height = m_data->keyboard->heightForWidth( width );
|
qreal height = m_data->layout->heightForWidth( width );
|
||||||
|
|
||||||
const QskControl* controls[] =
|
|
||||||
{ m_data->prompt, m_data->inputProxy, m_data->predictionBar };
|
|
||||||
|
|
||||||
for ( auto control : controls )
|
|
||||||
{
|
|
||||||
if ( control->isVisible() )
|
|
||||||
{
|
|
||||||
height += m_data->layout->spacing();
|
|
||||||
height += control->sizeHint().height();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
height += padding.top() + padding.bottom();
|
height += padding.top() + padding.bottom();
|
||||||
height += margins.top() + margins.bottom();
|
height += margins.top() + margins.bottom();
|
||||||
|
@ -676,26 +656,11 @@ qreal QskInputPanel::heightForWidth( qreal width ) const
|
||||||
qreal QskInputPanel::widthForHeight( qreal height ) const
|
qreal QskInputPanel::widthForHeight( qreal height ) const
|
||||||
{
|
{
|
||||||
const auto margins = this->margins();
|
const auto margins = this->margins();
|
||||||
|
|
||||||
height -= margins.top() + margins.bottom();
|
height -= margins.top() + margins.bottom();
|
||||||
|
|
||||||
const auto padding = innerPadding(
|
const auto padding = innerPadding( Panel, QSizeF( height, height ) );
|
||||||
Panel, QSizeF( height, height ) );
|
|
||||||
|
|
||||||
height -= padding.top() + padding.bottom();
|
height -= padding.top() + padding.bottom();
|
||||||
|
|
||||||
const QskControl* controls[] =
|
|
||||||
{ m_data->prompt, m_data->inputProxy, m_data->predictionBar };
|
|
||||||
|
|
||||||
for ( auto control : controls )
|
|
||||||
{
|
|
||||||
if ( control->isVisible() )
|
|
||||||
{
|
|
||||||
height -= m_data->layout->spacing();
|
|
||||||
height -= control->sizeHint().height();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal width = m_data->keyboard->widthForHeight( height );
|
qreal width = m_data->keyboard->widthForHeight( height );
|
||||||
|
|
||||||
width += padding.left() + padding.right();
|
width += padding.left() + padding.right();
|
||||||
|
|
Loading…
Reference in New Issue