[polari] mainWindow: Use :reachable for offline warning
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [polari] mainWindow: Use :reachable for offline warning
- Date: Sun, 12 May 2019 20:14:47 +0000 (UTC)
commit 9975b349698e286a766fd974e7f10102236aa96f
Author: Florian Müllner <fmuellner gnome org>
Date: Sun May 12 14:44:09 2019 +0200
mainWindow: Use :reachable for offline warning
Similar to the previous commit, the new offline message doesn't
reliably pop up when offline due to GNetworkMonitor's broad
definition of "network availability".
Instead, show it if none of the visible accounts can be reached.
https://gitlab.gnome.org/GNOME/polari/merge_requests/120
src/mainWindow.js | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
---
diff --git a/src/mainWindow.js b/src/mainWindow.js
index b35d310..0dc6142 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -140,12 +140,6 @@ var MainWindow = GObject.registerClass({
if (GLib.get_application_name().toLowerCase().includes('snapshot'))
this.get_style_context().add_class('snapshot');
- this._networkMonitor = Gio.NetworkMonitor.get_default();
- this._networkChangedId = this._networkMonitor.connect(
- 'network-changed',
- this._onNetworkChanged.bind(this));
- this._onNetworkChanged();
-
this._roomStack.connect('size-allocate', () => {
this.notify('view-height');
});
@@ -171,6 +165,10 @@ var MainWindow = GObject.registerClass({
'accounts-changed', this._onAccountsChanged.bind(this));
this._onAccountsChanged(this._accountsMonitor);
+ this._accountReachableId = this._accountsMonitor.connect(
+ 'account-reachable-changed', this._onAccountsReachableChanged.bind(this));
+ this._onAccountsReachableChanged();
+
this._roomManager = RoomManager.getDefault();
this._roomsLoadedId = this._roomManager.connect('rooms-loaded',
this._onRoomsLoaded.bind(this));
@@ -226,10 +224,10 @@ var MainWindow = GObject.registerClass({
return this._roomStack.get_allocated_height() - this._roomStack.entry_area_height;
}
- _onNetworkChanged() {
- let { networkAvailable } = this._networkMonitor;
+ _onAccountsReachableChanged() {
+ let accounts = this._accountsMonitor.visibleAccounts;
this._offlineInfoBar.revealed =
- this._networkMonitor.state_valid && !networkAvailable;
+ (accounts.length > 0) && !accounts.some(a => a.reachable);
}
_onWindowStateEvent(widget, event) {
@@ -265,14 +263,11 @@ var MainWindow = GObject.registerClass({
this.active_room = null;
this._accountsMonitor.disconnect(this._accountsChangedId);
+ this._accountsMonitor.disconnect(this._accountReachableId);
this._roomManager.disconnect(this._roomsLoadedId);
this._roomManager.disconnect(this._roomRemovedId);
- if (this._networkChangedId)
- this._networkMonitor.disconnect(this._networkChangedId);
- this._networkChangedId = 0;
-
this._overlay.remove(this.application.notificationQueue);
this._overlay.remove(this.application.commandOutputQueue);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]