From 128a015d45031f2b064f3a8e4d6bb99579eefd60 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Sun, 22 Oct 2017 03:39:13 +0200 Subject: Directly start chat from xmpp uri if only one account is active fixes #160 --- main/src/ui/application.vala | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'main/src') diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala index 5ce5e063..ff5f44ac 100644 --- a/main/src/ui/application.vala +++ b/main/src/ui/application.vala @@ -58,17 +58,24 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application { dialog.present(); break; case "message": - AddConversation.Chat.Dialog dialog = new AddConversation.Chat.Dialog(stream_interactor, stream_interactor.get_accounts()); - dialog.set_filter(jid); - dialog.set_transient_for(window); - dialog.title = _("Start Chat"); - dialog.ok_button.label = _("Start"); - dialog.selected.connect((account, jid) => { - Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(jid, account, Conversation.Type.CHAT); + Gee.List accounts = stream_interactor.get_accounts(); + if (accounts.size == 1) { + Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(new Jid(jid), accounts[0], Conversation.Type.CHAT); stream_interactor.get_module(ConversationManager.IDENTITY).start_conversation(conversation, true); window.on_conversation_selected(conversation); - }); - dialog.present(); + } else { + AddConversation.Chat.Dialog dialog = new AddConversation.Chat.Dialog(stream_interactor, stream_interactor.get_accounts()); + dialog.set_filter(jid); + dialog.set_transient_for(window); + dialog.title = _("Start Chat"); + dialog.ok_button.label = _("Start"); + dialog.selected.connect((account, jid) => { + Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(jid, account, Conversation.Type.CHAT); + stream_interactor.get_module(ConversationManager.IDENTITY).start_conversation(conversation, true); + window.on_conversation_selected(conversation); + }); + dialog.present(); + } break; } } -- cgit v1.2.3-70-g09d2