From 00a8e4c2c5fbd5c4f48d0f8631d8635c3363a953 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Wed, 18 Mar 2020 20:04:44 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B4=20=D1=85=D0=BE=D1=82=D0=BA=D0=B5=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HotkeysHelpPage/HotkeysHelpPage.vue | 20 ----- client/components/Reader/Reader.vue | 39 ++++----- .../SettingsPage/UserHotKeys/UserHotKeys.vue | 20 ++++- .../components/Reader/TextPage/TextPage.vue | 80 ++++++++----------- client/components/Reader/versionHistory.js | 2 + client/store/modules/reader.js | 28 +++++++ 6 files changed, 94 insertions(+), 95 deletions(-) diff --git a/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue b/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue index 0886b393..b6078c70 100644 --- a/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue +++ b/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue @@ -2,26 +2,6 @@
Управление с помощью горячих клавиш:
diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index 53a8c8b8..41075df3 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -1160,39 +1160,32 @@ class Reader extends Vue { case 'scrolling': this.scrollingToggle(); break; - default: - result = false; - break; - } - - switch (event.code) { - case 'KeyP': + case 'setPosition': this.setPositionToggle(); break; - case 'KeyF': - if (event.ctrlKey) { - this.searchToggle(); - event.preventDefault(); - event.stopPropagation(); - } + case 'search': + this.searchToggle(); + event.preventDefault(); + event.stopPropagation(); break; - case 'KeyC': - if (event.ctrlKey) { - this.copyTextToggle(); - event.preventDefault(); - event.stopPropagation(); - } + case 'copyText': + this.copyTextToggle(); + event.preventDefault(); + event.stopPropagation(); break; - case 'KeyR': + case 'refresh': this.refreshBook(); break; - case 'KeyX': + case 'offlineMode': + this.offlineModeToggle(); + break; + case 'recentBooks': this.recentBooksToggle(); event.preventDefault(); event.stopPropagation(); break; - case 'KeyO': - this.offlineModeToggle(); + default: + result = false; break; } } diff --git a/client/components/Reader/SettingsPage/UserHotKeys/UserHotKeys.vue b/client/components/Reader/SettingsPage/UserHotKeys/UserHotKeys.vue index 9340a343..969f7d06 100644 --- a/client/components/Reader/SettingsPage/UserHotKeys/UserHotKeys.vue +++ b/client/components/Reader/SettingsPage/UserHotKeys/UserHotKeys.vue @@ -146,7 +146,8 @@ class UserHotKeys extends UserHotKeysProps { collisionWarning(code) { if (this.collisions[code]) { const descs = this.collisions[code].map(action => `${rstore.readerActions[action]}`); - this.$root.stdDialog.alert(`Сочетание '${code}' одновременно назначено
следующим действиям:
${descs.join('
')}`, 'Предупреждение'); + this.$root.stdDialog.alert(`Сочетание '${code}' одновременно назначено
следующим действиям:
${descs.join('
')}

+Возможно неожиданное поведение.`, 'Предупреждение'); } } @@ -183,7 +184,7 @@ class UserHotKeys extends UserHotKeysProps { async defaultHotKey(action) { try { - if (await this.$root.stdDialog.confirm(`Подтвердите установку клавиш по умолчанию для:
${rstore.readerActions[action]}`, ' ')) { + if (await this.$root.stdDialog.confirm(`Подтвердите сброс сочетаний клавиш
в значения по умолчанию для действия:
${rstore.readerActions[action]}`, ' ')) { const codes = Array.from(rstore.settingDefaults.userHotKeys[action]); const newValue = Object.assign({}, this.value, {[action]: codes}); this.$emit('input', newValue); @@ -195,7 +196,7 @@ class UserHotKeys extends UserHotKeysProps { async defaultHotKeyAll() { try { - if (await this.$root.stdDialog.confirm('Подтвердите установку ВСЕХ
сочетаний клавиш по умолчанию:', ' ')) { + if (await this.$root.stdDialog.confirm('Подтвердите сброс ВСЕХ сочетаний
клавиш в значения по умолчанию:', ' ')) { const newValue = Object.assign({}, rstore.settingDefaults.userHotKeys); this.$emit('input', newValue); } @@ -218,8 +219,19 @@ class UserHotKeys extends UserHotKeysProps { border-bottom: 1px solid grey; } +.table-row:nth-child(even) { + background-color: #f7f7f7; +} + +.table-row:hover { + background-color: #f0f0f0; +} + .desc { - width: 100px; + width: 130px; + overflow-wrap: break-word; + word-wrap: break-word; + white-space: normal; } .hotKeys { diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index 6ad0920c..6463bb84 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -899,7 +899,7 @@ class TextPage extends Vue { async doFontSizeInc() { if (!this.settingsChanging) { this.settingsChanging = true; - const newSize = (this.settings.fontSize + 1 < 100 ? this.settings.fontSize + 1 : 100); + const newSize = (this.settings.fontSize + 1 < 200 ? this.settings.fontSize + 1 : 100); const newSettings = Object.assign({}, this.settings, {fontSize: newSize}); this.commit('reader/setSettings', newSettings); await sleep(50); @@ -947,57 +947,41 @@ class TextPage extends Vue { const action = this.$root.readerActionByKeyEvent(event); switch (action) { - default: - result = false; - break; - } - - switch (event.code) { - case 'ArrowDown': - if (event.shiftKey) - this.doScrollingSpeedUp(); - else - this.doDown(); - break; - case 'ArrowUp': - if (event.shiftKey) - this.doScrollingSpeedDown(); - else - this.doUp(); - break; - case 'PageDown': - case 'ArrowRight': - this.doPageDown(); - break; - case 'Space': - if (event.shiftKey) - this.doPageUp(); - else - this.doPageDown(); - break; - case 'PageUp': - case 'ArrowLeft': - case 'Backspace': - this.doPageUp(); - break; - case 'Home': - this.doHome(); - break; - case 'End': - this.doEnd(); - break; - case 'KeyA': - if (event.shiftKey) - this.doFontSizeDec(); - else - this.doFontSizeInc(); - break; - case 'Tab': - case 'KeyQ': + case 'switchToolbar': this.doToolBarToggle(); event.preventDefault(); event.stopPropagation(); break; + case 'bookBegin': + this.doHome(); + break; + case 'bookEnd': + this.doEnd(); + break; + case 'pageBack': + this.doPageUp(); + break; + case 'pageForward': + this.doPageDown(); + break; + case 'lineBack': + this.doUp(); + break; + case 'lineForward': + this.doDown(); + break; + case 'incFontSize': + this.doFontSizeInc(); + break; + case 'decFontSize': + this.doFontSizeDec(); + break; + case 'scrollingSpeedUp': + this.doScrollingSpeedUp(); + break; + case 'scrollingSpeedDown': + this.doScrollingSpeedDown(); + break; default: result = false; break; diff --git a/client/components/Reader/versionHistory.js b/client/components/Reader/versionHistory.js index 98286bd0..a1f177fb 100644 --- a/client/components/Reader/versionHistory.js +++ b/client/components/Reader/versionHistory.js @@ -5,6 +5,8 @@ export const versionHistory = [ content: ` ` diff --git a/client/store/modules/reader.js b/client/store/modules/reader.js index e59929bc..ffff91ce 100644 --- a/client/store/modules/reader.js +++ b/client/store/modules/reader.js @@ -12,6 +12,17 @@ const readerActions = { 'refresh': 'Принудительно обновить книгу', 'offlineMode': 'Автономный режим (без интернета)', 'recentBooks': 'Открыть недавние', + 'switchToolbar': 'Показать/скрыть панель управления', + 'bookBegin': 'В начало книги', + 'bookEnd': 'В конец книги', + 'pageBack': 'Страницу назад', + 'pageForward': 'Страницу вперед', + 'lineBack': 'Строчку назад', + 'lineForward': 'Строчку вперед', + 'incFontSize': 'Увеличить размер шрифта', + 'decFontSize': 'Уменьшить размер шрифта', + 'scrollingSpeedUp': 'Увеличить скорость скроллинга', + 'scrollingSpeedDown': 'Уменьшить скорость скроллинга', }; //readerActions[name] @@ -37,7 +48,24 @@ const hotKeys = [ {name: 'redoAction', codes: ['Ctrl+X']}, {name: 'fullScreen', codes: ['Enter', 'Backquote', 'F']}, {name: 'scrolling', codes: ['Z']}, + {name: 'setPosition', codes: ['P']}, + {name: 'search', codes: ['Ctrl+F']}, + {name: 'copyText', codes: ['Ctrl+C']}, + {name: 'refresh', codes: ['R']}, + {name: 'offlineMode', codes: ['O']}, + {name: 'recentBooks', codes: ['X']}, + {name: 'switchToolbar', codes: ['Tab', 'Q']}, + {name: 'bookBegin', codes: ['Home']}, + {name: 'bookEnd', codes: ['End']}, + {name: 'pageBack', codes: ['PageUp', 'ArrowLeft', 'Backspace', 'Shift+Space']}, + {name: 'pageForward', codes: ['PageDown', 'ArrowRight', 'Space']}, + {name: 'lineBack', codes: ['ArrowUp']}, + {name: 'lineForward', codes: ['ArrowDown']}, + {name: 'incFontSize', codes: ['A']}, + {name: 'decFontSize', codes: ['Shift+A']}, + {name: 'scrollingSpeedUp', codes: ['Shift+ArrowDown']}, + {name: 'scrollingSpeedDown', codes: ['Shift+ArrowUp']}, ]; const fonts = [