From b701d5a9add6276d926d868f95d02b26bc0f5fa8 Mon Sep 17 00:00:00 2001 From: Paul I Date: Thu, 4 Apr 2019 11:58:36 +0300 Subject: [PATCH] Load plugins from app dir on Windows (#1408) --- src/Cutter.pro | 2 -- src/plugins/PluginManager.cpp | 18 ++++++++++++++++-- src/plugins/PluginManager.h | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Cutter.pro b/src/Cutter.pro index 4c935e6c..cc26a3b5 100644 --- a/src/Cutter.pro +++ b/src/Cutter.pro @@ -49,8 +49,6 @@ equals(CUTTER_BUNDLE_R2_APPBUNDLE, true) CONFIG += CUTTER_BUNDLE_R2_APPBU !defined(CUTTER_APPVEYOR_R2DEC, var) CUTTER_APPVEYOR_R2DEC=false equals(CUTTER_APPVEYOR_R2DEC, true) CONFIG += CUTTER_APPVEYOR_R2DEC -!defined(CUTTER_APPVEYOR_R2DEC, var) CUTTER_APPVEYOR_R2DEC=false - CUTTER_ENABLE_PYTHON { message("Python enabled.") DEFINES += CUTTER_ENABLE_PYTHON diff --git a/src/plugins/PluginManager.cpp b/src/plugins/PluginManager.cpp index 68834e84..6ccf8a79 100644 --- a/src/plugins/PluginManager.cpp +++ b/src/plugins/PluginManager.cpp @@ -53,9 +53,22 @@ void PluginManager::loadPlugins() qCritical() << "Failed to get a path to load plugins from."; return; } - QDir pluginsDir(pluginsDirStr); + loadPluginsFromDir(QDir(pluginsDirStr)); + +#ifdef Q_OS_WIN + QDir appDir; + appDir.mkdir("plugins"); + if (appDir.cd("plugins")) { + loadPluginsFromDir(appDir); + } +#endif +} + +void PluginManager::loadPluginsFromDir(const QDir &pluginsDir) +{ qInfo() << "Plugins are loaded from" << pluginsDir.absolutePath(); + int loadedPlugins = plugins.length(); QDir nativePluginsDir = pluginsDir; nativePluginsDir.mkdir("native"); @@ -71,7 +84,8 @@ void PluginManager::loadPlugins() } #endif - qInfo() << "Loaded" << plugins.length() << "plugin(s)."; + loadedPlugins = plugins.length() - loadedPlugins; + qInfo() << "Loaded" << loadedPlugins << "plugin(s)."; } diff --git a/src/plugins/PluginManager.h b/src/plugins/PluginManager.h index f02f862a..29353fad 100644 --- a/src/plugins/PluginManager.h +++ b/src/plugins/PluginManager.h @@ -35,6 +35,7 @@ private: QList plugins; void loadNativePlugins(const QDir &directory); + void loadPluginsFromDir(const QDir &pluginsDir); #ifdef CUTTER_ENABLE_PYTHON_BINDINGS void loadPythonPlugins(const QDir &directory);