From c5bca2933fb02ef7f81e8fe0772801a4f97fd1f5 Mon Sep 17 00:00:00 2001
From: agsantos <aline.gondimsantos@savoirfairelinux.com>
Date: Tue, 10 Aug 2021 10:19:56 -0300
Subject: [PATCH] plugins: preferences per account

GitLab: #489
Change-Id: I44ed37d6d7cb59da1c33a9c1327fdc4b9c521bcb
---
 src/api/pluginmodel.h               |  8 +++++---
 src/pluginmodel.cpp                 | 19 +++++++++++--------
 src/qtwrapper/pluginmanager.cpp     | 19 ++++++++++++-------
 src/qtwrapper/pluginmanagerMock.cpp |  7 ++++---
 src/qtwrapper/pluginmanager_wrap.h  | 11 +++++++----
 5 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/src/api/pluginmodel.h b/src/api/pluginmodel.h
index 55928a07..6f574852 100644
--- a/src/api/pluginmodel.h
+++ b/src/api/pluginmodel.h
@@ -157,13 +157,15 @@ public:
      * Get preferences map of installed plugin
      * @return Plugin preferences infos vector
      */
-    Q_INVOKABLE VectorMapStringString getPluginPreferences(const QString& path);
+    Q_INVOKABLE VectorMapStringString getPluginPreferences(const QString& path,
+                                                           const QString& accountId);
 
     /**
      * Modify preference of installed plugin
      * @return true if preference was succesfully modified
      */
     Q_INVOKABLE bool setPluginPreference(const QString& path,
+                                         const QString& accountId,
                                          const QString& key,
                                          const QString& value);
 
@@ -171,13 +173,13 @@ public:
      * Get preferences values of installed plugin
      * @return Plugin preferences map
      */
-    MapStringString getPluginPreferencesValues(const QString& path);
+    MapStringString getPluginPreferencesValues(const QString& path, const QString& accountId);
 
     /**
      * Reste preferences values of installed plugin to default values
      * @return true if preference was succesfully reset
      */
-    Q_INVOKABLE bool resetPluginPreferencesValues(const QString& path);
+    Q_INVOKABLE bool resetPluginPreferencesValues(const QString& path, const QString& accountId);
 
 Q_SIGNALS:
     void chatHandlerStatusUpdated(bool isVisible);
diff --git a/src/pluginmodel.cpp b/src/pluginmodel.cpp
index c9240671..4ab8f476 100644
--- a/src/pluginmodel.cpp
+++ b/src/pluginmodel.cpp
@@ -221,29 +221,32 @@ PluginModel::getChatHandlerDetails(const QString& chatHandlerId)
 }
 
 VectorMapStringString
-PluginModel::getPluginPreferences(const QString& path)
+PluginModel::getPluginPreferences(const QString& path, const QString& accountId)
 {
-    return PluginManager::instance().getPluginPreferences(path);
+    return PluginManager::instance().getPluginPreferences(path, accountId);
 }
 
 bool
-PluginModel::setPluginPreference(const QString& path, const QString& key, const QString& value)
+PluginModel::setPluginPreference(const QString& path,
+                                 const QString& accountId,
+                                 const QString& key,
+                                 const QString& value)
 {
-    auto result = PluginManager::instance().setPluginPreference(path, key, value);
+    auto result = PluginManager::instance().setPluginPreference(path, accountId, key, value);
     Q_EMIT modelUpdated();
     return result;
 }
 
 MapStringString
-PluginModel::getPluginPreferencesValues(const QString& path)
+PluginModel::getPluginPreferencesValues(const QString& path, const QString& accountId)
 {
-    return PluginManager::instance().getPluginPreferencesValues(path);
+    return PluginManager::instance().getPluginPreferencesValues(path, accountId);
 }
 
 bool
-PluginModel::resetPluginPreferencesValues(const QString& path)
+PluginModel::resetPluginPreferencesValues(const QString& path, const QString& accountId)
 {
-    auto result = PluginManager::instance().resetPluginPreferencesValues(path);
+    auto result = PluginManager::instance().resetPluginPreferencesValues(path, accountId);
     Q_EMIT modelUpdated();
     return result;
 }
diff --git a/src/qtwrapper/pluginmanager.cpp b/src/qtwrapper/pluginmanager.cpp
index 33a89946..8e7df407 100644
--- a/src/qtwrapper/pluginmanager.cpp
+++ b/src/qtwrapper/pluginmanager.cpp
@@ -130,10 +130,10 @@ PluginManagerInterface::getPluginsEnabled()
 }
 
 VectorMapStringString
