From dcc394677e739b732f690089270ebb90f5ad8b2c Mon Sep 17 00:00:00 2001 From: James Graham Date: Sun, 8 Feb 2026 16:53:21 +0000 Subject: [PATCH] Restore image editor --- src/messagecontent/ImageComponent.qml | 80 +++++++++++++++++---------- 1 file changed, 52 insertions(+), 28 deletions(-) diff --git a/src/messagecontent/ImageComponent.qml b/src/messagecontent/ImageComponent.qml index 4d7fb513f..f0b83941d 100644 --- a/src/messagecontent/ImageComponent.qml +++ b/src/messagecontent/ImageComponent.qml @@ -60,39 +60,63 @@ Item { implicitWidth: mediaSizeHelper.currentSize.width implicitHeight: mediaSizeHelper.currentSize.height - QQC2.Button { + RowLayout { anchors.top: root.top anchors.topMargin: Kirigami.Units.smallSpacing anchors.right: root.right anchors.rightMargin: root.rightAnchorMargin + Kirigami.Units.smallSpacing - visible: !_private.hideImage && !root.editable - icon.name: "view-hidden" - text: i18nc("@action:button", "Hide Image") - display: QQC2.Button.IconOnly - z: 10 - onClicked: { - _private.hideImage = true; - Controller.markImageHidden(root.eventId) - } - QQC2.ToolTip.text: text - QQC2.ToolTip.visible: hovered - QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay - } - QQC2.Button { - id: cancelButton - anchors.top: root.top - anchors.topMargin: Kirigami.Units.smallSpacing - anchors.right: root.right - anchors.rightMargin: root.rightAnchorMargin + Kirigami.Units.smallSpacing - visible: root.editable - display: QQC2.AbstractButton.IconOnly - text: i18nc("@action:button", "Remove attachment") - icon.name: "dialog-close" - onClicked: root.Message.contentModel?.removeAttachment() - QQC2.ToolTip.text: text - QQC2.ToolTip.visible: hovered - QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + QQC2.Button { + + visible: !_private.hideImage && !root.editable + icon.name: "view-hidden" + text: i18nc("@action:button", "Hide Image") + display: QQC2.Button.IconOnly + z: 10 + onClicked: { + _private.hideImage = true; + Controller.markImageHidden(root.eventId) + } + + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } + QQC2.Button { + id: editImageButton + visible: root.editable + icon.name: "document-edit" + text: i18n("Edit") + display: QQC2.AbstractButton.IconOnly + + Component { + id: imageEditorPage + ImageEditorPage { + imagePath: root.componentAttributes.source + } + } + + onClicked: { + let imageEditor = (Kirigami.PageStack.pageStack as Kirigami.PageRow).pushDialogLayer(imageEditorPage); + imageEditor.newPathChanged.connect(function (newPath) { + imageEditor.closeDialog(); + Message.contentModel?.addAttachment(newPath); + }); + } + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + } + QQC2.Button { + id: cancelButton + visible: root.editable + display: QQC2.AbstractButton.IconOnly + text: i18nc("@action:button", "Remove attachment") + icon.name: "dialog-close" + onClicked: root.Message.contentModel?.removeAttachment() + QQC2.ToolTip.text: text + QQC2.ToolTip.visible: hovered + QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay + } } Loader {