Работа над двухстраничным режимом
This commit is contained in:
@@ -148,7 +148,7 @@ export default @Component({
|
||||
})
|
||||
class SettingsPage extends Vue {
|
||||
selectedTab = 'profiles';
|
||||
selectedViewTab = 'color';
|
||||
selectedViewTab = 'mode';
|
||||
selectedKeysTab = 'mouse';
|
||||
form = {};
|
||||
fontBold = false;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
no-caps
|
||||
class="no-mp bg-grey-4 text-grey-7"
|
||||
>
|
||||
<q-tab name="mode" label="Режим" />
|
||||
<q-tab name="color" label="Цвет" />
|
||||
<q-tab name="font" label="Шрифт" />
|
||||
<q-tab name="text" label="Текст" />
|
||||
@@ -16,6 +17,10 @@
|
||||
<div class="q-mb-sm"/>
|
||||
|
||||
<div class="col tab-panel">
|
||||
<div v-if="selectedViewTab == 'mode'">
|
||||
@@include('./ViewTab/Mode.inc');
|
||||
</div>
|
||||
|
||||
<div v-if="selectedViewTab == 'color'">
|
||||
@@include('./ViewTab/Color.inc');
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<!---------------------------------------------->
|
||||
<div class="hidden part-header">Режим</div>
|
||||
|
||||
<div class="item row">
|
||||
<div class="label-2"></div>
|
||||
<div class="col row">
|
||||
<q-checkbox v-model="dualPageMode" size="xs" label="Двухстраничный режим" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item row">
|
||||
<div class="label-2">Отступ</div>
|
||||
<div class="col row">
|
||||
<NumInput class="col-left" v-model="dualIndentLR" :min="0" :max="2000" :disable="!dualPageMode">
|
||||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||||
Слева/справа внутри страницы
|
||||
</q-tooltip>
|
||||
</NumInput>
|
||||
</div>
|
||||
</div>
|
||||
@@ -165,7 +165,8 @@ class TextPage extends Vue {
|
||||
this.scrollHeight = this.realHeight - (this.showStatusBar ? this.statusBarHeight : 0);
|
||||
this.h = this.scrollHeight - 2*this.indentTB;
|
||||
this.lineHeight = this.fontSize + this.lineInterval;
|
||||
this.pageLineCount = 1 + Math.floor((this.h - this.lineHeight + this.lineInterval/2)/this.lineHeight);
|
||||
const pageRowsCount = 1 + Math.floor((this.h - this.lineHeight + this.lineInterval/2)/this.lineHeight);
|
||||
this.pageLineCount = (this.dualPageMode ? pageRowsCount*2 : pageRowsCount)
|
||||
|
||||
this.$refs.scrollingPage1.style.width = this.w + 'px';
|
||||
this.$refs.scrollingPage2.style.width = this.w + 'px';
|
||||
@@ -189,6 +190,7 @@ class TextPage extends Vue {
|
||||
this.drawHelper.book = this.book;
|
||||
this.drawHelper.parsed = this.parsed;
|
||||
this.drawHelper.pageLineCount = this.pageLineCount;
|
||||
this.drawHelper.dualPageMode = this.dualPageMode;
|
||||
|
||||
this.drawHelper.backgroundColor = this.backgroundColor;
|
||||
this.drawHelper.statusBarColor = this.statusBarColor;
|
||||
@@ -203,6 +205,7 @@ class TextPage extends Vue {
|
||||
this.drawHelper.w = this.w;
|
||||
this.drawHelper.h = this.h;
|
||||
this.drawHelper.indentLR = this.indentLR;
|
||||
this.drawHelper.dualIndentLR = this.dualIndentLR;
|
||||
this.drawHelper.textAlignJustify = this.textAlignJustify;
|
||||
this.drawHelper.lineHeight = this.lineHeight;
|
||||
this.drawHelper.context = this.context;
|
||||
@@ -254,7 +257,7 @@ class TextPage extends Vue {
|
||||
}
|
||||
|
||||
//scrolling page
|
||||
const pageSpace = this.scrollHeight - this.pageLineCount*this.lineHeight;
|
||||
const pageSpace = this.scrollHeight - pageRowsCount*this.lineHeight;
|
||||
let top = pageSpace/2;
|
||||
if (this.showStatusBar)
|
||||
top += this.statusBarHeight*(this.statusBarTop ? 1 : 0);
|
||||
|
||||
@@ -225,6 +225,8 @@ const settingDefaults = {
|
||||
indentTB: 0,// px, отступ всего текста сверху и снизу
|
||||
wordWrap: true,//перенос по слогам
|
||||
keepLastToFirst: false,// перенос последней строки в первую при листании
|
||||
dualPageMode: false,
|
||||
dualIndentLR: 10,// px, отступ слева и справа внутри страницы в двухстраничном режиме
|
||||
|
||||
showStatusBar: true,
|
||||
statusBarTop: false,// top, bottom
|
||||
|
||||
Reference in New Issue
Block a user