summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx
diff options
context:
space:
mode:
authorFabian Bumberger <fbumberger@rim.com>2014-03-07 14:05:45 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-08 11:45:29 +0100
commit43af92be45b5ea59c7db71b977faf5870a0baa24 (patch)
tree9f36ec53222a7c81815d423d02c1b1568169f43c /src/plugins/platforms/qnx
parent7591abbe0402d7fcb6305728c1456c1e148d1c40 (diff)
BlackBerry: Choose the appropriate file dialog type
This chooses the appropriate file dialog type based on the nameFilters that were set. Change-Id: I0c674eacbaebf862ce4359e744271c0d6382c216 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx')
-rw-r--r--src/plugins/platforms/qnx/qqnxfilepicker.cpp36
-rw-r--r--src/plugins/platforms/qnx/qqnxfilepicker.h1
2 files changed, 36 insertions, 1 deletions
diff --git a/src/plugins/platforms/qnx/qqnxfilepicker.cpp b/src/plugins/platforms/qnx/qqnxfilepicker.cpp
index 843b035037..830b110f2a 100644
--- a/src/plugins/platforms/qnx/qqnxfilepicker.cpp
+++ b/src/plugins/platforms/qnx/qqnxfilepicker.cpp
@@ -48,6 +48,7 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonParseError>
+#include <QMimeDatabase>
#include <QUrl>
#include <private/qppsobject_p.h>
@@ -119,7 +120,7 @@ void QQnxFilePicker::open()
}
QVariantMap map;
- map[QStringLiteral("Type")] = QStringLiteral("Other");
+ map[QStringLiteral("Type")] = filePickerType();
map[QStringLiteral("Mode")] = modeToString(m_mode);
map[QStringLiteral("Title")] = m_title;
map[QStringLiteral("ViewMode")] = QStringLiteral("Default");
@@ -281,6 +282,39 @@ void QQnxFilePicker::handleFilePickerResponse(const char *data)
cleanup();
}
+QString QQnxFilePicker::filePickerType() const
+{
+ bool images = false;
+ bool video = false;
+ bool music = false;
+ QMimeDatabase mimeDb;
+ for (int i = 0; i < filters().count(); i++) {
+ QList<QMimeType> mimeTypes = mimeDb.mimeTypesForFileName(filters().at(i));
+ if (mimeTypes.isEmpty())
+ return QStringLiteral("Other");
+
+ if (mimeTypes.first().name().startsWith(QLatin1String("image")))
+ images = true;
+ else if (mimeTypes.first().name().startsWith(QLatin1String("audio")))
+ music = true;
+ else if (mimeTypes.first().name().startsWith(QLatin1String("video")))
+ video = true;
+ else
+ return QStringLiteral("Other");
+ }
+
+ if (!video && !music)
+ return QStringLiteral("Picture");
+
+ if (!images && !music)
+ return QStringLiteral("Video");
+
+ if (!images && !video)
+ return QStringLiteral("Music");
+
+ return QStringLiteral("Other");
+}
+
QString QQnxFilePicker::modeToString(QQnxFilePicker::Mode mode) const
{
switch (mode) {
diff --git a/src/plugins/platforms/qnx/qqnxfilepicker.h b/src/plugins/platforms/qnx/qqnxfilepicker.h
index 5bb8f0969f..e8272900b0 100644
--- a/src/plugins/platforms/qnx/qqnxfilepicker.h
+++ b/src/plugins/platforms/qnx/qqnxfilepicker.h
@@ -92,6 +92,7 @@ public Q_SLOTS:
private:
void cleanup();
void handleFilePickerResponse(const char *data);
+ QString filePickerType() const;
QString modeToString(Mode mode) const;