Changeset View
Changeset View
Standalone View
Standalone View
src/writercollection.cpp
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Line(s) | |||||
48 | }; | 48 | }; | ||
49 | 49 | | |||
50 | WriterCollection::WriterCollection() | 50 | WriterCollection::WriterCollection() | ||
51 | : d_ptr(new WriterCollectionPrivate) | 51 | : d_ptr(new WriterCollectionPrivate) | ||
52 | { | 52 | { | ||
53 | Q_D(WriterCollection); | 53 | Q_D(WriterCollection); | ||
54 | const QList<Writer*> all = d->allWriters(); | 54 | const QList<Writer*> all = d->allWriters(); | ||
55 | 55 | | |||
56 | foreach (Writer* writer, all) { | 56 | for (Writer* writer : all) { | ||
57 | foreach (const QString& type, writer->mimetypes()) { | 57 | const QStringList lst = writer->mimetypes(); | ||
58 | for (const QString& type : lst) { | ||||
58 | d->m_writers.insertMulti(type, writer); | 59 | d->m_writers.insertMulti(type, writer); | ||
59 | } | 60 | } | ||
60 | } | 61 | } | ||
61 | } | 62 | } | ||
62 | 63 | | |||
63 | WriterCollection::~WriterCollection() | 64 | WriterCollection::~WriterCollection() | ||
64 | { | 65 | { | ||
65 | Q_D(WriterCollection); | 66 | Q_D(WriterCollection); | ||
66 | qDeleteAll(d->m_writers.begin(), d->m_writers.end()); | 67 | qDeleteAll(d->m_writers.begin(), d->m_writers.end()); | ||
67 | delete d; | 68 | delete d; | ||
68 | } | 69 | } | ||
69 | 70 | | |||
70 | 71 | | |||
71 | QList<Writer*> WriterCollection::WriterCollectionPrivate::allWriters() const | 72 | QList<Writer*> WriterCollection::WriterCollectionPrivate::allWriters() const | ||
72 | { | 73 | { | ||
73 | QStringList plugins; | 74 | QStringList plugins; | ||
74 | QStringList pluginPaths; | 75 | QStringList pluginPaths; | ||
75 | QStringList externalPlugins; | 76 | QStringList externalPlugins; | ||
76 | QStringList externalPluginPaths; | 77 | QStringList externalPluginPaths; | ||
77 | 78 | | |||
78 | const QStringList paths = QCoreApplication::libraryPaths(); | 79 | const QStringList paths = QCoreApplication::libraryPaths(); | ||
79 | Q_FOREACH (const QString& libraryPath, paths) { | 80 | for (const QString& libraryPath : paths) { | ||
80 | QString path(libraryPath + QStringLiteral("/kf5/kfilemetadata/writers")); | 81 | QString path(libraryPath + QStringLiteral("/kf5/kfilemetadata/writers")); | ||
81 | QDir dir(path); | 82 | QDir dir(path); | ||
82 | 83 | | |||
83 | if (!dir.exists()) { | 84 | if (!dir.exists()) { | ||
84 | continue; | 85 | continue; | ||
85 | } | 86 | } | ||
86 | 87 | | |||
87 | const QStringList entryList = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); | 88 | const QStringList entryList = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); | ||
Show All 17 Lines | 105 | if (externalPlugins.contains(externalPlugin)) | |||
105 | continue; | 106 | continue; | ||
106 | 107 | | |||
107 | externalPlugins << externalPlugin; | 108 | externalPlugins << externalPlugin; | ||
108 | externalPluginPaths << externalPluginDir.absoluteFilePath(externalPlugin); | 109 | externalPluginPaths << externalPluginDir.absoluteFilePath(externalPlugin); | ||
109 | } | 110 | } | ||
110 | externalPlugins.clear(); | 111 | externalPlugins.clear(); | ||
111 | 112 | | |||
112 | QList<Writer*> writers; | 113 | QList<Writer*> writers; | ||
113 | Q_FOREACH (const QString& pluginPath, pluginPaths) { | 114 | for (const QString& pluginPath : qAsConst(pluginPaths)) { | ||
114 | QPluginLoader loader(pluginPath); | 115 | QPluginLoader loader(pluginPath); | ||
115 | 116 | | |||
116 | if (!loader.load()) { | 117 | if (!loader.load()) { | ||
117 | qCWarning(KFILEMETADATA_LOG) << "Could not create Writer: " << pluginPath; | 118 | qCWarning(KFILEMETADATA_LOG) << "Could not create Writer: " << pluginPath; | ||
118 | qCWarning(KFILEMETADATA_LOG) << loader.errorString(); | 119 | qCWarning(KFILEMETADATA_LOG) << loader.errorString(); | ||
119 | continue; | 120 | continue; | ||
120 | } | 121 | } | ||
121 | 122 | | |||
Show All 10 Lines | 131 | } else { | |||
132 | qCDebug(KFILEMETADATA_LOG) << pluginPath; | 133 | qCDebug(KFILEMETADATA_LOG) << pluginPath; | ||
133 | } | 134 | } | ||
134 | } | 135 | } | ||
135 | else { | 136 | else { | ||
136 | qCDebug(KFILEMETADATA_LOG) << "Plugin could not create instance" << pluginPath; | 137 | qCDebug(KFILEMETADATA_LOG) << "Plugin could not create instance" << pluginPath; | ||
137 | } | 138 | } | ||
138 | } | 139 | } | ||
139 | 140 | | |||
140 | Q_FOREACH (const QString& externalPluginPath, externalPluginPaths) { | 141 | for (const QString& externalPluginPath : qAsConst(externalPluginPaths)) { | ||
141 | ExternalWriter *plugin = new ExternalWriter(externalPluginPath); | 142 | ExternalWriter *plugin = new ExternalWriter(externalPluginPath); | ||
142 | Writer* writer = new Writer; | 143 | Writer* writer = new Writer; | ||
143 | writer->d_ptr->m_plugin = plugin; | 144 | writer->d_ptr->m_plugin = plugin; | ||
144 | 145 | | |||
145 | writers << writer; | 146 | writers << writer; | ||
146 | } | 147 | } | ||
147 | 148 | | |||
148 | return writers; | 149 | return writers; | ||
Show All 19 Lines |