mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-06-07 19:59:14 -04:00
Show full clipboard text in editor
This commit is contained in:
committed by
purian23
parent
8abdff3220
commit
e92da4a15f
@@ -289,6 +289,47 @@ DankModal {
|
|||||||
editField.forceActiveFocus();
|
editField.forceActiveFocus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!newEntry || newEntry.isImage) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const requestedId = newEntry.id;
|
||||||
|
DMSService.sendRequest("clipboard.getEntry", {
|
||||||
|
"id": requestedId
|
||||||
|
}, function (response) {
|
||||||
|
if (response.error) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!editorView.entry || editorView.entry.id !== requestedId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const rawText = response.result?.text ?? response.result?.content ?? response.result?.data ?? "";
|
||||||
|
let fullText = rawText;
|
||||||
|
try {
|
||||||
|
const sanitized = rawText.replace(/\s+/g, "");
|
||||||
|
const decoder = (typeof Qt !== "undefined" && typeof Qt.atob === "function") ? Qt.atob : (typeof atob === "function" ? atob : null);
|
||||||
|
if (decoder) {
|
||||||
|
const decoded = decoder(sanitized);
|
||||||
|
fullText = decoded;
|
||||||
|
try {
|
||||||
|
fullText = decodeURIComponent(escape(decoded));
|
||||||
|
} catch (e) {
|
||||||
|
fullText = decoded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
fullText = rawText;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!fullText || fullText.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
editorView.editorText = fullText;
|
||||||
|
if (editField) {
|
||||||
|
editField.text = fullText;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveEntry(action) {
|
function saveEntry(action) {
|
||||||
@@ -302,7 +343,11 @@ DankModal {
|
|||||||
}
|
}
|
||||||
if (saveAction === "history") {
|
if (saveAction === "history") {
|
||||||
clipboardHistoryModal.mode = "history";
|
clipboardHistoryModal.mode = "history";
|
||||||
clipboardHistoryModal.refreshClipboard();
|
Qt.callLater(function () {
|
||||||
|
ClipboardService.reset();
|
||||||
|
ClipboardService.refresh();
|
||||||
|
keyboardController.reset();
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (saveAction === "close") {
|
if (saveAction === "close") {
|
||||||
@@ -346,6 +391,7 @@ DankModal {
|
|||||||
spacing: Theme.spacingM
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
id: editorHeader
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: ClipboardConstants.headerHeight
|
height: ClipboardConstants.headerHeight
|
||||||
|
|
||||||
@@ -379,7 +425,7 @@ DankModal {
|
|||||||
StyledRect {
|
StyledRect {
|
||||||
id: editFieldContainer
|
id: editFieldContainer
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: Math.max(Theme.fontSizeMedium * 8, Theme.fontSizeMedium * 3)
|
height: Math.max(Theme.fontSizeMedium * 8, parent.height - editorHeader.height - editorActions.height - Theme.spacingM * 2)
|
||||||
radius: Theme.cornerRadius
|
radius: Theme.cornerRadius
|
||||||
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
|
color: Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
|
||||||
border.color: editField.activeFocus ? Theme.primary : Theme.outlineMedium
|
border.color: editField.activeFocus ? Theme.primary : Theme.outlineMedium
|
||||||
@@ -397,8 +443,8 @@ DankModal {
|
|||||||
anchors.topMargin: Theme.spacingM
|
anchors.topMargin: Theme.spacingM
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEdit {
|
DankFlickable {
|
||||||
id: editField
|
id: editScroll
|
||||||
anchors.left: editIcon.right
|
anchors.left: editIcon.right
|
||||||
anchors.leftMargin: Theme.spacingS
|
anchors.leftMargin: Theme.spacingS
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
@@ -407,12 +453,19 @@ DankModal {
|
|||||||
anchors.rightMargin: Theme.spacingM
|
anchors.rightMargin: Theme.spacingM
|
||||||
anchors.topMargin: Theme.spacingS
|
anchors.topMargin: Theme.spacingS
|
||||||
anchors.bottomMargin: Theme.spacingS
|
anchors.bottomMargin: Theme.spacingS
|
||||||
|
clip: true
|
||||||
|
contentWidth: width
|
||||||
|
contentHeight: editField.height
|
||||||
|
|
||||||
|
TextEdit {
|
||||||
|
id: editField
|
||||||
|
width: editScroll.width
|
||||||
|
height: Math.max(editScroll.height, contentHeight)
|
||||||
text: editorView.editorText
|
text: editorView.editorText
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Theme.surfaceText
|
color: Theme.surfaceText
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
Keys.forwardTo: [clipboardHistoryModal.modalFocusScope]
|
|
||||||
onTextChanged: editorView.editorText = text
|
onTextChanged: editorView.editorText = text
|
||||||
Keys.onPressed: function (event) {
|
Keys.onPressed: function (event) {
|
||||||
const hasCtrl = (event.modifiers & Qt.ControlModifier) !== 0;
|
const hasCtrl = (event.modifiers & Qt.ControlModifier) !== 0;
|
||||||
@@ -430,21 +483,23 @@ DankModal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: I18n.tr("Edit clipboard text")
|
text: I18n.tr("Edit clipboard text")
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Theme.outlineButton
|
color: Theme.outlineButton
|
||||||
anchors.left: editField.left
|
anchors.left: editScroll.left
|
||||||
anchors.right: editField.right
|
anchors.right: editScroll.right
|
||||||
anchors.top: editField.top
|
anchors.top: editScroll.top
|
||||||
anchors.bottom: editField.bottom
|
anchors.bottom: editScroll.bottom
|
||||||
visible: editField.text.length === 0 && !editField.activeFocus
|
visible: editField.text.length === 0 && !editField.activeFocus
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
|
id: editorActions
|
||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingS
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user