summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-05-12 15:08:55 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-05-12 17:44:18 +0200
commit54a1a94be3b89cbf3d288e0fddf0fb14798fce80 (patch)
tree3ef3cc5433e9bedda44cec0280766febf01822c8
parentc7e7fe1f56852863217e052224e80464c9c0fdb8 (diff)
downloadqtquickcontrols-54a1a94be3b89cbf3d288e0fddf0fb14798fce80.tar.gz
Update 'dev' dependencies
Along with compile fixes Change-Id: I7fc6397df83d485fbc4714ead16e74bfd079c90f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--dependencies.yaml2
-rw-r--r--examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.cpp33
-rw-r--r--examples/quickcontrols/controls/tableview/src/sortfilterproxymodel.h3
-rw-r--r--src/controls/Private/qquickstyleitem.cpp3
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));
}