mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-10 23:14:33 +12:00
Welcome windows: adds templates for fiction and non-fiction
This commit is contained in:
parent
b676d126ba
commit
644d0c1c7b
|
@ -86,7 +86,7 @@ frequencyAnalyzer = {
|
|||
"phraseMax": 5
|
||||
}
|
||||
|
||||
viewMode = "fiction"
|
||||
viewMode = "fiction" # simple, fiction
|
||||
saveToZip = True
|
||||
|
||||
def save(filename=None, protocol=None):
|
||||
|
|
|
@ -1294,7 +1294,7 @@ class Ui_MainWindow(object):
|
|||
self.actViewTree.setText(_translate("MainWindow", "Tree"))
|
||||
self.actModeSimple.setText(_translate("MainWindow", "&Simple"))
|
||||
self.actModeFiction.setText(_translate("MainWindow", "&Fiction"))
|
||||
self.actModeSnowflake.setText(_translate("MainWindow", "&Snowflake"))
|
||||
self.actModeSnowflake.setText(_translate("MainWindow", "S&nowflake"))
|
||||
self.actViewCork.setText(_translate("MainWindow", "Index cards"))
|
||||
self.actViewOutline.setText(_translate("MainWindow", "Outline"))
|
||||
self.actSettings.setText(_translate("MainWindow", "S&ettings"))
|
||||
|
|
|
@ -2291,7 +2291,7 @@ QListView::item:hover {
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Snowflake</string>
|
||||
<string>S&nowflake</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actViewCork">
|
||||
|
|
|
@ -164,32 +164,33 @@ class welcome(QWidget, Ui_welcome):
|
|||
|
||||
def templates(self):
|
||||
return [
|
||||
(self.tr("Empty"), []),
|
||||
(self.tr("Empty fiction"), [], "Fiction"),
|
||||
(self.tr("Novel"), [
|
||||
(20, self.tr("Chapter")),
|
||||
(5, self.tr("Scene")),
|
||||
(500, None) # A line with None is word count
|
||||
]),
|
||||
], "Fiction"),
|
||||
(self.tr("Novella"), [
|
||||
(10, self.tr("Chapter")),
|
||||
(5, self.tr("Scene")),
|
||||
(500, None)
|
||||
]),
|
||||
], "Fiction"),
|
||||
(self.tr("Short Story"), [
|
||||
(10, self.tr("Scene")),
|
||||
(1000, None)
|
||||
]),
|
||||
], "Fiction"),
|
||||
(self.tr("Trilogy"), [
|
||||
(3, self.tr("Book")),
|
||||
(3, self.tr("Section")),
|
||||
(10, self.tr("Chapter")),
|
||||
(5, self.tr("Scene")),
|
||||
(500, None)
|
||||
]),
|
||||
], "Fiction"),
|
||||
(self.tr("Empty non-fiction"), [], "Non-fiction"),
|
||||
(self.tr("Research paper"), [
|
||||
(3, self.tr("Section")),
|
||||
(1000, None)
|
||||
])
|
||||
], "Non-fiction")
|
||||
]
|
||||
|
||||
@classmethod
|
||||
|
@ -204,13 +205,17 @@ class welcome(QWidget, Ui_welcome):
|
|||
def changeTemplate(self, item, column):
|
||||
template = [i for i in self.templates() if i[0] == item.text(0)]
|
||||
self.btnCreate.setText(self.btnCreateText)
|
||||
|
||||
# Selected item is a template
|
||||
if len(template):
|
||||
self.template = template[0][1]
|
||||
self.template = template[0]
|
||||
self.updateTemplate()
|
||||
|
||||
# Selected item is a sample project
|
||||
elif item.data(0, Qt.UserRole):
|
||||
name = item.data(0, Qt.UserRole)
|
||||
# Clear templates
|
||||
self.template = self.templates()[0][1]
|
||||
self.template = self.templates()[0]
|
||||
self.updateTemplate()
|
||||
# Change button text
|
||||
self.btnCreate.setText("Open {}".format(name))
|
||||
|
@ -235,7 +240,7 @@ class welcome(QWidget, Ui_welcome):
|
|||
|
||||
k = 0
|
||||
hasWC = False
|
||||
for d in self.template:
|
||||
for d in self.template[1]:
|
||||
spin = QSpinBox(self)
|
||||
spin.setRange(0, 999999)
|
||||
spin.setValue(d[0])
|
||||
|
@ -264,29 +269,29 @@ class welcome(QWidget, Ui_welcome):
|
|||
self.lytTemplate.addWidget(txt, k, 2)
|
||||
k += 1
|
||||
|
||||
self.btnAddWC.setEnabled(not hasWC and len(self.template) > 0)
|
||||
self.btnAddWC.setEnabled(not hasWC and len(self.template[1]) > 0)
|
||||
self.btnAddLevel.setEnabled(True)
|
||||
self.lblTotal.setVisible(hasWC)
|
||||
self.updateWordCount()
|
||||
|
||||
def templateAddLevel(self):
|
||||
if len(self.template) > 0 and \
|
||||
self.template[len(self.template) - 1][1] == None:
|
||||
if len(self.template[1]) > 0 and \
|
||||
self.template[1][len(self.template[1]) - 1][1] == None:
|
||||
# has word cound, so insert before
|
||||
self.template.insert(len(self.template) - 1, (10, self.tr("Text")))
|
||||
self.template[1].insert(len(self.template[1]) - 1, (10, self.tr("Text")))
|
||||
else:
|
||||
# No word count, so insert at end
|
||||
self.template.append((10, self.tr("Something")))
|
||||
self.template[1].append((10, self.tr("Something")))
|
||||
self.updateTemplate()
|
||||
|
||||
def templateAddWordCount(self):
|
||||
self.template.append((500, None))
|
||||
self.template[1].append((500, None))
|
||||
self.updateTemplate()
|
||||
|
||||
def deleteTemplateRow(self):
|
||||
btn = self.sender()
|
||||
row = btn.property("deleteRow")
|
||||
self.template.pop(row)
|
||||
self.template[1].pop(row)
|
||||
self.updateTemplate()
|
||||
|
||||
def updateWordCount(self):
|
||||
|
@ -319,11 +324,18 @@ class welcome(QWidget, Ui_welcome):
|
|||
self.tree.setIndentation(0)
|
||||
|
||||
# Add templates
|
||||
item = self.addTopLevelItem(self.tr("Templates"))
|
||||
templates = self.templates()
|
||||
item = self.addTopLevelItem(self.tr("Fiction"))
|
||||
templates = [i for i in self.templates() if i[2] == "Fiction"]
|
||||
for t in templates:
|
||||
sub = QTreeWidgetItem(item, [t[0]])
|
||||
|
||||
# Add templates: non-fiction
|
||||
item = self.addTopLevelItem(self.tr("Non-fiction"))
|
||||
templates = [i for i in self.templates() if i[2] == "Non-fiction"]
|
||||
for t in templates:
|
||||
sub = QTreeWidgetItem(item, [t[0]])
|
||||
|
||||
|
||||
# Add Demo project
|
||||
item = self.addTopLevelItem(self.tr("Demo projects"))
|
||||
dir = QDir(appPath("sample-projects"))
|
||||
|
@ -342,6 +354,8 @@ class welcome(QWidget, Ui_welcome):
|
|||
|
||||
# Empty settings
|
||||
imp.reload(settings)
|
||||
t = [i for i in self.templates() if i[0] == self.template[0]]
|
||||
if t and t[0][2] == "Non-fiction": settings.viewMode = "simple"
|
||||
|
||||
# Données
|
||||
self.mw.mdlFlatData = QStandardItemModel(2, 8, self.mw)
|
||||
|
@ -419,5 +433,5 @@ class welcome(QWidget, Ui_welcome):
|
|||
# parent.appendChild(item)
|
||||
addElement(item, datas[1:])
|
||||
|
||||
if self.template:
|
||||
addElement(root, self.template)
|
||||
if self.template[1]:
|
||||
addElement(root, self.template[1])
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# Form implementation generated from reading ui file 'manuskript/ui/welcome_ui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.4.1
|
||||
# Created by: PyQt5 UI code generator 5.4.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
|
@ -11,7 +11,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
|||
class Ui_welcome(object):
|
||||
def setupUi(self, welcome):
|
||||
welcome.setObjectName("welcome")
|
||||
welcome.resize(705, 422)
|
||||
welcome.resize(728, 459)
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(welcome)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.frame_2 = QtWidgets.QFrame(welcome)
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>705</width>
|
||||
<height>422</height>
|
||||
<width>728</width>
|
||||
<height>459</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
|
Loading…
Reference in a new issue