Ensure that text isn't formatted in context menu

This commit is contained in:
Tobias Fella
2022-07-09 23:01:13 +02:00
parent 27e660178e
commit 2bcd7118f4
5 changed files with 18 additions and 6 deletions

View File

@@ -25,12 +25,12 @@ TimelineContainer {
TapHandler {
acceptedButtons: Qt.RightButton
onTapped: openMessageContext(model, parent.selectedText)
onTapped: openMessageContext(model, parent.selectedText, Controller.plainText(parent.textDocument))
}
TapHandler {
acceptedButtons: Qt.LeftButton
onLongPressed: openMessageContext(model, parent.selectedText)
onLongPressed: openMessageContext(model, parent.selectedText, Controller.plainText(parent.textDocument))
}
}
}

View File

@@ -20,6 +20,7 @@ Loader {
property string formattedBody: ""
required property string source
property string selectedText: ""
required property string plainMessage
property list<Kirigami.Action> nestedActions
@@ -45,7 +46,7 @@ Loader {
Kirigami.Action {
text: i18n("Copy")
icon.name: "edit-copy"
onTriggered: Clipboard.saveText(loadRoot.selectedText === "" ? loadRoot.message : loadRoot.selectedText)
onTriggered: Clipboard.saveText(loadRoot.selectedText === "" ? loadRoot.plainMessage : loadRoot.selectedText)
},
Kirigami.Action {
text: i18n("View Source")
@@ -111,7 +112,7 @@ Loader {
Instantiator {
model: WebShortcutModel {
id: webshortcutmodel
selectedText: loadRoot.selectedText ? loadRoot.selectedText : loadRoot.message
selectedText: loadRoot.selectedText ? loadRoot.selectedText : loadRoot.plainMessage
onOpenUrl: RoomManager.visitNonMatrix(url)
}
delegate: QQC2.MenuItem {

View File

@@ -598,12 +598,13 @@ Kirigami.ScrollablePage {
file: file,
mimeType: event.mimeType,
progressInfo: event.progressInfo,
plainMessage: event.message,
});
contextMenu.open();
}
/// Open context menu for normal message
function openMessageContext(event, selectedText) {
function openMessageContext(event, selectedText, plainMessage) {
const contextMenu = messageDelegateContextMenu.createObject(page, {
selectedText: selectedText,
author: event.author,
@@ -611,7 +612,8 @@ Kirigami.ScrollablePage {
eventId: event.eventId,
formattedBody: event.formattedBody,
source: event.source,
eventType: event.eventType
eventType: event.eventType,
plainMessage: plainMessage,
});
contextMenu.open();
}

View File

@@ -24,10 +24,12 @@
#include <QNetworkReply>
#include <QPixmap>
#include <QQuickItem>
#include <QQuickTextDocument>
#include <QQuickWindow>
#include <QStandardPaths>
#include <QStringBuilder>
#include <QSysInfo>
#include <QTextDocument>
#include <QTimer>
#include <utility>
@@ -700,3 +702,8 @@ bool Controller::hasWindowSystem() const
return false;
#endif
}
QString Controller::plainText(QQuickTextDocument *document) const
{
return document->textDocument()->toPlainText();
}

View File

@@ -21,6 +21,7 @@ class NeoChatRoom;
class NeoChatUser;
class TrayIcon;
class QQuickWindow;
class QQuickTextDocument;
namespace QKeychain
{
@@ -94,6 +95,7 @@ public:
Q_INVOKABLE void setBlur(QQuickItem *item, bool blur);
Q_INVOKABLE void raiseWindow(QWindow *window);
Q_INVOKABLE QString plainText(QQuickTextDocument *document) const;
private:
explicit Controller(QObject *parent = nullptr);