diff --git a/frame/util/pluginloader.cpp b/frame/util/pluginloader.cpp index eda710b15..3b2e90168 100644 --- a/frame/util/pluginloader.cpp +++ b/frame/util/pluginloader.cpp @@ -24,6 +24,7 @@ #include #include #include +#include PluginLoader::PluginLoader(const QString &pluginDirPath, QObject *parent) : QThread(parent) @@ -35,8 +36,10 @@ void PluginLoader::run() { QDir pluginsDir(m_pluginDirPath); const QStringList plugins = pluginsDir.entryList(QDir::Files); + static const QGSettings gsetting("com.deepin.dde.dock.disableplugins", "/com/deepin/dde/dock/disableplugins/"); + static const auto disable_plugins_list = gsetting.get("disable-plugins-list").toStringList(); - for (const QString file : plugins) + for (QString file : plugins) { if (!QLibrary::isLibrary(file)) continue; @@ -45,6 +48,11 @@ void PluginLoader::run() if (file.startsWith("libdde-dock-")) continue; + if (disable_plugins_list.contains(file)) { + qDebug() << "disable loading plugin:" << file; + continue; + } + emit pluginFounded(pluginsDir.absoluteFilePath(file)); } diff --git a/gschema/com.deepin.dde.dock.module.gschema.xml b/gschema/com.deepin.dde.dock.module.gschema.xml index 2af4a9313..1107352a3 100644 --- a/gschema/com.deepin.dde.dock.module.gschema.xml +++ b/gschema/com.deepin.dde.dock.module.gschema.xml @@ -16,6 +16,13 @@ + + + [] + disable loading plugins + dock disable loading plugins + + false