diff --git a/client/components/Reader/HelpPage/CommonHelpPage/CommonHelpPage.vue b/client/components/Reader/HelpPage/CommonHelpPage/CommonHelpPage.vue index de26beda..29f8e293 100644 --- a/client/components/Reader/HelpPage/CommonHelpPage/CommonHelpPage.vue +++ b/client/components/Reader/HelpPage/CommonHelpPage/CommonHelpPage.vue @@ -5,7 +5,7 @@
  • загрузка любой страницы интернета
  • изменение цвета фона, текста, размер и тип шрифта и прочее
  • установка и запоминание текущей позиции и настроек в браузере (в будущем планируется сохранение и на сервер)
  • -
  • кеширование файлов книг на клиенте и на сервере
  • +
  • кэширование файлов книг на клиенте и на сервере
  • открытие книг с локального диска
  • плавный скроллинг текста
  • анимация перелистывания (скоро)
  • @@ -37,9 +37,7 @@ export default @Component({ Window, }, }) -class HelpPage extends Vue { - selectedTab = null; - +class CommonHelpPage extends Vue { created() { this.config = this.$store.state.config; } @@ -63,6 +61,7 @@ class HelpPage extends Vue { padding: 15px; overflow-y: auto; font-size: 150%; + line-height: 130%; } h4 { diff --git a/client/components/Reader/HelpPage/HelpPage.vue b/client/components/Reader/HelpPage/HelpPage.vue index 1723a15b..221aa56d 100644 --- a/client/components/Reader/HelpPage/HelpPage.vue +++ b/client/components/Reader/HelpPage/HelpPage.vue @@ -11,6 +11,7 @@ + @@ -30,11 +31,13 @@ import Component from 'vue-class-component'; import Window from '../../share/Window.vue'; import CommonHelpPage from './CommonHelpPage/CommonHelpPage.vue'; +import HotkeysHelpPage from './HotkeysHelpPage/HotkeysHelpPage.vue'; export default @Component({ components: { Window, CommonHelpPage, + HotkeysHelpPage, }, }) class HelpPage extends Vue { diff --git a/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue b/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue new file mode 100644 index 00000000..e13d8ba0 --- /dev/null +++ b/client/components/Reader/HelpPage/HotkeysHelpPage/HotkeysHelpPage.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/client/components/Reader/TextPage/TextPage.vue b/client/components/Reader/TextPage/TextPage.vue index 6ab4397b..78f50525 100644 --- a/client/components/Reader/TextPage/TextPage.vue +++ b/client/components/Reader/TextPage/TextPage.vue @@ -860,22 +860,77 @@ class TextPage extends Vue { this.$emit('tool-bar-toggle'); } + async doFontSizeInc() { + if (!this.settingsChanging) { + this.settingsChanging = true; + const newSize = (this.settings.fontSize + 1 < 100 ? this.settings.fontSize + 1 : 100); + const newSettings = Object.assign({}, this.settings, {fontSize: newSize}); + this.commit('reader/setSettings', newSettings); + await sleep(50); + this.settingsChanging = false; + } + } + + async doFontSizeDec() { + if (!this.settingsChanging) { + this.settingsChanging = true; + const newSize = (this.settings.fontSize - 1 > 5 ? this.settings.fontSize - 1 : 5); + const newSettings = Object.assign({}, this.settings, {fontSize: newSize}); + this.commit('reader/setSettings', newSettings); + await sleep(50); + this.settingsChanging = false; + } + } + + async doScrollingSpeedUp() { + if (!this.settingsChanging) { + this.settingsChanging = true; + const newDelay = (this.settings.scrollingDelay - 50 > 1 ? this.settings.scrollingDelay - 50 : 1); + const newSettings = Object.assign({}, this.settings, {scrollingDelay: newDelay}); + this.commit('reader/setSettings', newSettings); + await sleep(50); + this.settingsChanging = false; + } + } + + async doScrollingSpeedDown() { + if (!this.settingsChanging) { + this.settingsChanging = true; + const newDelay = (this.settings.scrollingDelay + 50 < 10000 ? this.settings.scrollingDelay + 50 : 10000); + const newSettings = Object.assign({}, this.settings, {scrollingDelay: newDelay}); + this.commit('reader/setSettings', newSettings); + await sleep(50); + this.settingsChanging = false; + } + } + keyHook(event) { let result = false; - if (event.type == 'keydown' && !event.ctrlKey && !event.altKey && !event.shiftKey) { + if (event.type == 'keydown' && !event.ctrlKey && !event.altKey) { result = true; switch (event.code) { case 'ArrowDown': - this.doDown(); + if (event.shiftKey) + this.doScrollingSpeedUp(); + else + this.doDown(); break; case 'ArrowUp': - this.doUp(); + if (event.shiftKey) + this.doScrollingSpeedDown(); + else + this.doUp(); break; case 'PageDown': case 'ArrowRight': - case 'Space': this.doPageDown(); break; + case 'Space': + if (event.shiftKey) + this.doPageUp(); + else + this.doPageDown(); + break; case 'PageUp': case 'ArrowLeft': case 'Backspace': @@ -887,6 +942,12 @@ class TextPage extends Vue { case 'End': this.doEnd(); break; + case 'KeyA': + if (event.shiftKey) + this.doFontSizeDec(); + else + this.doFontSizeInc(); + break; case 'Enter': case 'Backquote'://` case 'KeyF':