diff options
author | fiaxh <git@mx.ax.lt> | 2017-04-08 11:53:10 +0200 |
---|---|---|
committer | fiaxh <git@mx.ax.lt> | 2017-04-10 15:47:17 +0200 |
commit | d8881c4b16a1cd376dd69304c44444aee581da32 (patch) | |
tree | 2c290ce70c941c30211f7fc091d4907c60ee776d /main/src/ui/manage_accounts/account_row.vala | |
parent | d6e742eb611f28fc2fcfbb67d4246f862df5c1c9 (diff) | |
download | dino-d8881c4b16a1cd376dd69304c44444aee581da32.tar.gz dino-d8881c4b16a1cd376dd69304c44444aee581da32.zip |
Show account status (incl errors) in ManageAccounts.Dialog
Diffstat (limited to 'main/src/ui/manage_accounts/account_row.vala')
-rw-r--r-- | main/src/ui/manage_accounts/account_row.vala | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/main/src/ui/manage_accounts/account_row.vala b/main/src/ui/manage_accounts/account_row.vala index 5e4570f0..f08faa78 100644 --- a/main/src/ui/manage_accounts/account_row.vala +++ b/main/src/ui/manage_accounts/account_row.vala @@ -9,13 +9,34 @@ public class AccountRow : Gtk.ListBoxRow { [GtkChild] public Image image; [GtkChild] public Label jid_label; + [GtkChild] public Image icon; public Account account; + private StreamInteractor stream_interactor; public AccountRow(StreamInteractor stream_interactor, Account account) { + this.stream_interactor = stream_interactor; this.account = account; Util.image_set_from_scaled_pixbuf(image, (new AvatarGenerator(40, 40, image.scale_factor)).draw_account(stream_interactor, account)); jid_label.set_label(account.bare_jid.to_string()); + + stream_interactor.connection_manager.connection_error.connect((account, error) => { + Idle.add(() => { + if (account.equals(this.account)) update_warning_icon(); + return false; + }); + }); + stream_interactor.connection_manager.connection_state_changed.connect((account, state) => { + Idle.add(() => { + if (account.equals(this.account)) update_warning_icon(); + return false; + }); + }); + } + + private void update_warning_icon() { + ConnectionManager.ConnectionError? error = stream_interactor.connection_manager.get_error(account); + icon.visible = (error != null); } } |