blob: ae734b83e2d2dadf68a1990f340abf9e63f2b45b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
using Gtk;
using Dino.Entities;
namespace Dino.Ui.ManageAccounts {
[GtkTemplate (ui = "/im/dino/Dino/manage_accounts/account_row.ui")]
public class AccountRow : Gtk.ListBoxRow {
[GtkChild] public unowned AvatarPicture picture;
[GtkChild] public unowned Label jid_label;
[GtkChild] public unowned Image icon;
public Account account;
private StreamInteractor stream_interactor;
public AccountRow(StreamInteractor stream_interactor, Account account) {
this.stream_interactor = stream_interactor;
this.account = account;
picture.model = new ViewModel.CompatAvatarPictureModel(stream_interactor).add_participant(new Conversation(account.bare_jid, account, Conversation.Type.CHAT), account.bare_jid);
jid_label.set_label(account.bare_jid.to_string());
stream_interactor.connection_manager.connection_error.connect((account, error) => {
if (account.equals(this.account)) {
update_warning_icon();
}
});
stream_interactor.connection_manager.connection_state_changed.connect((account, state) => {
if (account.equals(this.account)) {
update_warning_icon();
}
});
}
private void update_warning_icon() {
ConnectionManager.ConnectionError? error = stream_interactor.connection_manager.get_error(account);
icon.visible = (error != null);
}
}
}
|