From 653934be713ec3155eb920d67bdd43b048a86515 Mon Sep 17 00:00:00 2001 From: miruka Date: Fri, 16 Aug 2019 02:03:13 -0400 Subject: [PATCH] Fix declining invitation being ignored --- TODO.md | 8 +++----- src/python/matrix_client.py | 7 ++++--- src/qml/Chat/Chat.qml | 1 - 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/TODO.md b/TODO.md index 7cdf6171..7432e8c7 100644 --- a/TODO.md +++ b/TODO.md @@ -14,18 +14,14 @@ - Reloading config files (cache) - Ignore @ when filtering members - Tiny invisible scrollbar - - Update state.json page when accepting an invite - Run import in thread and AsyncClient.olm functions, they block async loop - Handle import keys errors - - Update the room subtitle when a message is decrypted/edited - Don't linkify images for outgoing html - - state: If last page is a room and the account for it is no longer present, - load Default.qml instead - - Message position after daybreak delegate - Keyboard flicking against top/bottom edge - Don't strip user spacing in html + - [hr not working](https://bugreports.qt.io/browse/QTBUG-74342) - Terrible performance using `QT_QPA_PLATFORM=wayland-egl`, must use `xcb` @@ -53,6 +49,8 @@ - Adapt shortcuts flicking speed to font size and DPI - Show error box if uploading avatar fails - EditAccount page: + - Remove account from client + - state: Set UI state page to Default.qml when account is removed - Device settings - Multiaccount aliases: - Warn when conflict with another alias diff --git a/src/python/matrix_client.py b/src/python/matrix_client.py index 8697acb8..4c2e7c02 100644 --- a/src/python/matrix_client.py +++ b/src/python/matrix_client.py @@ -453,15 +453,16 @@ class MatrixClient(nio.AsyncClient): for room_id, info in resp.rooms.leave.items(): # TODO: handle in nio, these are rooms that were left before # starting the client. - if room_id not in self.rooms: + if room_id not in self.all_rooms: + log.warning("Left room not in MatrixClient.rooms: %r", room_id) continue # TODO: handle left events in nio async client for ev in info.timeline.events: if isinstance(ev, nio.RoomMemberEvent): - await self.onRoomMemberEvent(self.rooms[room_id], ev) + await self.onRoomMemberEvent(self.all_rooms[room_id], ev) - await self.register_nio_room(self.rooms[room_id], left=True) + await self.register_nio_room(self.all_rooms[room_id], left=True) if not self.first_sync_happened.is_set(): asyncio.ensure_future(self.load_rooms_without_visible_events()) diff --git a/src/qml/Chat/Chat.qml b/src/qml/Chat/Chat.qml index ca00ee75..41c5d816 100644 --- a/src/qml/Chat/Chat.qml +++ b/src/qml/Chat/Chat.qml @@ -19,7 +19,6 @@ HPage { modelSources[["Room", userId]] || [], "room_id", roomId ) || "waiting" onRoomInfoChanged: { - print( JSON.stringify( roomInfo, null, 4)) if (roomInfo.left) { // The room will most likely be gone on client restart window.uiState.page = "Pages/Default.qml"