Open, save, recents, all that misery

This commit is contained in:
Olivier Keshavjee 2015-06-23 00:19:40 +02:00
parent 1585906911
commit 8971183d8e
8 changed files with 2401 additions and 1806 deletions

3
.gitignore vendored
View file

@ -2,7 +2,6 @@ snowflake*
*.pyc
*.lprof
.directory
test_project.zip
test_project_
*.msk
Notes.t2t
*.nja

View file

@ -24,6 +24,7 @@ def saveFilesToZip(files, zipname):
def loadFilesFromZip(zipname):
"""Returns the content of zipfile as a dict of filename:content."""
print(zipname)
zf = zipfile.ZipFile(zipname)
files = {}
for f in zf.namelist():

View file

@ -6,7 +6,7 @@ from qt import *
_version = "0.1"
import faulthandler
#faulthandler.enable()
faulthandler.enable()
def run():

View file

@ -28,12 +28,19 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.currentProject = None
self.readSettings()
# UI
self.setupMoreUi()
# Welcome
self.treeWelcome.expandAll()
self.loadRecents()
self.btnWelcomeOpen.clicked.connect(self.openFile)
self.actOpen.triggered.connect(self.openFile)
# Word count
self.mprWordCount = QSignalMapper(self)
for t, i in [
@ -107,8 +114,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.mdlOutline = outlineModel()
# Main Menu
self.actSave.setEnabled(False)
self.actSaveAs.setEnabled(False)
for i in [self.actSave, self.actSaveAs, self.actCloseProject,
self.menuEdit, self.menuMode, self.menuView, self.menuTools,
self.menuHelp]:
i.setEnabled(False)
self.actSave.triggered.connect(self.saveDatas)
self.actLabels.triggered.connect(self.settingsLabel)
self.actStatus.triggered.connect(self.settingsStatus)
@ -137,7 +148,33 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.lstDebugLabels.setModel(self.mdlLabels)
self.lstDebugStatus.setModel(self.mdlStatus)
self.loadProject(os.path.join(appPath(), "test_project.zip"))
#self.loadProject(os.path.join(appPath(), "test_project.zip"))
###############################################################################
# WELCOME
###############################################################################
def loadRecents(self):
sttgns = QSettings()
if sttgns.contains("recentFiles"):
lst = sttgns.value("recentFiles")
self.menuRecents.clear()
for f in lst:
name = os.path.split(f)[1]
a = QAction(name, self)
a.setData(f)
a.triggered.connect(self.loadRecentFile)
self.menuRecents.addAction(a)
self.btnWelcomeRecent.setMenu(self.menuRecents)
def openFile(self):
filename = QFileDialog.getOpenFileName(self,
self.tr("Open project"),
".",
self.tr("Manuskript project (*.msk)"))[0]
if filename:
self.loadProject(filename)
###############################################################################
# SUMMARY
@ -350,9 +387,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self._updatingSubPlot = False
###############################################################################
# GENERAL
# GENERAL AKA UNSORTED
###############################################################################
def loadRecentFile(self):
act = self.sender()
self.loadProject(act.data())
def loadProject(self, project):
self.currentProject = project
@ -401,8 +442,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.saveTimerNoChanges.stop()
# UI
self.actSave.setEnabled(True)
self.actSaveAs.setEnabled(True)
for i in [self.actSave, self.actSaveAs, self.actCloseProject,
self.menuEdit, self.menuMode, self.menuView, self.menuTools,
self.menuHelp]:
i.setEnabled(True)
#FIXME: set Window's name: project name
# Stuff
@ -411,6 +454,22 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Adds header labels
self.mdlPersos.setHorizontalHeaderLabels([i.name for i in Perso])
# Save recent files in settings
sttgns = QSettings()
if sttgns.contains("recentFiles"):
recentFiles = sttgns.value("recentFiles")
else:
recentFiles = []
while project in recentFiles:
recentFiles.remove(project)
recentFiles.insert(0, project)
recentFiles = recentFiles[:10]
sttgns.setValue("recentFiles", recentFiles)
# Show main Window
self.stack.setCurrentIndex(1)
def makeConnections(self):
# Flat datas (Summary and general infos)
@ -575,17 +634,17 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def readSettings(self):
# Load State and geometry
settings = QSettings(qApp.organizationName(), qApp.applicationName())
if settings.contains("geometry"):
self.restoreGeometry(settings.value("geometry"))
if settings.contains("windowState"):
self.restoreState(settings.value("windowState"))
sttgns = QSettings(qApp.organizationName(), qApp.applicationName())
if sttgns.contains("geometry"):
self.restoreGeometry(sttgns.value("geometry"))
if sttgns.contains("windowState"):
self.restoreState(sttgns.value("windowState"))
def closeEvent(self, event):
# Save State and geometry
stgs = QSettings(qApp.organizationName(), qApp.applicationName())
stgs.setValue("geometry", self.saveGeometry())
stgs.setValue("windowState", self.saveState())
sttgns = QSettings(qApp.organizationName(), qApp.applicationName())
sttgns.setValue("geometry", self.saveGeometry())
sttgns.setValue("windowState", self.saveState())
# Specific settings to save before quitting
settings.lastTab = self.tabMain.currentIndex()
@ -596,7 +655,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
settings.lastIndex = self.mdlOutline.pathToIndex(sel)
# Save data from models
if settings.saveOnQuit:
if self.currentProject and settings.saveOnQuit:
self.saveDatas()
# closeEvent

View file

@ -11,13 +11,141 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1103, 834)
MainWindow.resize(1089, 803)
MainWindow.setWindowTitle("Manuskript")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout_12 = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout_12.setContentsMargins(0, 6, 0, 0)
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
self.stack = QtWidgets.QStackedWidget(self.centralwidget)
self.stack.setObjectName("stack")
self.page_5 = QtWidgets.QWidget()
self.page_5.setObjectName("page_5")
self.verticalLayout_33 = QtWidgets.QVBoxLayout(self.page_5)
self.verticalLayout_33.setObjectName("verticalLayout_33")
spacerItem = QtWidgets.QSpacerItem(20, 210, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_33.addItem(spacerItem)
self.horizontalLayout_35 = QtWidgets.QHBoxLayout()
self.horizontalLayout_35.setObjectName("horizontalLayout_35")
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_35.addItem(spacerItem1)
self.frame_2 = QtWidgets.QFrame(self.page_5)
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_2.setObjectName("frame_2")
self.verticalLayout_32 = QtWidgets.QVBoxLayout(self.frame_2)
self.verticalLayout_32.setObjectName("verticalLayout_32")
self.horizontalLayout_23 = QtWidgets.QHBoxLayout()
self.horizontalLayout_23.setObjectName("horizontalLayout_23")
self.treeWelcome = QtWidgets.QTreeWidget(self.frame_2)
self.treeWelcome.setRootIsDecorated(False)
self.treeWelcome.setObjectName("treeWelcome")
item_0 = QtWidgets.QTreeWidgetItem(self.treeWelcome)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
item_0.setFont(0, font)
brush = QtGui.QBrush(QtGui.QColor(230, 230, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
item_0.setBackground(0, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 128))
brush.setStyle(QtCore.Qt.NoBrush)
item_0.setForeground(0, brush)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_1 = QtWidgets.QTreeWidgetItem(item_0)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWelcome)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
item_0.setFont(0, font)
brush = QtGui.QBrush(QtGui.QColor(230, 230, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
item_0.setBackground(0, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 128))
brush.setStyle(QtCore.Qt.NoBrush)
item_0.setForeground(0, brush)
self.treeWelcome.header().setVisible(False)
self.horizontalLayout_23.addWidget(self.treeWelcome)
self.verticalLayout_31 = QtWidgets.QVBoxLayout()
self.verticalLayout_31.setObjectName("verticalLayout_31")
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_31.addItem(spacerItem2)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.spinBox = QtWidgets.QSpinBox(self.frame_2)
self.spinBox.setMaximum(999)
self.spinBox.setProperty("value", 20)
self.spinBox.setObjectName("spinBox")
self.gridLayout.addWidget(self.spinBox, 0, 1, 1, 1)
self.lineEdit_4 = QtWidgets.QLineEdit(self.frame_2)
self.lineEdit_4.setObjectName("lineEdit_4")
self.gridLayout.addWidget(self.lineEdit_4, 0, 2, 1, 1)
self.label_32 = QtWidgets.QLabel(self.frame_2)
self.label_32.setObjectName("label_32")
self.gridLayout.addWidget(self.label_32, 1, 0, 1, 1)
self.spinBox_2 = QtWidgets.QSpinBox(self.frame_2)
self.spinBox_2.setMaximum(999)
self.spinBox_2.setProperty("value", 5)
self.spinBox_2.setObjectName("spinBox_2")
self.gridLayout.addWidget(self.spinBox_2, 1, 1, 1, 1)
self.lineEdit_6 = QtWidgets.QLineEdit(self.frame_2)
self.lineEdit_6.setObjectName("lineEdit_6")
self.gridLayout.addWidget(self.lineEdit_6, 1, 2, 1, 1)
self.label_33 = QtWidgets.QLabel(self.frame_2)
self.label_33.setObjectName("label_33")
self.gridLayout.addWidget(self.label_33, 2, 0, 1, 1)
self.spinBox_3 = QtWidgets.QSpinBox(self.frame_2)
self.spinBox_3.setMaximum(99999)
self.spinBox_3.setProperty("value", 500)
self.spinBox_3.setObjectName("spinBox_3")
self.gridLayout.addWidget(self.spinBox_3, 2, 1, 1, 1)
self.label_30 = QtWidgets.QLabel(self.frame_2)
self.label_30.setObjectName("label_30")
self.gridLayout.addWidget(self.label_30, 2, 2, 1, 1)
self.verticalLayout_31.addLayout(self.gridLayout)
self.horizontalLayout_23.addLayout(self.verticalLayout_31)
self.verticalLayout_32.addLayout(self.horizontalLayout_23)
self.line_4 = QtWidgets.QFrame(self.frame_2)
self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_4.setObjectName("line_4")
self.verticalLayout_32.addWidget(self.line_4)
self.checkBox = QtWidgets.QCheckBox(self.frame_2)
self.checkBox.setChecked(True)
self.checkBox.setObjectName("checkBox")
self.verticalLayout_32.addWidget(self.checkBox)
self.horizontalLayout_20 = QtWidgets.QHBoxLayout()
self.horizontalLayout_20.setObjectName("horizontalLayout_20")
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_20.addItem(spacerItem3)
self.btnWelcomeOpen = QtWidgets.QPushButton(self.frame_2)
self.btnWelcomeOpen.setObjectName("btnWelcomeOpen")
self.horizontalLayout_20.addWidget(self.btnWelcomeOpen)
self.btnWelcomeRecent = QtWidgets.QPushButton(self.frame_2)
self.btnWelcomeRecent.setObjectName("btnWelcomeRecent")
self.horizontalLayout_20.addWidget(self.btnWelcomeRecent)
self.btnWelcomeCreate = QtWidgets.QPushButton(self.frame_2)
self.btnWelcomeCreate.setObjectName("btnWelcomeCreate")
self.horizontalLayout_20.addWidget(self.btnWelcomeCreate)
self.verticalLayout_32.addLayout(self.horizontalLayout_20)
self.horizontalLayout_35.addWidget(self.frame_2)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_35.addItem(spacerItem4)
self.verticalLayout_33.addLayout(self.horizontalLayout_35)
spacerItem5 = QtWidgets.QSpacerItem(20, 209, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_33.addItem(spacerItem5)
self.stack.addWidget(self.page_5)
self.page_4 = QtWidgets.QWidget()
self.page_4.setObjectName("page_4")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.page_4)
self.horizontalLayout_2.setSpacing(0)
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.tabMain = QtWidgets.QTabWidget(self.centralwidget)
self.tabMain = QtWidgets.QTabWidget(self.page_4)
self.tabMain.setDocumentMode(True)
self.tabMain.setObjectName("tabMain")
self.lytTabOverview = QtWidgets.QWidget()
@ -57,8 +185,8 @@ class Ui_MainWindow(object):
self.txtGeneralVolume = lineEditView(self.grpBookInfos)
self.txtGeneralVolume.setObjectName("txtGeneralVolume")
self.horizontalLayout_25.addWidget(self.txtGeneralVolume)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_25.addItem(spacerItem)
spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_25.addItem(spacerItem6)
self.formLayout_3.setLayout(3, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_25)
self.label_14 = QtWidgets.QLabel(self.grpBookInfos)
self.label_14.setObjectName("label_14")
@ -146,8 +274,8 @@ class Ui_MainWindow(object):
self.lblSummaryWCSentance.setText("")
self.lblSummaryWCSentance.setObjectName("lblSummaryWCSentance")
self.verticalLayout_5.addWidget(self.lblSummaryWCSentance)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_5.addItem(spacerItem1)
spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_5.addItem(spacerItem7)
self.tabSummary.addWidget(self.tabSummaryPage1)
self.tabSummaryPage2 = QtWidgets.QWidget()
self.tabSummaryPage2.setObjectName("tabSummaryPage2")
@ -167,8 +295,8 @@ class Ui_MainWindow(object):
self.txtSummarySentance_2.setReadOnly(True)
self.txtSummarySentance_2.setObjectName("txtSummarySentance_2")
self.verticalLayout.addWidget(self.txtSummarySentance_2)
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem2)
spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem8)
self.horizontalLayout_4.addLayout(self.verticalLayout)
self.line = QtWidgets.QFrame(self.tabSummaryPage2)
self.line.setFrameShape(QtWidgets.QFrame.VLine)
@ -187,8 +315,8 @@ class Ui_MainWindow(object):
self.lblSummaryWCPara.setText("")
self.lblSummaryWCPara.setObjectName("lblSummaryWCPara")
self.verticalLayout_2.addWidget(self.lblSummaryWCPara)
spacerItem3 = QtWidgets.QSpacerItem(20, 264, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem3)
spacerItem9 = QtWidgets.QSpacerItem(20, 264, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem9)
self.horizontalLayout_4.addLayout(self.verticalLayout_2)
self.tabSummary.addWidget(self.tabSummaryPage2)
self.tabSummaryPage3 = QtWidgets.QWidget()
@ -204,8 +332,8 @@ class Ui_MainWindow(object):
self.txtSummaryPara_2.setReadOnly(True)
self.txtSummaryPara_2.setObjectName("txtSummaryPara_2")
self.verticalLayout_6.addWidget(self.txtSummaryPara_2)
spacerItem4 = QtWidgets.QSpacerItem(20, 264, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_6.addItem(spacerItem4)
spacerItem10 = QtWidgets.QSpacerItem(20, 264, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_6.addItem(spacerItem10)
self.horizontalLayout_7.addLayout(self.verticalLayout_6)
self.line_2 = QtWidgets.QFrame(self.tabSummaryPage3)
self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
@ -262,8 +390,8 @@ class Ui_MainWindow(object):
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.tabSummary)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_5.addItem(spacerItem5)
spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_5.addItem(spacerItem11)
self.btnStepThree = QtWidgets.QPushButton(self.lytTabSummary)
icon = QtGui.QIcon.fromTheme("go-next")
self.btnStepThree.setIcon(icon)
@ -380,8 +508,8 @@ class Ui_MainWindow(object):
self.formLayout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummaryPara)
self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
self.horizontalLayout_21.setObjectName("horizontalLayout_21")
spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_21.addItem(spacerItem6)
spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_21.addItem(spacerItem12)
self.btnStepFour = QtWidgets.QPushButton(self.infos)
icon = QtGui.QIcon.fromTheme("go-next")
self.btnStepFour.setIcon(icon)
@ -416,8 +544,8 @@ class Ui_MainWindow(object):
self.verticalLayout_17.addWidget(self.txtPersoSummaryFull)
self.horizontalLayout_22 = QtWidgets.QHBoxLayout()
self.horizontalLayout_22.setObjectName("horizontalLayout_22")
spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_22.addItem(spacerItem7)
spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_22.addItem(spacerItem13)
self.btnStepSix = QtWidgets.QPushButton(self.tab_11)
icon = QtGui.QIcon.fromTheme("go-next")
self.btnStepSix.setIcon(icon)
@ -466,8 +594,8 @@ class Ui_MainWindow(object):
self.lineEdit = QtWidgets.QLineEdit(self.tab_12)
self.lineEdit.setObjectName("lineEdit")
self.horizontalLayout_9.addWidget(self.lineEdit)
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_9.addItem(spacerItem8)
spacerItem14 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_9.addItem(spacerItem14)
self.btnStepEight = QtWidgets.QPushButton(self.tab_12)
icon = QtGui.QIcon.fromTheme("go-next")
self.btnStepEight.setIcon(icon)
@ -560,8 +688,8 @@ class Ui_MainWindow(object):
self.verticalLayout_12.addWidget(self.lstPlotPerso)
self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
self.horizontalLayout_16.setObjectName("horizontalLayout_16")
spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_16.addItem(spacerItem9)
spacerItem15 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_16.addItem(spacerItem15)
self.btnAddPlotPerso = QtWidgets.QPushButton(self.infos_2)
self.btnAddPlotPerso.setText("")
icon = QtGui.QIcon.fromTheme("list-add")
@ -622,8 +750,8 @@ class Ui_MainWindow(object):
self.btnRmSubPlot.setIcon(icon)
self.btnRmSubPlot.setObjectName("btnRmSubPlot")
self.horizontalLayout_17.addWidget(self.btnRmSubPlot)
spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_17.addItem(spacerItem10)
spacerItem16 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_17.addItem(spacerItem16)
self.btnShowSubPlotSummary = QtWidgets.QPushButton(self.tab_15)
self.btnShowSubPlotSummary.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
@ -734,8 +862,8 @@ class Ui_MainWindow(object):
self.btnPlanRemoveItem.setIcon(icon)
self.btnPlanRemoveItem.setObjectName("btnPlanRemoveItem")
self.horizontalLayout_18.addWidget(self.btnPlanRemoveItem)
spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_18.addItem(spacerItem11)
spacerItem17 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_18.addItem(spacerItem17)
self.btnPlanShowDetails = QtWidgets.QPushButton(self.layoutWidget)
self.btnPlanShowDetails.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
@ -782,8 +910,8 @@ class Ui_MainWindow(object):
self.btnRedacRemoveItem.setIcon(icon)
self.btnRedacRemoveItem.setObjectName("btnRedacRemoveItem")
self.horizontalLayout_31.addWidget(self.btnRedacRemoveItem)
spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_31.addItem(spacerItem12)
spacerItem18 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_31.addItem(spacerItem18)
self.verticalLayout_30.addLayout(self.horizontalLayout_31)
self.layoutWidget1 = QtWidgets.QWidget(self.splitterRedac)
self.layoutWidget1.setObjectName("layoutWidget1")
@ -830,8 +958,8 @@ class Ui_MainWindow(object):
self.sldCorkSizeFactor.setOrientation(QtCore.Qt.Horizontal)
self.sldCorkSizeFactor.setObjectName("sldCorkSizeFactor")
self.horizontalLayout_19.addWidget(self.sldCorkSizeFactor)
spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_19.addItem(spacerItem13)
spacerItem19 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_19.addItem(spacerItem19)
self.lblRedacWC = QtWidgets.QLabel(self.layoutWidget1)
self.lblRedacWC.setMinimumSize(QtCore.QSize(10, 0))
self.lblRedacWC.setText("")
@ -976,12 +1104,16 @@ class Ui_MainWindow(object):
self.verticalLayout_29.addWidget(self.tabWidget)
self.tabMain.addTab(self.lytTabDebug, "")
self.horizontalLayout_2.addWidget(self.tabMain)
self.stack.addWidget(self.page_4)
self.horizontalLayout_12.addWidget(self.stack)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1103, 31))
self.menubar.setGeometry(QtCore.QRect(0, 0, 1089, 31))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
self.menuRecents = QtWidgets.QMenu(self.menuFile)
self.menuRecents.setObjectName("menuRecents")
self.menuMode = QtWidgets.QMenu(self.menubar)
self.menuMode.setObjectName("menuMode")
self.menuHelp = QtWidgets.QMenu(self.menubar)
@ -1000,10 +1132,6 @@ class Ui_MainWindow(object):
icon = QtGui.QIcon.fromTheme("document-open")
self.actOpen.setIcon(icon)
self.actOpen.setObjectName("actOpen")
self.actRecents = QtWidgets.QAction(MainWindow)
icon = QtGui.QIcon.fromTheme("document-open-recent")
self.actRecents.setIcon(icon)
self.actRecents.setObjectName("actRecents")
self.actSave = QtWidgets.QAction(MainWindow)
icon = QtGui.QIcon.fromTheme("document-save")
self.actSave.setIcon(icon)
@ -1016,10 +1144,6 @@ class Ui_MainWindow(object):
icon = QtGui.QIcon.fromTheme("application-exit")
self.actQuit.setIcon(icon)
self.actQuit.setObjectName("actQuit")
self.actNew = QtWidgets.QAction(MainWindow)
icon = QtGui.QIcon.fromTheme("document-new")
self.actNew.setIcon(icon)
self.actNew.setObjectName("actNew")
self.actShowHelp = QtWidgets.QAction(MainWindow)
self.actShowHelp.setCheckable(True)
self.actShowHelp.setChecked(True)
@ -1056,11 +1180,15 @@ class Ui_MainWindow(object):
icon = QtGui.QIcon.fromTheme("preferences-system")
self.actSettings.setIcon(icon)
self.actSettings.setObjectName("actSettings")
self.menuFile.addAction(self.actNew)
self.actCloseProject = QtWidgets.QAction(MainWindow)
icon = QtGui.QIcon.fromTheme("window-close")
self.actCloseProject.setIcon(icon)
self.actCloseProject.setObjectName("actCloseProject")
self.menuFile.addAction(self.actOpen)
self.menuFile.addAction(self.actRecents)
self.menuFile.addAction(self.menuRecents.menuAction())
self.menuFile.addAction(self.actSave)
self.menuFile.addAction(self.actSaveAs)
self.menuFile.addAction(self.actCloseProject)
self.menuFile.addSeparator()
self.menuFile.addAction(self.actQuit)
self.menuMode.addAction(self.actModeNorma)
@ -1079,6 +1207,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuHelp.menuAction())
self.retranslateUi(MainWindow)
self.stack.setCurrentIndex(0)
self.tabMain.setCurrentIndex(3)
self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0)
@ -1099,6 +1228,26 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
self.treeWelcome.headerItem().setText(0, _translate("MainWindow", "1"))
__sortingEnabled = self.treeWelcome.isSortingEnabled()
self.treeWelcome.setSortingEnabled(False)
self.treeWelcome.topLevelItem(0).setText(0, _translate("MainWindow", "Templates"))
self.treeWelcome.topLevelItem(0).child(0).setText(0, _translate("MainWindow", "Empty"))
self.treeWelcome.topLevelItem(0).child(1).setText(0, _translate("MainWindow", "Novel"))
self.treeWelcome.topLevelItem(0).child(2).setText(0, _translate("MainWindow", "Novella"))
self.treeWelcome.topLevelItem(0).child(3).setText(0, _translate("MainWindow", "Short Story"))
self.treeWelcome.topLevelItem(0).child(4).setText(0, _translate("MainWindow", "Research paper"))
self.treeWelcome.topLevelItem(1).setText(0, _translate("MainWindow", "Demo projects"))
self.treeWelcome.setSortingEnabled(__sortingEnabled)
self.lineEdit_4.setText(_translate("MainWindow", "Chapter"))
self.label_32.setText(_translate("MainWindow", "of"))
self.lineEdit_6.setText(_translate("MainWindow", "Scene"))
self.label_33.setText(_translate("MainWindow", "of"))
self.label_30.setText(_translate("MainWindow", "words each."))
self.checkBox.setText(_translate("MainWindow", "Next time, automatically open last project"))
self.btnWelcomeOpen.setText(_translate("MainWindow", "Open..."))
self.btnWelcomeRecent.setText(_translate("MainWindow", "Recent"))
self.btnWelcomeCreate.setText(_translate("MainWindow", "Create"))
self.grpBookInfos.setTitle(_translate("MainWindow", "Book infos"))
self.label_10.setText(_translate("MainWindow", "Title"))
self.label_11.setText(_translate("MainWindow", "Subtitle"))
@ -1193,6 +1342,7 @@ class Ui_MainWindow(object):
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Labels"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabDebug), _translate("MainWindow", "Debug"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.menuRecents.setTitle(_translate("MainWindow", "Recents"))
self.menuMode.setTitle(_translate("MainWindow", "Mode"))
self.menuHelp.setTitle(_translate("MainWindow", "Help"))
self.menuTools.setTitle(_translate("MainWindow", "Tools"))
@ -1200,16 +1350,12 @@ class Ui_MainWindow(object):
self.menuView.setTitle(_translate("MainWindow", "View"))
self.actOpen.setText(_translate("MainWindow", "Open"))
self.actOpen.setShortcut(_translate("MainWindow", "Ctrl+O"))
self.actRecents.setText(_translate("MainWindow", "Recents"))
self.actRecents.setShortcut(_translate("MainWindow", "Ctrl+R"))
self.actSave.setText(_translate("MainWindow", "Save"))
self.actSave.setShortcut(_translate("MainWindow", "Ctrl+S"))
self.actSaveAs.setText(_translate("MainWindow", "Save as..."))
self.actSaveAs.setShortcut(_translate("MainWindow", "Ctrl+Shift+S"))
self.actQuit.setText(_translate("MainWindow", "Quit"))
self.actQuit.setShortcut(_translate("MainWindow", "Ctrl+Q"))
self.actNew.setText(_translate("MainWindow", "New"))
self.actNew.setShortcut(_translate("MainWindow", "Ctrl+N"))
self.actShowHelp.setText(_translate("MainWindow", "Show help texts"))
self.actShowHelp.setShortcut(_translate("MainWindow", "Ctrl+Shift+B"))
self.actSpellcheck.setText(_translate("MainWindow", "Spellcheck"))
@ -1224,13 +1370,14 @@ class Ui_MainWindow(object):
self.actViewOutline.setText(_translate("MainWindow", "Outline"))
self.actSettings.setText(_translate("MainWindow", "Settings"))
self.actSettings.setShortcut(_translate("MainWindow", "F8"))
self.actCloseProject.setText(_translate("MainWindow", "Close project"))
from ui.views.plotTreeView import plotTreeView
from ui.views.treeView import treeView
from ui.views.outlineView import outlineView
from ui.views.basicItemView import basicItemView
from ui.views.lineEditView import lineEditView
from ui.views.treeView import treeView
from ui.editors.editorWidget import editorWidget
from ui.views.outlineView import outlineView
from ui.views.textEditView import textEditView
from ui.sldImportance import sldImportance
from ui.views.metadataView import metadataView
from ui.editors.editorWidget import editorWidget
from ui.views.plotTreeView import plotTreeView
from ui.views.textEditView import textEditView

