Move the ActionsHandler instance to the RoomPage
This is required since when using a RoomWindow, the ActionsHandler from the RoomManager is used, which means that the wrong room is used.
This commit is contained in:
@@ -337,13 +337,13 @@ ToolBar {
|
||||
checkForFancyEffectsReason();
|
||||
if (ChatBoxHelper.hasAttachment) {
|
||||
// send attachment but don't reset the text
|
||||
roomManager.actionsHandler.postMessage("", ChatBoxHelper.attachmentPath,
|
||||
actionsHandler.postMessage("", ChatBoxHelper.attachmentPath,
|
||||
ChatBoxHelper.replyEventId, ChatBoxHelper.editEventId, {});
|
||||
currentRoom.markAllMessagesAsRead();
|
||||
messageSent();
|
||||
return;
|
||||
}
|
||||
roomManager.actionsHandler.postMessage(inputField.text.trim(), ChatBoxHelper.attachmentPath,
|
||||
actionsHandler.postMessage(inputField.text.trim(), ChatBoxHelper.attachmentPath,
|
||||
ChatBoxHelper.replyEventId, ChatBoxHelper.editEventId, userAutocompleted);
|
||||
currentRoom.markAllMessagesAsRead();
|
||||
inputField.clear();
|
||||
|
||||
@@ -36,7 +36,7 @@ Kirigami.OverlaySheet {
|
||||
|
||||
text: i18nc("@action:button", "Ok")
|
||||
onClicked: {
|
||||
roomManager.actionsHandler.createRoom(roomNameField.text, roomTopicField.text);
|
||||
Controller.createRoom(roomNameField.text, roomTopicField.text);
|
||||
root.close();
|
||||
root.destroy();
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ Kirigami.ScrollablePage {
|
||||
|
||||
onClicked: {
|
||||
if (!identifierField.isJoined) {
|
||||
roomManager.actionsHandler.joinRoom(identifierField.text);
|
||||
Controller.joinRoom(identifierField.text);
|
||||
// When joining the room, the room will be opened
|
||||
}
|
||||
applicationWindow().pageStack.layers.pop();
|
||||
@@ -97,7 +97,7 @@ Kirigami.ScrollablePage {
|
||||
width: publicRoomsListView.width
|
||||
onClicked: {
|
||||
if (!isJoined) {
|
||||
roomManager.actionsHandler.joinRoom(roomID)
|
||||
Controller.joinRoom(roomID)
|
||||
justJoined = true;
|
||||
} else {
|
||||
roomManager.enterRoom(connection.room(roomID))
|
||||
|
||||
@@ -30,6 +30,14 @@ Kirigami.ScrollablePage {
|
||||
|
||||
onCurrentRoomChanged: ChatBoxHelper.clearEditReply()
|
||||
|
||||
|
||||
ActionsHandler {
|
||||
id: actionsHandler
|
||||
room: page.currentRoom
|
||||
connection: Controller.activeConnection
|
||||
}
|
||||
|
||||
|
||||
Connections {
|
||||
target: Controller.activeConnection
|
||||
function onJoinedRoom(room) {
|
||||
@@ -40,7 +48,7 @@ Kirigami.ScrollablePage {
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: roomManager.actionsHandler
|
||||
target: actionsHandler
|
||||
onShowMessage: {
|
||||
page.header.contentItem.text = message;
|
||||
page.header.contentItem.type = messageType === ActionsHandler.Error ? Kirigami.MessageType.Error : Kirigami.MessageType.Information;
|
||||
|
||||
@@ -57,11 +57,6 @@ Kirigami.ApplicationWindow {
|
||||
QtObject {
|
||||
id: roomManager
|
||||
|
||||
property var actionsHandler: ActionsHandler {
|
||||
room: roomManager.currentRoom
|
||||
connection: Controller.activeConnection
|
||||
}
|
||||
|
||||
property var currentRoom: null
|
||||
property alias pageStack: root.pageStack
|
||||
property var roomList: null
|
||||
|
||||
@@ -73,10 +73,10 @@ public:
|
||||
Q_ENUM(PasswordStatus);
|
||||
|
||||
/// \brief Create new room for a group chat.
|
||||
void createRoom(const QString &name, const QString &topic);
|
||||
Q_INVOKABLE void createRoom(const QString &name, const QString &topic);
|
||||
|
||||
/// \brief Join a room.
|
||||
void joinRoom(const QString &alias);
|
||||
Q_INVOKABLE void joinRoom(const QString &alias);
|
||||
|
||||
private:
|
||||
explicit Controller(QObject *parent = nullptr);
|
||||
|
||||
Reference in New Issue
Block a user