From 32dd17694e47e6040ab0f5a908f51ff0689fccdb Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sat, 2 Jul 2022 17:36:12 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BA=D0=BE=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D1=81=D0=BE=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Reader/TextPage/TextPage.vue | 62 +++++++++++++++++-- client/store/modules/reader.js | 2 +- 2 files changed, 57 insertions(+), 7 deletions(-) diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index ba497e3d..58377b54 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -6,29 +6,32 @@
-
+
-
+
-
-
-
{ + for (let j = i; j < decodedLines.length; j++) { + const decoded = decodedLines[j]; + if (decoded.text.indexOf(line) >= 0) { + i = j; + return decoded; + } + } + return; + } + + const selection = document.getSelection(); + const splitted = selection.toString().split(/[\n\r]/); + + let filtered = ''; + //формируем filtered, учитывая переносы из decodedLines + for (const line of splitted) { + const found = findDecoded(line); + if (found && found.first) { + filtered += (filtered ? '\n' : '') + line; + } else { + filtered += (filtered ? '\r ' : '') + line; + } + } + + //маленькие хитрости, убираем переносы по слогам + filtered = filtered.replace(/-\r /g, '').replace(/\r /g, ' '); + + event.clipboardData.setData('text/plain', filtered); + } } export default vueComponent(TextPage); diff --git a/client/store/modules/reader.js b/client/store/modules/reader.js index 1bba8a9b..e89c154b 100644 --- a/client/store/modules/reader.js +++ b/client/store/modules/reader.js @@ -70,7 +70,7 @@ const hotKeys = [ {name: 'scrolling', codes: ['Z']}, {name: 'setPosition', codes: ['P']}, {name: 'search', codes: ['Ctrl+F']}, - {name: 'copyText', codes: ['Ctrl+C']}, + {name: 'copyText', codes: ['Ctrl+Space']}, {name: 'convOptions', codes: ['Ctrl+M']}, {name: 'refresh', codes: ['R']}, {name: 'contents', codes: ['C']},