From a417fad586ebef84441e03fdc2bcfd65b67c0913 Mon Sep 17 00:00:00 2001 From: Nico Alt <nicoalt@posteo.org> Date: Sat, 1 Jun 2019 21:17:52 +0200 Subject: [PATCH] Add ability to chat with other contacts than the first one Co-Authored-By: ialokim <ialokim@t-online.de> --- src/briar/api/models/private_chat.py | 4 ++-- src/briar/gtk/containers/main.py | 15 +++++---------- src/briar/gtk/window.py | 6 ++---- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/briar/api/models/private_chat.py b/src/briar/api/models/private_chat.py index 6e689aa..c11fadb 100644 --- a/src/briar/api/models/private_chat.py +++ b/src/briar/api/models/private_chat.py @@ -14,7 +14,7 @@ class PrivateChat(Model): def get(self, contact_id): headers = {'Authorization': 'Bearer ' + self._api.auth_token} - url = urljoin(self._constants.get_base_url(), 'messages/' + contact_id) + url = urljoin(self._constants.get_base_url(), 'messages/%i' % contact_id) r = _get(url, headers=headers) return r.json() @@ -25,5 +25,5 @@ class PrivateChat(Model): def send(self, contact_id, message): headers = {'Authorization': 'Bearer ' + self._api.auth_token} - url = urljoin(self._constants.get_base_url(), 'messages/' + contact_id) + url = urljoin(self._constants.get_base_url(), 'messages/%s' % contact_id) _post(url, headers=headers, json={'text': message}) diff --git a/src/briar/gtk/containers/main.py b/src/briar/gtk/containers/main.py index 9dabfc8..4cc9be8 100644 --- a/src/briar/gtk/containers/main.py +++ b/src/briar/gtk/containers/main.py @@ -8,7 +8,7 @@ from briar.gtk.define import App import gi gi.require_version('Gtk', '3.0') -from gi.repository import GLib, GObject, Gtk +from gi.repository import GLib, Gtk class MainContainer(Container): @@ -16,15 +16,9 @@ class MainContainer(Container): def __init__(self): super().__init__() self._api = App().api - self._register_signals() self._setup_view() self._load_content() - def _register_signals(self): - GObject.signal_new("briar_open_private_chat", Gtk.Overlay, - GObject.SignalFlags.RUN_LAST, GObject.TYPE_BOOLEAN, - (GObject.TYPE_STRING,)) - def _setup_view(self): self.builder.add_from_resource("/app/briar/gtk/ui/main.ui") self.add(self.builder.get_object("contacts_list")) @@ -36,9 +30,10 @@ class MainContainer(Container): contacts_list_box = self.builder.get_object("contacts_list") for contact in contacts_list: contact_label = Gtk.Button(contact["author"]["name"]) - contact_label.connect("clicked", self._contact_clicked) + contact_label.connect("clicked", self._contact_clicked, + contact["contactId"]) contact_label.show() contacts_list_box.add(contact_label) - def _contact_clicked(self, contact): - GLib.idle_add(self.emit, "briar_open_private_chat", (contact,)) + def _contact_clicked(self, widget, contactId): + GLib.idle_add(App().window.open_private_chat, contactId) diff --git a/src/briar/gtk/window.py b/src/briar/gtk/window.py index 35eedca..913d6c0 100644 --- a/src/briar/gtk/window.py +++ b/src/briar/gtk/window.py @@ -55,14 +55,12 @@ class Window(Gtk.ApplicationWindow): def __setup_main_container(self): self.__container = MainContainer() self.__container.show() - self.__container.connect("briar_open_private_chat", - self.__open_private_chat) self.__grid.add(self.__container) - def __open_private_chat(self, inst, obj): + def open_private_chat(self, contact_id): self.__grid.destroy() self.__setup_grid() - self.__setup_private_chat("1") + self.__setup_private_chat(contact_id) def __setup_private_chat(self, contact_id): self.__container = ChatContainer(contact_id) -- GitLab