aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/add_conversation/add_groupchat_dialog.vala
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2019-12-22 04:10:53 +0100
committerMarvin W <git@larma.de>2019-12-23 16:58:53 +0100
commita0a956ee0878d24bd06be7f5d75dc4ccd4e7901d (patch)
treecbb079649066c2001b6d6881137108e70eed9d3f /main/src/ui/add_conversation/add_groupchat_dialog.vala
parent3218dc0211ac717230fe03fad82681a626d968b5 (diff)
downloaddino-a0a956ee0878d24bd06be7f5d75dc4ccd4e7901d.tar.gz
dino-a0a956ee0878d24bd06be7f5d75dc4ccd4e7901d.zip
Properly check Jids everywhere
Diffstat (limited to 'main/src/ui/add_conversation/add_groupchat_dialog.vala')
-rw-r--r--main/src/ui/add_conversation/add_groupchat_dialog.vala38
1 files changed, 25 insertions, 13 deletions
diff --git a/main/src/ui/add_conversation/add_groupchat_dialog.vala b/main/src/ui/add_conversation/add_groupchat_dialog.vala
index 33a3a455..da6b10b2 100644
--- a/main/src/ui/add_conversation/add_groupchat_dialog.vala
+++ b/main/src/ui/add_conversation/add_groupchat_dialog.vala
@@ -52,29 +52,41 @@ protected class AddGroupchatDialog : Gtk.Dialog {
private bool on_jid_key_release() {
check_ok();
if (!alias_entry_changed) {
- Jid? parsed_jid = Jid.parse(jid_entry.text);
- alias_entry.text = parsed_jid != null && parsed_jid.localpart != null ? parsed_jid.localpart : jid_entry.text;
+ try {
+ Jid parsed_jid = new Jid(jid_entry.text);
+ alias_entry.text = parsed_jid != null && parsed_jid.localpart != null ? parsed_jid.localpart : jid_entry.text;
+ } catch (InvalidJidError e) {
+ alias_entry.text = jid_entry.text;
+ }
}
return false;
}
private bool check_ok() {
- Jid? parsed_jid = Jid.parse(jid_entry.text);
- ok_button.sensitive = parsed_jid != null && parsed_jid.localpart != null && parsed_jid.resourcepart == null;
+ try {
+ Jid parsed_jid = new Jid(jid_entry.text);
+ ok_button.sensitive = parsed_jid != null && parsed_jid.localpart != null && parsed_jid.resourcepart == null;
+ } catch (InvalidJidError e) {
+ ok_button.sensitive = false;
+ }
return false;
}
private void on_ok_button_clicked() {
- Conference conference = new Conference();
- conference.jid = Jid.parse(jid_entry.text);
- conference.nick = nick_entry.text != "" ? nick_entry.text : null;
- conference.name = alias_entry.text;
- if (edit_conference == null) {
- stream_interactor.get_module(MucManager.IDENTITY).add_bookmark(account_combobox.selected, conference);
- } else {
- stream_interactor.get_module(MucManager.IDENTITY).replace_bookmark(account_combobox.selected, edit_conference, conference);
+ try {
+ Conference conference = new Conference();
+ conference.jid = new Jid(jid_entry.text);
+ conference.nick = nick_entry.text != "" ? nick_entry.text : null;
+ conference.name = alias_entry.text;
+ if (edit_conference == null) {
+ stream_interactor.get_module(MucManager.IDENTITY).add_bookmark(account_combobox.selected, conference);
+ } else {
+ stream_interactor.get_module(MucManager.IDENTITY).replace_bookmark(account_combobox.selected, edit_conference, conference);
+ }
+ close();
+ } catch (InvalidJidError e) {
+ warning("Ignoring invalid conference Jid: %s", e.message);
}
- close();
}
}