diff --git a/src/core/qgsfieldproxymodel.cpp b/src/core/qgsfieldproxymodel.cpp index 601713c2b34..52dd5309a12 100644 --- a/src/core/qgsfieldproxymodel.cpp +++ b/src/core/qgsfieldproxymodel.cpp @@ -85,6 +85,7 @@ bool QgsFieldProxyModel::filterAcceptsRow( int source_row, const QModelIndex &so ( mFilters.testFlag( Double ) && type == QVariant::Double ) || ( mFilters.testFlag( Date ) && type == QVariant::Date ) || ( mFilters.testFlag( Date ) && type == QVariant::DateTime ) || + ( mFilters.testFlag( DateTime ) && type == QVariant::DateTime ) || ( mFilters.testFlag( Time ) && type == QVariant::Time ) ) return true; diff --git a/src/core/qgsfieldproxymodel.h b/src/core/qgsfieldproxymodel.h index acddf1ae0e5..4ef45890293 100644 --- a/src/core/qgsfieldproxymodel.h +++ b/src/core/qgsfieldproxymodel.h @@ -46,6 +46,7 @@ class CORE_EXPORT QgsFieldProxyModel : public QSortFilterProxyModel Date = 16, //!< Date or datetime fields Time = 32, //!< Time fields HideReadOnly = 64, //!< Hide read-only fields + DateTime = 128, //!< Datetime fieldss AllTypes = Numeric | Date | String | Time, //!< All field types }; Q_DECLARE_FLAGS( Filters, Filter ) diff --git a/tests/src/gui/testqgsfieldexpressionwidget.cpp b/tests/src/gui/testqgsfieldexpressionwidget.cpp index ec8c6dec3f8..82bdfa938da 100644 --- a/tests/src/gui/testqgsfieldexpressionwidget.cpp +++ b/tests/src/gui/testqgsfieldexpressionwidget.cpp @@ -306,6 +306,10 @@ void TestQgsFieldExpressionWidget::testFilters() QCOMPARE( widget->mCombo->count(), 1 ); QCOMPARE( widget->mCombo->itemText( 0 ), QStringLiteral( "timefld" ) ); + widget->setFilters( QgsFieldProxyModel::DateTime ); + QCOMPARE( widget->mCombo->count(), 1 ); + QCOMPARE( widget->mCombo->itemText( 0 ), QStringLiteral( "datetimefld" ) ); + QgsProject::instance()->removeMapLayer( layer ); }