mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
update: plugin settings daemon interface
Change-Id: I2157ff9e14a6c878a30810e9ad008593bb61272b
This commit is contained in:
parent
cfec30b03e
commit
f190e4de76
Notes:
gerrit
2019-01-16 16:57:59 +08:00
Reviewed-on: https://cr.deepin.io/41365 Project: dde/dde-dock Branch: refs/heads/dev/daemon-plugin-settings
@ -122,11 +122,11 @@ void DockPluginsController::requestSetAppletVisible(PluginsItemInterface * const
|
||||
|
||||
void DockPluginsController::startLoader()
|
||||
{
|
||||
#ifdef QT_DEBUG
|
||||
const QString pluginsDir("../plugins");
|
||||
#else
|
||||
const QString pluginsDir("../lib/dde-dock/plugins");
|
||||
#endif
|
||||
QString pluginsDir("../plugins");
|
||||
if (!QDir(pluginsDir).exists()) {
|
||||
pluginsDir = "/usr/lib/dde-dock/plugins";
|
||||
}
|
||||
qDebug() << "using dock plugins dir:" << pluginsDir;
|
||||
|
||||
AbstractPluginsController::startLoader(new PluginLoader(pluginsDir, this));
|
||||
}
|
||||
|
@ -26,8 +26,6 @@
|
||||
#include <QDir>
|
||||
#include <QGSettings>
|
||||
|
||||
qlonglong currentNanoTime() { return QDateTime::currentMSecsSinceEpoch() / 1000 / 1000; }
|
||||
|
||||
AbstractPluginsController::AbstractPluginsController(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_dbusDaemonInterface(QDBusConnection::sessionBus().interface())
|
||||
@ -35,23 +33,28 @@ AbstractPluginsController::AbstractPluginsController(QObject *parent)
|
||||
{
|
||||
qApp->installEventFilter(this);
|
||||
|
||||
refreshPluginSettings(currentNanoTime());
|
||||
refreshPluginSettings();
|
||||
|
||||
connect(m_dockDaemonInter, &DockDaemonInter::PluginSettingsUpdated, this, &AbstractPluginsController::refreshPluginSettings, Qt::QueuedConnection);
|
||||
connect(m_dockDaemonInter, &DockDaemonInter::PluginSettingsSynced, this, &AbstractPluginsController::refreshPluginSettings, Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
void AbstractPluginsController::saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value) {
|
||||
refreshPluginSettings(currentNanoTime());
|
||||
refreshPluginSettings();
|
||||
|
||||
QJsonObject valueObject = m_pluginSettingsObject.value(itemInter->pluginName()).toObject();
|
||||
valueObject.insert(key, value.toJsonValue());
|
||||
m_pluginSettingsObject.insert(itemInter->pluginName(), valueObject);
|
||||
// save to local cache
|
||||
QJsonObject localObject = m_pluginSettingsObject.value(itemInter->pluginName()).toObject();
|
||||
localObject.insert(key, value.toJsonValue());
|
||||
m_pluginSettingsObject.insert(itemInter->pluginName(), localObject);
|
||||
|
||||
m_dockDaemonInter->SetPluginSettings(currentNanoTime(),
|
||||
QJsonDocument(m_pluginSettingsObject).toJson(QJsonDocument::JsonFormat::Compact));
|
||||
// save to daemon
|
||||
QJsonObject remoteObject, remoteObjectInter;
|
||||
remoteObjectInter.insert(key, value.toJsonValue());
|
||||
remoteObject.insert(itemInter->pluginName(), remoteObjectInter);
|
||||
m_dockDaemonInter->MergePluginSettings(QJsonDocument(remoteObject).toJson(QJsonDocument::JsonFormat::Compact));
|
||||
}
|
||||
|
||||
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()) {
|
||||
v = fallback;
|
||||
@ -173,10 +176,8 @@ void AbstractPluginsController::initPlugin(PluginsItemInterface *interface) {
|
||||
qDebug() << objectName() << "init plugin finished: " << interface->pluginName();
|
||||
}
|
||||
|
||||
void AbstractPluginsController::refreshPluginSettings(qlonglong ts)
|
||||
void AbstractPluginsController::refreshPluginSettings()
|
||||
{
|
||||
// TODO: handle nano seconds
|
||||
|
||||
const QString &pluginSettings = m_dockDaemonInter->GetPluginSettings().value();
|
||||
if (pluginSettings.isEmpty()) {
|
||||
qDebug() << "Error! get plugin settings from dbus failed!";
|
||||
|
@ -60,7 +60,7 @@ private slots:
|
||||
void positionChanged();
|
||||
void loadPlugin(const QString &pluginFile);
|
||||
void initPlugin(PluginsItemInterface *interface);
|
||||
void refreshPluginSettings(qlonglong ts);
|
||||
void refreshPluginSettings();
|
||||
|
||||
private:
|
||||
bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE;
|
||||
|
@ -157,11 +157,11 @@ void SystemTraysController::saveValueSystemTrayItem(const QString &itemKey, cons
|
||||
|
||||
void SystemTraysController::startLoader()
|
||||
{
|
||||
#ifdef QT_DEBUG
|
||||
const QString pluginsDir("../plugins/system-trays");
|
||||
#else
|
||||
const QString pluginsDir("../lib/dde-dock/plugins/system-trays");
|
||||
#endif
|
||||
QString pluginsDir("../plugins/system-trays");
|
||||
if (!QDir(pluginsDir).exists()) {
|
||||
pluginsDir = "/usr/lib/dde-dock/plugins/system-trays";
|
||||
}
|
||||
qDebug() << "using system tray plugins dir:" << pluginsDir;
|
||||
|
||||
AbstractPluginsController::startLoader(new PluginLoader(pluginsDir, this));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user