View file

@ -6,15 +6,361 @@
<rect>
<x>0</x>
<y>0</y>
<width>1103</width>
<height>834</height>
<width>1089</width>
<height>803</height>
</rect>
</property>
<property name="windowTitle">
<string notr="true">Manuskript</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout_12">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="stack">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_5">
<layout class="QVBoxLayout" name="verticalLayout_33">
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>210</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_35">
<item>
<spacer name="horizontalSpacer_13">
<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="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_32">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_23">
<item>
<widget class="QTreeWidget" name="treeWelcome">
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>1</string>
</property>
</column>
<item>
<property name="text">
<string>Templates</string>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="textAlignment">
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
</property>
<property name="background">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>230</red>
<green>230</green>
<blue>255</blue>
</color>
</brush>
</property>
<property name="foreground">
<brush brushstyle="NoBrush">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>128</blue>
</color>
</brush>
</property>
<item>
<property name="text">
<string>Empty</string>
</property>
</item>
<item>
<property name="text">
<string>Novel</string>
</property>
</item>
<item>
<property name="text">
<string>Novella</string>
</property>
</item>
<item>
<property name="text">
<string>Short Story</string>
</property>
</item>
<item>
<property name="text">
<string>Research paper</string>
</property>
</item>
</item>
<item>
<property name="text">
<string>Demo projects</string>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="textAlignment">
<set>AlignHCenter|AlignVCenter|AlignCenter</set>
</property>
<property name="background">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>230</red>
<green>230</green>
<blue>255</blue>
</color>
</brush>
</property>
<property name="foreground">
<brush brushstyle="NoBrush">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>128</blue>
</color>
</brush>
</property>
</item>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_31">
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox">
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>20</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="lineEdit_4">
<property name="text">
<string>Chapter</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_32">
<property name="text">
<string>of</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox_2">
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="lineEdit_6">
<property name="text">
<string>Scene</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_33">
<property name="text">
<string>of</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_3">
<property name="maximum">
<number>99999</number>
</property>
<property name="value">
<number>500</number>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="label_30">
<property name="text">
<string>words each.</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Next time, automatically open last project</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_20">
<item>
<spacer name="horizontalSpacer_11">
<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="btnWelcomeOpen">
<property name="text">
<string>Open...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnWelcomeRecent">
<property name="text">
<string>Recent</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnWelcomeCreate">
<property name="text">
<string>Create</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_14">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>209</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_4">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QTabWidget" name="tabMain">
<property name="currentIndex">
@ -1836,12 +2182,16 @@
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1103</width>
<width>1089</width>
<height>31</height>
</rect>
</property>
@ -1849,11 +2199,16 @@
<property name="title">
<string>File</string>
</property>
<addaction name="actNew"/>
<widget class="QMenu" name="menuRecents">
<property name="title">
<string>Recents</string>
</property>
</widget>
<addaction name="actOpen"/>
<addaction name="actRecents"/>
<addaction name="menuRecents"/>
<addaction name="actSave"/>
<addaction name="actSaveAs"/>
<addaction name="actCloseProject"/>
<addaction name="separator"/>
<addaction name="actQuit"/>
</widget>
@ -1910,18 +2265,6 @@
<string>Ctrl+O</string>
</property>
</action>
<action name="actRecents">
<property name="icon">
<iconset theme="document-open-recent">
<normaloff>../../../../../../../.designer/backup</normaloff>../../../../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>Recents</string>
</property>
<property name="shortcut">
<string>Ctrl+R</string>
</property>
</action>
<action name="actSave">
<property name="icon">
<iconset theme="document-save">
@ -1958,18 +2301,6 @@
<string>Ctrl+Q</string>
</property>
</action>
<action name="actNew">
<property name="icon">
<iconset theme="document-new">
<normaloff>../../../../../../../.designer/backup</normaloff>../../../../../../../.designer/backup</iconset>
</property>
<property name="text">
<string>New</string>
</property>
<property name="shortcut">
<string>Ctrl+N</string>
</property>
</action>
<action name="actShowHelp">
<property name="checkable">
<bool>true</bool>
@ -2070,6 +2401,14 @@
<string>F8</string>
</property>
</action>
<action name="actCloseProject">
<property name="icon">
<iconset theme="window-close"/>
</property>
<property name="text">
<string>Close project</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View file

