@@ -64,6 +64,9 @@ bool QgsAttributeTableFilterModel::lessThan( const QModelIndex &left, const QMod
64
64
65
65
void QgsAttributeTableFilterModel::sort ( int column, Qt::SortOrder order )
66
66
{
67
+ if ( order != Qt::AscendingOrder && order != Qt::DescendingOrder )
68
+ order = Qt::AscendingOrder;
69
+
67
70
int myColumn = mColumnMapping .at ( column );
68
71
masterModel ()->prefetchColumnData ( myColumn );
69
72
QSortFilterProxyModel::sort ( myColumn, order );
@@ -211,6 +214,9 @@ void QgsAttributeTableFilterModel::setAttributeTableConfig( const QgsAttributeTa
211
214
212
215
void QgsAttributeTableFilterModel::sort ( const QString &expression, Qt::SortOrder order )
213
216
{
217
+ if ( order != Qt::AscendingOrder && order != Qt::DescendingOrder )
218
+ order = Qt::AscendingOrder;
219
+
214
220
QSortFilterProxyModel::sort ( -1 );
215
221
masterModel ()->prefetchSortData ( expression );
216
222
QSortFilterProxyModel::sort ( 0 , order ) ;
@@ -226,11 +232,17 @@ void QgsAttributeTableFilterModel::setSelectedOnTop( bool selectedOnTop )
226
232
if ( mSelectedOnTop != selectedOnTop )
227
233
{
228
234
mSelectedOnTop = selectedOnTop;
235
+ int column = sortColumn ();
236
+ Qt::SortOrder order = sortOrder ();
229
237
230
- if ( sortColumn () == -1 )
231
- {
232
- sort ( 0 );
233
- }
238
+ // set default sort values if they are not correctly set
239
+ if ( column < 0 )
240
+ column = 0 ;
241
+
242
+ if ( order != Qt::AscendingOrder && order != Qt::DescendingOrder )
243
+ order = Qt::AscendingOrder;
244
+
245
+ sort ( column, order );
234
246
invalidate ();
235
247
}
236
248
}
0 commit comments