[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [ark] /: Simplify helper functions for mimetypes support
From: Elvis Angelaccio <elvis.angelaccio () kdemail ! net>
Date: 2015-10-31 17:01:09
Message-ID: E1ZsZWf-0002a7-PG () scm ! kde ! org
[Download RAW message or body]
Git commit 7257b0bbdefaf7dd96a27a89f80d17766f798251 by Elvis Angelaccio.
Committed on 31/10/2015 at 16:59.
Pushed by elvisangelaccio into branch 'master'.
Simplify helper functions for mimetypes support
Now all the supportedXXXMimeTypes() static functions behave consistently.
A set of mimetypes is always returned, and it's converted to a list only when
(and if) needed.
M +1 -1 app/mainwindow.cpp
M +16 -30 kerfuffle/archive_kerfuffle.cpp
M +2 -3 kerfuffle/archive_kerfuffle.h
M +1 -1 kerfuffle/createdialog.cpp
http://commits.kde.org/ark/7257b0bbdefaf7dd96a27a89f80d17766f798251
diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp
index 988b295..6fc1226 100644
--- a/app/mainwindow.cpp
+++ b/app/mainwindow.cpp
@@ -222,7 +222,7 @@ void MainWindow::openArchive()
Q_UNUSED(iface);
QPointer<QFileDialog> dlg = new QFileDialog(this, i18nc("to open an archive", \
"Open Archive"));
- dlg->setMimeTypeFilters(Kerfuffle::supportedMimeTypes());
+ dlg->setMimeTypeFilters(Kerfuffle::supportedMimeTypes().toList());
QStringList filters = dlg->nameFilters();
filters.removeDuplicates();
diff --git a/kerfuffle/archive_kerfuffle.cpp b/kerfuffle/archive_kerfuffle.cpp
index 29b36f6..0be4490 100644
--- a/kerfuffle/archive_kerfuffle.cpp
+++ b/kerfuffle/archive_kerfuffle.cpp
@@ -373,24 +373,17 @@ void Archive::enableHeaderEncryption(bool enable)
m_iface->setHeaderEncryptionEnabled(enable);
}
-QStringList supportedMimeTypes()
+QSet<QString> supportedMimeTypes()
{
- const QLatin1String constraint("(exist Library)");
const QLatin1String basePartService("Kerfuffle/Plugin");
+ const KService::List offers = KServiceTypeTrader::self()->query(basePartService,
+ \
QStringLiteral("(exist Library)")); + QSet<QString> supported;
- const KService::List offers = KServiceTypeTrader::self()->query(basePartService, \
constraint);
- KService::List::ConstIterator it = offers.constBegin();
- KService::List::ConstIterator itEnd = offers.constEnd();
-
- QStringList supported;
-
- for (; it != itEnd; ++it) {
- KService::Ptr service = *it;
- QStringList mimeTypes = service->serviceTypes();
-
- foreach (const QString& mimeType, mimeTypes) {
- if (mimeType != basePartService && !supported.contains(mimeType)) {
- supported.append(mimeType);
+ foreach (const KService::Ptr& service, offers) {
+ foreach (const QString& mimeType, service->serviceTypes()) {
+ if (mimeType != basePartService) {
+ supported.insert(mimeType);
}
}
}
@@ -400,24 +393,17 @@ QStringList supportedMimeTypes()
return supported;
}
-QStringList supportedWriteMimeTypes()
+QSet<QString> supportedWriteMimeTypes()
{
- const QLatin1String constraint("(exist Library) and ([X-KDE-Kerfuffle-ReadWrite] \
== true)"); const QLatin1String basePartService("Kerfuffle/Plugin");
+ const KService::List offers = KServiceTypeTrader::self()->query(basePartService,
+ \
QStringLiteral("(exist Library) and ([X-KDE-Kerfuffle-ReadWrite] == true)")); + \
QSet<QString> supported;
- const KService::List offers = KServiceTypeTrader::self()->query(basePartService, \
constraint);
- KService::List::ConstIterator it = offers.constBegin();
- KService::List::ConstIterator itEnd = offers.constEnd();
-
- QStringList supported;
-
- for (; it != itEnd; ++it) {
- KService::Ptr service = *it;
- QStringList mimeTypes = service->serviceTypes();
-
- foreach (const QString& mimeType, mimeTypes) {
- if (mimeType != basePartService && !supported.contains(mimeType)) {
- supported.append(mimeType);
+ foreach (const KService::Ptr& service, offers) {
+ foreach (const QString& mimeType, service->serviceTypes()) {
+ if (mimeType != basePartService) {
+ supported.insert(mimeType);
}
}
}
diff --git a/kerfuffle/archive_kerfuffle.h b/kerfuffle/archive_kerfuffle.h
index 0b939a4..6cef453 100644
--- a/kerfuffle/archive_kerfuffle.h
+++ b/kerfuffle/archive_kerfuffle.h
@@ -31,7 +31,6 @@
#include "kerfuffle_export.h"
#include <QString>
-#include <QStringList>
#include <QHash>
#include <QObject>
#include <QVariant>
@@ -202,8 +201,8 @@ private:
ArchiveError m_error;
};
-KERFUFFLE_EXPORT QStringList supportedMimeTypes();
-KERFUFFLE_EXPORT QStringList supportedWriteMimeTypes();
+KERFUFFLE_EXPORT QSet<QString> supportedMimeTypes();
+KERFUFFLE_EXPORT QSet<QString> supportedWriteMimeTypes();
KERFUFFLE_EXPORT QSet<QString> supportedEncryptEntriesMimeTypes();
KERFUFFLE_EXPORT QSet<QString> supportedEncryptHeaderMimeTypes();
} // namespace Kerfuffle
diff --git a/kerfuffle/createdialog.cpp b/kerfuffle/createdialog.cpp
index 9fe82be..726afd6 100644
--- a/kerfuffle/createdialog.cpp
+++ b/kerfuffle/createdialog.cpp
@@ -221,7 +221,7 @@ void CreateDialog::loadConfiguration()
const QString defaultMimeType = QStringLiteral("application/x-compressed-tar");
const QString lastMimeType = m_config.readEntry("LastMimeType", \
defaultMimeType);
- QStringList writeMimeTypes = Kerfuffle::supportedWriteMimeTypes();
+ QStringList writeMimeTypes = Kerfuffle::supportedWriteMimeTypes().toList();
// The filters need to be sorted by comment, so create a QMap with
// comment as key (QMaps are always sorted by key) and QMimeType
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic