[polari] accountsMonitor: Move account settings to custom account



commit ad31b29ce4978e873a92ef4cce598873959fc433
Author: Florian Müllner <fmuellner gnome org>
Date:   Sat Apr 20 02:38:35 2019 +0200

    accountsMonitor: Move account settings to custom account
    
    Just like the methods that were moved in commit 4c1a097bd, it makes
    sense to let the custom Account type own its settings instead of
    bolting it on via AccountsMonitor.
    
    https://gitlab.gnome.org/GNOME/polari/merge_requests/121

 src/accountsMonitor.js | 31 ++++++++++++++-----------------
 src/telepathyClient.js |  4 ++--
 2 files changed, 16 insertions(+), 19 deletions(-)
---
diff --git a/src/accountsMonitor.js b/src/accountsMonitor.js
index 795a206..eefa46c 100644
--- a/src/accountsMonitor.js
+++ b/src/accountsMonitor.js
@@ -14,7 +14,6 @@ var AccountsMonitor = class {
 
     constructor() {
         this._accounts = new Map();
-        this._accountSettings = new Map();
 
         this._networkMonitor = Gio.NetworkMonitor.get_default();
 
@@ -53,21 +52,6 @@ var AccountsMonitor = class {
         return this._accounts.get(accountPath);
     }
 
-    getAccountSettings(account) {
-        let accountPath = account.object_path;
-        let settings = this._accountSettings.get(accountPath);
-        if (settings)
-            return settings;
-
-        let path = `/org/gnome/Polari/Accounts/${account.get_path_suffix()}/`;
-        settings = new Gio.Settings({
-            schema_id: 'org.gnome.Polari.Account',
-            path: path
-        });
-        this._accountSettings.set(accountPath, settings);
-        return settings;
-    }
-
     prepare(callback) {
         let quark = Tp.AccountManager.get_feature_quark_core();
         if (this._accountManager.is_prepared(quark))
@@ -239,7 +223,11 @@ const PolariAccount = GObject.registerClass({
         visible: GObject.ParamSpec.boolean(
             'visible', 'visible', 'visible',
             GObject.ParamFlags.READWRITE,
-            true)
+            true),
+        settings: GObject.ParamSpec.object(
+            'settings', 'settings', 'settings',
+            GObject.ParamFlags.READABLE,
+            Gio.Settings.$gtype)
     }
 }, class PolariAccount extends Tp.Account {
     _init(params) {
@@ -249,6 +237,11 @@ const PolariAccount = GObject.registerClass({
         this._networksManager = NetworksManager.getDefault();
 
         super._init(params);
+
+        this._settings = new Gio.Settings({
+            schema_id: 'org.gnome.Polari.Account',
+            path: `/org/gnome/Polari/Accounts/${this.get_path_suffix()}/`
+        });
     }
 
     get predefined() {
@@ -302,4 +295,8 @@ const PolariAccount = GObject.registerClass({
             port: params.port
         }];
     }
+
+    get settings() {
+        return this._settings;
+    }
 });
diff --git a/src/telepathyClient.js b/src/telepathyClient.js
index e90c8ca..44acfb7 100644
--- a/src/telepathyClient.js
+++ b/src/telepathyClient.js
@@ -334,7 +334,7 @@ class TelepathyClient extends Tp.BaseClient {
     }
 
     _sendIdentify(account, password) {
-        let settings = this._accountsMonitor.getAccountSettings(account);
+        let { settings } = account;
 
         let params = account.dup_parameters_vardict().deep_unpack();
         let username = settings.get_string('identify-username') ||
@@ -479,7 +479,7 @@ class TelepathyClient extends Tp.BaseClient {
     }
 
     _saveIdentifySettings(account, data) {
-        let settings = this._accountsMonitor.getAccountSettings(account);
+        let { settings } = account;
 
         if (data.botname == 'NickServ')
             settings.reset('identify-botname');


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]