diff --git a/client/components/Reader/Reader.vue b/client/components/Reader/Reader.vue index f73ad63c..1fac4258 100644 --- a/client/components/Reader/Reader.vue +++ b/client/components/Reader/Reader.vue @@ -17,12 +17,12 @@ - - - + + + @@ -59,6 +59,7 @@ + @@ -74,6 +75,7 @@ import TextPage from './TextPage/TextPage.vue'; import ProgressPage from './ProgressPage/ProgressPage.vue'; import SetPositionPage from './SetPositionPage/SetPositionPage.vue'; +import SearchPage from './SearchPage/SearchPage.vue'; import HistoryPage from './HistoryPage/HistoryPage.vue'; import SettingsPage from './SettingsPage/SettingsPage.vue'; @@ -88,6 +90,7 @@ export default @Component({ ProgressPage, SetPositionPage, + SearchPage, HistoryPage, SettingsPage, }, @@ -124,8 +127,8 @@ class Reader extends Vue { progressActive = false; fullScreenActive = false; - setPositionActive = false; scrollingActive = false; + setPositionActive = false; searchActive = false; copyTextActive = false; historyActive = false; @@ -249,6 +252,7 @@ class Reader extends Vue { closeAllTextPages() { this.setPositionActive = false; + this.searchActive = false; this.historyActive = false; this.settingsActive = false; this.stopScrolling(); @@ -293,6 +297,20 @@ class Reader extends Vue { } } + searchToggle() { + this.searchActive = !this.searchActive; + if (this.searchActive && this.activePage == 'TextPage' && this.lastOpenedBook) { + this.closeAllTextPages(); + this.searchActive = true; + + this.$nextTick(() => { + //this.$refs.searchPage + }); + } else { + this.searchActive = false; + } + } + historyToggle() { this.historyActive = !this.historyActive; if (this.historyActive) { @@ -325,7 +343,10 @@ class Reader extends Vue { this.setPositionToggle(); break; case 'scrolling': - this.scrollingToggle() + this.scrollingToggle(); + break; + case 'search': + this.searchToggle(); break; case 'history': this.historyToggle(); @@ -547,6 +568,9 @@ class Reader extends Vue { if (!handled && this.setPositionActive) handled = this.$refs.setPositionPage.keyHook(event); + if (!handled && this.searchActive) + handled = this.$refs.searchPage.keyHook(event); + if (!handled && this.$refs.page && this.$refs.page.keyHook) handled = this.$refs.page.keyHook(event); @@ -559,6 +583,13 @@ class Reader extends Vue { case 'KeyP': this.setPositionToggle(); break; + case 'KeyF': + if (event.ctrlKey) { + this.searchToggle(); + event.preventDefault(); + event.stopPropagation(); + } + break; case 'KeyZ': this.scrollingToggle(); break; diff --git a/client/components/Reader/SearchPage/SearchPage.vue b/client/components/Reader/SearchPage/SearchPage.vue new file mode 100644 index 00000000..11d5747f --- /dev/null +++ b/client/components/Reader/SearchPage/SearchPage.vue @@ -0,0 +1,67 @@ + + + + + \ No newline at end of file