mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
fix: 修改任务栏加载老版本插件的方式
老版本插件的加载通过插件的版本号进行判断,若插件版本不在版本列表中,则无需加载 Log: 优化任务栏加载老版本插件的方式 Influence: 任务栏启动的时候,观察老版本的插件(例如U盘插件等其他v20插件)是否正常加载 Task: https://pms.uniontech.com/task-view-112073.html Change-Id: I57b56276ee0cef14b59ff4b8bb8e223e0177f3bd
This commit is contained in:
parent
ec894f286a
commit
7658f813f6
@ -274,9 +274,12 @@ void AbstractPluginsController::loadPlugin(const QString &pluginFile)
|
|||||||
pluginIsValid = false;
|
pluginIsValid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginsItemInterface *interface = qobject_cast<PluginsItemInterface *>(pluginLoader->instance());
|
PluginsItemInterface *interface = nullptr;
|
||||||
if (!interface) {
|
// 如果版本是2.0.0,则认为是最新的插件,此时需要转换成v23的插件接口
|
||||||
// 如果识别当前插件失败,就认为这个插件是v20的插件,将其转换为v20插件接口
|
if (pluginApi == "2.0.0") {
|
||||||
|
interface = qobject_cast<PluginsItemInterface *>(pluginLoader->instance());
|
||||||
|
} else if (pluginApi < "2.0.0") {
|
||||||
|
// 如果版本号小于2.0.0的,就认为这个插件是v20的插件,将其转换为v20插件接口
|
||||||
PluginsItemInterface_V20 *interface_v20 = qobject_cast<PluginsItemInterface_V20 *>(pluginLoader->instance());
|
PluginsItemInterface_V20 *interface_v20 = qobject_cast<PluginsItemInterface_V20 *>(pluginLoader->instance());
|
||||||
if (interface_v20) {
|
if (interface_v20) {
|
||||||
// 将v20插件接口通过适配器转换成v23的接口,方便在后面识别
|
// 将v20插件接口通过适配器转换成v23的接口,方便在后面识别
|
||||||
@ -286,6 +289,8 @@ void AbstractPluginsController::loadPlugin(const QString &pluginFile)
|
|||||||
m_pluginAdapterMap[(qulonglong)(interface_v20)] = pluginAdapter;
|
m_pluginAdapterMap[(qulonglong)(interface_v20)] = pluginAdapter;
|
||||||
interface = pluginAdapter;
|
interface = pluginAdapter;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
qWarning() << "the plugin is not valid " << pluginFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!interface) {
|
if (!interface) {
|
||||||
|
@ -287,7 +287,7 @@ protected:
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
#define ModuleInterface_iid "com.deepin.dock.PluginsItemInterface_2_0_0"
|
#define ModuleInterface_iid "com.deepin.dock.PluginsItemInterface"
|
||||||
|
|
||||||
Q_DECLARE_INTERFACE(PluginsItemInterface, ModuleInterface_iid)
|
Q_DECLARE_INTERFACE(PluginsItemInterface, ModuleInterface_iid)
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user