aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/ui/manage_accounts
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src/ui/manage_accounts')
-rw-r--r--libdino/src/ui/manage_accounts/account_row.vala22
-rw-r--r--libdino/src/ui/manage_accounts/add_account_dialog.vala62
-rw-r--r--libdino/src/ui/manage_accounts/dialog.vala230
3 files changed, 0 insertions, 314 deletions
diff --git a/libdino/src/ui/manage_accounts/account_row.vala b/libdino/src/ui/manage_accounts/account_row.vala
deleted file mode 100644
index 5e4570f0..00000000
--- a/libdino/src/ui/manage_accounts/account_row.vala
+++ /dev/null
@@ -1,22 +0,0 @@
-using Gtk;
-
-using Dino.Entities;
-
-namespace Dino.Ui.ManageAccounts {
-
-[GtkTemplate (ui = "/org/dino-im/manage_accounts/account_row.ui")]
-public class AccountRow : Gtk.ListBoxRow {
-
- [GtkChild] public Image image;
- [GtkChild] public Label jid_label;
-
- public Account account;
-
- public AccountRow(StreamInteractor stream_interactor, Account account) {
- 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());
- }
-}
-
-} \ No newline at end of file
diff --git a/libdino/src/ui/manage_accounts/add_account_dialog.vala b/libdino/src/ui/manage_accounts/add_account_dialog.vala
deleted file mode 100644
index f6ad40a2..00000000
--- a/libdino/src/ui/manage_accounts/add_account_dialog.vala
+++ /dev/null
@@ -1,62 +0,0 @@
-using Gee;
-using Gtk;
-
-using Dino.Entities;
-
-namespace Dino.Ui.ManageAccounts {
-
-[GtkTemplate (ui = "/org/dino-im/manage_accounts/add_account_dialog.ui")]
-public class AddAccountDialog : Gtk.Dialog {
-
- public signal void added(Account account);
-
- [GtkChild] private Button cancel_button;
- [GtkChild] private Button ok_button;
- [GtkChild] private Entry alias_entry;
- [GtkChild] private Entry jid_entry;
- [GtkChild] private Entry password_entry;
-
- public AddAccountDialog(StreamInteractor stream_interactor) {
- Object(use_header_bar : 1);
- this.title = "Add Account";
-
- cancel_button.clicked.connect(() => { close(); });
- ok_button.clicked.connect(on_ok_button_clicked);
- jid_entry.changed.connect(on_jid_entry_changed);
- jid_entry.focus_out_event.connect(on_jid_entry_focus_out_event);
- }
-
- private void on_jid_entry_changed() {
- Jid? jid = Jid.parse(jid_entry.text);
- if (jid != null && jid.localpart != null && jid.resourcepart == null) {
- ok_button.set_sensitive(true);
- jid_entry.secondary_icon_name = null;
- } else {
- ok_button.set_sensitive(false);
- }
- }
-
- private bool on_jid_entry_focus_out_event() {
- Jid? jid = Jid.parse(jid_entry.text);
- if (jid == null || jid.localpart == null || jid.resourcepart != null) {
- jid_entry.secondary_icon_name = "dialog-warning-symbolic";
- // TODO why doesn't the tooltip work
- jid_entry.set_icon_tooltip_text(EntryIconPosition.SECONDARY, "JID should be of the form \"user@example.com\"");
- } else {
- jid_entry.secondary_icon_name = null;
- }
- return false;
- }
-
- private void on_ok_button_clicked() {
- Account account = new Account.from_bare_jid(jid_entry.get_text());
- account.resourcepart = "dino";
- account.alias = alias_entry.get_text();
- account.enabled = false;
- account.password = password_entry.get_text();
- added(account);
- close();
- }
-}
-
-}
diff --git a/libdino/src/ui/manage_accounts/dialog.vala b/libdino/src/ui/manage_accounts/dialog.vala
deleted file mode 100644
index 3616c403..00000000
--- a/libdino/src/ui/manage_accounts/dialog.vala
+++ /dev/null
@@ -1,230 +0,0 @@
-using Gdk;
-using Gee;
-using Gtk;
-using Markup;
-
-using Dino.Entities;
-
-namespace Dino.Ui.ManageAccounts {
-
-[GtkTemplate (ui = "/org/dino-im/manage_accounts/dialog.ui")]
-public class Dialog : Gtk.Window {
-
- public signal void account_enabled(Account account);
- public signal void account_disabled(Account account);
-
- [GtkChild] public Stack main_stack;
- [GtkChild] public ListBox account_list;
- [GtkChild] public Button no_accounts_add;
- [GtkChild] public ToolButton add_button;
- [GtkChild] public ToolButton remove_button;
- [GtkChild] public Image image;
- [GtkChild] public Button image_button;
- [GtkChild] public Label jid_label;
- [GtkChild] public Switch active_switch;
-
- [GtkChild] public Stack password_stack;
- [GtkChild] public Label password_label;
- [GtkChild] public Button password_button;
- [GtkChild] public Entry password_entry;
-
- [GtkChild] public Stack alias_stack;
- [GtkChild] public Label alias_label;
- [GtkChild] public Button alias_button;
- [GtkChild] public Entry alias_entry;
-
- [GtkChild] public Grid settings_list;
-
- private ArrayList<Plugins.AccountSettingsWidget> plugin_widgets = new ArrayList<Plugins.AccountSettingsWidget>();
-
- private Database db;
- private StreamInteractor stream_interactor;
-
- construct {
- account_list.row_selected.connect(account_list_row_selected);
- add_button.clicked.connect(add_button_clicked);
- no_accounts_add.clicked.connect(add_button_clicked);
- remove_button.clicked.connect(remove_button_clicked);
- password_entry.key_release_event.connect(on_password_key_release_event);
- alias_entry.key_release_event.connect(on_alias_key_release_event);
- image_button.clicked.connect(on_image_button_clicked);
-
- main_stack.set_visible_child_name("no_accounts");
-
- int row_index = 4;
- int16 default_top_padding = new Gtk.Button().get_style_context().get_padding(Gtk.StateFlags.NORMAL).top + 1;
- Application app = GLib.Application.get_default() as Application;
- foreach (var e in app.plugin_registry.account_settings_entries) {
- Plugins.AccountSettingsWidget widget = e.get_widget();
- plugin_widgets.add(widget);
- widget.visible = true;
- widget.activated.connect(child_activated);
- Label label = new Label(e.name);
- label.get_style_context().add_class("dim-label");
- label.set_padding(0, e.label_top_padding == -1 ? default_top_padding : e.label_top_padding);
- label.yalign = 0;
- label.xalign = 1;
- label.visible = true;
- settings_list.attach(label, 0, row_index);
- settings_list.attach(widget, 1, row_index, 2);
- row_index++;
- }
- }
-
- public Dialog(StreamInteractor stream_interactor, Database db) {
- this.db = db;
- this.stream_interactor = stream_interactor;
- foreach (Account account in db.get_accounts()) {
- add_account(account);
- }
-
- AvatarManager.get_instance(stream_interactor).received_avatar.connect((pixbuf, jid, account) => {
- Idle.add(() => {
- on_received_avatar(pixbuf, jid, account);
- return false;
- });});
-
- if (account_list.get_row_at_index(0) != null) account_list.select_row(account_list.get_row_at_index(0));
- }
-
- public AccountRow add_account(Account account) {
- AccountRow account_item = new AccountRow (stream_interactor, account);
- account_list.add(account_item);
- main_stack.set_visible_child_name("accounts_exist");
- return account_item;
- }
-
- private void add_button_clicked() {
- AddAccountDialog add_account_dialog = new AddAccountDialog(stream_interactor);
- add_account_dialog.set_transient_for(this);
- add_account_dialog.added.connect((account) => {
- db.add_account(account);
- AccountRow account_item = add_account(account);
- account_list.select_row(account_item);
- account_list.queue_draw();
- });
- add_account_dialog.show();
- }
-
- private void remove_button_clicked() {
- AccountRow account_item = account_list.get_selected_row() as AccountRow;
- if (account_item != null) {
- account_list.remove(account_item);
- account_list.queue_draw();
- if (account_item.account.enabled) account_disabled(account_item.account);
- db.remove_account(account_item.account);
- if (account_list.get_row_at_index(0) != null) {
- account_list.select_row(account_list.get_row_at_index(0));
- } else {
- main_stack.set_visible_child_name("no_accounts");
- }
- }
- }
-
- private void account_list_row_selected(ListBoxRow? row) {
- AccountRow? account_item = row as AccountRow;
- if (account_item != null) populate_grid_data(account_item.account);
- }
-
- private void populate_grid_data(Account account) {
- active_switch.state_set.disconnect(on_active_switch_state_changed);
-
- Util.image_set_from_scaled_pixbuf(image, (new AvatarGenerator(50, 50, image.scale_factor)).draw_account(stream_interactor, account));
- active_switch.set_active(account.enabled);
- jid_label.label = account.bare_jid.to_string();
-
- string filler = "";
- for (int i = 0; i < account.password.length; i++) filler += password_entry.get_invisible_char().to_string();
- password_label.label = filler;
- password_stack.set_visible_child_name("label");
- password_entry.text = account.password;
-
- alias_stack.set_visible_child_name("label");
- alias_label.label = account.alias;
- alias_entry.text = account.alias;
-
- password_button.clicked.connect(() => { set_active_stack(password_stack); });
- alias_button.clicked.connect(() => { set_active_stack(alias_stack); });
- active_switch.state_set.connect(on_active_switch_state_changed);
-
- foreach(Plugins.AccountSettingsWidget widget in plugin_widgets) {
- widget.set_account(account);
- }
-
- child_activated(null);
- }
-
-
- private void on_image_button_clicked() {
- FileChooserDialog chooser = new FileChooserDialog (
- "Select avatar", this, FileChooserAction.OPEN,
- "Cancel", ResponseType.CANCEL,
- "Select", ResponseType.ACCEPT);
- FileFilter filter = new FileFilter();
- filter.add_mime_type("image/*");
- chooser.set_filter(filter);
- if (chooser.run() == Gtk.ResponseType.ACCEPT) {
- string uri = chooser.get_filename();
- Account account = (account_list.get_selected_row() as AccountRow).account;
- AvatarManager.get_instance(stream_interactor).publish(account, uri);
- }
- chooser.close();
- }
-
- private bool on_active_switch_state_changed(bool state) {
- Account account = (account_list.get_selected_row() as AccountRow).account;
- account.enabled = state;
- if (state) {
- account_enabled(account);
- } else {
- account_disabled(account);
- }
- return false;
- }
-
- private bool on_password_key_release_event(EventKey event) {
- Account account = (account_list.get_selected_row() as AccountRow).account;
- account.password = password_entry.text;
- string filler = "";
- for (int i = 0; i < account.password.length; i++) filler += password_entry.get_invisible_char().to_string();
- password_label.label = filler;
- if (event.keyval == Key.Return) {
- password_stack.set_visible_child_name("label");
- }
- return false;
- }
-
- private bool on_alias_key_release_event(EventKey event) {
- Account account = (account_list.get_selected_row() as AccountRow).account;
- account.alias = alias_entry.text;
- alias_label.label = alias_entry.text;
- if (event.keyval == Key.Return) {
- alias_stack.set_visible_child_name("label");
- }
- return false;
- }
-
- private void on_received_avatar(Pixbuf pixbuf, Jid jid, Account account) {
- Account curr_account = (account_list.get_selected_row() as AccountRow).account;
- if (curr_account.equals(account) && jid.equals(account.bare_jid)) {
- Util.image_set_from_scaled_pixbuf(image, (new AvatarGenerator(50, 50, image.scale_factor)).draw_account(stream_interactor, account));
- }
- }
-
- private void child_activated(Gtk.Widget? widget) {
- if (widget != password_stack) password_stack.set_visible_child_name("label");
- if (widget != alias_stack) alias_stack.set_visible_child_name("label");
-
- foreach(var w in plugin_widgets) {
- if (widget != (Gtk.Widget)w) w.deactivate();
- }
- }
-
- private void set_active_stack(Stack stack) {
- stack.set_visible_child_name("entry");
- child_activated(stack);
- }
-}
-
-}
-