Don't leak memory
This commit is contained in:
@@ -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)
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user