diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml index c06b47c2..c53a7415 100644 --- a/resources/qml/TimelineView.qml +++ b/resources/qml/TimelineView.qml @@ -211,7 +211,7 @@ Item { Layout.alignment: Qt.AlignHCenter MatrixText { - text: preview.roomName == "" ? qsTr("No preview available") : preview.roomName + text: !roomPreview.isFetched ? qsTr("No preview available") : preview.roomName font.pixelSize: 24 } @@ -252,7 +252,7 @@ Item { Layout.rightMargin: Nheko.paddingLarge TextArea { - text: preview.roomName != "" ? TimelineManager.escapeEmoji(preview.roomTopic) : qsTr("This room is possibly inaccessible. If this room is private, you should remove it from the child list of this space.") + text: roomPreview.isFetched ? TimelineManager.escapeEmoji(preview.roomTopic) : qsTr("This room is possibly inaccessible. If this room is private, you should remove it from the child list of this space.") wrapMode: TextEdit.WordWrap textFormat: TextEdit.RichText readOnly: true diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp index 17226977..12fee262 100644 --- a/src/timeline/RoomlistModel.cpp +++ b/src/timeline/RoomlistModel.cpp @@ -796,11 +796,13 @@ RoomlistModel::setCurrentRoom(const QString &roomid) p.roomName_ = QString::fromStdString(i->name); p.roomTopic_ = QString::fromStdString(i->topic); p.roomAvatarUrl_ = QString::fromStdString(i->avatar_url); + p.isFetched_ = true; currentRoomPreview_ = std::move(p); nhlog::ui()->debug("Switched to (preview): {}", currentRoomPreview_->roomid_.toStdString()); } else { p.roomid_ = roomid; + p.isFetched_ = false; currentRoomPreview_ = p; nhlog::ui()->debug("Switched to (empty): {}", currentRoomPreview_->roomid_.toStdString()); diff --git a/src/timeline/RoomlistModel.h b/src/timeline/RoomlistModel.h index 60d22cc0..cd1cdcaf 100644 --- a/src/timeline/RoomlistModel.h +++ b/src/timeline/RoomlistModel.h @@ -32,6 +32,7 @@ class RoomPreview Q_PROPERTY(QString roomAvatarUrl READ roomAvatarUrl CONSTANT) Q_PROPERTY(QString reason READ reason CONSTANT) Q_PROPERTY(bool isInvite READ isInvite CONSTANT) + Q_PROPERTY(bool isFetched READ isFetched CONSTANT) public: RoomPreview() {} @@ -42,9 +43,10 @@ public: QString roomAvatarUrl() const { return roomAvatarUrl_; } QString reason() const { return reason_; } bool isInvite() const { return isInvite_; } + bool isFetched() const { return isFetched_; } QString roomid_, roomName_, roomAvatarUrl_, roomTopic_, reason_; - bool isInvite_ = false; + bool isInvite_ = false, isFetched_ = true; }; class RoomlistModel final : public QAbstractListModel