[gnome-shell] user-menu: Disable combo box if no accounts are enabled
- From: Florian MÃllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] user-menu: Disable combo box if no accounts are enabled
- Date: Tue, 15 Nov 2011 12:55:07 +0000 (UTC)
commit e279ef1c7c251ad1bf46237ae851f86e86bf5a06
Author: Florian MÃllner <fmuellner gnome org>
Date: Wed Oct 26 21:16:08 2011 +0200
user-menu: Disable combo box if no accounts are enabled
If no telepathy accounts have been set up or enabled, the IM status
chooser won't have any effect. To avoid confusing behavior, make
the status selector insensitive in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=662800
js/ui/userMenu.js | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js
index 3ae2272..7e4fbe3 100644
--- a/js/ui/userMenu.js
+++ b/js/ui/userMenu.js
@@ -168,11 +168,20 @@ IMStatusChooserItem.prototype = {
this._accountMgr = Tp.AccountManager.dup();
this._accountMgr.connect('most-available-presence-changed',
Lang.bind(this, this._IMStatusChanged));
+ this._accountMgr.connect('account-enabled',
+ Lang.bind(this, this._IMAccountsChanged));
+ this._accountMgr.connect('account-disabled',
+ Lang.bind(this, this._IMAccountsChanged));
+ this._accountMgr.connect('account-removed',
+ Lang.bind(this, this._IMAccountsChanged));
this._accountMgr.prepare_async(null, Lang.bind(this,
function(mgr) {
let [presence, status, msg] = mgr.get_most_available_presence();
let savedPresence = global.settings.get_int('saved-im-presence');
+
+ this._IMAccountsChanged(mgr);
+
if (savedPresence == presence) {
this._IMStatusChanged(mgr, presence, status, msg);
} else {
@@ -282,6 +291,13 @@ IMStatusChooserItem.prototype = {
}
},
+ _IMAccountsChanged: function(mgr) {
+ let accounts = mgr.get_valid_accounts().filter(function(account) {
+ return account.enabled;
+ });
+ this._combo.setSensitive(accounts.length > 0);
+ },
+
_IMStatusChanged: function(accountMgr, presence, status, message) {
if (!this._imPresenceRestored)
this._imPresenceRestored = true;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]