[polari/gnome-3-32] accountsMonitor: Take over account-functions from NetworksManager
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [polari/gnome-3-32] accountsMonitor: Take over account-functions from NetworksManager
- Date: Sun, 12 May 2019 20:46:59 +0000 (UTC)
commit a8422be209265a5e06e2672a13a787bf630a7c67
Author: Florian Müllner <fmuellner gnome org>
Date: Sun May 12 02:58:36 2019 +0200
accountsMonitor: Take over account-functions from NetworksManager
Conceptually whether an account is predefined or not and the list of its
servers belong to the account. Now that we use a custom account object,
it makes sense to move the corresponding NetworksManager functions there.
https://gitlab.gnome.org/GNOME/polari/merge_requests/120
src/accountsMonitor.js | 37 +++++++++++++++++++++++++++++++++++++
src/application.js | 8 ++++----
src/connections.js | 23 ++++-------------------
3 files changed, 45 insertions(+), 23 deletions(-)
---
diff --git a/src/accountsMonitor.js b/src/accountsMonitor.js
index 57b5847..8848ef3 100644
--- a/src/accountsMonitor.js
+++ b/src/accountsMonitor.js
@@ -3,6 +3,8 @@
const { Gio, GObject, Polari, TelepathyGLib: Tp } = imports.gi;
const Signals = imports.signals;
+const { NetworksManager } = imports.networksManager;
+
var AccountsMonitor = class {
static getDefault() {
if (!this._singleton)
@@ -176,6 +178,11 @@ class ClientFactory extends Polari.ClientFactory {
const PolariAccount = GObject.registerClass({
Properties: {
+ predefined: GObject.ParamSpec.boolean('predefined',
+ 'predefined',
+ 'predefined',
+ GObject.ParamFlags.READABLE,
+ false),
visible: GObject.ParamSpec.boolean('visible',
'visible',
'visible',
@@ -186,9 +193,15 @@ const PolariAccount = GObject.registerClass({
_init(params) {
this._visible = true;
+ this._networksManager = NetworksManager.getDefault();
+
super._init(params);
}
+ get predefined() {
+ return this._networksManager.getAccountIsPredefined(this);
+ }
+
get visible() {
return this._visible;
}
@@ -200,4 +213,28 @@ const PolariAccount = GObject.registerClass({
this._visible = value;
this.notify('visible');
}
+
+ getConnectionParams() {
+ let params = this.dup_parameters_vardict().deep_unpack();
+ for (let p in params)
+ params[p] = params[p].deep_unpack();
+
+ params['use-ssl'] = !!params['use-ssl'];
+
+ let defaultPort = params['use-ssl'] ? 6697 : 6667;
+ params['port'] = params['port'] || defaultPort;
+
+ return params;
+ }
+
+ getServers() {
+ if (this.predefined)
+ return this._networksManager.getNetworkServers(this.service);
+
+ let params = this.getConnectionParams();
+ return [{
+ address: params.server,
+ port: params.port
+ }];
+ }
});
diff --git a/src/application.js b/src/application.js
index bec3484..b369960 100644
--- a/src/application.js
+++ b/src/application.js
@@ -618,15 +618,15 @@ var Application = GObject.registerClass({
if (data)
return data;
- let params = Connections.getAccountParams(account);
+ let params = account.getConnectionParams();
let server = params['server'];
let accountName = params['account'];
let port = params['port'];
debug(`Failed to connect to ${server} with username ${accountName}`);
let accountServers = [];
- if (this._networksManager.getAccountIsPredefined(account))
- accountServers = this._networksManager.getNetworkServers(account.service);
+ if (account.predefined)
+ accountServers = account.getServers();
data = {
retry: 0,
@@ -638,7 +638,7 @@ var Application = GObject.registerClass({
}
_getTrimmedAccountName(account) {
- let params = Connections.getAccountParams(account);
+ let params = account.getConnectionParams();
return params.account.replace(/_+$/, '');
}
diff --git a/src/connections.js b/src/connections.js
index 2d15bc7..65a4700 100644
--- a/src/connections.js
+++ b/src/connections.js
@@ -15,19 +15,6 @@ const ErrorHint = {
NICK: 2
};
-function getAccountParams(account) {
- let params = account.dup_parameters_vardict().deep_unpack();
- for (let p in params)
- params[p] = params[p].deep_unpack();
-
- params['use-ssl'] = !!params['use-ssl'];
-
- let defaultPort = params['use-ssl'] ? DEFAULT_SSL_PORT : DEFAULT_PORT;
- params['port'] = params['port'] || defaultPort;
-
- return params;
-}
-
const ConnectionRow = GObject.registerClass(
class ConnectionRow extends Gtk.ListBoxRow {
_init(params) {
@@ -194,9 +181,7 @@ var ConnectionsList = GObject.registerClass({
this._list.foreach(w => w.destroy());
let accounts = this._accountsMonitor.accounts;
- let usedNetworks = accounts.filter(a => {
- return this._networksManager.getAccountIsPredefined(a);
- }).map(a => a.service);
+ let usedNetworks = accounts.filter(a => a.predefined).map(a => a.service);
this._networksManager.networks.forEach(network => {
if (this._favoritesOnly &&
@@ -237,7 +222,7 @@ var ConnectionsList = GObject.registerClass({
}
_setAccountRowSensitive(account, sensitive) {
- if (!this._networksManager.getAccountIsPredefined(account))
+ if (!account.predefined)
return;
if (!this._rows.has(account.service))
@@ -386,7 +371,7 @@ var ConnectionDetails = GObject.registerClass({
}
_populateFromAccount(account) {
- let params = getAccountParams(account);
+ let params = account.getConnectionParams();
this._savedSSL = params['use-ssl'];
let defaultPort = this._savedSSL ? DEFAULT_SSL_PORT : DEFAULT_PORT;
@@ -423,7 +408,7 @@ var ConnectionDetails = GObject.registerClass({
// eslint-disable-next-line camelcase
get has_service() {
- return this._networksManager.getAccountIsPredefined(this._account);
+ return this._account && this._account.predefined;
}
set account(account) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]