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_FOREIGN(Quotient::SSSSHandler)
QML_NAMED_ELEMENT(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. * @brief The message author.
*/ */
property RoomMember author property NeochatRoomMember author
/** /**
* @brief The timestamp of the message. * @brief The timestamp of the message.

View File

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

View File

@@ -232,7 +232,7 @@ public:
/** /**
* @brief Show a context menu for the given event. * @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; ChatDocumentHandler *chatDocumentHandler() const;
void setChatDocumentHandler(ChatDocumentHandler *handler); void setChatDocumentHandler(ChatDocumentHandler *handler);

View File

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

View File

@@ -26,7 +26,7 @@ TimelineDelegate {
/** /**
* @brief The message author. * @brief The message author.
*/ */
required property RoomMember author required property NeochatRoomMember author
width: parent?.width width: parent?.width
rightPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.gridUnit * 2 + Kirigami.Units.largeSpacing : Kirigami.Units.largeSpacing 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 { QtObject {
id: _private id: _private
function showMessageMenu() { 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 * @sa Quotient::RoomMember
*/ */
required property var author required property NeochatRoomMember author
/** /**
* @brief The model to visualise the content of the message. * @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 property bool showUserMessageOnRight: NeoChatConfig.showLocalMessagesOnRight && root.author.isLocalMember && !NeoChatConfig.compactLayout && !root.alwaysFillWidth
function showMessageMenu() { function showMessageMenu() {
RoomManager.viewEventMenu(root.eventId, root.room, root.selectedText); RoomManager.viewEventMenu(root.eventId, root.room, root.author, root.selectedText);
} }
} }
} }