Mercurial > libervia-backend
changeset 3158:6032245c927e
quick frontend (app): added "explicit_close" to deleteWidget, and use it on mucRoomLeftHandler:
This flag can be used by frontends to decide if the widget must be really closed or not
(otherwise, it may be interesting to keep a widget in memory to avoir recreating a new one
each time that the chat must be displayed).
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 06 Feb 2020 00:01:36 +0100 |
parents | 8b4354b5c05f |
children | 30e08d904208 |
files | sat_frontends/quick_frontend/quick_app.py sat_frontends/quick_frontend/quick_widgets.py |
diffstat | 2 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/sat_frontends/quick_frontend/quick_app.py Wed Feb 05 23:59:19 2020 +0100 +++ b/sat_frontends/quick_frontend/quick_app.py Thu Feb 06 00:01:36 2020 +0100 @@ -886,7 +886,8 @@ room_jid = jid.JID(room_jid_s) chat_widget = self.widgets.getWidget(quick_chat.QuickChat, room_jid, profile) if chat_widget: - self.widgets.deleteWidget(chat_widget) + self.widgets.deleteWidget( + chat_widget, all_instances=True, explicit_close=True) self.contact_lists[profile].removeContact(room_jid) def mucRoomUserChangedNickHandler(self, room_jid_s, old_nick, new_nick, profile):
--- a/sat_frontends/quick_frontend/quick_widgets.py Wed Feb 05 23:59:19 2020 +0100 +++ b/sat_frontends/quick_frontend/quick_widgets.py Thu Feb 06 00:01:36 2020 +0100 @@ -274,11 +274,16 @@ @param widget_to_delete(QuickWidget): widget which need to deleted @param *args: extra arguments to pass to onDelete @param *kwargs: extra keywords arguments to pass to onDelete - the extra arguments are not use by QuickFrontend, it's is up to - the frontend to use them or not - "all_instances" can be used as kwarg, if it evaluate to True, all - instances of the widget will be deleted (if onDelete is not returning False - for any of the instance). This arguments is not sent to onDelete methods. + the extra arguments are not used by QuickFrontend, it's is up to + the frontend to use them or not. + following extra arguments are well known: + - "all_instances" can be used as kwarg, if it evaluate to True, + all instances of the widget will be deleted (if onDelete is + not returning False for any of the instance). This arguments + is not sent to onDelete methods. + - "explicit_close" is used when the deletion is requested by + the user or a leave signal, "all_instances" is usually set at + the same time. """ # TODO: all_instances must be independante kwargs, this is not possible with Python 2 # but will be with Python 3