Exporter looking like something now

This commit is contained in:
Olivier Keshavjee 2016-04-05 17:21:07 +02:00
parent 0554ac519e
commit 548df14b28
13 changed files with 2184 additions and 245 deletions

View file

@ -64,8 +64,7 @@ class basicFormat:
implemented = False
requires = {
"Settings": False,
"PreviewBefore": False,
"PreviewAfter": False,
"Preview": False,
}
def __init__(self, name, description=""):
@ -77,55 +76,9 @@ class basicFormat:
return QWidget()
@classmethod
def previewWidgetBefore(cls):
def previewWidget(cls):
return QWidget()
@classmethod
def previewWidgetAfter(cls):
return QWidget()
@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:
r = ""
if not item.compile():
return ""
if item.level() >= 0: # item is not root
# Adds item title
r += processTitle(item.title())
# Adds item text
r += processText(item.text())
content = ""
# Add item children
last = None
for c in item.children():
# Separator
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 += cls.concatenate(c)
last = c.type()
r += processContent(content)
return r
def preview(cls, settingsWidget, previewWidget):
pass

View file

@ -1,21 +1,80 @@
#!/usr/bin/env python
# --!-- coding: utf8 --!--
from PyQt5.QtWidgets import QTextEdit
from PyQt5.QtWidgets import QPlainTextEdit
from manuskript.exporter.basic import basicExporter, basicFormat
from manuskript.functions import mainWindow
from manuskript.models.outlineModel import outlineItem
from manuskript.ui.exporters.exporterSettings import exporterSettings
class plainText(basicFormat):
name = "Plain text"
description = "Simplest export to plain text. Allows you to use your own markup not understood " \
"by manuskript, for example <a href='www.fountain.io'>Fountain</a>."
implemented = False
implemented = True
requires = {
"Settings": True,
"PreviewBefore": True,
"PreviewAfter": False,
"Preview": True,
}
@classmethod
def settingsWidget(cls):
sW = QTextEdit()
return sW
w = exporterSettings()
return w
@classmethod
def previewWidget(cls):
w = QPlainTextEdit()
w.setReadOnly(True)
return w
@classmethod
def preview(cls, settingsWidget, previewWidget):
previewWidget.setPlainText(cls.concatenate(mainWindow().mdlOutline.rootItem))
@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:
r = ""
if not item.compile():
return ""
if item.level() >= 0: # item is not root
# Adds item title
r += processTitle(item.title())
# Adds item text
r += processText(item.text())
content = ""
# Add item children
last = None
for c in item.children():
# Separator
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 += cls.concatenate(c)
last = c.type()
r += processContent(content)
return r

View file

@ -9,8 +9,7 @@ class HTMLFormat(basicFormat):
implemented = False
requires = {
"Settings": True,
"PreviewBefore": True,
"PreviewAfter": True,
"Preview": True,
}
@ -27,6 +26,8 @@ class pandocExporter(basicExporter):
basicFormat("OpenDocument", "OpenDocument format. Used by LibreOffice for example."),
basicFormat("PDF", "Needs latex to be installed."),
basicFormat("DocX", "Microsoft Office (.docx) document."),
basicFormat("reST"),
]
cmd = "pandoc"

View file

@ -193,6 +193,18 @@ class outlineModel(QAbstractItemModel):
return True
def maxLevel(self):
"""Returns the max depth of the model."""
def depth(item, d=-1):
d += 1
r = d
for c in item.children():
r = max(r, depth(c, d))
return r
d = depth(self.rootItem)
return d
#################### DRAG AND DROP ########################
# http://doc.qt.io/qt-5/model-view-programming.html#using-drag-and-drop-with-item-views
@ -699,6 +711,7 @@ class outlineItem():
return [(self.ID(), self.title())]
def level(self):
"""Returns the level of the current item. Root item returns -1."""
if self.parent():
return self.parent().level() + 1
else:

View file

