GNOME Bugzilla – Bug 659067
user-menu: Indicate progress on status changes
Last modified: 2012-06-01 23:55:51 UTC
See attached patch. Whether the approach of overlaying an indicator rather than having a set of proper in-progress icons is up to the designers :-)
Created attachment 196518 [details] [review] user-menu: Indicate progress on status changes Depending on the number of accounts, the type or simply the network, there may be a noticable lag between setting the status and the actual status change. Indicate that by overlaying the status icon with a progress indicator.
Review of attachment 196518 [details] [review]: Looks fine to me.
Comment on attachment 196518 [details] [review] user-menu: Indicate progress on status changes Some objections from the design side
Created attachment 215469 [details] [review] user-menu: Indicate progress on status changes Depending on the number of accounts, the type or simply the network, there may be a noticable lag between setting the status and the actual status change. Indicate that by overlaying the status icon with a progress indicator.
Created attachment 215470 [details] [review] user-menu: Indicate progress on status changes The designers didn't like the idea of using an overlay, so change the status icon to a dedicated icon instead.
Review of attachment 215470 [details] [review]: Code looks fine, but I'm a bit worried about the heuristic. ::: js/ui/userMenu.js @@ +661,3 @@ + } + + if (changing / total > .5) { I think we should display pending if there's at least one changing account.
(In reply to comment #6) > Review of attachment 215470 [details] [review]: > > Code looks fine, but I'm a bit worried about the heuristic. > > ::: js/ui/userMenu.js > @@ +661,3 @@ > + } > + > + if (changing / total > .5) { > > I think we should display pending if there's at least one changing account. The idea here is to guard against "rogue" accounts, for instance telepathy's IRC support is (uhm) not so great, so you'd end up "pending" for minutes even though you already appear online with a couple of other accounts. (To be honest, I don't remember the exact details of this patch, but I do remember that "at least one changing account" was the first approach I did ...)
Created attachment 215474 [details] [review] user-menu: Indicate progress on status changes Well, looks like the spinner in Empathy's roster window actually uses the "at least one pending" heuristic, so Do What Empathy Does (tm)
Review of attachment 215474 [details] [review]: Commit message nit: userMenu, not user-menu. Otherwise, one whitespace nit. ::: js/ui/userMenu.js @@ +490,3 @@ let [presence, s, msg] = mgr.get_most_available_presence(); this._updatePresenceIcon(mgr, presence, s, msg); + this._setupAccounts(); A bit annoying that tp-glib doesn't send us 'account-*' signals on startup. @@ +635,3 @@ + accounts[i]._changingId = accounts[i].connect('notify::connection-status', + Lang.bind(this, this._updateChangingPresence)); +} Hello, closing brace. Would you please get back into your correct position?