Глобальный рефакторинг SettingsPage (в процессе)
This commit is contained in:
@@ -19,11 +19,8 @@
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
import vueComponent from '../../../vueComponent.js';
|
import vueComponent from '../../../vueComponent.js';
|
||||||
|
|
||||||
import UserHotKeys from '../../SettingsPage/UserHotKeys/UserHotKeys.vue';
|
|
||||||
|
|
||||||
const componentOptions = {
|
const componentOptions = {
|
||||||
components: {
|
components: {
|
||||||
UserHotKeys,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
class HotkeysHelpPage {
|
class HotkeysHelpPage {
|
||||||
|
|||||||
@@ -164,6 +164,7 @@
|
|||||||
<LibsPage v-show="hidden" ref="libsPage" @load-book="loadBook" @libs-close="libsClose" @do-action="doAction"></LibsPage>
|
<LibsPage v-show="hidden" ref="libsPage" @load-book="loadBook" @libs-close="libsClose" @do-action="doAction"></LibsPage>
|
||||||
<RecentBooksPage v-show="recentBooksActive" ref="recentBooksPage" @load-book="loadBook" @recent-books-close="recentBooksClose" @update-count-changed="updateCountChanged"></RecentBooksPage>
|
<RecentBooksPage v-show="recentBooksActive" ref="recentBooksPage" @load-book="loadBook" @recent-books-close="recentBooksClose" @update-count-changed="updateCountChanged"></RecentBooksPage>
|
||||||
<SettingsPage v-show="settingsActive" ref="settingsPage" @do-action="doAction"></SettingsPage>
|
<SettingsPage v-show="settingsActive" ref="settingsPage" @do-action="doAction"></SettingsPage>
|
||||||
|
<!-- HelpPage после SettingsPage для использования UserHotKeys -->
|
||||||
<HelpPage v-if="helpActive" ref="helpPage" @do-action="doAction"></HelpPage>
|
<HelpPage v-if="helpActive" ref="helpPage" @do-action="doAction"></HelpPage>
|
||||||
<ClickMapPage v-show="clickMapActive" ref="clickMapPage"></ClickMapPage>
|
<ClickMapPage v-show="clickMapActive" ref="clickMapPage"></ClickMapPage>
|
||||||
<ContentsPage v-show="contentsActive" ref="contentsPage" :book-pos="bookPos" :is-visible="contentsActive" @do-action="doAction" @book-pos-changed="bookPosChanged"></ContentsPage>
|
<ContentsPage v-show="contentsActive" ref="contentsPage" :book-pos="bookPos" :is-visible="contentsActive" @do-action="doAction" @book-pos-changed="bookPosChanged"></ContentsPage>
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
<div class="bg-grey-3 row">
|
|
||||||
<q-tabs
|
|
||||||
v-model="selectedKeysTab"
|
|
||||||
active-color="black"
|
|
||||||
active-bg-color="white"
|
|
||||||
indicator-color="white"
|
|
||||||
dense
|
|
||||||
no-caps
|
|
||||||
class="no-mp bg-grey-4 text-grey-7"
|
|
||||||
>
|
|
||||||
<q-tab name="mouse" label="Мышь/тачскрин" />
|
|
||||||
<q-tab name="keyboard" label="Клавиатура" />
|
|
||||||
</q-tabs>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="q-mb-sm"/>
|
|
||||||
|
|
||||||
<div class="col tab-panel">
|
|
||||||
<div v-if="selectedKeysTab == 'mouse'">
|
|
||||||
<div class="item row">
|
|
||||||
<div class="label-4"></div>
|
|
||||||
<div class="col row">
|
|
||||||
<q-checkbox size="xs" v-model="clickControl" label="Включить управление кликом" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="selectedKeysTab == 'keyboard'">
|
|
||||||
<div class="item row">
|
|
||||||
<UserHotKeys v-model="userHotKeys" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
78
client/components/Reader/SettingsPage/KeysTab/KeysTab.vue
Normal file
78
client/components/Reader/SettingsPage/KeysTab/KeysTab.vue
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<div class="fit column">
|
||||||
|
<div class="bg-grey-3 row">
|
||||||
|
<q-tabs
|
||||||
|
v-model="selectedTab"
|
||||||
|
active-color="black"
|
||||||
|
active-bg-color="white"
|
||||||
|
indicator-color="white"
|
||||||
|
dense
|
||||||
|
no-caps
|
||||||
|
class="no-mp bg-grey-4 text-grey-7"
|
||||||
|
>
|
||||||
|
<q-tab name="mouse" label="Мышь/тачскрин" />
|
||||||
|
<q-tab name="keyboard" label="Клавиатура" />
|
||||||
|
</q-tabs>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="q-mb-sm" />
|
||||||
|
|
||||||
|
<div class="col sets-tab-panel">
|
||||||
|
<div v-if="selectedTab == 'mouse'">
|
||||||
|
<div class="sets-item row">
|
||||||
|
<div class="sets-label label"></div>
|
||||||
|
<div class="col row">
|
||||||
|
<q-checkbox v-model="form.clickControl" size="xs" label="Включить управление кликом" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="selectedTab == 'keyboard'">
|
||||||
|
<div class="sets-item row">
|
||||||
|
<UserHotKeys v-model="form.userHotKeys" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
import vueComponent from '../../../vueComponent.js';
|
||||||
|
|
||||||
|
import UserHotKeys from './UserHotKeys/UserHotKeys.vue';
|
||||||
|
|
||||||
|
const componentOptions = {
|
||||||
|
components: {
|
||||||
|
UserHotKeys,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
class KeysTab {
|
||||||
|
_options = componentOptions;
|
||||||
|
_props = {
|
||||||
|
form: Object,
|
||||||
|
};
|
||||||
|
|
||||||
|
selectedTab = 'mouse';
|
||||||
|
|
||||||
|
created() {
|
||||||
|
}
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
}
|
||||||
|
|
||||||
|
get mode() {
|
||||||
|
return this.$store.state.config.mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default vueComponent(KeysTab);
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.label {
|
||||||
|
width: 110px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -73,10 +73,9 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
import vueComponent from '../../../vueComponent.js';
|
import vueComponent from '../../../../vueComponent.js';
|
||||||
|
|
||||||
import rstore from '../../../../store/modules/reader';
|
import rstore from '../../../../../store/modules/reader';
|
||||||
//import * as utils from '../../share/utils';
|
|
||||||
|
|
||||||
const componentOptions = {
|
const componentOptions = {
|
||||||
watch: {
|
watch: {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="fit sets-tab-panel">
|
||||||
<div class="sets-part-header">
|
<div class="sets-part-header">
|
||||||
Управление синхронизацией данных
|
Управление синхронизацией данных
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -39,9 +39,7 @@
|
|||||||
|
|
||||||
<div class="col fit">
|
<div class="col fit">
|
||||||
<!-- Профили --------------------------------------------------------------------->
|
<!-- Профили --------------------------------------------------------------------->
|
||||||
<div v-if="selectedTab == 'profiles'" class="fit tab-panel">
|
<ProfilesTab v-if="selectedTab == 'profiles'" :form="form" />
|
||||||
<ProfilesTab :form="form" />
|
|
||||||
</div>
|
|
||||||
<!-- Вид ------------------------------------------------------------------------->
|
<!-- Вид ------------------------------------------------------------------------->
|
||||||
<!--div v-if="selectedTab == 'view'" class="fit column">
|
<!--div v-if="selectedTab == 'view'" class="fit column">
|
||||||
<q-tabs
|
<q-tabs
|
||||||
@@ -85,13 +83,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div-->
|
</div-->
|
||||||
<!-- Кнопки ---------------------------------------------------------------------->
|
<!-- Кнопки ---------------------------------------------------------------------->
|
||||||
<div v-if="selectedTab == 'toolbar'" class="fit tab-panel">
|
<ToolBarTab v-if="selectedTab == 'toolbar'" :form="form" />
|
||||||
<ToolBarTab :form="form" />
|
|
||||||
</div>
|
|
||||||
<!-- Управление ------------------------------------------------------------------>
|
<!-- Управление ------------------------------------------------------------------>
|
||||||
<!--div v-if="selectedTab == 'keys'" class="fit column">
|
<KeysTab v-if="selectedTab == 'keys'" :form="form" />
|
||||||
@@include('./KeysTab.inc');
|
|
||||||
</div-->
|
|
||||||
<!-- Листание -------------------------------------------------------------------->
|
<!-- Листание -------------------------------------------------------------------->
|
||||||
<!--div v-if="selectedTab == 'pagemove'" class="fit tab-panel">
|
<!--div v-if="selectedTab == 'pagemove'" class="fit tab-panel">
|
||||||
@@include('./PageMoveTab.inc');
|
@@include('./PageMoveTab.inc');
|
||||||
@@ -128,7 +122,6 @@ import * as utils from '../../../share/utils';
|
|||||||
import * as cryptoUtils from '../../../share/cryptoUtils';
|
import * as cryptoUtils from '../../../share/cryptoUtils';
|
||||||
import Window from '../../share/Window.vue';
|
import Window from '../../share/Window.vue';
|
||||||
import NumInput from '../../share/NumInput.vue';
|
import NumInput from '../../share/NumInput.vue';
|
||||||
import UserHotKeys from './UserHotKeys/UserHotKeys.vue';
|
|
||||||
import wallpaperStorage from '../share/wallpaperStorage';
|
import wallpaperStorage from '../share/wallpaperStorage';
|
||||||
|
|
||||||
import readerApi from '../../../api/reader';
|
import readerApi from '../../../api/reader';
|
||||||
@@ -138,6 +131,7 @@ import defPalette from './defPalette';
|
|||||||
//pages
|
//pages
|
||||||
import ProfilesTab from './ProfilesTab/ProfilesTab.vue';
|
import ProfilesTab from './ProfilesTab/ProfilesTab.vue';
|
||||||
import ToolBarTab from './ToolBarTab/ToolBarTab.vue';
|
import ToolBarTab from './ToolBarTab/ToolBarTab.vue';
|
||||||
|
import KeysTab from './KeysTab/KeysTab.vue';
|
||||||
|
|
||||||
const hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/;
|
const hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/;
|
||||||
|
|
||||||
@@ -145,10 +139,10 @@ const componentOptions = {
|
|||||||
components: {
|
components: {
|
||||||
Window,
|
Window,
|
||||||
NumInput,
|
NumInput,
|
||||||
UserHotKeys,
|
|
||||||
//pages
|
//pages
|
||||||
ProfilesTab,
|
ProfilesTab,
|
||||||
ToolBarTab,
|
ToolBarTab,
|
||||||
|
KeysTab,
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
settings: function() {
|
settings: function() {
|
||||||
@@ -228,7 +222,6 @@ class SettingsPage {
|
|||||||
|
|
||||||
selectedTab = 'profiles';
|
selectedTab = 'profiles';
|
||||||
selectedViewTab = 'mode';
|
selectedViewTab = 'mode';
|
||||||
selectedKeysTab = 'mouse';
|
|
||||||
fontBold = false;
|
fontBold = false;
|
||||||
fontItalic = false;
|
fontItalic = false;
|
||||||
vertShift = 0;
|
vertShift = 0;
|
||||||
@@ -542,18 +535,11 @@ export default vueComponent(SettingsPage);
|
|||||||
justify-content: initial;
|
justify-content: initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-panel {
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: auto;
|
|
||||||
font-size: 90%;
|
|
||||||
padding: 0 10px 15px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-7 {
|
.label-7 {
|
||||||
width: 75px;
|
width: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label-2, .label-4, .label-5 {
|
.label-2, .label-5 {
|
||||||
width: 110px;
|
width: 110px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,6 +562,13 @@ export default vueComponent(SettingsPage);
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
.sets-tab-panel {
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
font-size: 90%;
|
||||||
|
padding: 0 10px 15px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.sets-part-header {
|
.sets-part-header {
|
||||||
border-top: 2px solid #bbbbbb;
|
border-top: 2px solid #bbbbbb;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="fit sets-tab-panel">
|
||||||
<div class="sets-part-header">
|
<div class="sets-part-header">
|
||||||
Отображение
|
Отображение
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user