-PluginManagerInterface::getPluginPreferences(const QString& path)
+PluginManagerInterface::getPluginPreferences(const QString& path, const QString& accountId)
 {
     VectorMapStringString temp;
-    for (auto x : DRing::getPluginPreferences(path.toStdString())) {
+    for (auto x : DRing::getPluginPreferences(path.toStdString(), accountId.toStdString())) {
         temp.push_back(convertMap(x));
     }
     return temp;
@@ -141,20 +141,25 @@ PluginManagerInterface::getPluginPreferences(const QString& path)
 
 bool
 PluginManagerInterface::setPluginPreference(const QString& path,
+                                            const QString& accountId,
                                             const QString& key,
                                             const QString& value)
 {
-    return DRing::setPluginPreference(path.toStdString(), key.toStdString(), value.toStdString());
+    return DRing::setPluginPreference(path.toStdString(),
+                                      accountId.toStdString(),
+                                      key.toStdString(),
+                                      value.toStdString());
 }
 
 MapStringString
-PluginManagerInterface::getPluginPreferencesValues(const QString& path)
+PluginManagerInterface::getPluginPreferencesValues(const QString& path, const QString& accountId)
 {
-    return convertMap(DRing::getPluginPreferencesValues(path.toStdString()));
+    return convertMap(
+        DRing::getPluginPreferencesValues(path.toStdString(), accountId.toStdString()));
 }
 
 bool
-PluginManagerInterface::resetPluginPreferencesValues(const QString& path)
+PluginManagerInterface::resetPluginPreferencesValues(const QString& path, const QString& accountId)
 {
-    return DRing::resetPluginPreferencesValues(path.toStdString());
+    return DRing::resetPluginPreferencesValues(path.toStdString(), accountId.toStdString());
 }
diff --git a/src/qtwrapper/pluginmanagerMock.cpp b/src/qtwrapper/pluginmanagerMock.cpp
index 46041286..b54ff094 100644
--- a/src/qtwrapper/pluginmanagerMock.cpp
+++ b/src/qtwrapper/pluginmanagerMock.cpp
@@ -121,13 +121,14 @@ PluginManagerInterface::getPluginsEnabled()
 }
 
 VectorMapStringString
-PluginManagerInterface::getPluginPreferences(const QString& path)
+PluginManagerInterface::getPluginPreferences(const QString& path, const QString& accountId)
 {
     return {};
 }
 
 bool
 PluginManagerInterface::setPluginPreference(const QString& path,
+                                            const QString& accountId,
                                             const QString& key,
                                             const QString& value)
 {
@@ -135,13 +136,13 @@ PluginManagerInterface::setPluginPreference(const QString& path,
 }
 
 MapStringString
-PluginManagerInterface::getPluginPreferencesValues(const QString& path)
+PluginManagerInterface::getPluginPreferencesValues(const QString& path, const QString& accountId)
 {
     return {};
 }
 
 bool
-PluginManagerInterface::resetPluginPreferencesValues(const QString& path)
+PluginManagerInterface::resetPluginPreferencesValues(const QString& path, const QString& accountId)
 {
     return false;
 }
diff --git a/src/qtwrapper/pluginmanager_wrap.h b/src/qtwrapper/pluginmanager_wrap.h
index c5523898..eee887d0 100644
--- a/src/qtwrapper/pluginmanager_wrap.h
+++ b/src/qtwrapper/pluginmanager_wrap.h
@@ -81,13 +81,16 @@ public Q_SLOTS: // METHODS
 
     bool getPluginsEnabled();
 
-    VectorMapStringString getPluginPreferences(const QString& path);
+    VectorMapStringString getPluginPreferences(const QString& path, const QString& accountId);
 
-    bool setPluginPreference(const QString& path, const QString& key, const QString& value);
+    bool setPluginPreference(const QString& path,
+                             const QString& accountId,
+                             const QString& key,
+                             const QString& value);
 
-    MapStringString getPluginPreferencesValues(const QString& path);
+    MapStringString getPluginPreferencesValues(const QString& path, const QString& accountId);
 
-    bool resetPluginPreferencesValues(const QString& path);
+    bool resetPluginPreferencesValues(const QString& path, const QString& accountId);
 };
 
 namespace org {
-- 
GitLab