@ -74,6 +74,23 @@ class Ui_Settings(object):
self.cmbStyle.setObjectName("cmbStyle")
self.verticalLayout_5.addWidget(self.cmbStyle)
self.verticalLayout_7.addWidget(self.groupBox_2)
self.groupBox_10 = QtWidgets.QGroupBox(self.stackedWidgetPage1)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.groupBox_10.setFont(font)
self.groupBox_10.setObjectName("groupBox_10")
self.verticalLayout_18 = QtWidgets.QVBoxLayout(self.groupBox_10)
self.verticalLayout_18.setObjectName("verticalLayout_18")
self.chkAutoLoad = QtWidgets.QCheckBox(self.groupBox_10)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.chkAutoLoad.setFont(font)
self.chkAutoLoad.setChecked(True)
self.chkAutoLoad.setObjectName("chkAutoLoad")
self.verticalLayout_18.addWidget(self.chkAutoLoad)
self.verticalLayout_7.addWidget(self.groupBox_10)
self.groupBox = QtWidgets.QGroupBox(self.stackedWidgetPage1)
font = QtGui.QFont()
font.setBold(True)
@ -1177,6 +1194,8 @@ class Ui_Settings(object):
self.lblTitleGeneral.setText(_translate("Settings", "General settings"))
self.groupBox_2.setTitle(_translate("Settings", "Application style"))
self.label_2.setText(_translate("Settings", "You might need to restart manuskript in order to avoid some visual issues."))
self.groupBox_10.setTitle(_translate("Settings", "Loading"))
self.chkAutoLoad.setText(_translate("Settings", "Automatically load last project on startup"))
self.groupBox.setTitle(_translate("Settings", "Saving"))
self.chkAutoSave.setText(_translate("Settings", "Automatically save every"))
self.label.setText(_translate("Settings", "minutes."))

View file

@ -119,6 +119,37 @@ text-align:center;</string>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_10">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Loading</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_18">
<item>
<widget class="QCheckBox" name="chkAutoLoad">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Automatically load last project on startup</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="font">