@ -16,16 +16,7 @@ class collapsibleGroupBox2(QWidget):
self.switched = False
self.vPolicy = None
# self.button.setStyleSheet("background-color: lightBlue;")
self.button.setStyleSheet("""
QPushButton{
background-color: #BBB;
border: none;
padding: 2px;
}
QPushButton:checked, QPushButton:hover{
font-style:italic;
background-color:lightBlue;
}""")
self.setCustomColors()
def resizeEvent(self, event):
if not self.switched:
@ -71,3 +62,21 @@ class collapsibleGroupBox2(QWidget):
def restoreState(self, val):
self.button.setChecked(val)
def setCustomColors(self, active="lightBlue", inactive="#BBB"):
self.button.setStyleSheet("""
QPushButton{{
background-color: {inactive};
border: none;
padding: 2px;
}}
QPushButton:checked, QPushButton:hover{{
background-color:{active};
}}
QPushButton:hover{{
font-style:italic;
}}""".format(
active=active,
inactive=inactive
))

View file

@ -8,7 +8,7 @@ from PyQt5.QtGui import QBrush, QColor
from PyQt5.QtWidgets import QWidget, QVBoxLayout
from manuskript import exporter
from manuskript.functions import lightBlue
from manuskript.functions import lightBlue, printObjects
from manuskript.ui.exporters.exporter_ui import Ui_exporter
from manuskript.ui.exporters.exportersManager import exportersManager
@ -44,48 +44,76 @@ class exporterDialog(QWidget, Ui_exporter):
self.cmbExporters.currentIndexChanged.connect(self.updateUi)
self.cmbExporters.setCurrentIndex(1)
print(exporter.basic.basicFormat.concatenate(mw.mdlOutline.rootItem))
self.btnPreview.clicked.connect(self.preview)
def updateUi(self, index):
name = self.cmbExporters.currentText()
exporterName = self.cmbExporters.currentData()
E, F = self.getSelectedExporter()
E = exporter.getExporterByName(exporterName)
if not E:
self.setWidgetsEnabled(False)
return
F = E.getFormatByName(name)
if not F or not F.implemented:
if not E or not F or not F.implemented:
self.setWidgetsEnabled(False)
return
self.setWidgetsEnabled(True)
self.grpSettings.setVisible(F.requires["Settings"])
self.grpPreviewBefore.setVisible(F.requires["PreviewBefore"])
self.grpPreviewAfter.setVisible(F.requires["PreviewAfter"])
self.grpPreview.setVisible(F.requires["Preview"])
self.btnPreview.setVisible(F.requires["Preview"])
# if F.requires["Settings"]:
# self.settingsWidget = F.settingsWidget()
#
# if F.requires["PreviewBefore"]:
# self.previewBefore = F.previewWidgetBefore()
#
# if F.requires["PreviewAfter"]:
# self.previewAfter = F.previewWidgetAfter()
if F.requires["Settings"]:
self.settingsWidget = F.settingsWidget()
self.setGroupWidget(self.grpSettings, self.settingsWidget)
if F.requires["Preview"]:
self.previewWidget = F.previewWidget()
self.setGroupWidget(self.grpPreview, self.previewWidget)
def preview(self):
E, F = self.getSelectedExporter()
if not E or not F or not F.implemented:
return
F.preview(self.settingsWidget, self.previewWidget)
###################################################################################################################
# UI
###################################################################################################################
def getSelectedExporter(self):
name = self.cmbExporters.currentText()
exporterName = self.cmbExporters.currentData()
E = exporter.getExporterByName(exporterName)
if not E:
return None, None
F = E.getFormatByName(name)
if not F:
return E, F
return E, F
def setWidgetsEnabled(self, value):
"""One function to control them all. Enables or disables all groups."""
self.grpSettings.setEnabled(value)
self.grpPreviewBefore.setEnabled(value)
self.grpPreviewAfter.setEnabled(value)
self.grpPreview.setEnabled(value)
def openManager(self):
"""Open exporters manager dialog"""
self.dialog = exportersManager()
self.dialog.show()
r = self.dialog.geometry()
r2 = self.geometry()
self.dialog.move(r2.center() - r.center())
self.dialog.move(r2.center() - r.center())
def setGroupWidget(self, group, widget):
"""Sets the given widget as main widget for QGroupBox group."""
# Removes every items from given layout.
l = group.layout()
while l.count():
l.removeItem(l.itemAt(0))
l.addWidget(widget)
widget.setParent(group)

View file

