diff --git a/src/gui/kernel/qplatformdialoghelper.cpp b/src/gui/kernel/qplatformdialoghelper.cpp index 8b3a2ad193..d14d575056 100644 --- a/src/gui/kernel/qplatformdialoghelper.cpp +++ b/src/gui/kernel/qplatformdialoghelper.cpp @@ -41,6 +41,7 @@ #include #include +#include #include #if QT_CONFIG(settings) #include @@ -779,18 +780,19 @@ void QPlatformFileDialogHelper::setOptions(const QSharedPointer= 0) - f = regexp.cap(2); + QRegularExpressionMatch match; + filter.indexOf(regexp, 0, &match); + if (match.hasMatch()) + f = match.captured(2); return f.split(QLatin1Char(' '), QString::SkipEmptyParts); } diff --git a/src/gui/kernel/qplatformdialoghelper.h b/src/gui/kernel/qplatformdialoghelper.h index 0832e19dc3..f09bec12da 100644 --- a/src/gui/kernel/qplatformdialoghelper.h +++ b/src/gui/kernel/qplatformdialoghelper.h @@ -414,7 +414,7 @@ public: void setOptions(const QSharedPointer &options); static QStringList cleanFilterList(const QString &filter); - static const char *filterRegExp; + static const char filterRegExp[]; Q_SIGNALS: void fileSelected(const QUrl &file);