mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat(plugin interface):interface method move to below,and add a version to interface
This commit is contained in:
parent
0c24252ad2
commit
7ce3a6c70d
@ -30,6 +30,7 @@
|
||||
static const QStringList CompatiblePluginApiList {
|
||||
"1.1.1",
|
||||
"1.2",
|
||||
"1.2.1",
|
||||
DOCK_PLUGIN_API_VERSION
|
||||
};
|
||||
|
||||
@ -45,7 +46,8 @@ AbstractPluginsController::AbstractPluginsController(QObject *parent)
|
||||
connect(m_dockDaemonInter, &DockDaemonInter::PluginSettingsSynced, this, &AbstractPluginsController::refreshPluginSettings, Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
void AbstractPluginsController::saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value) {
|
||||
void AbstractPluginsController::saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value)
|
||||
{
|
||||
// is it necessary?
|
||||
// refreshPluginSettings();
|
||||
|
||||
@ -61,7 +63,8 @@ void AbstractPluginsController::saveValue(PluginsItemInterface *const itemInter,
|
||||
m_dockDaemonInter->MergePluginSettings(QJsonDocument(remoteObject).toJson(QJsonDocument::JsonFormat::Compact));
|
||||
}
|
||||
|
||||
const QVariant AbstractPluginsController::getValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant& fallback) {
|
||||
const QVariant AbstractPluginsController::getValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &fallback)
|
||||
{
|
||||
// load from local cache
|
||||
QVariant v = m_pluginSettingsObject.value(itemInter->pluginName()).toObject().value(key).toVariant();
|
||||
if (v.isNull() || !v.isValid()) {
|
||||
@ -160,8 +163,7 @@ void AbstractPluginsController::loadPlugin(const QString &pluginFile)
|
||||
const QJsonObject &meta = pluginLoader->metaData().value("MetaData").toObject();
|
||||
const QString &pluginApi = meta.value("api").toString();
|
||||
bool pluginIsValid = true;
|
||||
if (pluginApi.isEmpty() || !CompatiblePluginApiList.contains(pluginApi))
|
||||
{
|
||||
if (pluginApi.isEmpty() || !CompatiblePluginApiList.contains(pluginApi)) {
|
||||
qWarning() << objectName()
|
||||
<< "plugin api version not matched! expect versions:" << CompatiblePluginApiList
|
||||
<< ", got version:" << pluginApi
|
||||
@ -171,8 +173,7 @@ void AbstractPluginsController::loadPlugin(const QString &pluginFile)
|
||||
}
|
||||
|
||||
PluginsItemInterface *interface = qobject_cast<PluginsItemInterface *>(pluginLoader->instance());
|
||||
if (!interface)
|
||||
{
|
||||
if (!interface) {
|
||||
qWarning() << objectName() << "load plugin failed!!!" << pluginLoader->errorString() << pluginFile;
|
||||
|
||||
pluginLoader->unload();
|
||||
@ -213,7 +214,8 @@ void AbstractPluginsController::loadPlugin(const QString &pluginFile)
|
||||
});
|
||||
}
|
||||
|
||||
void AbstractPluginsController::initPlugin(PluginsItemInterface *interface) {
|
||||
void AbstractPluginsController::initPlugin(PluginsItemInterface *interface)
|
||||
{
|
||||
qDebug() << objectName() << "init plugin: " << interface->pluginName();
|
||||
interface->init(this);
|
||||
qDebug() << objectName() << "init plugin finished: " << interface->pluginName();
|
||||
|
@ -27,7 +27,7 @@
|
||||
namespace Dock {
|
||||
|
||||
#define DOCK_PLUGIN_MIME "dock/plugin"
|
||||
#define DOCK_PLUGIN_API_VERSION "1.2.1"
|
||||
#define DOCK_PLUGIN_API_VERSION "1.2.2"
|
||||
|
||||
#define PROP_DISPLAY_MODE "DisplayMode"
|
||||
|
||||
|
@ -54,7 +54,6 @@ public:
|
||||
virtual const QString pluginName() const = 0;
|
||||
virtual const QString pluginDisplayName() const { return QString(); }
|
||||
|
||||
virtual PluginType type() { return Normal; }
|
||||
///
|
||||
/// \brief init
|
||||
/// init your plugins, you need to save proxyInter to m_proxyInter
|
||||
@ -224,6 +223,12 @@ public:
|
||||
///
|
||||
virtual void pluginSettingsChanged() {}
|
||||
|
||||
///
|
||||
/// \brief type
|
||||
/// default plugin add dock right,fixed plugin add to dock fixed area
|
||||
///
|
||||
virtual PluginType type() { return Normal; }
|
||||
|
||||
protected:
|
||||
///
|
||||
/// \brief m_proxyInter
|
||||
|
@ -1,3 +1,3 @@
|
||||
{
|
||||
"api": "1.1.1"
|
||||
"api": "1.2.2"
|
||||
}
|
||||
|
@ -1,3 +1,3 @@
|
||||
{
|
||||
"api": "1.1.1"
|
||||
"api": "1.2.2"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user