@ -0,0 +1,211 @@
#!/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))

View file

@ -0,0 +1,533 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'manuskript/ui/exporters/exporterSettings_ui.ui'
#
# Created by: PyQt5 UI code generator 5.4.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_exporterSettings(object):
def setupUi(self, exporterSettings):
exporterSettings.setObjectName("exporterSettings")
exporterSettings.resize(511, 626)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(exporterSettings)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setSpacing(10)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.toolBox = QtWidgets.QToolBox(exporterSettings)
self.toolBox.setStyleSheet("QToolBox::tab{\n"
" background-color: #BBB;\n"
" padding: 2px;\n"
" border: none;\n"
"}\n"
"\n"
"QToolBox::tab:selected, QToolBox::tab:hover{\n"
" 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.verticalLayout_5.setObjectName("verticalLayout_5")
self.label = QtWidgets.QLabel(self.page)
self.label.setObjectName("label")
self.verticalLayout_5.addWidget(self.label)
self.tblContent = QtWidgets.QTableWidget(self.page)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tblContent.sizePolicy().hasHeightForWidth())
self.tblContent.setSizePolicy(sizePolicy)
self.tblContent.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tblContent.setAlternatingRowColors(True)
self.tblContent.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.tblContent.setObjectName("tblContent")
self.tblContent.setColumnCount(3)
self.tblContent.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tblContent.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tblContent.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tblContent.setHorizontalHeaderItem(2, item)
self.tblContent.horizontalHeader().setMinimumSectionSize(75)
self.tblContent.verticalHeader().setVisible(False)
self.verticalLayout_5.addWidget(self.tblContent)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
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.setObjectName("chkContentMore")
self.horizontalLayout_8.addWidget(self.chkContentMore)
self.verticalLayout_5.addLayout(self.horizontalLayout_8)
self.grpContentFilters = collapsibleGroupBox2(self.page)
self.grpContentFilters.setCheckable(True)
self.grpContentFilters.setObjectName("grpContentFilters")
self.formLayout_2 = QtWidgets.QFormLayout(self.grpContentFilters)
self.formLayout_2.setRowWrapPolicy(QtWidgets.QFormLayout.WrapLongRows)
self.formLayout_2.setLabelAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.formLayout_2.setObjectName("formLayout_2")
self.label_2 = QtWidgets.QLabel(self.grpContentFilters)
self.label_2.setObjectName("label_2")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.label_2)
self.chkContentIgnoreCompile = QtWidgets.QCheckBox(self.grpContentFilters)
self.chkContentIgnoreCompile.setObjectName("chkContentIgnoreCompile")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.chkContentIgnoreCompile)
self.chkContentParent = QtWidgets.QCheckBox(self.grpContentFilters)
self.chkContentParent.setObjectName("chkContentParent")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.chkContentParent)
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")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.chkContentLabels)
self.chkContentStatus = QtWidgets.QCheckBox(self.grpContentFilters)
self.chkContentStatus.setObjectName("chkContentStatus")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.chkContentStatus)
self.lstContentLabels = QtWidgets.QListWidget(self.grpContentFilters)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lstContentLabels.sizePolicy().hasHeightForWidth())
self.lstContentLabels.setSizePolicy(sizePolicy)
self.lstContentLabels.setObjectName("lstContentLabels")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.lstContentLabels)
self.lstContentStatus = QtWidgets.QListWidget(self.grpContentFilters)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lstContentStatus.sizePolicy().hasHeightForWidth())
self.lstContentStatus.setSizePolicy(sizePolicy)
self.lstContentStatus.setObjectName("lstContentStatus")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.lstContentStatus)
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.verticalLayout_8.setObjectName("verticalLayout_8")
self.label_3 = QtWidgets.QLabel(self.page_3)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.verticalLayout_8.addWidget(self.label_3)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem2)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.pushButton_4 = QtWidgets.QPushButton(self.page_3)
self.pushButton_4.setEnabled(True)
self.pushButton_4.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_4.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_4.setText("")
icon = QtGui.QIcon.fromTheme("folder")
self.pushButton_4.setIcon(icon)
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.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.setEnabled(True)
self.pushButton.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton.setText("")
icon = QtGui.QIcon.fromTheme("folder")
self.pushButton.setIcon(icon)
self.pushButton.setFlat(True)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
self.horizontalLayout.addLayout(self.verticalLayout)
self.cmbSepFF = QtWidgets.QComboBox(self.page_3)
self.cmbSepFF.setObjectName("cmbSepFF")
self.cmbSepFF.addItem("")
self.cmbSepFF.addItem("")
self.horizontalLayout.addWidget(self.cmbSepFF)
self.txtSepFF = QtWidgets.QLineEdit(self.page_3)
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)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.verticalLayout_8.addWidget(self.label_4)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem3 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
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.setEnabled(True)
self.pushButton_5.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_5.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_5.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.pushButton_5.setIcon(icon)
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.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.setEnabled(True)
self.pushButton_6.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_6.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_6.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.pushButton_6.setIcon(icon)
self.pushButton_6.setFlat(True)
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.setObjectName("cmbSepTT")
self.cmbSepTT.addItem("")
self.cmbSepTT.addItem("")
self.horizontalLayout_2.addWidget(self.cmbSepTT)
self.txtSepTT = QtWidgets.QLineEdit(self.page_3)
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)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.verticalLayout_8.addWidget(self.label_6)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
spacerItem4 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
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.setEnabled(True)
self.pushButton_7.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_7.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_7.setText("")
icon = QtGui.QIcon.fromTheme("folder")
self.pushButton_7.setIcon(icon)
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.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.setEnabled(True)
self.pushButton_8.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_8.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_8.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.pushButton_8.setIcon(icon)
self.pushButton_8.setFlat(True)
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.setObjectName("cmbSepFT")
self.cmbSepFT.addItem("")
self.cmbSepFT.addItem("")
self.horizontalLayout_3.addWidget(self.cmbSepFT)
self.txtSepFT = QtWidgets.QLineEdit(self.page_3)
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)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.verticalLayout_8.addWidget(self.label_5)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
spacerItem5 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
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.setEnabled(True)
self.pushButton_9.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_9.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_9.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
self.pushButton_9.setIcon(icon)
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.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.setEnabled(True)
self.pushButton_10.setMinimumSize(QtCore.QSize(16, 16))
self.pushButton_10.setMaximumSize(QtCore.QSize(16, 16))
self.pushButton_10.setText("")
icon = QtGui.QIcon.fromTheme("folder")
self.pushButton_10.setIcon(icon)
self.pushButton_10.setFlat(True)
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.setObjectName("cmbSepTF")
self.cmbSepTF.addItem("")
self.cmbSepTF.addItem("")
self.horizontalLayout_4.addWidget(self.cmbSepTF)
self.txtSepTF = QtWidgets.QLineEdit(self.page_3)
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.verticalLayout_6.setObjectName("verticalLayout_6")
self.grpTransTypo = collapsibleGroupBox2(self.page_2)
self.grpTransTypo.setStyleSheet("")
self.grpTransTypo.setObjectName("grpTransTypo")
self.formLayout = QtWidgets.QFormLayout(self.grpTransTypo)
self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.FieldsStayAtSizeHint)
self.formLayout.setRowWrapPolicy(QtWidgets.QFormLayout.WrapLongRows)
self.formLayout.setLabelAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.formLayout.setObjectName("formLayout")
self.chkTransEllipse = QtWidgets.QCheckBox(self.grpTransTypo)
self.chkTransEllipse.setObjectName("chkTransEllipse")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.chkTransEllipse)
self.chkTransDash = QtWidgets.QCheckBox(self.grpTransTypo)
self.chkTransDash.setObjectName("chkTransDash")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.chkTransDash)
self.chkTransDoubleQuotes = QtWidgets.QCheckBox(self.grpTransTypo)
self.chkTransDoubleQuotes.setObjectName("chkTransDoubleQuotes")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.chkTransDoubleQuotes)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setSpacing(12)
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.cmbTransDoubleQuotes = QtWidgets.QComboBox(self.grpTransTypo)
self.cmbTransDoubleQuotes.setFrame(False)
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)
sizePolicy.setHeightForWidth(self.txtTransDoubleQuotesA.sizePolicy().hasHeightForWidth())
self.txtTransDoubleQuotesA.setSizePolicy(sizePolicy)
self.txtTransDoubleQuotesA.setMinimumSize(QtCore.QSize(40, 0))
self.txtTransDoubleQuotesA.setMaximumSize(QtCore.QSize(40, 16777215))
self.txtTransDoubleQuotesA.setStyleSheet("border-radius: 6px;")
self.txtTransDoubleQuotesA.setFrame(False)
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)
sizePolicy.setHeightForWidth(self.txtTransDoubleQuotesB.sizePolicy().hasHeightForWidth())
self.txtTransDoubleQuotesB.setSizePolicy(sizePolicy)
self.txtTransDoubleQuotesB.setMinimumSize(QtCore.QSize(40, 0))
self.txtTransDoubleQuotesB.setMaximumSize(QtCore.QSize(40, 16777215))
self.txtTransDoubleQuotesB.setStyleSheet("border-radius: 6px;")
self.txtTransDoubleQuotesB.setFrame(False)
self.txtTransDoubleQuotesB.setObjectName("txtTransDoubleQuotesB")
self.horizontalLayout_5.addWidget(self.txtTransDoubleQuotesB)
spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_5.addItem(spacerItem7)
self.formLayout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_5)
self.chkTransSingleQuote = QtWidgets.QCheckBox(self.grpTransTypo)
self.chkTransSingleQuote.setObjectName("chkTransSingleQuote")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.chkTransSingleQuote)
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setSpacing(12)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.cmbTransSingleQuote = QtWidgets.QComboBox(self.grpTransTypo)
self.cmbTransSingleQuote.setFrame(False)
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)
sizePolicy.setHeightForWidth(self.txtTransSingleQuoteA.sizePolicy().hasHeightForWidth())
self.txtTransSingleQuoteA.setSizePolicy(sizePolicy)
self.txtTransSingleQuoteA.setMinimumSize(QtCore.QSize(40, 0))
self.txtTransSingleQuoteA.setMaximumSize(QtCore.QSize(40, 16777215))
self.txtTransSingleQuoteA.setStyleSheet("border-radius: 6px;")
self.txtTransSingleQuoteA.setFrame(False)
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)
sizePolicy.setHeightForWidth(self.txtTransSingleQuoteB.sizePolicy().hasHeightForWidth())
self.txtTransSingleQuoteB.setSizePolicy(sizePolicy)
self.txtTransSingleQuoteB.setMinimumSize(QtCore.QSize(40, 0))
self.txtTransSingleQuoteB.setMaximumSize(QtCore.QSize(40, 16777215))
self.txtTransSingleQuoteB.setStyleSheet("border-radius: 6px;")
self.txtTransSingleQuoteB.setFrame(False)
self.txtTransSingleQuoteB.setObjectName("txtTransSingleQuoteB")
self.horizontalLayout_6.addWidget(self.txtTransSingleQuoteB)
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem8)
self.formLayout.setLayout(3, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_6)
self.chkTransSpaces = QtWidgets.QCheckBox(self.grpTransTypo)
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.setObjectName("grpTransCustom")
self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.grpTransCustom)
self.verticalLayout_9.setObjectName("verticalLayout_9")
self.tblReplacements = QtWidgets.QTableWidget(self.grpTransCustom)
self.tblReplacements.setAlternatingRowColors(True)
self.tblReplacements.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.tblReplacements.setObjectName("tblReplacements")
self.tblReplacements.setColumnCount(4)
self.tblReplacements.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tblReplacements.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tblReplacements.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tblReplacements.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tblReplacements.setHorizontalHeaderItem(3, item)
self.verticalLayout_9.addWidget(self.tblReplacements)
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setSpacing(0)
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_7.addItem(spacerItem9)
self.btnTransAdd = QtWidgets.QPushButton(self.grpTransCustom)
self.btnTransAdd.setText("")
icon = QtGui.QIcon.fromTheme("list-add")
self.btnTransAdd.setIcon(icon)
self.btnTransAdd.setFlat(True)
self.btnTransAdd.setObjectName("btnTransAdd")
self.horizontalLayout_7.addWidget(self.btnTransAdd)
self.btnTransRemove = QtWidgets.QPushButton(self.grpTransCustom)
self.btnTransRemove.setText("")
icon = QtGui.QIcon.fromTheme("list-remove")
self.btnTransRemove.setIcon(icon)
self.btnTransRemove.setFlat(True)
self.btnTransRemove.setObjectName("btnTransRemove")
self.horizontalLayout_7.addWidget(self.btnTransRemove)
self.verticalLayout_9.addLayout(self.horizontalLayout_7)
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.verticalLayout_2.addWidget(self.toolBox)
self.retranslateUi(exporterSettings)
self.toolBox.setCurrentIndex(0)
self.toolBox.layout().setSpacing(0)
QtCore.QMetaObject.connectSlotsByName(exporterSettings)
def retranslateUi(self, exporterSettings):
_translate = QtCore.QCoreApplication.translate
exporterSettings.setWindowTitle(_translate("exporterSettings", "Form"))
self.label.setText(_translate("exporterSettings", "Decide here what will be included in the final export."))
item = self.tblContent.horizontalHeaderItem(0)
item.setText(_translate("exporterSettings", "Type"))
item = self.tblContent.horizontalHeaderItem(1)
item.setText(_translate("exporterSettings", "Title"))
item = self.tblContent.horizontalHeaderItem(2)
item.setText(_translate("exporterSettings", "Text"))
self.chkContentMore.setText(_translate("exporterSettings", "I need more granularity"))
self.grpContentFilters.setTitle(_translate("exporterSettings", "Fi&lters"))
self.label_2.setText(_translate("exporterSettings", "Filters what items will be included in the final export."))
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.label_3.setText(_translate("exporterSettings", "Between folders:"))
self.cmbSepFF.setItemText(0, _translate("exporterSettings", "Empty line"))
self.cmbSepFF.setItemText(1, _translate("exporterSettings", "Custom"))
self.txtSepFF.setText(_translate("exporterSettings", "\\n"))
self.label_4.setText(_translate("exporterSettings", "Between texts:"))
self.cmbSepTT.setItemText(0, _translate("exporterSettings", "Empty line"))
self.cmbSepTT.setItemText(1, _translate("exporterSettings", "Custom"))
self.txtSepTT.setText(_translate("exporterSettings", "\\n"))
self.label_6.setText(_translate("exporterSettings", "Between folder and text:"))
self.cmbSepFT.setItemText(0, _translate("exporterSettings", "Empty line"))
self.cmbSepFT.setItemText(1, _translate("exporterSettings", "Custom"))
self.txtSepFT.setText(_translate("exporterSettings", "\\n"))
self.label_5.setText(_translate("exporterSettings", "Between text and folder:"))
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.grpTransTypo.setTitle(_translate("exporterSettings", "Typographic replacements:"))
self.chkTransEllipse.setText(_translate("exporterSettings", "Replace ... with …"))
self.chkTransDash.setText(_translate("exporterSettings", "Replace --- with —"))
self.chkTransDoubleQuotes.setText(_translate("exporterSettings", "Replace double quotes (\") with:"))
self.lblTransDoubleQuotes.setText(_translate("exporterSettings", ""))
self.chkTransSingleQuote.setText(_translate("exporterSettings", "Replace single quotes (\') with:"))
self.lblTransSingleQuote.setText(_translate("exporterSettings", ""))
self.chkTransSpaces.setText(_translate("exporterSettings", "Remove multiple spaces"))
self.grpTransCustom.setTitle(_translate("exporterSettings", "Custom replacements:"))
item = self.tblReplacements.horizontalHeaderItem(0)
item.setText(_translate("exporterSettings", "Enabled"))
item = self.tblReplacements.horizontalHeaderItem(1)
item.setText(_translate("exporterSettings", "Replace"))
item = self.tblReplacements.horizontalHeaderItem(2)
item.setText(_translate("exporterSettings", "With"))
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"))
from manuskript.ui.collapsibleGroupBox2 import collapsibleGroupBox2

