Mercurial > libervia-backend
changeset 2022:88c41a195728
primitivus (chat): added :topic (and :subject and :title aliases) to change subject with a dialog (/!\ urwid SàText need to be updated)
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 24 Jul 2016 19:00:50 +0200 (2016-07-24) |
parents | 6c51e8f17c92 |
children | 224c8b0886bc |
files | frontends/src/primitivus/chat.py frontends/src/primitivus/primitivus frontends/src/quick_frontend/quick_chat.py |
diffstat | 3 files changed, 30 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/frontends/src/primitivus/chat.py Sun Jul 24 18:59:02 2016 +0200 +++ b/frontends/src/primitivus/chat.py Sun Jul 24 19:00:50 2016 +0200 @@ -603,5 +603,18 @@ self.title_dynamic = C.CHAT_STATE_ICON[state] self.host.redraw() # FIXME: should not be necessary + def _onSubjectDialogCb(self, button, dialog): + self.changeSubject(dialog.text) + self.host.removePopUp(dialog) + + def onSubjectDialog(self, new_subject=None): + dialog = sat_widgets.InputDialog( + _(u'Change title'), + _(u'Enter the new title'), + default_txt=new_subject if new_subject is not None else self.subject) + dialog.setCallback('ok', self._onSubjectDialogCb, dialog) + dialog.setCallback('cancel', lambda dummy: self.host.removePopUp(dialog)) + self.host.showPopUp(dialog) + quick_widgets.register(quick_chat.QuickChat, Chat) quick_widgets.register(quick_games.Tarot, game_tarot.TarotGame)
--- a/frontends/src/primitivus/primitivus Sun Jul 24 18:59:02 2016 +0200 +++ b/frontends/src/primitivus/primitivus Sun Jul 24 19:00:50 2016 +0200 @@ -138,6 +138,14 @@ # FIXME: Q&D way, need to be more generic if isinstance(widget, quick_chat.QuickChat): widget.setFilter(args) + elif command in ('topic', 'suject', 'title'): + try: + new_title = args[0].strip() + except IndexError: + new_title = None + widget = self.host.selected_widget + if isinstance(widget, quick_chat.QuickChat) and widget.type == C.CHAT_GROUP: + widget.onSubjectDialog(new_title) else: return self.set_edit_text('')
--- a/frontends/src/quick_frontend/quick_chat.py Sun Jul 24 18:59:02 2016 +0200 +++ b/frontends/src/quick_frontend/quick_chat.py Sun Jul 24 19:00:50 2016 +0200 @@ -423,9 +423,17 @@ def setSubject(self, subject): """Set title for a group chat""" - self.subject = subject if self.type != C.CHAT_GROUP: raise exceptions.InternalError("trying to set subject for a non group chat window") + self.subject = subject + + def changeSubject(self, new_subject): + """Change the subject of the room + + This change the subject on the room itself (i.e. via XMPP), + while setSubject change the subject of this widget + """ + self.host.bridge.mucSubject(unicode(self.target), new_subject, self.profile) def addGamePanel(self, widget): """Insert a game panel to this Chat dialog.