Skip to content

Commit 044809c

Browse files
troopa81nyalldawson
authored andcommittedOct 25, 2023
Fixes #54141 : increase expression widget text size for long expressions
1 parent 8b4b87f commit 044809c

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed
 

‎src/gui/qgsfieldexpressionwidget.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,11 @@ void QgsFieldExpressionWidget::setField( const QString &fieldName )
190190
return;
191191
}
192192

193+
if ( fieldName.size() > mCombo->lineEdit()->maxLength() )
194+
{
195+
mCombo->lineEdit()->setMaxLength( fieldName.size() );
196+
}
197+
193198
QModelIndex idx = mFieldProxyModel->sourceFieldModel()->indexFromName( fieldName );
194199
if ( !idx.isValid() )
195200
{

‎tests/src/gui/testqgsfieldexpressionwidget.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class TestQgsFieldExpressionWidget : public QObject
4949
void testIsValid();
5050
void testFilters();
5151
void setNull();
52+
void testVeryLongExpression();
5253

5354
private:
5455
QgsFieldExpressionWidget *mWidget = nullptr;
@@ -372,5 +373,19 @@ void TestQgsFieldExpressionWidget::setNull()
372373
QgsProject::instance()->removeMapLayer( layer );
373374
}
374375

376+
void TestQgsFieldExpressionWidget::testVeryLongExpression()
377+
{
378+
QString veryLongExpression;
379+
for ( int i = 0; i < 32770; i++ )
380+
{
381+
veryLongExpression += "a";
382+
}
383+
384+
mWidget->setExpression( veryLongExpression );
385+
QCOMPARE( veryLongExpression.size(), mWidget->currentText().size() );
386+
};
387+
388+
389+
375390
QGSTEST_MAIN( TestQgsFieldExpressionWidget )
376391
#include "testqgsfieldexpressionwidget.moc"

0 commit comments

Comments
 (0)