summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
diff options
context:
space:
mode:
authorElvis Angelaccio <elvis.angelaccio@kde.org>2016-09-05 12:32:35 +0200
committerDavid Faure <david.faure@kdab.com>2017-01-06 16:27:41 +0000
commit34f82b8abcb279542b6350e70609c549e39caafb (patch)
treead66121fcdd09f6e1278e1142f9e17a264863373 /tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
parentbc80cef1d4bb07605cba81de082625f07fc4136b (diff)
Improve mime type filters in QFileDialog
This patch improves the handling of mime type filters in QFileDialog. The main change is in selectMimeTypeFilter(), which was just falling back unconditionally on selectNameFilter(). Instead, mime type filters should have an higher priority than name filters. This patch also adds a new selectedMimeTypeFilter() method, which is used in the unit test. Change-Id: Ice8bb08f5ff46e4a942d539f6001424eca878f74 Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp')
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
index c9aef497af..44cb5a5bf8 100644
--- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
@@ -119,6 +119,8 @@ private slots:
void selectFilter();
void viewMode();
void proxymodel();
+ void setMimeTypeFilters_data();
+ void setMimeTypeFilters();
void setNameFilter_data();
void setNameFilter();
void setEmptyNameFilter();
@@ -1039,6 +1041,34 @@ void tst_QFiledialog::proxymodel()
QCOMPARE(fd.proxyModel(), nullptr);
}
+void tst_QFiledialog::setMimeTypeFilters_data()
+{
+ QTest::addColumn<QStringList>("mimeTypeFilters");
+ QTest::addColumn<QString>("targetMimeTypeFilter");
+ QTest::addColumn<QString>("expectedSelectedMimeTypeFilter");
+
+ const auto headerMime = QStringLiteral("text/x-chdr");
+ const auto jsonMime = QStringLiteral("application/json");
+ const auto zipMime = QStringLiteral("application/zip");
+
+ QTest::newRow("single mime filter (C header file)") << QStringList {headerMime} << headerMime << headerMime;
+ QTest::newRow("single mime filter (JSON file)") << QStringList {jsonMime} << jsonMime << jsonMime;
+ QTest::newRow("multiple mime filters") << QStringList {jsonMime, zipMime} << jsonMime << jsonMime;
+}
+
+void tst_QFiledialog::setMimeTypeFilters()
+{
+ QFETCH(QStringList, mimeTypeFilters);
+ QFETCH(QString, targetMimeTypeFilter);
+ QFETCH(QString, expectedSelectedMimeTypeFilter);
+
+ QFileDialog fd;
+ fd.setMimeTypeFilters(mimeTypeFilters);
+ fd.selectMimeTypeFilter(targetMimeTypeFilter);
+
+ QCOMPARE(fd.selectedMimeTypeFilter(), expectedSelectedMimeTypeFilter);
+}
+
void tst_QFiledialog::setEmptyNameFilter()
{
QFileDialog fd;