File diff suppressed because it is too large Load diff

View file

@ -11,24 +11,28 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_exporter(object):
def setupUi(self, exporter):
exporter.setObjectName("exporter")
exporter.resize(792, 502)
exporter.resize(933, 642)
self.verticalLayout = QtWidgets.QVBoxLayout(exporter)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.label = QtWidgets.QLabel(exporter)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.cmbExporters = QtWidgets.QComboBox(exporter)
self.cmbExporters.setObjectName("cmbExporters")
self.horizontalLayout.addWidget(self.cmbExporters)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem1)
self.btnManageExporters = QtWidgets.QPushButton(exporter)
self.btnManageExporters.setObjectName("btnManageExporters")
self.horizontalLayout.addWidget(self.btnManageExporters)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.btnPreview = QtWidgets.QPushButton(exporter)
self.btnPreview.setObjectName("btnPreview")
self.horizontalLayout.addWidget(self.btnPreview)
self.pushButton_2 = QtWidgets.QPushButton(exporter)
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout.addWidget(self.pushButton_2)
self.verticalLayout.addLayout(self.horizontalLayout)
self.splitter = QtWidgets.QSplitter(exporter)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
@ -36,30 +40,15 @@ class Ui_exporter(object):
self.grpSettings = QtWidgets.QGroupBox(self.splitter)
self.grpSettings.setObjectName("grpSettings")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.grpSettings)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setSpacing(0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.settings = QtWidgets.QWidget(self.grpSettings)
self.settings.setObjectName("settings")
self.verticalLayout_3.addWidget(self.settings)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.pushButton = QtWidgets.QPushButton(self.grpSettings)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_2.addWidget(self.pushButton)
self.verticalLayout_3.addLayout(self.horizontalLayout_2)
self.grpPreviewBefore = QtWidgets.QGroupBox(self.splitter)
self.grpPreviewBefore.setObjectName("grpPreviewBefore")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.grpPreviewBefore)
self.grpPreview = QtWidgets.QGroupBox(self.splitter)
self.grpPreview.setObjectName("grpPreview")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.grpPreview)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.previewBefore = QtWidgets.QWidget(self.grpPreviewBefore)
self.previewBefore.setObjectName("previewBefore")
self.verticalLayout_2.addWidget(self.previewBefore)
self.grpPreviewAfter = QtWidgets.QGroupBox(self.splitter)
self.grpPreviewAfter.setObjectName("grpPreviewAfter")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.grpPreviewAfter)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.previewAfter = QtWidgets.QWidget(self.grpPreviewAfter)
self.previewAfter.setObjectName("previewAfter")
self.verticalLayout_4.addWidget(self.previewAfter)
self.verticalLayout.addWidget(self.splitter)
self.retranslateUi(exporter)
@ -70,8 +59,8 @@ class Ui_exporter(object):
exporter.setWindowTitle(_translate("exporter", "Export"))
self.label.setText(_translate("exporter", "Export to:"))
self.btnManageExporters.setText(_translate("exporter", "Manage exporters"))
self.btnPreview.setText(_translate("exporter", "Preview"))
self.pushButton_2.setText(_translate("exporter", "Export"))
self.grpSettings.setTitle(_translate("exporter", "Settings"))
self.pushButton.setText(_translate("exporter", "Show Intermediate Preview"))
self.grpPreviewBefore.setTitle(_translate("exporter", "Preview"))
self.grpPreviewAfter.setTitle(_translate("exporter", "Preview"))
self.grpPreview.setTitle(_translate("exporter", "Preview"))

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>792</width>
<height>502</height>
<width>933</width>
<height>642</height>
</rect>
</property>
<property name="windowTitle">
@ -16,6 +16,23 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Export to:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbExporters"/>
</item>
<item>
<widget class="QPushButton" name="btnManageExporters">
<property name="text">
<string>Manage exporters</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
@ -30,32 +47,16 @@
</spacer>
</item>
<item>
<widget class="QLabel" name="label">
<widget class="QPushButton" name="btnPreview">
<property name="text">
<string>Export to:</string>
<string>Preview</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbExporters"/>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btnManageExporters">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>Manage exporters</string>
<string>Export</string>
</property>
</widget>
</item>
@ -71,40 +72,43 @@
<string>Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QWidget" name="settings" native="true"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Show Intermediate Preview</string>
</property>
</widget>
</item>
</layout>
</item>
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
<widget class="QGroupBox" name="grpPreviewBefore">
<widget class="QGroupBox" name="grpPreview">
<property name="title">
<string>Preview</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QWidget" name="previewBefore" native="true"/>
</item>
</layout>
</widget>
<widget class="QGroupBox" name="grpPreviewAfter">
<property name="title">
<string>Preview</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QWidget" name="previewAfter" native="true"/>
</item>
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</widget>

