Глобальный рефакторинг SettingsPage (в процессе)

This commit is contained in:
Book Pauk
2022-10-12 16:25:58 +07:00
parent fe6243e889
commit 62ac60887e
8 changed files with 96 additions and 61 deletions

View File

@@ -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 {

View File

@@ -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>

View File

@@ -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>

View 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>

View File

@@ -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: {

View File

@@ -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>

View File

@@ -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;

View File

@@ -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>