Changeset View
Changeset View
Standalone View
Standalone View
src/filefetchjob.cpp
Show All 19 Lines | |||||
20 | 20 | | |||
21 | #include "filefetchjob.h" | 21 | #include "filefetchjob.h" | ||
22 | #include "filemetadatautil_p.h" | 22 | #include "filemetadatautil_p.h" | ||
23 | 23 | | |||
24 | #include <QTimer> | 24 | #include <QTimer> | ||
25 | #include <Baloo/File> | 25 | #include <Baloo/File> | ||
26 | 26 | | |||
27 | #include <KFileMetaData/UserMetaData> | 27 | #include <KFileMetaData/UserMetaData> | ||
28 | #include <KFileMetaData/PropertyInfo> | | |||
29 | 28 | | |||
30 | using namespace Baloo; | 29 | using namespace Baloo; | ||
31 | 30 | | |||
32 | FileFetchJob::FileFetchJob(const QStringList& urls, QObject* parent) | 31 | FileFetchJob::FileFetchJob(const QStringList& urls, QObject* parent) | ||
33 | : KJob(parent) | 32 | : KJob(parent) | ||
34 | , m_urls(urls) | 33 | , m_urls(urls) | ||
35 | { | 34 | { | ||
36 | } | 35 | } | ||
37 | 36 | | |||
38 | void FileFetchJob::start() | 37 | void FileFetchJob::start() | ||
39 | { | 38 | { | ||
40 | QTimer::singleShot(0, this, SLOT(doStart())); | 39 | QTimer::singleShot(0, this, SLOT(doStart())); | ||
41 | } | 40 | } | ||
42 | 41 | | |||
43 | static QVariantMap convertPropertyMap(const KFileMetaData::PropertyMap& propMap) | | |||
44 | { | | |||
45 | QVariantMap map; | | |||
46 | KFileMetaData::PropertyMap::const_iterator it = propMap.constBegin(); | | |||
47 | for (; it != propMap.constEnd(); it++) { | | |||
48 | KFileMetaData::PropertyInfo pi(it.key()); | | |||
49 | map.insertMulti(pi.name(), it.value()); | | |||
50 | } | | |||
51 | | ||||
52 | return map; | | |||
53 | } | | |||
54 | | ||||
55 | void FileFetchJob::doStart() | 42 | void FileFetchJob::doStart() | ||
56 | { | 43 | { | ||
57 | for (const QString& filePath : m_urls) { | 44 | for (const QString& filePath : m_urls) { | ||
58 | Baloo::File file(filePath); | 45 | Baloo::File file(filePath); | ||
59 | file.load(); | 46 | file.load(); | ||
60 | 47 | | |||
61 | QVariantMap prop = convertPropertyMap(file.properties()); | 48 | QVariantMap prop = Baloo::Private::toNamedVariantMap(file.properties()); | ||
62 | KFileMetaData::UserMetaData umd(filePath); | 49 | KFileMetaData::UserMetaData umd(filePath); | ||
63 | QVariantMap attributes = Baloo::Private::convertUserMetaData(umd); | 50 | QVariantMap attributes = Baloo::Private::convertUserMetaData(umd); | ||
64 | 51 | | |||
65 | prop.unite(attributes); | 52 | prop.unite(attributes); | ||
66 | 53 | | |||
67 | m_data << prop; | 54 | m_data << prop; | ||
68 | } | 55 | } | ||
69 | 56 | | |||
70 | emitResult(); | 57 | emitResult(); | ||
71 | } | 58 | } | ||
72 | 59 | | |||
73 | QList<QVariantMap> Baloo::FileFetchJob::data() const | 60 | QList<QVariantMap> Baloo::FileFetchJob::data() const | ||
74 | { | 61 | { | ||
75 | return m_data; | 62 | return m_data; | ||
76 | } | 63 | } |