diff --git a/src/RoomList.cpp b/src/RoomList.cpp
index b90c8fa4..a80e0757 100644
--- a/src/RoomList.cpp
+++ b/src/RoomList.cpp
@@ -158,6 +158,8 @@ RoomList::initialize(const QMap<QString, RoomInfo> &info)
if (rooms_.empty())
return;
+ sortRoomsByLastMessage();
+
auto room = firstRoom();
if (room.second.isNull())
return;
@@ -479,13 +481,16 @@ RoomList::addInvitedRoom(const QString &room_id, const RoomInfo &info)
std::pair<QString, QSharedPointer<RoomInfoListItem>>
RoomList::firstRoom() const
{
- auto firstRoom = rooms_.begin();
+ for (int i = 0; i < contentsLayout_->count(); i++) {
+ auto item = qobject_cast<RoomInfoListItem *>(contentsLayout_->itemAt(i)->widget());
- while (firstRoom->second.isNull() && firstRoom != rooms_.end())
- firstRoom++;
+ if (item) {
+ return std::pair<QString, QSharedPointer<RoomInfoListItem>>(
+ item->roomId(), rooms_.at(item->roomId()));
+ }
+ }
- return std::pair<QString, QSharedPointer<RoomInfoListItem>>(firstRoom->first,
- firstRoom->second);
+ return {};
}
void
diff --git a/src/popups/SuggestionsPopup.h b/src/popups/SuggestionsPopup.h
index f84870e7..63c44538 100644
--- a/src/popups/SuggestionsPopup.h
+++ b/src/popups/SuggestionsPopup.h
@@ -59,7 +59,8 @@ private:
size_t posToRemove = layout_->count() - 1;
QLayoutItem *item;
- while (startingPos <= posToRemove && (item = layout_->takeAt(posToRemove)) != nullptr) {
+ while (startingPos <= posToRemove &&
+ (item = layout_->takeAt(posToRemove)) != nullptr) {
delete item->widget();
delete item;
diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 2d0e9627..642e9bbc 100644
--- a/src/timeline/TimelineModel.h
+++ b/src/timeline/TimelineModel.h
@@ -126,7 +126,9 @@ class TimelineModel : public QAbstractListModel
typingUsersChanged)
public:
- explicit TimelineModel(TimelineViewManager *manager, QString room_id, QObject *parent = nullptr);
+ explicit TimelineModel(TimelineViewManager *manager,
+ QString room_id,
+ QObject *parent = nullptr);
enum Roles
{
|