diff --git a/src/models/messageeventmodel.cpp b/src/models/messageeventmodel.cpp
index e2444732e..17cc1db2c 100644
--- a/src/models/messageeventmodel.cpp
+++ b/src/models/messageeventmodel.cpp
@@ -88,11 +88,14 @@ void MessageEventModel::setRoom(NeoChatRoom *room)
// HACK: Reset the model to a null room first to make sure QML dismantles
// last room's objects before the room is actually changed
beginResetModel();
- m_memberObjects.clear();
m_readMarkerModels.clear();
m_currentRoom->disconnect(this);
m_currentRoom = nullptr;
endResetModel();
+
+ // Don't clear the member objects until the model has been fully reset and all
+ // refs cleared.
+ m_memberObjects.clear();
}
beginResetModel();
diff --git a/src/roommanager.cpp b/src/roommanager.cpp
index af9af2749..8bbd690cd 100644
--- a/src/roommanager.cpp
+++ b/src/roommanager.cpp
@@ -185,7 +185,7 @@ void RoomManager::maximizeMedia(int index)
Q_EMIT showMaximizedMedia(index);
}
-void RoomManager::maximizeCode(const RoomMember &author, const QDateTime &time, const QString &codeText, const QString &language)
+void RoomManager::maximizeCode(NeochatRoomMember *author, const QDateTime &time, const QString &codeText, const QString &language)
{
if (codeText.isEmpty()) {
return;
diff --git a/src/roommanager.h b/src/roommanager.h
index 08f80b136..7c642c377 100644
--- a/src/roommanager.h
+++ b/src/roommanager.h
@@ -217,7 +217,7 @@ public:
*/
Q_INVOKABLE void maximizeMedia(int index);
- Q_INVOKABLE void maximizeCode(const RoomMember &author, const QDateTime &time, const QString &codeText, const QString &language);
+ Q_INVOKABLE void maximizeCode(NeochatRoomMember *author, const QDateTime &time, const QString &codeText, const QString &language);
/**
* @brief Request that any full screen overlay currently open closes.
@@ -288,7 +288,7 @@ Q_SIGNALS:
/**
* @brief Request a block of code is shown maximized.
*/
- void showMaximizedCode(const RoomMember &author, const QDateTime &time, const QString &codeText, const QString &language);
+ void showMaximizedCode(NeochatRoomMember *author, const QDateTime &time, const QString &codeText, const QString &language);
/**
* @brief Request that any full screen overlay closes.
diff --git a/src/timeline/StateComponent.qml b/src/timeline/StateComponent.qml
index fe75715fc..2d3f8a4eb 100644
--- a/src/timeline/StateComponent.qml
+++ b/src/timeline/StateComponent.qml
@@ -54,7 +54,7 @@ RowLayout {
anchors.fill: parent
enabled: root.author
cursorShape: Qt.PointingHandCursor
- onClicked: RoomManager.resolveResource("https://matrix.to/#/" + root.author.id)
+ onClicked: RoomManager.resolveResource("https://matrix.to/#/" + root.author?.id ?? "")
}
}
@@ -62,7 +62,7 @@ RowLayout {
id: label
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
- text: `${root.authorDisplayName} ${root.text}`
+ text: `${root.authorDisplayName} ${root.text}`
wrapMode: Text.WordWrap
textFormat: Text.RichText
onLinkActivated: link => RoomManager.resolveResource(link)