Don't leak memory

This commit is contained in:
James Graham
2024-07-23 19:14:49 +01:00
parent 32d4d9f75f
commit 8e4b20341d
7 changed files with 10 additions and 21 deletions

View File

@@ -38,9 +38,3 @@ struct ForeignSSSSHandler {
QML_FOREIGN(Quotient::SSSSHandler)
QML_NAMED_ELEMENT(SSSSHandler)
};
struct RoomMemberForeign {
Q_GADGET
QML_FOREIGN(Quotient::RoomMember)
QML_NAMED_ELEMENT(RoomMember)
};

View File

@@ -17,7 +17,7 @@ Components.AbstractMaximizeComponent {
/**
* @brief The message author.
*/
property RoomMember author
property NeochatRoomMember author
/**
* @brief The timestamp of the message.

View File

@@ -203,14 +203,14 @@ void RoomManager::viewEventSource(const QString &eventId)
Q_EMIT showEventSource(eventId);
}
void RoomManager::viewEventMenu(const QString &eventId, NeoChatRoom *room, const QString &selectedText)
void RoomManager::viewEventMenu(const QString &eventId, NeoChatRoom *room, NeochatRoomMember *sender, const QString &selectedText)
{
const auto &event = **room->findInTimeline(eventId);
const auto eventHandler = EventHandler(room, &event);
if (eventHandler.getMediaInfo().contains("mimeType"_ls)) {
Q_EMIT showFileMenu(eventId,
new NeochatRoomMember(room, eventId),
sender,
eventHandler.messageComponentType(),
eventHandler.getPlainBody(),
eventHandler.getMediaInfo()["mimeType"_ls].toString(),
@@ -218,12 +218,7 @@ void RoomManager::viewEventMenu(const QString &eventId, NeoChatRoom *room, const
return;
}
Q_EMIT showMessageMenu(eventId,
new NeochatRoomMember(room, eventId),
eventHandler.messageComponentType(),
eventHandler.getPlainBody(),
eventHandler.getRichBody(),
selectedText);
Q_EMIT showMessageMenu(eventId, sender, eventHandler.messageComponentType(), eventHandler.getPlainBody(), eventHandler.getRichBody(), selectedText);
}
bool RoomManager::hasOpenRoom() const

View File

@@ -232,7 +232,7 @@ public:
/**
* @brief Show a context menu for the given event.
*/
Q_INVOKABLE void viewEventMenu(const QString &eventId, NeoChatRoom *room, const QString &selectedText = {});
Q_INVOKABLE void viewEventMenu(const QString &eventId, NeoChatRoom *room, NeochatRoomMember *sender, const QString &selectedText = {});
ChatDocumentHandler *chatDocumentHandler() const;
void setChatDocumentHandler(ChatDocumentHandler *handler);

View File

@@ -20,7 +20,7 @@ QQC2.Control {
*
* @sa Quotient::RoomMember
*/
required property RoomMember author
required property NeochatRoomMember author
/**
* @brief The timestamp of the message.

View File

@@ -26,7 +26,7 @@ TimelineDelegate {
/**
* @brief The message author.
*/
required property RoomMember author
required property NeochatRoomMember author
width: parent?.width
rightPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.gridUnit * 2 + Kirigami.Units.largeSpacing : Kirigami.Units.largeSpacing
@@ -88,7 +88,7 @@ TimelineDelegate {
QtObject {
id: _private
function showMessageMenu() {
RoomManager.viewEventMenu(root.eventId, root.room, "");
RoomManager.viewEventMenu(root.eventId, root.room, root.author, "");
}
}
}

View File

@@ -50,7 +50,7 @@ TimelineDelegate {
*
* @sa Quotient::RoomMember
*/
required property var author
required property NeochatRoomMember author
/**
* @brief The model to visualise the content of the message.
@@ -365,7 +365,7 @@ TimelineDelegate {
property bool showUserMessageOnRight: NeoChatConfig.showLocalMessagesOnRight && root.author.isLocalMember && !NeoChatConfig.compactLayout && !root.alwaysFillWidth
function showMessageMenu() {
RoomManager.viewEventMenu(root.eventId, root.room, root.selectedText);
RoomManager.viewEventMenu(root.eventId, root.room, root.author, root.selectedText);
}
}
}