mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-02 12:02:25 +12:00
Basic plainText exporter working (preview only)
This commit is contained in:
parent
548df14b28
commit
16585c4a2a
|
@ -19,6 +19,10 @@ FORMS += ../manuskript/ui/views/basicItemView_ui.ui
|
|||
FORMS += ../manuskript/ui/views/sldImportance_ui.ui
|
||||
FORMS += ../manuskript/ui/views/storylineView_ui.ui
|
||||
|
||||
FORMS += ../manuskript/ui/exporters/exporter_ui.ui
|
||||
FORMS += ../manuskript/ui/exporters/exportersManager_ui.ui
|
||||
FORMS += ../manuskript/ui/exporters/manuskript/plainTextSettings_ui.ui
|
||||
|
||||
|
||||
SOURCES += ../manuskript/exporter/__init__.py
|
||||
SOURCES += ../manuskript/load_save/version_0.py
|
||||
|
@ -59,6 +63,11 @@ SOURCES += ../manuskript/ui/views/textEditCompleter.py
|
|||
SOURCES += ../manuskript/ui/views/textEditView.py
|
||||
SOURCES += ../manuskript/ui/views/treeView.py
|
||||
SOURCES += ../manuskript/ui/welcome.py
|
||||
SOURCES += ../manuskript/ui/exporters/exporter.py
|
||||
SOURCES += ../manuskript/ui/exporters/exportersManager.py
|
||||
SOURCES += ../manuskript/ui/exporters/manuskript/plainTextSettings.py
|
||||
|
||||
|
||||
|
||||
TRANSLATIONS += manuskript_fr.ts
|
||||
TRANSLATIONS += manuskript_es.ts
|
||||
|
|
2
makefile
2
makefile
|
@ -1,4 +1,4 @@
|
|||
UI := $(wildcard manuskript/ui/*.ui) $(wildcard manuskript/ui/*/*.ui) $(wildcard manuskript/ui/*.qrc)
|
||||
UI := $(wildcard manuskript/ui/*.ui) $(wildcard manuskript/ui/*/*.ui) $(wildcard manuskript/ui/*/*/*.ui) $(wildcard manuskript/ui/*.qrc)
|
||||
UIs= $(UI:.ui=.py) $(UI:.qrc=_rc.py)
|
||||
TS := $(wildcard i18n/*.ts)
|
||||
QMs= $(TS:.ts=.qm)
|
||||
|
|
|
@ -81,4 +81,24 @@ class basicFormat:
|
|||
|
||||
@classmethod
|
||||
def preview(cls, settingsWidget, previewWidget):
|
||||
pass
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def shortcodes(cls):
|
||||
return [
|
||||
("\n", "\\n")
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def escapes(cls, text):
|
||||
for A, B in cls.shortcodes():
|
||||
text = text.replace(A, B)
|
||||
return text
|
||||
|
||||
@classmethod
|
||||
def descapes(cls, text):
|
||||
"""How do we call that?"""
|
||||
for A, B in cls.shortcodes():
|
||||
text = text.replace(B, A)
|
||||
return text
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
import re
|
||||
from PyQt5.QtGui import QFont, QTextCharFormat
|
||||
from PyQt5.QtWidgets import QPlainTextEdit
|
||||
|
||||
from manuskript.exporter.basic import basicExporter, basicFormat
|
||||
from manuskript.exporter.basic import basicFormat
|
||||
from manuskript.functions import mainWindow
|
||||
from manuskript.models.outlineModel import outlineItem
|
||||
from manuskript.ui.exporters.exporterSettings import exporterSettings
|
||||
from manuskript.ui.exporters.manuskript.plainTextSettings import exporterSettings
|
||||
|
||||
|
||||
class plainText(basicFormat):
|
||||
|
@ -20,7 +22,7 @@ class plainText(basicFormat):
|
|||
|
||||
@classmethod
|
||||
def settingsWidget(cls):
|
||||
w = exporterSettings()
|
||||
w = exporterSettings(cls)
|
||||
return w
|
||||
|
||||
@classmethod
|
||||
|
@ -31,27 +33,50 @@ class plainText(basicFormat):
|
|||
|
||||
@classmethod
|
||||
def preview(cls, settingsWidget, previewWidget):
|
||||
previewWidget.setPlainText(cls.concatenate(mainWindow().mdlOutline.rootItem))
|
||||
settings = settingsWidget.getSettings()
|
||||
print(settings)
|
||||
|
||||
r = cls.concatenate(mainWindow().mdlOutline.rootItem, settings)
|
||||
|
||||
# Set preview font
|
||||
cf = QTextCharFormat()
|
||||
f = QFont()
|
||||
f.fromString(settings["Preview"]["PreviewFont"])
|
||||
cf.setFont(f)
|
||||
previewWidget.setCurrentCharFormat(cf)
|
||||
|
||||
previewWidget.setPlainText(r)
|
||||
|
||||
@classmethod
|
||||
def concatenate(cls, item: outlineItem,
|
||||
processTitle=lambda x: x + "\n",
|
||||
processText=lambda x: x + "\n",
|
||||
processContent=lambda x: x + "\n",
|
||||
textSep="", folderSep="", textFolderSep="", folderTextSep="") -> str:
|
||||
|
||||
def concatenate(cls, item: outlineItem, settings,
|
||||
processTitle=lambda x: x + "\n") -> str:
|
||||
s = settings
|
||||
r = ""
|
||||
|
||||
if not item.compile():
|
||||
# Do we include item
|
||||
if not item.compile() or s["Content"]["IgnoreCompile"]:
|
||||
return ""
|
||||
|
||||
if item.level() >= 0: # item is not root
|
||||
# What do we include
|
||||
l = item.level()
|
||||
if l >= 0: # item is not root
|
||||
|
||||
# Adds item title
|
||||
r += processTitle(item.title())
|
||||
if item.isFolder():
|
||||
if not s["Content"]["More"] and s["Content"]["FolderTitle"] or\
|
||||
s["Content"]["More"] and s["Content"]["FolderTitle"][l]:
|
||||
|
||||
# Adds item text
|
||||
r += processText(item.text())
|
||||
r += processTitle(item.title())
|
||||
|
||||
elif item.isText():
|
||||
if not s["Content"]["More"] and s["Content"]["TextTitle"] or \
|
||||
s["Content"]["More"] and s["Content"]["TextTitle"][l]:
|
||||
|
||||
r += processTitle(item.title())
|
||||
|
||||
if not s["Content"]["More"] and s["Content"]["TextText"] or \
|
||||
s["Content"]["More"] and s["Content"]["TextText"][l]:
|
||||
|
||||
r += cls.processText(item.text(), settings)
|
||||
|
||||
content = ""
|
||||
|
||||
|
@ -63,18 +88,61 @@ class plainText(basicFormat):
|
|||
if last:
|
||||
# Between folder
|
||||
if last == c.type() == "folder":
|
||||
content += folderSep
|
||||
elif last == c.type() == "md":
|
||||
content += textSep
|
||||
elif last == "folder" and c.type() == "md":
|
||||
content += folderTextSep
|
||||
elif last == "md" and c.type() == "folder":
|
||||
content += textFolderSep
|
||||
content += s["Separator"]["FF"]
|
||||
|
||||
content += cls.concatenate(c)
|
||||
elif last == c.type() == "md":
|
||||
content += s["Separator"]["TT"]
|
||||
|
||||
elif last == "folder" and c.type() == "md":
|
||||
content += s["Separator"]["FT"]
|
||||
|
||||
elif last == "md" and c.type() == "folder":
|
||||
content += s["Separator"]["TF"]
|
||||
|
||||
content += cls.concatenate(c, settings, processTitle)
|
||||
|
||||
last = c.type()
|
||||
|
||||
r += processContent(content)
|
||||
# r += cls.processContent(content, settings)
|
||||
r += content
|
||||
|
||||
return r
|
||||
|
||||
@classmethod
|
||||
def processText(cls, content, settings):
|
||||
s = settings["Transform"]
|
||||
|
||||
if s["Dash"]:
|
||||
content = content.replace("---", "—")
|
||||
|
||||
if s["Ellipse"]:
|
||||
content = content.replace("...", "…")
|
||||
|
||||
if s["Spaces"]:
|
||||
o = ""
|
||||
while o != content:
|
||||
o = content
|
||||
content = content.replace(" ", " ")
|
||||
|
||||
if s["DoubleQuotes"]:
|
||||
q = s["DoubleQuotes"].split("___")
|
||||
s["Custom"].append([True, '"(.*?)"', "{}\\1{}".format(q[0], q[1]), True])
|
||||
|
||||
if s["SingleQuote"]:
|
||||
q = s["SingleQuote"].split("___")
|
||||
s["Custom"].append([True, "'(.*?)'", "{}\\1{}".format(q[0], q[1]), True])
|
||||
|
||||
for enabled, A, B, reg in s["Custom"]:
|
||||
if not enabled:
|
||||
continue
|
||||
|
||||
if not reg:
|
||||
content = content.replace(A, B)
|
||||
|
||||
else:
|
||||
content = re.sub(A, B, content)
|
||||
|
||||
content += "\n"
|
||||
|
||||
return content
|
||||
|
||||
return r
|
0
manuskript/ui/exporters/__init__.py
Normal file
0
manuskript/ui/exporters/__init__.py
Normal file
|
@ -1,14 +1,14 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
import json
|
||||
import os
|
||||
from collections import OrderedDict
|
||||
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QBrush, QColor
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout
|
||||
from PyQt5.QtWidgets import QWidget
|
||||
|
||||
from manuskript import exporter
|
||||
from manuskript.functions import lightBlue, printObjects
|
||||
from manuskript.functions import lightBlue, writablePath
|
||||
from manuskript.ui.exporters.exporter_ui import Ui_exporter
|
||||
from manuskript.ui.exporters.exportersManager import exportersManager
|
||||
|
||||
|
|
|
@ -1,211 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
from PyQt5.QtCore import Qt, QSize
|
||||
from PyQt5.QtGui import QIcon, QFontMetrics
|
||||
from PyQt5.QtWidgets import QWidget, QTableWidgetItem, QListWidgetItem, QTreeView
|
||||
|
||||
from manuskript.functions import mainWindow
|
||||
from manuskript.ui.exporters.exporterSettings_ui import Ui_exporterSettings
|
||||
|
||||
|
||||
class exporterSettings(QWidget, Ui_exporterSettings):
|
||||
def __init__(self, parent=None):
|
||||
QWidget.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
|
||||
self.mw = mainWindow()
|
||||
|
||||
self.grpContentFilters.setCustomColors(active="lightBlue", inactive="lightgray")
|
||||
|
||||
self.grpContentFilters.button.setChecked(False)
|
||||
|
||||
#################################################################
|
||||
# Content
|
||||
|
||||
h = self.tblContent.horizontalHeader()
|
||||
h.setSectionResizeMode(h.ResizeToContents)
|
||||
h.setSectionResizeMode(0, h.Stretch)
|
||||
|
||||
self.contentUpdateTable()
|
||||
self.chkContentMore.toggled.connect(self.contentUpdateTable)
|
||||
|
||||
# Labels
|
||||
self.lstContentLabels.clear()
|
||||
h = QFontMetrics(self.font()).height()
|
||||
for i in range(1, self.mw.mdlLabels.rowCount()):
|
||||
item = self.mw.mdlLabels.item(i, 0)
|
||||
if item:
|
||||
item = QListWidgetItem(item.icon(), item.text())
|
||||
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
|
||||
item.setCheckState(Qt.Checked)
|
||||
item.setSizeHint(QSize(100, h))
|
||||
self.lstContentLabels.addItem(item)
|
||||
|
||||
self.chkContentLabels.toggled.connect(self.lstContentLabels.setVisible)
|
||||
self.chkContentLabels.toggled.connect(lambda: self.listWidgetAdjustToContent(self.lstContentLabels))
|
||||
self.lstContentLabels.setVisible(False)
|
||||
|
||||
# Status
|
||||
self.lstContentStatus.clear()
|
||||
h = QFontMetrics(self.font()).height()
|
||||
for i in range(1, self.mw.mdlStatus.rowCount()):
|
||||
item = self.mw.mdlStatus.item(i, 0)
|
||||
if item:
|
||||
item = QListWidgetItem(item.icon(), item.text())
|
||||
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
|
||||
item.setCheckState(Qt.Checked)
|
||||
item.setSizeHint(QSize(100, h))
|
||||
self.lstContentStatus.addItem(item)
|
||||
|
||||
self.chkContentStatus.toggled.connect(self.lstContentStatus.setVisible)
|
||||
self.chkContentStatus.toggled.connect(lambda: self.listWidgetAdjustToContent(self.lstContentStatus))
|
||||
self.lstContentStatus.setVisible(False)
|
||||
|
||||
# Root item
|
||||
self.cmbContentParent.setModel(self.mw.mdlOutline)
|
||||
v = QTreeView()
|
||||
self.cmbContentParent.setView(v)
|
||||
v.setHeaderHidden(True)
|
||||
for i in range(1, self.mw.mdlOutline.columnCount()):
|
||||
v.hideColumn(i)
|
||||
self.chkContentParent.toggled.connect(self.cmbContentParent.setVisible)
|
||||
self.cmbContentParent.hide()
|
||||
|
||||
#################################################################
|
||||
# Separations
|
||||
|
||||
for cmb in [self.cmbSepFF, self.cmbSepTT, self.cmbSepFT, self.cmbSepTF]:
|
||||
cmb.clear()
|
||||
|
||||
cmb.addItem(self.tr("Empty line"), "empty")
|
||||
cmb.addItem(self.tr("Custom"), "custom")
|
||||
cmb.currentIndexChanged.connect(self.sepCmbChanged)
|
||||
|
||||
#################################################################
|
||||
# Transformations
|
||||
|
||||
h = self.tblReplacements.horizontalHeader()
|
||||
h.setSectionResizeMode(h.ResizeToContents)
|
||||
h.setSectionResizeMode(1, h.Stretch)
|
||||
h.setSectionResizeMode(2, h.Stretch)
|
||||
|
||||
# Cf. https://en.wikipedia.org/wiki/Quotation_mark
|
||||
self.cmbTransDoubleQuotes.clear()
|
||||
self.cmbTransDoubleQuotes.addItems(["” “", "“ ”", "« »"])
|
||||
self.cmbTransSingleQuote.clear()
|
||||
self.cmbTransSingleQuote.addItems(["‘ ’", "‹ ›"])
|
||||
|
||||
|
||||
for cmb in [self.cmbTransDoubleQuotes, self.cmbTransSingleQuote]:
|
||||
cmb.addItem(self.tr("Custom"), "custom")
|
||||
cmb.currentIndexChanged.connect(self.transCmbChanged)
|
||||
cmb.currentIndexChanged.emit(0)
|
||||
|
||||
self.btnTransAdd.clicked.connect(self.transAddTableRow)
|
||||
self.btnTransRemove.clicked.connect(self.transRemoveTableRow)
|
||||
|
||||
def sepCmbChanged(self, index):
|
||||
cmb = self.sender()
|
||||
map = {
|
||||
self.cmbSepFF: self.txtSepFF,
|
||||
self.cmbSepTT: self.txtSepTT,
|
||||
self.cmbSepFT: self.txtSepFT,
|
||||
self.cmbSepTF: self.txtSepTF
|
||||
}
|
||||
map[cmb].setEnabled(cmb.currentData() == "custom")
|
||||
|
||||
def transCmbChanged(self, index):
|
||||
cmb = self.sender()
|
||||
map = {
|
||||
self.cmbTransDoubleQuotes: (self.txtTransDoubleQuotesA, self.lblTransDoubleQuotes, self.txtTransDoubleQuotesB),
|
||||
self.cmbTransSingleQuote: (self.txtTransSingleQuoteA, self.lblTransSingleQuote, self.txtTransSingleQuoteB),
|
||||
}
|
||||
for txt in map[cmb]:
|
||||
txt.setVisible(cmb.currentData() == "custom")
|
||||
|
||||
def contentUpdateTable(self, val=False):
|
||||
|
||||
def addFolderRow(text="Folder"):
|
||||
self.tableWidgetAddRow(self.tblContent, [
|
||||
self.tableWidgetMakeItem(text, "folder"),
|
||||
self.tableWidgetMakeItem("", "", True, True),
|
||||
])
|
||||
|
||||
def addTextRow(text="Text"):
|
||||
self.tableWidgetAddRow(self.tblContent, [
|
||||
self.tableWidgetMakeItem(text, "text-x-generic"),
|
||||
self.tableWidgetMakeItem("", "", True, False),
|
||||
self.tableWidgetMakeItem("", "", True, True),
|
||||
])
|
||||
|
||||
# self.tblContent.clearContents()
|
||||
self.tblContent.setRowCount(0)
|
||||
|
||||
if not val:
|
||||
addFolderRow()
|
||||
addTextRow()
|
||||
|
||||
else:
|
||||
level = self.mw.mdlOutline.maxLevel()
|
||||
|
||||
for i in range(level):
|
||||
addFolderRow("{}Level {} folder".format(" " * i, i + 1))
|
||||
|
||||
for i in range(level):
|
||||
addTextRow("{}Level {} text".format(" " * i, i + 1))
|
||||
|
||||
self.tableWidgetAdjustToContent(self.tblContent)
|
||||
|
||||
|
||||
def transAddTableRow(self):
|
||||
self.tableWidgetAddRow(self.tblReplacements, [
|
||||
self.tableWidgetMakeItem("", "", True, True),
|
||||
self.tableWidgetMakeItem("", "", False, False),
|
||||
self.tableWidgetMakeItem("", "", False, False),
|
||||
self.tableWidgetMakeItem("", "", True, False),
|
||||
])
|
||||
|
||||
def transRemoveTableRow(self):
|
||||
self.tblReplacements.removeRow(self.tblReplacements.currentRow())
|
||||
|
||||
def tableWidgetMakeItem(self, text="", icon="", checkable=False, checked=False):
|
||||
"""Creates a QTableWidgetItem with the given attributes."""
|
||||
item = QTableWidgetItem(QIcon.fromTheme(icon), text)
|
||||
if checkable:
|
||||
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
|
||||
item.setCheckState(Qt.Checked if checked else Qt.Unchecked)
|
||||
|
||||
return item
|
||||
|
||||
def tableWidgetAddRow(self, table, items):
|
||||
"""Appends the given items (list of QTableWidgetItems) to table."""
|
||||
table.setRowCount(table.rowCount() + 1)
|
||||
k = 0
|
||||
for i in items:
|
||||
table.setItem(table.rowCount() - 1, k, i)
|
||||
k += 1
|
||||
|
||||
def tableWidgetAdjustToContent(self, table):
|
||||
"""Set sizehint of QTableWidget table so that it matches content vertically."""
|
||||
|
||||
h = 0
|
||||
|
||||
h += table.horizontalHeader().height()
|
||||
|
||||
for i in range(table.rowCount()):
|
||||
h += table.rowHeight(i)
|
||||
|
||||
table.setMinimumSize(QSize(0, h + 2))
|
||||
table.setMaximumSize(QSize(16777215, h + 2))
|
||||
|
||||
def listWidgetAdjustToContent(self, lst):
|
||||
"""Adjust listWidget to content."""
|
||||
h = 0
|
||||
for i in range(lst.count()):
|
||||
h += lst.item(i).sizeHint().height()
|
||||
|
||||
lst.setMinimumSize(QSize(0, h+2))
|
||||
lst.setMaximumSize(QSize(16777215, h+2))
|
||||
|
||||
|
||||
|
0
manuskript/ui/exporters/manuskript/__init__.py
Normal file
0
manuskript/ui/exporters/manuskript/__init__.py
Normal file
422
manuskript/ui/exporters/manuskript/plainTextSettings.py
Normal file
422
manuskript/ui/exporters/manuskript/plainTextSettings.py
Normal file
|
@ -0,0 +1,422 @@
|
|||
#!/usr/bin/env python
|
||||
# --!-- coding: utf8 --!--
|
||||
import json
|
||||
import os
|
||||
|
||||
from PyQt5.QtCore import Qt, QSize
|
||||
from PyQt5.QtGui import QIcon, QFontMetrics, QFont
|
||||
from PyQt5.QtWidgets import QWidget, QTableWidgetItem, QListWidgetItem, QTreeView
|
||||
|
||||
from manuskript.functions import mainWindow, writablePath
|
||||
from manuskript.ui.exporters.manuskript.plainTextSettings_ui import Ui_exporterSettings
|
||||
|
||||
|
||||
class exporterSettings(QWidget, Ui_exporterSettings):
|
||||
def __init__(self, _format, parent=None):
|
||||
QWidget.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
|
||||
self.mw = mainWindow()
|
||||
self._format = _format
|
||||
self.settings = {}
|
||||
|
||||
#################################################################
|
||||
# Content
|
||||
|
||||
self.grpContentFilters.button.setChecked(False)
|
||||
|
||||
h = self.tblContent.horizontalHeader()
|
||||
h.setSectionResizeMode(h.ResizeToContents)
|
||||
h.setSectionResizeMode(0, h.Stretch)
|
||||
|
||||
self.contentUpdateTable()
|
||||
self.chkContentMore.toggled.connect(self.contentTableToggle)
|
||||
self.contentTableToggle(False)
|
||||
|
||||
# Labels
|
||||
self.lstContentLabels.clear()
|
||||
h = QFontMetrics(self.font()).height()
|
||||
for i in range(0, self.mw.mdlLabels.rowCount()):
|
||||
item = self.mw.mdlLabels.item(i, 0)
|
||||
if item:
|
||||
item = QListWidgetItem(item.icon(), item.text())
|
||||
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
|
||||
item.setCheckState(Qt.Checked)
|
||||
item.setSizeHint(QSize(100, h))
|
||||
self.lstContentLabels.addItem(item)
|
||||
|
||||
self.chkContentLabels.toggled.connect(self.lstContentLabels.setVisible)
|
||||
self.chkContentLabels.toggled.connect(lambda: self.listWidgetAdjustToContent(self.lstContentLabels))
|
||||
self.lstContentLabels.setVisible(False)
|
||||
|
||||
# Status
|
||||
self.lstContentStatus.clear()
|
||||
h = QFontMetrics(self.font()).height()
|
||||
for i in range(0, self.mw.mdlStatus.rowCount()):
|
||||
item = self.mw.mdlStatus.item(i, 0)
|
||||
if item:
|
||||
item = QListWidgetItem(item.icon(), item.text())
|
||||
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
|
||||
item.setCheckState(Qt.Checked)
|
||||
item.setSizeHint(QSize(100, h))
|
||||
self.lstContentStatus.addItem(item)
|
||||
|
||||
self.chkContentStatus.toggled.connect(self.lstContentStatus.setVisible)
|
||||
self.chkContentStatus.toggled.connect(lambda: self.listWidgetAdjustToContent(self.lstContentStatus))
|
||||
self.lstContentStatus.setVisible(False)
|
||||
|
||||
# Root item
|
||||
self.cmbContentParent.setModel(self.mw.mdlOutline)
|
||||
v = QTreeView()
|
||||
self.cmbContentParent.setView(v)
|
||||
v.setHeaderHidden(True)
|
||||
for i in range(1, self.mw.mdlOutline.columnCount()):
|
||||
v.hideColumn(i)
|
||||
self.chkContentParent.toggled.connect(self.cmbContentParent.setVisible)
|
||||
self.cmbContentParent.hide()
|
||||
|
||||
#################################################################
|
||||
# Separations
|
||||
|
||||
for cmb in [self.cmbSepFF, self.cmbSepTT, self.cmbSepFT, self.cmbSepTF]:
|
||||
cmb.clear()
|
||||
|
||||
cmb.addItem(self.tr("Empty line"), "empty")
|
||||
cmb.addItem(self.tr("Custom"), "custom")
|
||||
cmb.currentIndexChanged.connect(self.sepCmbChanged)
|
||||
|
||||
#################################################################
|
||||
# Transformations
|
||||
|
||||
h = self.tblReplacements.horizontalHeader()
|
||||
h.setSectionResizeMode(h.ResizeToContents)
|
||||
h.setSectionResizeMode(1, h.Stretch)
|
||||
h.setSectionResizeMode(2, h.Stretch)
|
||||
|
||||
# Cf. https://en.wikipedia.org/wiki/Quotation_mark
|
||||
self.cmbTransDoubleQuotes.clear()
|
||||
self.cmbTransDoubleQuotes.addItems(["”___“", "“___”", "«___»"])
|
||||
self.cmbTransSingleQuote.clear()
|
||||
self.cmbTransSingleQuote.addItems(["‘___’", "‹___›"])
|
||||
|
||||
for cmb in [self.cmbTransDoubleQuotes, self.cmbTransSingleQuote]:
|
||||
cmb.addItem(self.tr("Custom"), "custom")
|
||||
cmb.currentIndexChanged.connect(self.transCmbChanged)
|
||||
cmb.currentIndexChanged.emit(0)
|
||||
|
||||
self.btnTransAdd.clicked.connect(self.transAddTableRow)
|
||||
self.btnTransRemove.clicked.connect(self.transRemoveTableRow)
|
||||
self.tableWidgetAdjustToContent(self.tblReplacements)
|
||||
|
||||
#################################################################
|
||||
# Preview
|
||||
|
||||
self.cmbPreviewFont.setCurrentFont(self.font())
|
||||
self.spnPreviewSize.setValue(self.font().pointSize())
|
||||
|
||||
#################################################################
|
||||
# Final stuff
|
||||
|
||||
self.toolBox.setCurrentIndex(0)
|
||||
self.loadSettings()
|
||||
|
||||
###################################################################################################################
|
||||
# SETTINGS
|
||||
###################################################################################################################
|
||||
|
||||
def loadSettings(self):
|
||||
filename = self.getSettingsPath()
|
||||
print(filename)
|
||||
if os.path.exists(filename):
|
||||
with open(filename) as f:
|
||||
self.settings = json.load(f)
|
||||
self.updateFromSettings()
|
||||
|
||||
# Default values
|
||||
else:
|
||||
self.getSettings()
|
||||
|
||||
def writeSettings(self):
|
||||
with open(self.getSettingsPath(), 'w') as f:
|
||||
# json.dumps(json.loads(json.dumps(allSettings)), indent=4, sort_keys=True)
|
||||
json.dump(self.settings, f, indent=4, sort_keys=True)
|
||||
|
||||
def getSettingsPath(self):
|
||||
return os.path.join(writablePath(), "exporter.ini")
|
||||
|
||||
def updateFromSettings(self):
|
||||
settings = self.settings
|
||||
|
||||
# Content
|
||||
s = settings["Content"]
|
||||
self.chkContentMore.setChecked(s["More"])
|
||||
|
||||
if not s["More"]:
|
||||
self.tblContent.item(0, 1).setCheckState(Qt.Checked if s["FolderTitle"] else Qt.Unchecked)
|
||||
self.tblContent.item(1, 1).setCheckState(Qt.Checked if s["TextTitle"] else Qt.Unchecked)
|
||||
self.tblContent.item(1, 2).setCheckState(Qt.Checked if s["TextText"] else Qt.Unchecked)
|
||||
|
||||
else:
|
||||
nLevel = len(s["FolderTitle"])
|
||||
for i in range(nLevel):
|
||||
self.tblContent.item(i + 2, 1).setCheckState(Qt.Checked if s["FolderTitle"][i] else Qt.Unchecked)
|
||||
self.tblContent.item(i + 2 + nLevel, 1).setCheckState(Qt.Checked if s["TextTitle"][i] else Qt.Unchecked)
|
||||
self.tblContent.item(i + 2 + nLevel, 2).setCheckState(Qt.Checked if s["TextText"][i] else Qt.Unchecked)
|
||||
|
||||
self.chkContentIgnoreCompile.setChecked(s["IgnoreCompile"])
|
||||
self.chkContentParent.setChecked(s["Parent"])
|
||||
self.chkContentLabels.setChecked(s["Labels"])
|
||||
self.chkContentStatus.setChecked(s["Status"])
|
||||
# FIXME: parent, labels, status
|
||||
|
||||
# Separations
|
||||
s = settings["Separator"]
|
||||
for val, cmb, txt in [
|
||||
("FF", self.cmbSepFF, self.txtSepFF),
|
||||
("TT", self.cmbSepTT, self.txtSepTT),
|
||||
("FT", self.cmbSepFT, self.txtSepFT),
|
||||
("TF", self.cmbSepTF, self.txtSepTF),
|
||||
]:
|
||||
if s[val] == "\n":
|
||||
cmb.setCurrentIndex(0)
|
||||
else:
|
||||
cmb.setCurrentIndex(1)
|
||||
txt.setText(self._format.escapes(s[val]))
|
||||
|
||||
# Transformations
|
||||
s = settings["Transform"]
|
||||
self.chkTransEllipse.setChecked(s["Ellipse"])
|
||||
self.chkTransDash.setChecked(s["Dash"])
|
||||
|
||||
for val, chk, cmb, txtA, txtB in [
|
||||
("DoubleQuotes", self.chkTransDoubleQuotes, self.cmbTransDoubleQuotes, self.txtTransDoubleQuotesA, self.txtTransDoubleQuotesB),
|
||||
("SingleQuote", self.chkTransSingleQuote, self.cmbTransSingleQuote, self.txtTransSingleQuoteA, self.txtTransSingleQuoteB),
|
||||
]:
|
||||
chk.setChecked(s[val] != False)
|
||||
if s[val]:
|
||||
if cmb.findText(s[val]) != -1:
|
||||
cmb.setCurrentText(s[val])
|
||||
else:
|
||||
cmb.setCurrentIndex(cmb.count() - 1)
|
||||
txtA.setText(s[val].split("___")[0])
|
||||
txtB.setText(s[val].split("___")[1])
|
||||
|
||||
self.chkTransSpaces.setChecked(s["Spaces"])
|
||||
|
||||
for i in s["Custom"]:
|
||||
self.transAddTableRow(i[0], i[1], i[2], i[3])
|
||||
|
||||
# Preview
|
||||
s = settings["Preview"]
|
||||
f = QFont()
|
||||
f.fromString(s["PreviewFont"])
|
||||
self.cmbPreviewFont.setCurrentFont(f)
|
||||
self.spnPreviewSize.setValue(f.pointSize())
|
||||
|
||||
def getSettings(self):
|
||||
"""Updates settings from ui, and return."""
|
||||
# Content
|
||||
s = self.settings.get("Content", {})
|
||||
s["More"] = self.chkContentMore.isChecked()
|
||||
|
||||
if not s["More"]:
|
||||
s["FolderTitle"] = self.tblContent.item(0, 1).checkState() == Qt.Checked
|
||||
s["TextTitle"] = self.tblContent.item(1, 1).checkState() == Qt.Checked
|
||||
s["TextText"] = self.tblContent.item(1, 2).checkState() == Qt.Checked
|
||||
|
||||
else:
|
||||
s["FolderTitle"] = []
|
||||
s["TextTitle"] = []
|
||||
s["TextText"] = []
|
||||
nLevel = int((self.tblContent.rowCount() - 2) / 2)
|
||||
print(nLevel)
|
||||
for row in range(nLevel):
|
||||
s["FolderTitle"].append(self.tblContent.item(2 + row, 1).checkState() == Qt.Checked)
|
||||
s["TextTitle"].append(self.tblContent.item(2 + row + nLevel, 1).checkState() == Qt.Checked)
|
||||
s["TextText"].append(self.tblContent.item(2 + row + nLevel, 2).checkState() == Qt.Checked)
|
||||
|
||||
s["IgnoreCompile"] = self.chkContentIgnoreCompile.isChecked()
|
||||
s["Parent"] = self.chkContentParent.isChecked()
|
||||
s["Labels"] = self.chkContentLabels.isChecked()
|
||||
s["Status"] = self.chkContentStatus.isChecked()
|
||||
self.settings["Content"] = s
|
||||
# FIXME: parent, labels, status
|
||||
|
||||
# Separations
|
||||
s = self.settings.get("Separator", {})
|
||||
for val, cmb, txt in [
|
||||
("FF", self.cmbSepFF, self.txtSepFF),
|
||||
("TT", self.cmbSepTT, self.txtSepTT),
|
||||
("FT", self.cmbSepFT, self.txtSepFT),
|
||||
("TF", self.cmbSepTF, self.txtSepTF),
|
||||
]:
|
||||
if cmb.currentIndex() == 0:
|
||||
s[val] = "\n"
|
||||
|
||||
else:
|
||||
s[val] = self._format.descapes(txt.text())
|
||||
self.settings["Separator"] = s
|
||||
|
||||
# Transformations
|
||||
s = self.settings.get("Transform", {})
|
||||
s["Ellipse"] = self.chkTransEllipse.isChecked()
|
||||
s["Dash"] = self.chkTransDash.isChecked()
|
||||
|
||||
for val, chk, cmb, txtA, txtB in [
|
||||
("DoubleQuotes", self.chkTransDoubleQuotes, self.cmbTransDoubleQuotes, self.txtTransDoubleQuotesA, self.txtTransDoubleQuotesB),
|
||||
("SingleQuote", self.chkTransSingleQuote, self.cmbTransSingleQuote, self.txtTransSingleQuoteA, self.txtTransSingleQuoteB),
|
||||
]:
|
||||
if not chk.isChecked():
|
||||
s[val] = False
|
||||
else:
|
||||
if cmb.currentData() == "custom":
|
||||
s[val] = txtA.text() + "___" + txtB.text()
|
||||
else:
|
||||
s[val] = cmb.currentText()
|
||||
|
||||
s["Spaces"] = self.chkTransSpaces.isChecked()
|
||||
|
||||
s["Custom"] = []
|
||||
for i in range(self.tblReplacements.rowCount()):
|
||||
print(self.getTableRowValues(self.tblReplacements, i))
|
||||
s["Custom"].append(self.getTableRowValues(self.tblReplacements, i))
|
||||
self.settings["Transform"] = s
|
||||
|
||||
# Preview
|
||||
s = self.settings.get("Preview", {})
|
||||
f = self.cmbPreviewFont.currentFont()
|
||||
f.setPointSize(self.spnPreviewSize.value())
|
||||
s["PreviewFont"] = f.toString()
|
||||
self.settings["Preview"] = s
|
||||
|
||||
# Save settings
|
||||
self.writeSettings()
|
||||
|
||||
return self.settings
|
||||
|
||||
def sepCmbChanged(self, index):
|
||||
cmb = self.sender()
|
||||
map = {
|
||||
self.cmbSepFF: self.txtSepFF,
|
||||
self.cmbSepTT: self.txtSepTT,
|
||||
self.cmbSepFT: self.txtSepFT,
|
||||
self.cmbSepTF: self.txtSepTF
|
||||
}
|
||||
map[cmb].setEnabled(cmb.currentData() == "custom")
|
||||
|
||||
def transCmbChanged(self, index):
|
||||
cmb = self.sender()
|
||||
map = {
|
||||
self.cmbTransDoubleQuotes: (self.txtTransDoubleQuotesA, self.lblTransDoubleQuotes, self.txtTransDoubleQuotesB),
|
||||
self.cmbTransSingleQuote: (self.txtTransSingleQuoteA, self.lblTransSingleQuote, self.txtTransSingleQuoteB),
|
||||
}
|
||||
for txt in map[cmb]:
|
||||
txt.setVisible(cmb.currentData() == "custom")
|
||||
|
||||
def contentUpdateTable(self):
|
||||
|
||||
def addFolderRow(text="Folder"):
|
||||
self.tableWidgetAddRow(self.tblContent, [
|
||||
self.tableWidgetMakeItem(text, "folder"),
|
||||
self.tableWidgetMakeItem("", "", True, True),
|
||||
])
|
||||
|
||||
def addTextRow(text="Text"):
|
||||
self.tableWidgetAddRow(self.tblContent, [
|
||||
self.tableWidgetMakeItem(text, "text-x-generic"),
|
||||
self.tableWidgetMakeItem("", "", True, False),
|
||||
self.tableWidgetMakeItem("", "", True, True),
|
||||
])
|
||||
|
||||
self.tblContent.setRowCount(0)
|
||||
|
||||
# Basic
|
||||
addFolderRow()
|
||||
addTextRow()
|
||||
|
||||
# Detailed
|
||||
level = self.mw.mdlOutline.maxLevel()
|
||||
|
||||
for i in range(level):
|
||||
addFolderRow("{}Level {} folder".format(" " * i, i + 1))
|
||||
|
||||
for i in range(level):
|
||||
addTextRow("{}Level {} text".format(" " * i, i + 1))
|
||||
|
||||
self.tableWidgetAdjustToContent(self.tblContent)
|
||||
|
||||
def contentTableToggle(self, detailed):
|
||||
for i in range(self.tblContent.rowCount()):
|
||||
self.tblContent.setRowHidden(i, i in [0, 1] and detailed or (not i in [0, 1] and not detailed))
|
||||
self.tableWidgetAdjustToContent(self.tblContent)
|
||||
|
||||
def getTableRowValues(self, table, row):
|
||||
r = []
|
||||
for col in range(table.columnCount()):
|
||||
item = table.item(row, col)
|
||||
|
||||
if not item:
|
||||
r.append(None)
|
||||
elif item.flags() & Qt.ItemIsUserCheckable == Qt.ItemIsUserCheckable:
|
||||
r.append(item.checkState() == Qt.Checked)
|
||||
else:
|
||||
r.append(item.text())
|
||||
|
||||
return r
|
||||
|
||||
def transAddTableRow(self, checked=True, A="", B="", regexp=False):
|
||||
self.tableWidgetAddRow(self.tblReplacements, [
|
||||
self.tableWidgetMakeItem("", "", True, checked),
|
||||
self.tableWidgetMakeItem(A, "", False, False),
|
||||
self.tableWidgetMakeItem(B, "", False, False),
|
||||
self.tableWidgetMakeItem("", "", True, regexp),
|
||||
])
|
||||
self.tableWidgetAdjustToContent(self.tblReplacements)
|
||||
|
||||
def transRemoveTableRow(self):
|
||||
self.tblReplacements.removeRow(self.tblReplacements.currentRow())
|
||||
self.tableWidgetAdjustToContent(self.tblReplacements)
|
||||
|
||||
def tableWidgetMakeItem(self, text="", icon="", checkable=False, checked=False):
|
||||
"""Creates a QTableWidgetItem with the given attributes."""
|
||||
item = QTableWidgetItem(QIcon.fromTheme(icon), text)
|
||||
if checkable:
|
||||
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
|
||||
item.setCheckState(Qt.Checked if checked else Qt.Unchecked)
|
||||
else:
|
||||
item.setFlags(item.flags() & ~Qt.ItemIsUserCheckable)
|
||||
|
||||
return item
|
||||
|
||||
def tableWidgetAddRow(self, table, items):
|
||||
"""Appends the given items (list of QTableWidgetItems) to table."""
|
||||
table.setRowCount(table.rowCount() + 1)
|
||||
k = 0
|
||||
for i in items:
|
||||
table.setItem(table.rowCount() - 1, k, i)
|
||||
k += 1
|
||||
|
||||
def tableWidgetAdjustToContent(self, table):
|
||||
"""Set sizehint of QTableWidget table so that it matches content vertically."""
|
||||
|
||||
h = 0
|
||||
|
||||
h += table.horizontalHeader().height()
|
||||
|
||||
for i in range(table.rowCount()):
|
||||
h += table.rowHeight(i)
|
||||
|
||||
table.setMinimumSize(QSize(0, h + 2))
|
||||
table.setMaximumSize(QSize(16777215, h + 2))
|
||||
|
||||
def listWidgetAdjustToContent(self, lst):
|
||||
"""Adjust listWidget to content."""
|
||||
h = 0
|
||||
for i in range(lst.count()):
|
||||
h += lst.item(i).sizeHint().height()
|
||||
|
||||
lst.setMinimumSize(QSize(0, h+2))
|
||||
lst.setMaximumSize(QSize(16777215, h+2))
|
||||
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'manuskript/ui/exporters/exporterSettings_ui.ui'
|
||||
# Form implementation generated from reading ui file 'manuskript/ui/exporters/manuskript/plainTextSettings_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.4.2
|
||||
#
|
||||
|
@ -27,15 +27,15 @@ class Ui_exporterSettings(object):
|
|||
" background-color:skyblue;\n"
|
||||
"}")
|
||||
self.toolBox.setObjectName("toolBox")
|
||||
self.page = QtWidgets.QWidget()
|
||||
self.page.setGeometry(QtCore.QRect(0, 0, 491, 824))
|
||||
self.page.setObjectName("page")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.page)
|
||||
self.content = QtWidgets.QWidget()
|
||||
self.content.setGeometry(QtCore.QRect(0, 0, 491, 842))
|
||||
self.content.setObjectName("content")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.content)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.label = QtWidgets.QLabel(self.page)
|
||||
self.label = QtWidgets.QLabel(self.content)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout_5.addWidget(self.label)
|
||||
self.tblContent = QtWidgets.QTableWidget(self.page)
|
||||
self.tblContent = QtWidgets.QTableWidget(self.content)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
|
@ -60,11 +60,11 @@ class Ui_exporterSettings(object):
|
|||
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_8.addItem(spacerItem)
|
||||
self.chkContentMore = QtWidgets.QCheckBox(self.page)
|
||||
self.chkContentMore = QtWidgets.QCheckBox(self.content)
|
||||
self.chkContentMore.setObjectName("chkContentMore")
|
||||
self.horizontalLayout_8.addWidget(self.chkContentMore)
|
||||
self.verticalLayout_5.addLayout(self.horizontalLayout_8)
|
||||
self.grpContentFilters = collapsibleGroupBox2(self.page)
|
||||
self.grpContentFilters = collapsibleGroupBox2(self.content)
|
||||
self.grpContentFilters.setCheckable(True)
|
||||
self.grpContentFilters.setObjectName("grpContentFilters")
|
||||
self.formLayout_2 = QtWidgets.QFormLayout(self.grpContentFilters)
|
||||
|
@ -83,7 +83,6 @@ class Ui_exporterSettings(object):
|
|||
self.cmbContentParent = QtWidgets.QComboBox(self.grpContentFilters)
|
||||
self.cmbContentParent.setFrame(False)
|
||||
self.cmbContentParent.setObjectName("cmbContentParent")
|
||||
self.cmbContentParent.addItem("")
|
||||
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbContentParent)
|
||||
self.chkContentLabels = QtWidgets.QCheckBox(self.grpContentFilters)
|
||||
self.chkContentLabels.setObjectName("chkContentLabels")
|
||||
|
@ -110,12 +109,13 @@ class Ui_exporterSettings(object):
|
|||
self.verticalLayout_5.addWidget(self.grpContentFilters)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_5.addItem(spacerItem1)
|
||||
self.toolBox.addItem(self.page, "")
|
||||
self.page_3 = QtWidgets.QWidget()
|
||||
self.page_3.setObjectName("page_3")
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.page_3)
|
||||
self.toolBox.addItem(self.content, "")
|
||||
self.separations = QtWidgets.QWidget()
|
||||
self.separations.setGeometry(QtCore.QRect(0, 0, 511, 522))
|
||||
self.separations.setObjectName("separations")
|
||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.separations)
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.label_3 = QtWidgets.QLabel(self.page_3)
|
||||
self.label_3 = QtWidgets.QLabel(self.separations)
|
||||
font = QtGui.QFont()
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
|
@ -128,7 +128,7 @@ class Ui_exporterSettings(object):
|
|||
self.horizontalLayout.addItem(spacerItem2)
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.pushButton_4 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_4 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_4.setEnabled(True)
|
||||
self.pushButton_4.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_4.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -138,12 +138,12 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_4.setFlat(True)
|
||||
self.pushButton_4.setObjectName("pushButton_4")
|
||||
self.verticalLayout.addWidget(self.pushButton_4)
|
||||
self.line = QtWidgets.QFrame(self.page_3)
|
||||
self.line = QtWidgets.QFrame(self.separations)
|
||||
self.line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
self.line.setObjectName("line")
|
||||
self.verticalLayout.addWidget(self.line)
|
||||
self.pushButton = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton.setEnabled(True)
|
||||
self.pushButton.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -154,17 +154,17 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton.setObjectName("pushButton")
|
||||
self.verticalLayout.addWidget(self.pushButton)
|
||||
self.horizontalLayout.addLayout(self.verticalLayout)
|
||||
self.cmbSepFF = QtWidgets.QComboBox(self.page_3)
|
||||
self.cmbSepFF = QtWidgets.QComboBox(self.separations)
|
||||
self.cmbSepFF.setObjectName("cmbSepFF")
|
||||
self.cmbSepFF.addItem("")
|
||||
self.cmbSepFF.addItem("")
|
||||
self.horizontalLayout.addWidget(self.cmbSepFF)
|
||||
self.txtSepFF = QtWidgets.QLineEdit(self.page_3)
|
||||
self.txtSepFF = QtWidgets.QLineEdit(self.separations)
|
||||
self.txtSepFF.setEnabled(False)
|
||||
self.txtSepFF.setObjectName("txtSepFF")
|
||||
self.horizontalLayout.addWidget(self.txtSepFF)
|
||||
self.verticalLayout_8.addLayout(self.horizontalLayout)
|
||||
self.label_4 = QtWidgets.QLabel(self.page_3)
|
||||
self.label_4 = QtWidgets.QLabel(self.separations)
|
||||
font = QtGui.QFont()
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
|
@ -177,7 +177,7 @@ class Ui_exporterSettings(object):
|
|||
self.horizontalLayout_2.addItem(spacerItem3)
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.pushButton_5 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_5 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_5.setEnabled(True)
|
||||
self.pushButton_5.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_5.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -187,12 +187,12 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_5.setFlat(True)
|
||||
self.pushButton_5.setObjectName("pushButton_5")
|
||||
self.verticalLayout_3.addWidget(self.pushButton_5)
|
||||
self.line_2 = QtWidgets.QFrame(self.page_3)
|
||||
self.line_2 = QtWidgets.QFrame(self.separations)
|
||||
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
self.line_2.setObjectName("line_2")
|
||||
self.verticalLayout_3.addWidget(self.line_2)
|
||||
self.pushButton_6 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_6 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_6.setEnabled(True)
|
||||
self.pushButton_6.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_6.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -203,17 +203,17 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_6.setObjectName("pushButton_6")
|
||||
self.verticalLayout_3.addWidget(self.pushButton_6)
|
||||
self.horizontalLayout_2.addLayout(self.verticalLayout_3)
|
||||
self.cmbSepTT = QtWidgets.QComboBox(self.page_3)
|
||||
self.cmbSepTT = QtWidgets.QComboBox(self.separations)
|
||||
self.cmbSepTT.setObjectName("cmbSepTT")
|
||||
self.cmbSepTT.addItem("")
|
||||
self.cmbSepTT.addItem("")
|
||||
self.horizontalLayout_2.addWidget(self.cmbSepTT)
|
||||
self.txtSepTT = QtWidgets.QLineEdit(self.page_3)
|
||||
self.txtSepTT = QtWidgets.QLineEdit(self.separations)
|
||||
self.txtSepTT.setEnabled(False)
|
||||
self.txtSepTT.setObjectName("txtSepTT")
|
||||
self.horizontalLayout_2.addWidget(self.txtSepTT)
|
||||
self.verticalLayout_8.addLayout(self.horizontalLayout_2)
|
||||
self.label_6 = QtWidgets.QLabel(self.page_3)
|
||||
self.label_6 = QtWidgets.QLabel(self.separations)
|
||||
font = QtGui.QFont()
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
|
@ -226,7 +226,7 @@ class Ui_exporterSettings(object):
|
|||
self.horizontalLayout_3.addItem(spacerItem4)
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.pushButton_7 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_7 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_7.setEnabled(True)
|
||||
self.pushButton_7.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_7.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -236,12 +236,12 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_7.setFlat(True)
|
||||
self.pushButton_7.setObjectName("pushButton_7")
|
||||
self.verticalLayout_4.addWidget(self.pushButton_7)
|
||||
self.line_3 = QtWidgets.QFrame(self.page_3)
|
||||
self.line_3 = QtWidgets.QFrame(self.separations)
|
||||
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
self.line_3.setObjectName("line_3")
|
||||
self.verticalLayout_4.addWidget(self.line_3)
|
||||
self.pushButton_8 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_8 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_8.setEnabled(True)
|
||||
self.pushButton_8.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_8.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -252,17 +252,17 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_8.setObjectName("pushButton_8")
|
||||
self.verticalLayout_4.addWidget(self.pushButton_8)
|
||||
self.horizontalLayout_3.addLayout(self.verticalLayout_4)
|
||||
self.cmbSepFT = QtWidgets.QComboBox(self.page_3)
|
||||
self.cmbSepFT = QtWidgets.QComboBox(self.separations)
|
||||
self.cmbSepFT.setObjectName("cmbSepFT")
|
||||
self.cmbSepFT.addItem("")
|
||||
self.cmbSepFT.addItem("")
|
||||
self.horizontalLayout_3.addWidget(self.cmbSepFT)
|
||||
self.txtSepFT = QtWidgets.QLineEdit(self.page_3)
|
||||
self.txtSepFT = QtWidgets.QLineEdit(self.separations)
|
||||
self.txtSepFT.setEnabled(False)
|
||||
self.txtSepFT.setObjectName("txtSepFT")
|
||||
self.horizontalLayout_3.addWidget(self.txtSepFT)
|
||||
self.verticalLayout_8.addLayout(self.horizontalLayout_3)
|
||||
self.label_5 = QtWidgets.QLabel(self.page_3)
|
||||
self.label_5 = QtWidgets.QLabel(self.separations)
|
||||
font = QtGui.QFont()
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
|
@ -275,7 +275,7 @@ class Ui_exporterSettings(object):
|
|||
self.horizontalLayout_4.addItem(spacerItem5)
|
||||
self.verticalLayout_7 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_7.setObjectName("verticalLayout_7")
|
||||
self.pushButton_9 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_9 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_9.setEnabled(True)
|
||||
self.pushButton_9.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_9.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -285,12 +285,12 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_9.setFlat(True)
|
||||
self.pushButton_9.setObjectName("pushButton_9")
|
||||
self.verticalLayout_7.addWidget(self.pushButton_9)
|
||||
self.line_4 = QtWidgets.QFrame(self.page_3)
|
||||
self.line_4 = QtWidgets.QFrame(self.separations)
|
||||
self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
self.line_4.setObjectName("line_4")
|
||||
self.verticalLayout_7.addWidget(self.line_4)
|
||||
self.pushButton_10 = QtWidgets.QPushButton(self.page_3)
|
||||
self.pushButton_10 = QtWidgets.QPushButton(self.separations)
|
||||
self.pushButton_10.setEnabled(True)
|
||||
self.pushButton_10.setMinimumSize(QtCore.QSize(16, 16))
|
||||
self.pushButton_10.setMaximumSize(QtCore.QSize(16, 16))
|
||||
|
@ -301,26 +301,26 @@ class Ui_exporterSettings(object):
|
|||
self.pushButton_10.setObjectName("pushButton_10")
|
||||
self.verticalLayout_7.addWidget(self.pushButton_10)
|
||||
self.horizontalLayout_4.addLayout(self.verticalLayout_7)
|
||||
self.cmbSepTF = QtWidgets.QComboBox(self.page_3)
|
||||
self.cmbSepTF = QtWidgets.QComboBox(self.separations)
|
||||
self.cmbSepTF.setObjectName("cmbSepTF")
|
||||
self.cmbSepTF.addItem("")
|
||||
self.cmbSepTF.addItem("")
|
||||
self.horizontalLayout_4.addWidget(self.cmbSepTF)
|
||||
self.txtSepTF = QtWidgets.QLineEdit(self.page_3)
|
||||
self.txtSepTF = QtWidgets.QLineEdit(self.separations)
|
||||
self.txtSepTF.setEnabled(False)
|
||||
self.txtSepTF.setObjectName("txtSepTF")
|
||||
self.horizontalLayout_4.addWidget(self.txtSepTF)
|
||||
self.verticalLayout_8.addLayout(self.horizontalLayout_4)
|
||||
spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_8.addItem(spacerItem6)
|
||||
self.toolBox.addItem(self.page_3, "")
|
||||
self.page_2 = QtWidgets.QWidget()
|
||||
self.page_2.setGeometry(QtCore.QRect(0, 0, 511, 548))
|
||||
self.page_2.setStyleSheet("QGroupBox{font-weight:bold;}")
|
||||
self.page_2.setObjectName("page_2")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.page_2)
|
||||
self.toolBox.addItem(self.separations, "")
|
||||
self.transformations = QtWidgets.QWidget()
|
||||
self.transformations.setGeometry(QtCore.QRect(0, 0, 511, 522))
|
||||
self.transformations.setStyleSheet("QGroupBox{font-weight:bold;}")
|
||||
self.transformations.setObjectName("transformations")
|
||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.transformations)
|
||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||
self.grpTransTypo = collapsibleGroupBox2(self.page_2)
|
||||
self.grpTransTypo = collapsibleGroupBox2(self.transformations)
|
||||
self.grpTransTypo.setStyleSheet("")
|
||||
self.grpTransTypo.setObjectName("grpTransTypo")
|
||||
self.formLayout = QtWidgets.QFormLayout(self.grpTransTypo)
|
||||
|
@ -345,7 +345,6 @@ class Ui_exporterSettings(object):
|
|||
self.cmbTransDoubleQuotes.setObjectName("cmbTransDoubleQuotes")
|
||||
self.horizontalLayout_5.addWidget(self.cmbTransDoubleQuotes)
|
||||
self.txtTransDoubleQuotesA = QtWidgets.QLineEdit(self.grpTransTypo)
|
||||
self.txtTransDoubleQuotesA.setEnabled(False)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
|
@ -355,14 +354,13 @@ class Ui_exporterSettings(object):
|
|||
self.txtTransDoubleQuotesA.setMaximumSize(QtCore.QSize(40, 16777215))
|
||||
self.txtTransDoubleQuotesA.setStyleSheet("border-radius: 6px;")
|
||||
self.txtTransDoubleQuotesA.setFrame(False)
|
||||
self.txtTransDoubleQuotesA.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.txtTransDoubleQuotesA.setObjectName("txtTransDoubleQuotesA")
|
||||
self.horizontalLayout_5.addWidget(self.txtTransDoubleQuotesA)
|
||||
self.lblTransDoubleQuotes = QtWidgets.QLabel(self.grpTransTypo)
|
||||
self.lblTransDoubleQuotes.setEnabled(False)
|
||||
self.lblTransDoubleQuotes.setObjectName("lblTransDoubleQuotes")
|
||||
self.horizontalLayout_5.addWidget(self.lblTransDoubleQuotes)
|
||||
self.txtTransDoubleQuotesB = QtWidgets.QLineEdit(self.grpTransTypo)
|
||||
self.txtTransDoubleQuotesB.setEnabled(False)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
|
@ -372,6 +370,7 @@ class Ui_exporterSettings(object):
|
|||
self.txtTransDoubleQuotesB.setMaximumSize(QtCore.QSize(40, 16777215))
|
||||
self.txtTransDoubleQuotesB.setStyleSheet("border-radius: 6px;")
|
||||
self.txtTransDoubleQuotesB.setFrame(False)
|
||||
self.txtTransDoubleQuotesB.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.txtTransDoubleQuotesB.setObjectName("txtTransDoubleQuotesB")
|
||||
self.horizontalLayout_5.addWidget(self.txtTransDoubleQuotesB)
|
||||
spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
|
@ -388,7 +387,6 @@ class Ui_exporterSettings(object):
|
|||
self.cmbTransSingleQuote.setObjectName("cmbTransSingleQuote")
|
||||
self.horizontalLayout_6.addWidget(self.cmbTransSingleQuote)
|
||||
self.txtTransSingleQuoteA = QtWidgets.QLineEdit(self.grpTransTypo)
|
||||
self.txtTransSingleQuoteA.setEnabled(False)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
|
@ -398,14 +396,13 @@ class Ui_exporterSettings(object):
|
|||
self.txtTransSingleQuoteA.setMaximumSize(QtCore.QSize(40, 16777215))
|
||||
self.txtTransSingleQuoteA.setStyleSheet("border-radius: 6px;")
|
||||
self.txtTransSingleQuoteA.setFrame(False)
|
||||
self.txtTransSingleQuoteA.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.txtTransSingleQuoteA.setObjectName("txtTransSingleQuoteA")
|
||||
self.horizontalLayout_6.addWidget(self.txtTransSingleQuoteA)
|
||||
self.lblTransSingleQuote = QtWidgets.QLabel(self.grpTransTypo)
|
||||
self.lblTransSingleQuote.setEnabled(False)
|
||||
self.lblTransSingleQuote.setObjectName("lblTransSingleQuote")
|
||||
self.horizontalLayout_6.addWidget(self.lblTransSingleQuote)
|
||||
self.txtTransSingleQuoteB = QtWidgets.QLineEdit(self.grpTransTypo)
|
||||
self.txtTransSingleQuoteB.setEnabled(False)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
|
@ -415,6 +412,7 @@ class Ui_exporterSettings(object):
|
|||
self.txtTransSingleQuoteB.setMaximumSize(QtCore.QSize(40, 16777215))
|
||||
self.txtTransSingleQuoteB.setStyleSheet("border-radius: 6px;")
|
||||
self.txtTransSingleQuoteB.setFrame(False)
|
||||
self.txtTransSingleQuoteB.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.txtTransSingleQuoteB.setObjectName("txtTransSingleQuoteB")
|
||||
self.horizontalLayout_6.addWidget(self.txtTransSingleQuoteB)
|
||||
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
|
@ -424,11 +422,16 @@ class Ui_exporterSettings(object):
|
|||
self.chkTransSpaces.setObjectName("chkTransSpaces")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.chkTransSpaces)
|
||||
self.verticalLayout_6.addWidget(self.grpTransTypo)
|
||||
self.grpTransCustom = collapsibleGroupBox2(self.page_2)
|
||||
self.grpTransCustom = collapsibleGroupBox2(self.transformations)
|
||||
self.grpTransCustom.setObjectName("grpTransCustom")
|
||||
self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.grpTransCustom)
|
||||
self.verticalLayout_9.setObjectName("verticalLayout_9")
|
||||
self.tblReplacements = QtWidgets.QTableWidget(self.grpTransCustom)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.tblReplacements.sizePolicy().hasHeightForWidth())
|
||||
self.tblReplacements.setSizePolicy(sizePolicy)
|
||||
self.tblReplacements.setAlternatingRowColors(True)
|
||||
self.tblReplacements.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
|
||||
self.tblReplacements.setObjectName("tblReplacements")
|
||||
|
@ -466,11 +469,35 @@ class Ui_exporterSettings(object):
|
|||
self.verticalLayout_6.addWidget(self.grpTransCustom)
|
||||
spacerItem10 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_6.addItem(spacerItem10)
|
||||
self.toolBox.addItem(self.page_2, "")
|
||||
self.toolBox.addItem(self.transformations, "")
|
||||
self.preview = QtWidgets.QWidget()
|
||||
self.preview.setObjectName("preview")
|
||||
self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.preview)
|
||||
self.verticalLayout_11.setObjectName("verticalLayout_11")
|
||||
self.groupBox = QtWidgets.QGroupBox(self.preview)
|
||||
self.groupBox.setObjectName("groupBox")
|
||||
self.formLayout_3 = QtWidgets.QFormLayout(self.groupBox)
|
||||
self.formLayout_3.setObjectName("formLayout_3")
|
||||
self.label_7 = QtWidgets.QLabel(self.groupBox)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_7)
|
||||
self.cmbPreviewFont = QtWidgets.QFontComboBox(self.groupBox)
|
||||
self.cmbPreviewFont.setObjectName("cmbPreviewFont")
|
||||
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbPreviewFont)
|
||||
self.label_8 = QtWidgets.QLabel(self.groupBox)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_8)
|
||||
self.spnPreviewSize = QtWidgets.QSpinBox(self.groupBox)
|
||||
self.spnPreviewSize.setObjectName("spnPreviewSize")
|
||||
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.spnPreviewSize)
|
||||
self.verticalLayout_11.addWidget(self.groupBox)
|
||||
spacerItem11 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_11.addItem(spacerItem11)
|
||||
self.toolBox.addItem(self.preview, "")
|
||||
self.verticalLayout_2.addWidget(self.toolBox)
|
||||
|
||||
self.retranslateUi(exporterSettings)
|
||||
self.toolBox.setCurrentIndex(0)
|
||||
self.toolBox.setCurrentIndex(3)
|
||||
self.toolBox.layout().setSpacing(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(exporterSettings)
|
||||
|
||||
|
@ -486,13 +513,12 @@ class Ui_exporterSettings(object):
|
|||
item.setText(_translate("exporterSettings", "Text"))
|
||||
self.chkContentMore.setText(_translate("exporterSettings", "I need more granularity"))
|
||||
self.grpContentFilters.setTitle(_translate("exporterSettings", "Fi<ers"))
|
||||
self.label_2.setText(_translate("exporterSettings", "Filters what items will be included in the final export."))
|
||||
self.label_2.setText(_translate("exporterSettings", "<html><head/><body><p>Filters what items will be included in the final export.<br/><span style=\" color:#773333;\">(Not fully implemented yet.)</span></p></body></html>"))
|
||||
self.chkContentIgnoreCompile.setText(_translate("exporterSettings", "Ignore compile status (include all items)"))
|
||||
self.chkContentParent.setText(_translate("exporterSettings", "Subitems of:"))
|
||||
self.cmbContentParent.setItemText(0, _translate("exporterSettings", "Root (all)"))
|
||||
self.chkContentLabels.setText(_translate("exporterSettings", "Labels"))
|
||||
self.chkContentStatus.setText(_translate("exporterSettings", "Status"))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.page), _translate("exporterSettings", "Content"))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.content), _translate("exporterSettings", "Content"))
|
||||
self.label_3.setText(_translate("exporterSettings", "Between folders:"))
|
||||
self.cmbSepFF.setItemText(0, _translate("exporterSettings", "Empty line"))
|
||||
self.cmbSepFF.setItemText(1, _translate("exporterSettings", "Custom"))
|
||||
|
@ -509,7 +535,7 @@ class Ui_exporterSettings(object):
|
|||
self.cmbSepTF.setItemText(0, _translate("exporterSettings", "Empty line"))
|
||||
self.cmbSepTF.setItemText(1, _translate("exporterSettings", "Custom"))
|
||||
self.txtSepTF.setText(_translate("exporterSettings", "\\n"))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.page_3), _translate("exporterSettings", "Separations"))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.separations), _translate("exporterSettings", "Separations"))
|
||||
self.grpTransTypo.setTitle(_translate("exporterSettings", "Typographic replacements:"))
|
||||
self.chkTransEllipse.setText(_translate("exporterSettings", "Replace ... with …"))
|
||||
self.chkTransDash.setText(_translate("exporterSettings", "Replace --- with —"))
|
||||
|
@ -528,6 +554,10 @@ class Ui_exporterSettings(object):
|
|||
item = self.tblReplacements.horizontalHeaderItem(3)
|
||||
item.setText(_translate("exporterSettings", "RegExp"))
|
||||
item.setWhatsThis(_translate("exporterSettings", "If checked, uses regular expression for replacement. If unchecked, replaced as plain text."))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.page_2), _translate("exporterSettings", "Transformations"))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.transformations), _translate("exporterSettings", "Transformations"))
|
||||
self.groupBox.setTitle(_translate("exporterSettings", "Font"))
|
||||
self.label_7.setText(_translate("exporterSettings", "Font:"))
|
||||
self.label_8.setText(_translate("exporterSettings", "Font size:"))
|
||||
self.toolBox.setItemText(self.toolBox.indexOf(self.preview), _translate("exporterSettings", "Preview"))
|
||||
|
||||
from manuskript.ui.collapsibleGroupBox2 import collapsibleGroupBox2
|
|
@ -43,18 +43,18 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
}</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="tabSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page">
|
||||
<widget class="QWidget" name="content">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>491</width>
|
||||
<height>824</height>
|
||||
<height>842</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
|
@ -150,7 +150,7 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Filters what items will be included in the final export.</string>
|
||||
<string><html><head/><body><p>Filters what items will be included in the final export.<br/><span style=" color:#773333;">(Not fully implemented yet.)</span></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -227,7 +227,15 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_3">
|
||||
<widget class="QWidget" name="separations">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>511</width>
|
||||
<height>522</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
<string>Separations</string>
|
||||
</attribute>
|
||||
|
@ -286,7 +294,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="folder"/>
|
||||
<iconset theme="folder">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -321,7 +331,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="folder"/>
|
||||
<iconset theme="folder">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -410,7 +422,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="text-x-generic"/>
|
||||
<iconset theme="text-x-generic">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -536,7 +550,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="folder"/>
|
||||
<iconset theme="folder">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -571,7 +587,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="text-x-generic"/>
|
||||
<iconset theme="text-x-generic">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -660,7 +678,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="text-x-generic"/>
|
||||
<iconset theme="text-x-generic">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -695,7 +715,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="folder"/>
|
||||
<iconset theme="folder">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -745,13 +767,13 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_2">
|
||||
<widget class="QWidget" name="transformations">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>511</width>
|
||||
<height>548</height>
|
||||
<height>522</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
|
@ -814,9 +836,6 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtTransDoubleQuotesA">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -841,13 +860,13 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lblTransDoubleQuotes">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>…</string>
|
||||
</property>
|
||||
|
@ -855,9 +874,6 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtTransDoubleQuotesB">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -882,6 +898,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -920,9 +939,6 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtTransSingleQuoteA">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -947,13 +963,13 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lblTransSingleQuote">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>…</string>
|
||||
</property>
|
||||
|
@ -961,9 +977,6 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtTransSingleQuoteB">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -988,6 +1001,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<property name="frame">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -1023,6 +1039,12 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tblReplacements">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
@ -1078,7 +1100,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="list-add"/>
|
||||
<iconset theme="list-add">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -1091,7 +1115,9 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="list-remove"/>
|
||||
<iconset theme="list-remove">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
|
@ -1118,6 +1144,55 @@ QToolBox::tab:selected, QToolBox::tab:hover{
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="preview">
|
||||
<attribute name="label">
|
||||
<string>Preview</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_11">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Font</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>Font:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QFontComboBox" name="cmbPreviewFont"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Font size:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="spnPreviewSize"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
Loading…
Reference in a new issue