mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
feat: refresh sort order and container after DeepinSync
Change-Id: Ia859fc01a3dad560687e6085bffd2caf74e4074a
This commit is contained in:
parent
8ae30ec2d1
commit
040dca5e1a
Notes:
gerrit
2019-02-01 09:49:41 +08:00
Verified+1: <jenkins@deepin.com> Code-Review+2: listenerri <listenerri@gmail.com> Submitted-by: listenerri <listenerri@gmail.com> Submitted-at: Fri, 01 Feb 2019 09:49:41 +0800 Reviewed-on: https://cr.deepin.io/41550 Project: dde/dde-dock Branch: refs/heads/dev/daemon-plugin-settings
@ -44,7 +44,8 @@ AbstractPluginsController::AbstractPluginsController(QObject *parent)
|
||||
}
|
||||
|
||||
void AbstractPluginsController::saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value) {
|
||||
refreshPluginSettings();
|
||||
// is it necessary?
|
||||
// refreshPluginSettings();
|
||||
|
||||
// save to local cache
|
||||
QJsonObject localObject = m_pluginSettingsObject.value(itemInter->pluginName()).toObject();
|
||||
@ -193,18 +194,24 @@ void AbstractPluginsController::refreshPluginSettings()
|
||||
return;
|
||||
}
|
||||
|
||||
const QJsonObject &settingsObject = QJsonDocument::fromJson(pluginSettings.toLocal8Bit()).object();
|
||||
if (settingsObject.isEmpty()) {
|
||||
const QJsonObject &pluginSettingsObject = QJsonDocument::fromJson(pluginSettings.toLocal8Bit()).object();
|
||||
if (pluginSettingsObject.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto pluginsIt = settingsObject.constBegin(); pluginsIt != settingsObject.constEnd(); ++pluginsIt) {
|
||||
// nothing changed
|
||||
if (pluginSettingsObject == m_pluginSettingsObject) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto pluginsIt = pluginSettingsObject.constBegin(); pluginsIt != pluginSettingsObject.constEnd(); ++pluginsIt) {
|
||||
const QString &pluginName = pluginsIt.key();
|
||||
const QJsonObject &settingsObject = pluginsIt.value().toObject();
|
||||
QJsonObject newSettingsObject = m_pluginSettingsObject.value(pluginName).toObject();
|
||||
for (auto settingsIt = settingsObject.constBegin(); settingsIt != settingsObject.constEnd(); ++settingsIt) {
|
||||
newSettingsObject.insert(settingsIt.key(), settingsIt.value());
|
||||
}
|
||||
// TODO: remove not exists key-values
|
||||
m_pluginSettingsObject.insert(pluginName, newSettingsObject);
|
||||
}
|
||||
|
||||
@ -217,6 +224,18 @@ void AbstractPluginsController::refreshPluginSettings()
|
||||
for (PluginsItemInterface *pluginInter : m_pluginsMap.keys()) {
|
||||
pluginInter->pluginSettingsChanged();
|
||||
}
|
||||
|
||||
// reload all plugin items for sort order or container
|
||||
QMap<PluginsItemInterface *, QMap<QString, QObject *>> pluginsMapTemp = m_pluginsMap;
|
||||
for (auto it = pluginsMapTemp.constBegin(); it != pluginsMapTemp.constEnd(); ++it) {
|
||||
const QList<QString> &itemKeyList = it.value().keys();
|
||||
for (auto key : itemKeyList) {
|
||||
itemRemoved(it.key(), key);
|
||||
}
|
||||
for (auto key : itemKeyList) {
|
||||
itemAdded(it.key(), key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool AbstractPluginsController::eventFilter(QObject *o, QEvent *e)
|
||||
|
Loading…
x
Reference in New Issue
Block a user