feat: update dock plugin version

add new interface for remove plugin settings PluginProxyInterface

Change-Id: Ib26c879b3b5faa822adbee5bf33c1bae3935b7c1
This commit is contained in:
listenerri 2019-02-14 17:20:56 +08:00
parent 040dca5e1a
commit e7002b8f28
Notes: gerrit 2019-02-14 17:43:04 +08:00
Verified+1: <jenkins@deepin.com>
Code-Review+2: listenerri <listenerri@gmail.com>
Submitted-by: listenerri <listenerri@gmail.com>
Submitted-at: Thu, 14 Feb 2019 17:43:03 +0800
Reviewed-on: https://cr.deepin.io/41624
Project: dde/dde-dock
Branch: refs/heads/dev/daemon-plugin-settings
4 changed files with 26 additions and 1 deletions

View File

@ -28,6 +28,7 @@
static const QStringList CompatiblePluginApiList {
"1.1.1",
"1.2",
DOCK_PLUGIN_API_VERSION
};
@ -69,6 +70,21 @@ const QVariant AbstractPluginsController::getValue(PluginsItemInterface *const i
return v;
}
void AbstractPluginsController::removeValue(PluginsItemInterface * const itemInter, const QStringList &keyList)
{
if (keyList.isEmpty()) {
m_pluginSettingsObject.remove(itemInter->pluginName());
} else {
QJsonObject localObject = m_pluginSettingsObject.value(itemInter->pluginName()).toObject();
for (auto key : keyList) {
localObject.remove(key);
}
m_pluginSettingsObject.insert(itemInter->pluginName(), localObject);
}
m_dockDaemonInter->RemovePluginSettings(itemInter->pluginName(), keyList);
}
QMap<PluginsItemInterface *, QMap<QString, QObject *> > &AbstractPluginsController::pluginsMap()
{
return m_pluginsMap;

View File

@ -45,6 +45,7 @@ public:
// implements PluginProxyInterface
void saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value) Q_DECL_OVERRIDE;
const QVariant getValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant& fallback = QVariant()) Q_DECL_OVERRIDE;
void removeValue(PluginsItemInterface * const itemInter, const QStringList &keyList) override;
protected:
QMap<PluginsItemInterface *, QMap<QString, QObject *>> &pluginsMap();

View File

@ -27,7 +27,7 @@
namespace Dock {
#define DOCK_PLUGIN_MIME "dock/plugin"
#define DOCK_PLUGIN_API_VERSION "1.2"
#define DOCK_PLUGIN_API_VERSION "1.2.1"
#define PROP_DISPLAY_MODE "DisplayMode"
///

View File

@ -85,6 +85,14 @@ public:
/// return value from .config/deepin/dde-dock.conf
///
virtual const QVariant getValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant& fallback = QVariant()) = 0;
///
/// \brief removeValue
/// remove the values specified by keyList
/// remove all values of itemInter if keyList is empty
/// SeeAlse: saveValue
///
virtual void removeValue(PluginsItemInterface *const itemInter, const QStringList &keyList) = 0;
};
#endif // PLUGINPROXYINTERFACE_H