Fixes #54141 : increase expression widget text size for long expressions

This commit is contained in:
Julien Cabieces 2023-10-25 17:40:05 +02:00 committed by Nyall Dawson
parent 8b4b87f639
commit 044809cd46
2 changed files with 20 additions and 0 deletions

View File

@ -190,6 +190,11 @@ void QgsFieldExpressionWidget::setField( const QString &fieldName )
return;
}
if ( fieldName.size() > mCombo->lineEdit()->maxLength() )
{
mCombo->lineEdit()->setMaxLength( fieldName.size() );
}
QModelIndex idx = mFieldProxyModel->sourceFieldModel()->indexFromName( fieldName );
if ( !idx.isValid() )
{

View File

@ -49,6 +49,7 @@ class TestQgsFieldExpressionWidget : public QObject
void testIsValid();
void testFilters();
void setNull();
void testVeryLongExpression();
private:
QgsFieldExpressionWidget *mWidget = nullptr;
@ -372,5 +373,19 @@ void TestQgsFieldExpressionWidget::setNull()
QgsProject::instance()->removeMapLayer( layer );
}
void TestQgsFieldExpressionWidget::testVeryLongExpression()
{
QString veryLongExpression;
for ( int i = 0; i < 32770; i++ )
{
veryLongExpression += "a";
}
mWidget->setExpression( veryLongExpression );
QCOMPARE( veryLongExpression.size(), mWidget->currentText().size() );
};
QGSTEST_MAIN( TestQgsFieldExpressionWidget )
#include "testqgsfieldexpressionwidget.moc"