diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-05-12 15:08:55 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-05-12 17:44:18 +0200 |
commit | 54a1a94be3b89cbf3d288e0fddf0fb14798fce80 (patch) | |
tree | 3ef3cc5433e9bedda44cec0280766febf01822c8 | |
parent | c7e7fe1f56852863217e052224e80464c9c0fdb8 (diff) | |
download | qtquickcontrols-54a1a94be3b89cbf3d288e0fddf0fb14798fce80.tar.gz |
Update 'dev' dependencies
Along with compile fixes
Change-Id: I7fc6397df83d485fbc4714ead16e74bfd079c90f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
4 files changed, 32 insertions, 9 deletions
diff --git a/dependencies.yaml b/dependencies.yaml index a9641a24..614cc0cc 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -1,4 +1,4 @@ dependencies: ../qtgraphicaleffects: - ref: 0e5719d4cd3b0dddeee8dae06d158f534293bd89 + ref: d355f47a57248a79ad85adfd83c33a1b1fb63062 required: false diff --git a/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.cpp b/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.cpp index 1e47f23e..69987a4a 100644 --- a/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.cpp +++ b/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.cpp @@ -108,22 +108,43 @@ void SortFilterProxyModel::setFilterRole(const QByteArray &role) QString SortFilterProxyModel::filterString() const { - return filterRegExp().pattern(); + return m_filterString; } void SortFilterProxyModel::setFilterString(const QString &filter) { - setFilterRegExp(QRegExp(filter, filterCaseSensitivity(), static_cast<QRegExp::PatternSyntax>(filterSyntax()))); + m_filterString = filter; + updateRegularExpression(); } SortFilterProxyModel::FilterSyntax SortFilterProxyModel::filterSyntax() const { - return static_cast<FilterSyntax>(filterRegExp().patternSyntax()); + return m_filterSyntax; } void SortFilterProxyModel::setFilterSyntax(SortFilterProxyModel::FilterSyntax syntax) { - setFilterRegExp(QRegExp(filterString(), filterCaseSensitivity(), static_cast<QRegExp::PatternSyntax>(syntax))); + m_filterSyntax = syntax; + updateRegularExpression(); +} + +void SortFilterProxyModel::updateRegularExpression() +{ + auto options = filterCaseSensitivity() == Qt::CaseInsensitive + ? QRegularExpression::CaseInsensitiveOption + : QRegularExpression::NoPatternOption; + + switch (filterSyntax()) { + case RegExp: + setFilterRegularExpression(QRegularExpression(filterString(), options)); + break; + case Wildcard: + setFilterRegularExpression(QRegularExpression(QRegularExpression::wildcardToRegularExpression(filterString()), options)); + break; + case FixedString: + setFilterRegularExpression(QRegularExpression(QRegularExpression::escape(filterString()), options)); + break; + } } QJSValue SortFilterProxyModel::get(int idx) const @@ -165,8 +186,8 @@ QHash<int, QByteArray> SortFilterProxyModel::roleNames() const bool SortFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { - QRegExp rx = filterRegExp(); - if (rx.isEmpty()) + QRegularExpression rx = filterRegularExpression(); + if (!rx.isValid()) return true; QAbstractItemModel *model = sourceModel(); if (filterRole().isEmpty()) { diff --git a/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.h b/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.h index dbc73e84..68cf0690 100644 --- a/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.h +++ b/examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.h @@ -111,9 +111,12 @@ protected: int roleKey(const QByteArray &role) const; QHash<int, QByteArray> roleNames() const; bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; + void updateRegularExpression(); private: bool m_complete; + FilterSyntax m_filterSyntax; + QString m_filterString; QByteArray m_sortRole; QByteArray m_filterRole; }; diff --git a/src/controls/Private/qquickstyleitem.cpp b/src/controls/Private/qquickstyleitem.cpp index fa51c4a3..20d89356 100644 --- a/src/controls/Private/qquickstyleitem.cpp +++ b/src/controls/Private/qquickstyleitem.cpp @@ -1041,8 +1041,7 @@ QSize QQuickStyleItem1::sizeFromContents(int width, int height) case MenuItem: case ComboBoxItem: if (static_cast<QStyleOptionMenuItem *>(m_styleoption)->menuItemType == QStyleOptionMenuItem::Scroller) { - size.setHeight(qMax(QApplication::globalStrut().height(), - qApp->style()->pixelMetric(QStyle::PM_MenuScrollerHeight, 0, 0))); + size.setHeight(qApp->style()->pixelMetric(QStyle::PM_MenuScrollerHeight, 0, 0)); } else { size = qApp->style()->sizeFromContents(QStyle::CT_MenuItem, m_styleoption, QSize(width,height)); } |