[polari/gnome-3-32] accountsMonitor: Move account settings to custom account



commit cda5a98e5e97c114e797a66c91bbaee734797259
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 | 32 +++++++++++++++-----------------
 src/telepathyClient.js |  4 ++--
 2 files changed, 17 insertions(+), 19 deletions(-)
---
diff --git a/src/accountsMonitor.js b/src/accountsMonitor.js
index 47f63c4..c259970 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))
@@ -242,7 +226,12 @@ const PolariAccount = GObject.registerClass({
                                            '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) {
@@ -252,6 +241,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() {
@@ -305,4 +299,8 @@ const PolariAccount = GObject.registerClass({
             port: params.port
         }];
     }
+
+    get settings() {
+        return this._settings;
+    }
 });
diff --git a/src/telepathyClient.js b/src/telepathyClient.js
index 4137b5b..af88748 100644
--- a/src/telepathyClient.js
+++ b/src/telepathyClient.js
@@ -332,7 +332,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') ||
@@ -477,7 +477,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]