View file

@ -99,9 +99,7 @@ class Ui_ExportersManager(object):
font.setWeight(75)
self.grpPath.setFont(font)
self.grpPath.setObjectName("grpPath")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.grpPath)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.formLayout = QtWidgets.QFormLayout()
self.formLayout = QtWidgets.QFormLayout(self.grpPath)
self.formLayout.setObjectName("formLayout")
self.label_2 = QtWidgets.QLabel(self.grpPath)
self.label_2.setObjectName("label_2")
@ -126,16 +124,9 @@ class Ui_ExportersManager(object):
self.lblVersion.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.lblVersion.setObjectName("lblVersion")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lblVersion)
self.verticalLayout_2.addLayout(self.formLayout)
self.lblHelpText = QtWidgets.QLabel(self.grpPath)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.lblHelpText.setFont(font)
self.lblHelpText.setWordWrap(True)
self.lblHelpText.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.lblHelpText.setObjectName("lblHelpText")
self.verticalLayout_2.addWidget(self.lblHelpText)
self.label = QtWidgets.QLabel(self.grpPath)
self.label.setObjectName("label")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.txtPath = QtWidgets.QLineEdit(self.grpPath)
@ -152,7 +143,16 @@ class Ui_ExportersManager(object):
self.btnSetPath.setFont(font)
self.btnSetPath.setObjectName("btnSetPath")
self.horizontalLayout_2.addWidget(self.btnSetPath)
self.verticalLayout_2.addLayout(self.horizontalLayout_2)
self.formLayout.setLayout(3, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
self.lblHelpText = QtWidgets.QLabel(self.grpPath)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.lblHelpText.setFont(font)
self.lblHelpText.setWordWrap(True)
self.lblHelpText.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.lblHelpText.setObjectName("lblHelpText")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.SpanningRole, self.lblHelpText)
self.verticalLayout_7.addWidget(self.grpPath)
self.horizontalLayout_8.addWidget(self.stack)
@ -169,9 +169,10 @@ class Ui_ExportersManager(object):
self.lstExporters.setSortingEnabled(__sortingEnabled)
self.grpDescription.setTitle(_translate("ExportersManager", "Description"))
self.grpExportTo.setTitle(_translate("ExportersManager", "Offers export to"))
self.grpPath.setTitle(_translate("ExportersManager", "Path"))
self.grpPath.setTitle(_translate("ExportersManager", "Status"))
self.label_2.setText(_translate("ExportersManager", "Status:"))
self.lblVersionName.setText(_translate("ExportersManager", "Version:"))
self.lblHelpText.setText(_translate("ExportersManager", "{HelpText}"))
self.label.setText(_translate("ExportersManager", "Path:"))
self.btnSetPath.setText(_translate("ExportersManager", "..."))
self.lblHelpText.setText(_translate("ExportersManager", "{HelpText}"))

View file

@ -183,58 +183,18 @@ text-align:center;</string>
</font>
</property>
<property name="title">
<string>Path</string>
<string>Status</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Status:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="lblStatus">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string notr="true">{ExporterStatus}</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblVersionName">
<property name="text">
<string>Version:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="lblVersion">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string notr="true">{ExporterVersion}</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Status:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblHelpText">
<item row="0" column="1">
<widget class="QLabel" name="lblStatus">
<property name="font">
<font>
<weight>50</weight>
@ -242,17 +202,41 @@ text-align:center;</string>
</font>
</property>
<property name="text">
<string>{HelpText}</string>
<string notr="true">{ExporterStatus}</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblVersionName">
<property name="text">
<string>Version:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="lblVersion">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string notr="true">{ExporterVersion}</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Path:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="txtPath">
@ -279,6 +263,25 @@ text-align:center;</string>
</item>
</layout>
</item>
<item row="4" column="0" colspan="2">
<widget class="QLabel" name="lblHelpText">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>{HelpText}</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>