34 m_pluginPath = QProcessEnvironment::systemEnvironment().value(
"KRITA_PLUGIN_PATH");
41 QDir appDir(qApp->applicationDirPath());
55 Q_FOREACH (
const QDir& dir, searchDirs) {
62 Q_FOREACH (
const QFileInfo &info, dir.entryInfoList(nameFilters, QDir::Dirs | QDir::NoDotAndDotDot)) {
64 if (info.fileName().contains(
"PlugIns")) {
68 else if (info.fileName().contains(
"lib")) {
70 if (info.fileName().contains(
"lib")) {
72 QDir libDir(info.absoluteFilePath());
75#if defined(Q_PROCESSOR_ARM_64)
76 libDir.cd(
"arm64-v8a");
77#elif defined(Q_PROCESSOR_ARM)
78 libDir.cd(
"armeabi-v7a");
79#elif defined(Q_PROCESSOR_X86_64)
81#elif defined(Q_PROCESSOR_x86)
88 if (libDir.cd(
"kritaplugins")) {
96 Q_FOREACH (
const QFileInfo &subInfo, libDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) {
97 QDir subDir(subInfo.absoluteFilePath());
98 if (subDir.cd(
"kritaplugins")) {
140 QDirIterator dirIter(
m_pluginPath, QDirIterator::Subdirectories);
141 while (dirIter.hasNext()) {
145 if (dirIter.fileInfo().isFile() && dirIter.fileName().startsWith(
"lib_krita")) {
146#elif defined(_MSC_VER)
147 if (dirIter.fileInfo().isFile() && dirIter.fileName().startsWith(
"krita") && !dirIter.fileName().endsWith(
".pdb") && !dirIter.fileName().endsWith(
".lib")) {
149 if (dirIter.fileInfo().isFile() && dirIter.fileName().startsWith(
"krita") && !dirIter.fileName().endsWith(
".debug")) {
153 QScopedPointer<QPluginLoader> loader(
new QPluginLoader(dirIter.filePath()));
154 QJsonObject json = loader->metaData().value(
"MetaData").toObject();
156 dbgPlugins << json << json.value(
"X-KDE-ServiceTypes");
158 if (json.isEmpty()) {
159 qWarning() << dirIter.filePath() <<
"has no json!";
162 QJsonArray serviceTypes = json.value(
"X-KDE-ServiceTypes").toArray();
163 if (serviceTypes.isEmpty()) {
164 qWarning() << dirIter.fileName() <<
"has no X-KDE-ServiceTypes";
168 QStringList mimeTypes = json.value(
"X-KDE-ExtraNativeMimeTypes").toString().split(
',');
169 mimeTypes += json.value(
"MimeType").toString().split(
';');
170 mimeTypes += json.value(
"X-KDE-NativeMimeType").toString();
173 cacheEntry.
filePath = dirIter.filePath();
QSharedPointer< QPluginLoader > loader