mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
Setting field for QgsFieldComboBox should be case-insensitive
This commit is contained in:
parent
c5b9fa23cd
commit
b4a798e892
@ -47,7 +47,7 @@ QModelIndex QgsFieldModel::indexFromName( const QString &fieldName )
|
||||
if ( mAllowEmpty && fieldName.isEmpty() )
|
||||
return index( 0, 0 );
|
||||
|
||||
int r = mFields.indexFromName( fldName );
|
||||
int r = mFields.lookupField( fldName );
|
||||
if ( r >= 0 )
|
||||
{
|
||||
if ( mAllowEmpty )
|
||||
|
@ -69,6 +69,28 @@ class TestQgsFieldModel(unittest.TestCase):
|
||||
i = m.indexFromName('not a field')
|
||||
self.assertFalse(i.isValid())
|
||||
|
||||
# test with alias
|
||||
i = m.indexFromName('text field')
|
||||
self.assertFalse(i.isValid())
|
||||
l.setFieldAlias(0, 'text field')
|
||||
i = m.indexFromName('text field')
|
||||
self.assertTrue(i.isValid())
|
||||
self.assertEqual(i.row(), 0)
|
||||
i = m.indexFromName('int field')
|
||||
self.assertFalse(i.isValid())
|
||||
l.setFieldAlias(1, 'int field')
|
||||
i = m.indexFromName('int field')
|
||||
self.assertTrue(i.isValid())
|
||||
self.assertEqual(i.row(), 1)
|
||||
|
||||
# should be case insensitive
|
||||
i = m.indexFromName('FLDTXT')
|
||||
self.assertTrue(i.isValid())
|
||||
self.assertEqual(i.row(), 0)
|
||||
i = m.indexFromName('FLDINT')
|
||||
self.assertTrue(i.isValid())
|
||||
self.assertEqual(i.row(), 1)
|
||||
|
||||
# try with expression
|
||||
m.setAllowExpression(True)
|
||||
i = m.indexFromName('not a field')
|
||||
@ -90,6 +112,8 @@ class TestQgsFieldModel(unittest.TestCase):
|
||||
self.assertEqual(m.indexFromName('fldtxt').row(), 1)
|
||||
self.assertEqual(m.indexFromName('fldint').row(), 2)
|
||||
self.assertEqual(m.indexFromName('not a field').row(), 3)
|
||||
self.assertEqual(m.indexFromName('FLDTXT').row(), 1)
|
||||
self.assertEqual(m.indexFromName('FLDINT').row(), 2)
|
||||
|
||||
def testIsField(self):
|
||||
l, m = create_model()
|
||||
|
Loading…
x
Reference in New Issue
Block a user