Skip to content

Commit

Permalink
Fixes #54141 : increase expression widget text size for long expressions
Browse files Browse the repository at this point in the history
  • Loading branch information
troopa81 authored and nyalldawson committed Oct 25, 2023
1 parent 8b4b87f commit 044809c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/gui/qgsfieldexpressionwidget.cpp
Expand Up @@ -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() )
{
Expand Down
15 changes: 15 additions & 0 deletions tests/src/gui/testqgsfieldexpressionwidget.cpp
Expand Up @@ -49,6 +49,7 @@ class TestQgsFieldExpressionWidget : public QObject
void testIsValid();
void testFilters();
void setNull();
void testVeryLongExpression();

private:
QgsFieldExpressionWidget *mWidget = nullptr;
Expand Down Expand Up @@ -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"

0 comments on commit 044809c

Please sign in to comment.