Fix off-by-1 in insertRows when loading room list from initial sync
2 files changed, 4 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b094fb89..6fbb90a7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -162,7 +162,7 @@ appimage-amd64:
before_script:
# app build requirements
- apt-get update && apt-get install -y software-properties-common
- - add-apt-repository ppa:beineri/opt-qt-5.15.2-xenial -y
+ - add-apt-repository ppa:beineri/opt-qt-5.15.2-bionic -y
- apt-get update
- apt-get install -y git wget curl
diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp
index e2901260..1c1057e1 100644
--- a/src/timeline/RoomlistModel.cpp
+++ b/src/timeline/RoomlistModel.cpp
@@ -348,7 +348,7 @@ RoomlistModel::addRoom(const QString &room_id, bool suppressInsertNotification)
beginInsertRows(QModelIndex(),
(int)roomids.size(),
(int)(roomids.size() + previewsToAdd.size() -
- ((wasInvite || wasPreview) ? 0 : 1)));
+ ((wasInvite || wasPreview) ? 1 : 0)));
models.insert(room_id, std::move(newRoom));
if (wasInvite) {
@@ -368,7 +368,8 @@ RoomlistModel::addRoom(const QString &room_id, bool suppressInsertNotification)
roomids.push_back(std::move(p));
}
- if (!suppressInsertNotification && !wasInvite)
+ if (!suppressInsertNotification &&
+ ((!wasInvite && !wasPreview) || !previewedRooms.empty()))
endInsertRows();
}
}
|