From 644d0c1c7b8392866c427d72339f4e392584dd7d Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Wed, 30 Mar 2016 09:13:40 +0200 Subject: [PATCH] Welcome windows: adds templates for fiction and non-fiction --- manuskript/settings.py | 2 +- manuskript/ui/mainWindow.py | 2 +- manuskript/ui/mainWindow.ui | 2 +- manuskript/ui/welcome.py | 54 +++++++++++++++++++++++-------------- manuskript/ui/welcome_ui.py | 4 +-- manuskript/ui/welcome_ui.ui | 4 +-- 6 files changed, 41 insertions(+), 27 deletions(-) diff --git a/manuskript/settings.py b/manuskript/settings.py index c0cc2ed..bc64816 100644 --- a/manuskript/settings.py +++ b/manuskript/settings.py @@ -86,7 +86,7 @@ frequencyAnalyzer = { "phraseMax": 5 } -viewMode = "fiction" +viewMode = "fiction" # simple, fiction saveToZip = True def save(filename=None, protocol=None): diff --git a/manuskript/ui/mainWindow.py b/manuskript/ui/mainWindow.py index 1b2a614..0958012 100644 --- a/manuskript/ui/mainWindow.py +++ b/manuskript/ui/mainWindow.py @@ -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")) diff --git a/manuskript/ui/mainWindow.ui b/manuskript/ui/mainWindow.ui index f673905..111161a 100644 --- a/manuskript/ui/mainWindow.ui +++ b/manuskript/ui/mainWindow.ui @@ -2291,7 +2291,7 @@ QListView::item:hover { true - &Snowflake + S&nowflake diff --git a/manuskript/ui/welcome.py b/manuskript/ui/welcome.py index 86da882..ae8739b 100644 --- a/manuskript/ui/welcome.py +++ b/manuskript/ui/welcome.py @@ -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]) diff --git a/manuskript/ui/welcome_ui.py b/manuskript/ui/welcome_ui.py index 927730d..f89ca22 100644 --- a/manuskript/ui/welcome_ui.py +++ b/manuskript/ui/welcome_ui.py @@ -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) diff --git a/manuskript/ui/welcome_ui.ui b/manuskript/ui/welcome_ui.ui index 0a5cf2e..5b1c73d 100644 --- a/manuskript/ui/welcome_ui.ui +++ b/manuskript/ui/welcome_ui.ui @@ -6,8 +6,8 @@ 0 0 - 705 - 422 + 728 + 459