Работа над вкладкой "Конвертирование"

This commit is contained in:
Book Pauk
2020-12-18 21:48:08 +07:00
parent b3c028bd7a
commit 40ff04e5dc
3 changed files with 43 additions and 23 deletions

View File

@@ -39,9 +39,9 @@
<q-icon name="la la-copy" size="32px"/>
<q-tooltip :delay="1500" anchor="bottom middle" content-style="font-size: 80%">{{ rstore.readerActions['copyText'] }}</q-tooltip>
</button>
<button ref="splitToPara" v-show="showToolButton['splitToPara']" class="tool-button" :class="buttonActiveClass('splitToPara')" @click="buttonClick('splitToPara')" v-ripple>
<q-icon name="la la-retweet" size="32px"/>
<q-tooltip :delay="1500" anchor="bottom middle" content-style="font-size: 80%">{{ rstore.readerActions['splitToPara'] }}</q-tooltip>
<button ref="convOptions" v-show="showToolButton['convOptions']" class="tool-button" :class="buttonActiveClass('convOptions')" @click="buttonClick('convOptions')" v-ripple>
<q-icon name="la la-magic" size="32px"/>
<q-tooltip :delay="1500" anchor="bottom middle" content-style="font-size: 80%">{{ rstore.readerActions['convOptions'] }}</q-tooltip>
</button>
<button ref="refresh" v-show="showToolButton['refresh']" class="tool-button" :class="buttonActiveClass('refresh')" @click="buttonClick('refresh')" v-ripple>
<q-icon name="la la-sync" size="32px" :class="{clear: !showRefreshIcon}"/>
@@ -317,6 +317,7 @@ class Reader extends Vue {
this.showToolButton = settings.showToolButton;
this.enableSitesFilter = settings.enableSitesFilter;
this.showNeedUpdateNotify = settings.showNeedUpdateNotify;
this.splitToPara = settings.splitToPara;
this.readerActionByKeyCode = utils.userHotKeysObjectSwap(settings.userHotKeys);
this.$root.readerActionByKeyEvent = (event) => {
@@ -703,6 +704,12 @@ class Reader extends Vue {
}
}
convOptionsToggle() {
this.settingsToggle();
if (this.settingsActive)
this.$refs.settingsPage.selectedTab = 'convert';
}
helpToggle() {
this.helpActive = !this.helpActive;
if (this.helpActive) {
@@ -729,15 +736,9 @@ class Reader extends Vue {
}
}
refreshBook(mode) {
refreshBook() {
const mrb = this.mostRecentBook();
if (mrb) {
if (mode && mode == 'split') {
this.loadBook({url: mrb.url, uploadFileName: mrb.uploadFileName, skipHtmlCheck: true, isText: true, force: true});
} else {
this.loadBook({url: mrb.url, uploadFileName: mrb.uploadFileName, force: true});
}
}
this.loadBook({url: mrb.url, uploadFileName: mrb.uploadFileName, force: true});
}
undoAction() {
@@ -777,7 +778,7 @@ class Reader extends Vue {
case 'scrolling':
case 'search':
case 'copyText':
case 'splitToPara':
case 'convOptions':
case 'refresh':
case 'contents':
case 'libs':
@@ -811,7 +812,6 @@ class Reader extends Vue {
case 'contents':
classResult = classDisabled;
break;
case 'splitToPara':
case 'refresh':
case 'recentBooks':
if (!this.mostRecentBookReactive)
@@ -973,8 +973,8 @@ class Reader extends Vue {
if (!book) {
book = await readerApi.loadBook({
url,
skipHtmlCheck: (opts.skipHtmlCheck ? true : false),
isText: (opts.isText ? true : false),
skipHtmlCheck: (this.splitToPara ? true : false),
isText: (this.splitToPara ? true : false),
enableSitesFilter: this.enableSitesFilter,
uploadFileName
},
@@ -1102,8 +1102,8 @@ class Reader extends Vue {
case 'copyText':
this.copyTextToggle();
break;
case 'splitToPara':
this.refreshBook('split');
case 'convOptions':
this.convOptionsToggle();
break;
case 'refresh':
this.refreshBook();

View File

@@ -1,5 +1,9 @@
<!---------------------------------------------->
<div class="part-header">Конвертирование</div>
<div class="q-mt-sm column items-center">
<span>Настройки конвертирования применяются ко всем</span>
<span>вновь открываемым или обновляемым файлам</span>
</div>
<div class="part-header">HTML, XML, TXT</div>
<div class="item row">
<div class="label-6">Сайты</div>
@@ -17,3 +21,19 @@
</div>
</div>
<div class="item row">
<div class="label-6">Текст</div>
<div class="col row">
<q-checkbox v-model="splitToPara" @input="needTextReload" size="xs" label="Попытаться разбить текст на параграфы">
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
Опция принудительно включает эвристику разбиения текста на<br>
параграфы в случае, если формат файла определен как html,<br>
xml или txt. Возможна нечитабельная разметка текста.
</q-tooltip>
</q-checkbox>
</div>
</div>
<div class="part-header">PDF</div>
<div class="part-header">DJVU</div>

View File

@@ -12,7 +12,7 @@ const readerActions = {
'setPosition': 'Установить позицию',
'search': 'Найти в тексте',
'copyText': 'Скопировать текст со страницы',
'splitToPara': 'Обновить с разбиением на параграфы',
'convOptions': 'Настроить конвертирование',
'refresh': 'Принудительно обновить книгу',
'offlineMode': 'Автономный режим (без интернета)',
'contents': 'Оглавление/закладки',
@@ -41,7 +41,7 @@ const toolButtons = [
{name: 'setPosition', show: true},
{name: 'search', show: true},
{name: 'copyText', show: false},
{name: 'splitToPara', show: false},
{name: 'convOptions', show: true},
{name: 'refresh', show: true},
{name: 'contents', show: true},
{name: 'libs', show: true},
@@ -61,7 +61,7 @@ const hotKeys = [
{name: 'setPosition', codes: ['P']},
{name: 'search', codes: ['Ctrl+F']},
{name: 'copyText', codes: ['Ctrl+C']},
{name: 'splitToPara', codes: ['Shift+R']},
{name: 'convOptions', codes: ['Ctrl+M']},
{name: 'refresh', codes: ['R']},
{name: 'contents', codes: ['C']},
{name: 'libs', codes: ['L']},
@@ -252,11 +252,11 @@ const settingDefaults = {
imageHeightLines: 100,
imageFitWidth: true,
enableSitesFilter: true,
splitToPara: false,
showServerStorageMessages: true,
showWhatsNewDialog: true,
showDonationDialog2020: true,
showLiberamaTopDialog2020: true,
showNeedUpdateNotify: true,
fontShifts: {},