aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/manage_accounts/account_row.vala
diff options
context:
space:
mode:
authorfiaxh <git@mx.ax.lt>2017-04-08 11:53:10 +0200
committerfiaxh <git@mx.ax.lt>2017-04-10 15:47:17 +0200
commitd8881c4b16a1cd376dd69304c44444aee581da32 (patch)
tree2c290ce70c941c30211f7fc091d4907c60ee776d /main/src/ui/manage_accounts/account_row.vala
parentd6e742eb611f28fc2fcfbb67d4246f862df5c1c9 (diff)
downloaddino-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.vala21
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);
}
}