|
@@ -860,22 +860,77 @@ class TextPage extends Vue {
|
|
this.$emit('tool-bar-toggle');
|
|
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) {
|
|
keyHook(event) {
|
|
let result = false;
|
|
let result = false;
|
|
- if (event.type == 'keydown' && !event.ctrlKey && !event.altKey && !event.shiftKey) {
|
|
|
|
|
|
+ if (event.type == 'keydown' && !event.ctrlKey && !event.altKey) {
|
|
result = true;
|
|
result = true;
|
|
switch (event.code) {
|
|
switch (event.code) {
|
|
case 'ArrowDown':
|
|
case 'ArrowDown':
|
|
- this.doDown();
|
|
|
|
|
|
+ if (event.shiftKey)
|
|
|
|
+ this.doScrollingSpeedUp();
|
|
|
|
+ else
|
|
|
|
+ this.doDown();
|
|
break;
|
|
break;
|
|
case 'ArrowUp':
|
|
case 'ArrowUp':
|
|
- this.doUp();
|
|
|
|
|
|
+ if (event.shiftKey)
|
|
|
|
+ this.doScrollingSpeedDown();
|
|
|
|
+ else
|
|
|
|
+ this.doUp();
|
|
break;
|
|
break;
|
|
case 'PageDown':
|
|
case 'PageDown':
|
|
case 'ArrowRight':
|
|
case 'ArrowRight':
|
|
- case 'Space':
|
|
|
|
this.doPageDown();
|
|
this.doPageDown();
|
|
break;
|
|
break;
|
|
|
|
+ case 'Space':
|
|
|
|
+ if (event.shiftKey)
|
|
|
|
+ this.doPageUp();
|
|
|
|
+ else
|
|
|
|
+ this.doPageDown();
|
|
|
|
+ break;
|
|
case 'PageUp':
|
|
case 'PageUp':
|
|
case 'ArrowLeft':
|
|
case 'ArrowLeft':
|
|
case 'Backspace':
|
|
case 'Backspace':
|
|
@@ -887,6 +942,12 @@ class TextPage extends Vue {
|
|
case 'End':
|
|
case 'End':
|
|
this.doEnd();
|
|
this.doEnd();
|
|
break;
|
|
break;
|
|
|
|
+ case 'KeyA':
|
|
|
|
+ if (event.shiftKey)
|
|
|
|
+ this.doFontSizeDec();
|
|
|
|
+ else
|
|
|
|
+ this.doFontSizeInc();
|
|
|
|
+ break;
|
|
case 'Enter':
|
|
case 'Enter':
|
|
case 'Backquote'://`
|
|
case 'Backquote'://`
|
|
case 'KeyF':
|
|
case 'KeyF':
|