diff --git a/TODO.t2t b/TODO.t2t
index 8a802de..73bcb8b 100644
--- a/TODO.t2t
+++ b/TODO.t2t
@@ -1,5 +1,8 @@
+Name:
+- Digiscript?
+
Features
- Coach (entrer le nombre de mot viser, se fixer des objectifs quotidiens / hebdomadaires (en temps, ou en mots, min ou max), faire des statistiques)
- Différents modes: simple (que le outliner / rédacteur), snowflake strict (cache les éléments tant que le précédent n'a pas été accompli), snowflake souple (tout est affiché mais permet de naviger, avec conseils)
diff --git a/makefile b/makefile
index d15ed54..afd549a 100644
--- a/makefile
+++ b/makefile
@@ -9,7 +9,7 @@ run: $(UIs)
python3 src/main.py
debug: $(UIs)
- gdb --args python src/main.py
+ gdb --args python3 src/main.py
lineprof:
kernprof -l -v src/main.py
diff --git a/src/functions.py b/src/functions.py
index 418b5be..17a2b17 100644
--- a/src/functions.py
+++ b/src/functions.py
@@ -22,7 +22,7 @@ def toFloat(text):
return 0.
def toString(text):
- if text == None:
+ if text in [None, "None"]:
return ""
else:
return str(text)
diff --git a/src/loadSave.py b/src/loadSave.py
index a0a18fe..ad35da2 100644
--- a/src/loadSave.py
+++ b/src/loadSave.py
@@ -1,15 +1,14 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
-
-
-
from qt import *
from functions import *
from lxml import etree as ET
def saveStandardItemModelXML(mdl, xml):
+
root = ET.Element("model")
+ root.attrib["version"] = qApp.applicationVersion()
# Header
header = ET.SubElement(root, "header")
@@ -47,7 +46,6 @@ def saveStandardItemModelXML(mdl, xml):
def loadStandardItemModelXML(mdl, xml):
-
print(qApp.tr("Loading {}... ").format(xml), end="")
try:
diff --git a/src/main.py b/src/main.py
index e5334b9..0a7f879 100644
--- a/src/main.py
+++ b/src/main.py
@@ -3,13 +3,15 @@
import sys
from qt import *
+_version = "0.1"
def run():
app = QApplication(sys.argv)
app.setOrganizationName("Theologeek")
app.setOrganizationDomain("www.theologeek.ch")
app.setApplicationName("snowFlaqe")
-
+ app.setApplicationVersion("0.1")
+
app.setStyle("Fusion")
### Translation process
diff --git a/src/mainWindow.py b/src/mainWindow.py
index 341cad6..1df6540 100644
--- a/src/mainWindow.py
+++ b/src/mainWindow.py
@@ -163,26 +163,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.treePlanOutline.setModelPersos(self.mdlPersos)
self.treePlanOutline.setModelLabels(self.mdlLabels)
self.treePlanOutline.setModelStatus(self.mdlStatus)
- self.viewRedacProperties.setModels(self.mdlOutline, self.mdlPersos, self.mdlLabels, self.mdlStatus)
+ self.redacMetadata.setModels(self.mdlOutline, self.mdlPersos, self.mdlLabels, self.mdlStatus)
+ self.outlineItemEditor.setModels(self.mdlOutline, self.mdlPersos, self.mdlLabels, self.mdlStatus)
self.treePlanOutline.setModel(self.mdlOutline)
- self.cmbPlanPOV.setModels(self.mdlPersos, self.mdlOutline)
self.redacEditor.setModel(self.mdlOutline)
- self.mprPlan = QDataWidgetMapper()
- self.mprPlan.setModel(self.mdlOutline)
- mapping = [
- (self.txtPlanSummarySentance, Outline.summarySentance.value),
- (self.txtPlanSummaryFull, Outline.summaryFull.value),
- (self.txtOutlineGoal, Outline.setGoal.value)
- ]
- for w, i in mapping:
- self.mprPlan.addMapping(w, i)
-
- self.treePlanOutline.selectionModel().currentChanged.connect(lambda idx: self.mprPlan.setRootIndex(idx.parent()))
- self.treePlanOutline.selectionModel().currentChanged.connect(self.mprPlan.setCurrentModelIndex)
- self.treePlanOutline.selectionModel().currentChanged.connect(self.cmbPlanPOV.setCurrentModelIndex)
- self.tabMain.currentChanged.connect(self.mprPlan.submit)
+ self.treePlanOutline.selectionModel().selectionChanged.connect(
+ lambda: self.outlineItemEditor.selectionChanged(self.treePlanOutline))
+ self.treePlanOutline.clicked.connect(
+ lambda: self.outlineItemEditor.selectionChanged(self.treePlanOutline))
self.treeRedacOutline.setSelectionModel(self.treePlanOutline.selectionModel())
@@ -193,30 +183,15 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.btnRedacRemoveItem.clicked.connect(self.outlineRemoveItems)
self.btnPlanRemoveItem.clicked.connect(self.outlineRemoveItems)
- self.mprOutline = QDataWidgetMapper()
- self.mprOutline.setModel(self.mdlOutline)
- mapping = [
- (self.txtRedacSummarySentance, Outline.summarySentance.value),
- (self.txtRedacSummaryFull, Outline.summaryFull.value),
- (self.txtRedacNotes, Outline.notes.value)
- ]
- for w, i in mapping:
- self.mprOutline.addMapping(w, i)
-
- self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.mprOutline.setRootIndex(idx.parent()))
- self.treeRedacOutline.selectionModel().currentChanged.connect(self.mprOutline.setCurrentModelIndex)
-
self.treeRedacOutline.selectionModel().selectionChanged.connect(
- lambda: self.viewRedacProperties.selectionChanged(self.treeRedacOutline))
+ lambda: self.redacMetadata.selectionChanged(self.treeRedacOutline))
self.treeRedacOutline.clicked.connect(
- lambda: self.viewRedacProperties.selectionChanged(self.treeRedacOutline))
+ lambda: self.redacMetadata.selectionChanged(self.treeRedacOutline))
#self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.setCurrentModelIndex)
self.treeRedacOutline.selectionModel().selectionChanged.connect(self.redacEditor.setView)
self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.txtRedacText.setCurrentModelIndex)
- self.tabMain.currentChanged.connect(self.mprOutline.submit)
-
self.treeRedacOutline.selectionModel().selectionChanged.connect(self.outlineSelectionChanged)
self.treeRedacOutline.selectionModel().selectionChanged.connect(self.outlineSelectionChanged)
self.treePlanOutline.selectionModel().selectionChanged.connect(self.outlineSelectionChanged)
@@ -264,7 +239,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
else:
hidden = False
-
self.btnRedacFolderText.setHidden(hidden)
self.btnRedacFolderCork.setHidden(hidden)
self.btnRedacFolderOutline.setHidden(hidden)
@@ -484,6 +458,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.menuTools.addMenu(self.menuDict)
self.actSpellcheck.toggled.connect(self.redacEditor.toggleSpellcheck)
+ self.actSpellcheck.toggled.connect(self.redacMetadata.toggleSpellcheck)
+ self.actSpellcheck.toggled.connect(self.outlineItemEditor.toggleSpellcheck)
self.dictChanged.connect(self.redacEditor.setDict)
diff --git a/src/ui/editors/editorWidget.py b/src/ui/editors/editorWidget.py
index 999274f..723937b 100644
--- a/src/ui/editors/editorWidget.py
+++ b/src/ui/editors/editorWidget.py
@@ -1,13 +1,10 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
-
-
-
from qt import *
from enums import *
from ui.editors.editorWidget_ui import *
-from ui.editors.customTextEdit import *
+from ui.views.textEditView import *
from functions import *
class editorWidget(QWidget, Ui_editorWidget_ui):
@@ -147,9 +144,9 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
self.corkView.setModel(self._model)
self.corkView.setRootIndex(index)
self.corkView.selectionModel().selectionChanged.connect(
- lambda: mainWindow().viewRedacProperties.selectionChanged(self.corkView))
+ lambda: mainWindow().redacMetadata.selectionChanged(self.corkView))
self.corkView.clicked.connect(
- lambda: mainWindow().viewRedacProperties.selectionChanged(self.corkView))
+ lambda: mainWindow().redacMetadata.selectionChanged(self.corkView))
elif item.isFolder() and self.folderView == "outline":
@@ -160,9 +157,9 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
self.outlineView.setModel(self._model)
self.outlineView.setRootIndex(index)
self.outlineView.selectionModel().selectionChanged.connect(
- lambda: mainWindow().viewRedacProperties.selectionChanged(self.outlineView))
+ lambda: mainWindow().redacMetadata.selectionChanged(self.outlineView))
self.outlineView.clicked.connect(
- lambda: mainWindow().viewRedacProperties.selectionChanged(self.outlineView))
+ lambda: mainWindow().redacMetadata.selectionChanged(self.outlineView))
else:
diff --git a/src/ui/editors/editorWidget_ui.py b/src/ui/editors/editorWidget_ui.py
index ba4030c..3ae3cc3 100644
--- a/src/ui/editors/editorWidget_ui.py
+++ b/src/ui/editors/editorWidget_ui.py
@@ -22,7 +22,7 @@ class Ui_editorWidget_ui(object):
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.scene)
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
- self.txtRedacText = customTextEdit(self.scene)
+ self.txtRedacText = textEditView(self.scene)
self.txtRedacText.setObjectName("txtRedacText")
self.horizontalLayout_2.addWidget(self.txtRedacText)
self.stack.addWidget(self.scene)
@@ -63,13 +63,13 @@ class Ui_editorWidget_ui(object):
self.verticalLayout_2.addWidget(self.stack)
self.retranslateUi(editorWidget_ui)
- self.stack.setCurrentIndex(2)
+ self.stack.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(editorWidget_ui)
def retranslateUi(self, editorWidget_ui):
_translate = QtCore.QCoreApplication.translate
editorWidget_ui.setWindowTitle(_translate("editorWidget_ui", "Form"))
-from ui.editors.customTextEdit import customTextEdit
+from ui.views.textEditView import textEditView
from ui.views.outlineView import outlineView
from ui.views.corkView import corkView
diff --git a/src/ui/editors/editorWidget_ui.ui b/src/ui/editors/editorWidget_ui.ui
index 92ed5fb..3ccda8c 100644
--- a/src/ui/editors/editorWidget_ui.ui
+++ b/src/ui/editors/editorWidget_ui.ui
@@ -20,7 +20,7 @@
-
- 2
+ 0
@@ -28,7 +28,7 @@
0
-
-
+
@@ -88,9 +88,9 @@
- customTextEdit
+ textEditView
QTextEdit
- ui.editors.customTextEdit.h
+
outlineView
diff --git a/src/ui/editors/t2tHighlighter.py b/src/ui/editors/t2tHighlighter.py
index 8ed7745..ac60faa 100644
--- a/src/ui/editors/t2tHighlighter.py
+++ b/src/ui/editors/t2tHighlighter.py
@@ -26,6 +26,7 @@ class t2tHighlighter (QSyntaxHighlighter):
# Stupid variable that fixes the loss of QTextBlockUserData.
self.thisDocument = editor.document()
+
self.style = t2tHighlighterStyle(self.editor, style)
self.inDocRules = []
diff --git a/src/ui/mainWindow.py b/src/ui/mainWindow.py
index 9e23229..54de993 100644
--- a/src/ui/mainWindow.py
+++ b/src/ui/mainWindow.py
@@ -33,19 +33,19 @@ class Ui_MainWindow(object):
self.label_10 = QtWidgets.QLabel(self.grpBookInfos)
self.label_10.setObjectName("label_10")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_10)
- self.txtGeneralTitle = QtWidgets.QLineEdit(self.grpBookInfos)
+ self.txtGeneralTitle = lineEditView(self.grpBookInfos)
self.txtGeneralTitle.setObjectName("txtGeneralTitle")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.txtGeneralTitle)
self.label_11 = QtWidgets.QLabel(self.grpBookInfos)
self.label_11.setObjectName("label_11")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_11)
- self.txtGeneralSubtitle = QtWidgets.QLineEdit(self.grpBookInfos)
+ self.txtGeneralSubtitle = lineEditView(self.grpBookInfos)
self.txtGeneralSubtitle.setObjectName("txtGeneralSubtitle")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.txtGeneralSubtitle)
self.label_12 = QtWidgets.QLabel(self.grpBookInfos)
self.label_12.setObjectName("label_12")
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_12)
- self.txtGeneralSerie = QtWidgets.QLineEdit(self.grpBookInfos)
+ self.txtGeneralSerie = lineEditView(self.grpBookInfos)
self.txtGeneralSerie.setObjectName("txtGeneralSerie")
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.txtGeneralSerie)
self.label_13 = QtWidgets.QLabel(self.grpBookInfos)
@@ -53,7 +53,7 @@ class Ui_MainWindow(object):
self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_13)
self.horizontalLayout_25 = QtWidgets.QHBoxLayout()
self.horizontalLayout_25.setObjectName("horizontalLayout_25")
- self.txtGeneralVolume = QtWidgets.QLineEdit(self.grpBookInfos)
+ 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)
@@ -62,13 +62,13 @@ class Ui_MainWindow(object):
self.label_14 = QtWidgets.QLabel(self.grpBookInfos)
self.label_14.setObjectName("label_14")
self.formLayout_3.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_14)
- self.txtGeneralGenre = QtWidgets.QLineEdit(self.grpBookInfos)
+ self.txtGeneralGenre = lineEditView(self.grpBookInfos)
self.txtGeneralGenre.setObjectName("txtGeneralGenre")
self.formLayout_3.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.txtGeneralGenre)
self.label_16 = QtWidgets.QLabel(self.grpBookInfos)
self.label_16.setObjectName("label_16")
self.formLayout_3.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.label_16)
- self.txtGeneralLicense = QtWidgets.QLineEdit(self.grpBookInfos)
+ self.txtGeneralLicense = lineEditView(self.grpBookInfos)
self.txtGeneralLicense.setObjectName("txtGeneralLicense")
self.formLayout_3.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.txtGeneralLicense)
self.horizontalLayout_26.addWidget(self.grpBookInfos)
@@ -80,13 +80,13 @@ class Ui_MainWindow(object):
self.label_15 = QtWidgets.QLabel(self.grpAuthor)
self.label_15.setObjectName("label_15")
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_15)
- self.txtGeneralAuthor = QtWidgets.QLineEdit(self.grpAuthor)
+ self.txtGeneralAuthor = lineEditView(self.grpAuthor)
self.txtGeneralAuthor.setObjectName("txtGeneralAuthor")
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.txtGeneralAuthor)
self.label_19 = QtWidgets.QLabel(self.grpAuthor)
self.label_19.setObjectName("label_19")
self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_19)
- self.txtGeneralEmail = QtWidgets.QLineEdit(self.grpAuthor)
+ self.txtGeneralEmail = lineEditView(self.grpAuthor)
self.txtGeneralEmail.setObjectName("txtGeneralEmail")
self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.txtGeneralEmail)
self.cmbStyle = QtWidgets.QComboBox(self.grpAuthor)
@@ -109,7 +109,7 @@ class Ui_MainWindow(object):
self.label = QtWidgets.QLabel(self.tab_14)
self.label.setObjectName("label")
self.verticalLayout_5.addWidget(self.label)
- self.txtSummarySentance = QtWidgets.QPlainTextEdit(self.tab_14)
+ self.txtSummarySentance = textEditView(self.tab_14)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -138,7 +138,7 @@ class Ui_MainWindow(object):
self.label_21 = QtWidgets.QLabel(self.tab_13)
self.label_21.setObjectName("label_21")
self.verticalLayout.addWidget(self.label_21)
- self.txtSummarySentance_2 = QtWidgets.QPlainTextEdit(self.tab_13)
+ self.txtSummarySentance_2 = textEditView(self.tab_13)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -160,7 +160,7 @@ class Ui_MainWindow(object):
self.label_2 = QtWidgets.QLabel(self.tab_13)
self.label_2.setObjectName("label_2")
self.verticalLayout_2.addWidget(self.label_2)
- self.txtSummaryPara = QtWidgets.QPlainTextEdit(self.tab_13)
+ self.txtSummaryPara = textEditView(self.tab_13)
self.txtSummaryPara.setObjectName("txtSummaryPara")
self.verticalLayout_2.addWidget(self.txtSummaryPara)
self.lblSummaryWCPara = QtWidgets.QLabel(self.tab_13)
@@ -185,7 +185,7 @@ class Ui_MainWindow(object):
self.label_22 = QtWidgets.QLabel(self.tabWidgetPage1)
self.label_22.setObjectName("label_22")
self.verticalLayout_6.addWidget(self.label_22)
- self.txtSummaryPara_2 = QtWidgets.QPlainTextEdit(self.tabWidgetPage1)
+ self.txtSummaryPara_2 = textEditView(self.tabWidgetPage1)
self.txtSummaryPara_2.setReadOnly(True)
self.txtSummaryPara_2.setObjectName("txtSummaryPara_2")
self.verticalLayout_6.addWidget(self.txtSummaryPara_2)
@@ -207,7 +207,7 @@ class Ui_MainWindow(object):
self.label_17 = QtWidgets.QLabel(self.tabWidgetPage1)
self.label_17.setObjectName("label_17")
self.verticalLayout_3.addWidget(self.label_17)
- self.txtSummaryPage = QtWidgets.QPlainTextEdit(self.tabWidgetPage1)
+ self.txtSummaryPage = textEditView(self.tabWidgetPage1)
self.txtSummaryPage.setObjectName("txtSummaryPage")
self.verticalLayout_3.addWidget(self.txtSummaryPage)
self.lblSummaryWCPage = QtWidgets.QLabel(self.tabWidgetPage1)
@@ -225,9 +225,8 @@ class Ui_MainWindow(object):
self.label_23 = QtWidgets.QLabel(self.tabWidgetPage2)
self.label_23.setObjectName("label_23")
self.verticalLayout_7.addWidget(self.label_23)
- self.txtSummaryPage_2 = QtWidgets.QPlainTextEdit(self.tabWidgetPage2)
+ self.txtSummaryPage_2 = textEditView(self.tabWidgetPage2)
self.txtSummaryPage_2.setReadOnly(True)
- self.txtSummaryPage_2.setPlainText("")
self.txtSummaryPage_2.setObjectName("txtSummaryPage_2")
self.verticalLayout_7.addWidget(self.txtSummaryPage_2)
self.btnStepSeven = QtWidgets.QPushButton(self.tabWidgetPage2)
@@ -246,7 +245,7 @@ class Ui_MainWindow(object):
self.label_20 = QtWidgets.QLabel(self.tabWidgetPage2)
self.label_20.setObjectName("label_20")
self.verticalLayout_4.addWidget(self.label_20)
- self.txtSummaryFull = QtWidgets.QPlainTextEdit(self.tabWidgetPage2)
+ self.txtSummaryFull = textEditView(self.tabWidgetPage2)
self.txtSummaryFull.setObjectName("txtSummaryFull")
self.verticalLayout_4.addWidget(self.txtSummaryFull)
self.lblSummaryWCFull = QtWidgets.QLabel(self.tabWidgetPage2)
@@ -649,8 +648,7 @@ class Ui_MainWindow(object):
self.page.setObjectName("page")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.page)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
- self.txtPlotSummaryPara = QtWidgets.QPlainTextEdit(self.page)
- self.txtPlotSummaryPara.setReadOnly(True)
+ self.txtPlotSummaryPara = textEditView(self.page)
self.txtPlotSummaryPara.setObjectName("txtPlotSummaryPara")
self.horizontalLayout_6.addWidget(self.txtPlotSummaryPara)
self.stkPlotSummary.addWidget(self.page)
@@ -658,8 +656,7 @@ class Ui_MainWindow(object):
self.page_2.setObjectName("page_2")
self.horizontalLayout_10 = QtWidgets.QHBoxLayout(self.page_2)
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
- self.txtPlotSummaryPage = QtWidgets.QPlainTextEdit(self.page_2)
- self.txtPlotSummaryPage.setReadOnly(True)
+ self.txtPlotSummaryPage = textEditView(self.page_2)
self.txtPlotSummaryPage.setObjectName("txtPlotSummaryPage")
self.horizontalLayout_10.addWidget(self.txtPlotSummaryPage)
self.stkPlotSummary.addWidget(self.page_2)
@@ -667,8 +664,7 @@ class Ui_MainWindow(object):
self.page_3.setObjectName("page_3")
self.horizontalLayout_13 = QtWidgets.QHBoxLayout(self.page_3)
self.horizontalLayout_13.setObjectName("horizontalLayout_13")
- self.txtPlotSummaryFull = QtWidgets.QPlainTextEdit(self.page_3)
- self.txtPlotSummaryFull.setReadOnly(True)
+ self.txtPlotSummaryFull = textEditView(self.page_3)
self.txtPlotSummaryFull.setObjectName("txtPlotSummaryFull")
self.horizontalLayout_13.addWidget(self.txtPlotSummaryFull)
self.stkPlotSummary.addWidget(self.page_3)
@@ -716,44 +712,9 @@ class Ui_MainWindow(object):
self.frame.setObjectName("frame")
self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.frame)
self.verticalLayout_13.setObjectName("verticalLayout_13")
- self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
- self.horizontalLayout_11.setObjectName("horizontalLayout_11")
- spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.horizontalLayout_11.addItem(spacerItem8)
- self.lblPlanPOV = QtWidgets.QLabel(self.frame)
- self.lblPlanPOV.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.lblPlanPOV.setObjectName("lblPlanPOV")
- self.horizontalLayout_11.addWidget(self.lblPlanPOV)
- self.cmbPlanPOV = cmbOutlinePersoChoser(self.frame)
- self.cmbPlanPOV.setFrame(False)
- self.cmbPlanPOV.setObjectName("cmbPlanPOV")
- self.horizontalLayout_11.addWidget(self.cmbPlanPOV)
- self.lblPlanGoal = QtWidgets.QLabel(self.frame)
- self.lblPlanGoal.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.lblPlanGoal.setObjectName("lblPlanGoal")
- self.horizontalLayout_11.addWidget(self.lblPlanGoal)
- self.txtOutlineGoal = QtWidgets.QLineEdit(self.frame)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.txtOutlineGoal.sizePolicy().hasHeightForWidth())
- self.txtOutlineGoal.setSizePolicy(sizePolicy)
- self.txtOutlineGoal.setAutoFillBackground(False)
- self.txtOutlineGoal.setStyleSheet("border-radius: 6px;")
- self.txtOutlineGoal.setFrame(False)
- self.txtOutlineGoal.setObjectName("txtOutlineGoal")
- self.horizontalLayout_11.addWidget(self.txtOutlineGoal)
- self.verticalLayout_13.addLayout(self.horizontalLayout_11)
- self.txtPlanSummarySentance = QtWidgets.QLineEdit(self.frame)
- self.txtPlanSummarySentance.setText("")
- self.txtPlanSummarySentance.setObjectName("txtPlanSummarySentance")
- self.verticalLayout_13.addWidget(self.txtPlanSummarySentance)
- self.label_9 = QtWidgets.QLabel(self.frame)
- self.label_9.setObjectName("label_9")
- self.verticalLayout_13.addWidget(self.label_9)
- self.txtPlanSummaryFull = QtWidgets.QPlainTextEdit(self.frame)
- self.txtPlanSummaryFull.setObjectName("txtPlanSummaryFull")
- self.verticalLayout_13.addWidget(self.txtPlanSummaryFull)
+ self.outlineItemEditor = basicItemView(self.frame)
+ self.outlineItemEditor.setObjectName("outlineItemEditor")
+ self.verticalLayout_13.addWidget(self.outlineItemEditor)
self.verticalLayout_14.addWidget(self.splitterOutlineV)
self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
self.horizontalLayout_18.setObjectName("horizontalLayout_18")
@@ -775,8 +736,8 @@ class Ui_MainWindow(object):
self.btnPlanRemoveItem.setIcon(icon)
self.btnPlanRemoveItem.setObjectName("btnPlanRemoveItem")
self.horizontalLayout_18.addWidget(self.btnPlanRemoveItem)
- spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.horizontalLayout_18.addItem(spacerItem9)
+ spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_18.addItem(spacerItem8)
self.btnPlanShowDetails = QtWidgets.QPushButton(self.layoutWidget)
self.btnPlanShowDetails.setText("")
icon = QtGui.QIcon.fromTheme("text-x-generic")
@@ -823,8 +784,8 @@ class Ui_MainWindow(object):
self.btnRedacRemoveItem.setIcon(icon)
self.btnRedacRemoveItem.setObjectName("btnRedacRemoveItem")
self.horizontalLayout_31.addWidget(self.btnRedacRemoveItem)
- spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.horizontalLayout_31.addItem(spacerItem10)
+ spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_31.addItem(spacerItem9)
self.verticalLayout_30.addLayout(self.horizontalLayout_31)
self.layoutWidget1 = QtWidgets.QWidget(self.splitterRedac)
self.layoutWidget1.setObjectName("layoutWidget1")
@@ -871,8 +832,8 @@ class Ui_MainWindow(object):
self.sldCorkSizeFactor.setOrientation(QtCore.Qt.Horizontal)
self.sldCorkSizeFactor.setObjectName("sldCorkSizeFactor")
self.horizontalLayout_19.addWidget(self.sldCorkSizeFactor)
- spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.horizontalLayout_19.addItem(spacerItem11)
+ spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_19.addItem(spacerItem10)
self.lblRedacWC = QtWidgets.QLabel(self.layoutWidget1)
self.lblRedacWC.setMinimumSize(QtCore.QSize(10, 0))
self.lblRedacWC.setText("")
@@ -909,49 +870,9 @@ class Ui_MainWindow(object):
self.verticalLayout_20.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.verticalLayout_20.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_20.setObjectName("verticalLayout_20")
- self.groupBox_4 = collapsibleGroupBox2(self.tab_17)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
- self.groupBox_4.setSizePolicy(sizePolicy)
- self.groupBox_4.setFlat(True)
- self.groupBox_4.setCheckable(True)
- self.groupBox_4.setObjectName("groupBox_4")
- self.verticalLayout_28 = QtWidgets.QVBoxLayout(self.groupBox_4)
- self.verticalLayout_28.setContentsMargins(0, 0, 0, 0)
- self.verticalLayout_28.setObjectName("verticalLayout_28")
- self.viewRedacProperties = propertiesView(self.groupBox_4)
- self.viewRedacProperties.setMinimumSize(QtCore.QSize(0, 50))
- self.viewRedacProperties.setObjectName("viewRedacProperties")
- self.verticalLayout_28.addWidget(self.viewRedacProperties)
- self.verticalLayout_20.addWidget(self.groupBox_4)
- self.groupBox_5 = collapsibleGroupBox2(self.tab_17)
- self.groupBox_5.setFlat(True)
- self.groupBox_5.setCheckable(True)
- self.groupBox_5.setObjectName("groupBox_5")
- self.verticalLayout_22 = QtWidgets.QVBoxLayout(self.groupBox_5)
- self.verticalLayout_22.setContentsMargins(0, 0, 0, 0)
- self.verticalLayout_22.setObjectName("verticalLayout_22")
- self.txtRedacSummarySentance = QtWidgets.QLineEdit(self.groupBox_5)
- self.txtRedacSummarySentance.setInputMask("")
- self.txtRedacSummarySentance.setObjectName("txtRedacSummarySentance")
- self.verticalLayout_22.addWidget(self.txtRedacSummarySentance)
- self.txtRedacSummaryFull = QtWidgets.QPlainTextEdit(self.groupBox_5)
- self.txtRedacSummaryFull.setObjectName("txtRedacSummaryFull")
- self.verticalLayout_22.addWidget(self.txtRedacSummaryFull)
- self.verticalLayout_20.addWidget(self.groupBox_5)
- self.groupBox_6 = collapsibleGroupBox2(self.tab_17)
- self.groupBox_6.setFlat(True)
- self.groupBox_6.setCheckable(True)
- self.groupBox_6.setObjectName("groupBox_6")
- self.horizontalLayout_29 = QtWidgets.QHBoxLayout(self.groupBox_6)
- self.horizontalLayout_29.setContentsMargins(0, 0, 0, 0)
- self.horizontalLayout_29.setObjectName("horizontalLayout_29")
- self.txtRedacNotes = QtWidgets.QPlainTextEdit(self.groupBox_6)
- self.txtRedacNotes.setObjectName("txtRedacNotes")
- self.horizontalLayout_29.addWidget(self.txtRedacNotes)
- self.verticalLayout_20.addWidget(self.groupBox_6)
+ self.redacMetadata = metadataView(self.tab_17)
+ self.redacMetadata.setObjectName("redacMetadata")
+ self.verticalLayout_20.addWidget(self.redacMetadata)
self.tabRedacInfos.addTab(self.tab_17, "")
self.tab_18 = QtWidgets.QWidget()
self.tab_18.setObjectName("tab_18")
@@ -1121,12 +1042,12 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuHelp.menuAction())
self.retranslateUi(MainWindow)
- self.tabMain.setCurrentIndex(6)
- self.tabSummary.setCurrentIndex(0)
+ self.tabMain.setCurrentIndex(1)
+ self.tabSummary.setCurrentIndex(3)
self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0)
self.comboBox_2.setCurrentIndex(0)
- self.stkPlotSummary.setCurrentIndex(1)
+ self.stkPlotSummary.setCurrentIndex(0)
self.tabRedacInfos.setCurrentIndex(0)
self.tabWidget.setCurrentIndex(4)
self.pushButton_16.toggled['bool'].connect(self.plainTextEdit_7.setVisible)
@@ -1238,21 +1159,12 @@ class Ui_MainWindow(object):
self.treeWidget_2.topLevelItem(1).child(0).setText(0, _translate("MainWindow", "Scène 1"))
self.treeWidget_2.topLevelItem(1).child(1).setText(0, _translate("MainWindow", "Scène 2"))
self.treeWidget_2.setSortingEnabled(__sortingEnabled)
- self.lblPlanPOV.setText(_translate("MainWindow", "POV:"))
- self.lblPlanGoal.setText(_translate("MainWindow", "Goal:"))
- self.txtOutlineGoal.setPlaceholderText(_translate("MainWindow", "Word count"))
- self.txtPlanSummarySentance.setPlaceholderText(_translate("MainWindow", "One line scene summary"))
- self.label_9.setText(_translate("MainWindow", "Few sentences summary:"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Outline"))
self.btnRedacFolderText.setText(_translate("MainWindow", "Text"))
self.btnRedacFolderCork.setText(_translate("MainWindow", "Cork"))
self.btnRedacFolderOutline.setText(_translate("MainWindow", "Outline"))
self.btnRedacFullscreen.setShortcut(_translate("MainWindow", "F11"))
- self.groupBox_4.setTitle(_translate("MainWindow", "Properties"))
- self.groupBox_5.setTitle(_translate("MainWindow", "Scene summary"))
- self.txtRedacSummarySentance.setPlaceholderText(_translate("MainWindow", "One line scene summary"))
- self.groupBox_6.setTitle(_translate("MainWindow", "Notes"))
- self.tabRedacInfos.setTabText(self.tabRedacInfos.indexOf(self.tab_17), _translate("MainWindow", "Scene"))
+ self.tabRedacInfos.setTabText(self.tabRedacInfos.indexOf(self.tab_17), _translate("MainWindow", "Metadata"))
self.groupBox_3.setTitle(_translate("MainWindow", "Cheat sheet"))
self.lineEdit_3.setPlaceholderText(_translate("MainWindow", "Filter"))
__sortingEnabled = self.listWidget_5.isSortingEnabled()
@@ -1299,10 +1211,11 @@ class Ui_MainWindow(object):
self.actLabels.setText(_translate("MainWindow", "Labels..."))
self.actStatus.setText(_translate("MainWindow", "Status..."))
-from ui.views.outlineView import outlineView
-from ui.editors.editorWidget import editorWidget
-from ui.views.propertiesView import propertiesView
-from ui.collapsibleGroupBox2 import collapsibleGroupBox2
-from ui.sldImportance import sldImportance
-from ui.views.cmbOutlinePersoChoser import cmbOutlinePersoChoser
+from ui.views.metadataView import metadataView
from ui.views.treeView import treeView
+from ui.views.lineEditView import lineEditView
+from ui.views.outlineView import outlineView
+from ui.views.basicItemView import basicItemView
+from ui.sldImportance import sldImportance
+from ui.editors.editorWidget import editorWidget
+from ui.views.textEditView import textEditView
diff --git a/src/ui/mainWindow.ui b/src/ui/mainWindow.ui
index 0ec7879..50920af 100644
--- a/src/ui/mainWindow.ui
+++ b/src/ui/mainWindow.ui
@@ -18,7 +18,7 @@
-
- 6
+ 1
true
@@ -53,7 +53,7 @@
-
-
+
-
@@ -63,7 +63,7 @@
-
-
+
-
@@ -73,7 +73,7 @@
-
-
+
-
@@ -85,7 +85,7 @@
-
-
-
+
-
@@ -110,7 +110,7 @@
-
-
+
-
@@ -120,7 +120,7 @@
-
-
+
@@ -148,7 +148,7 @@
-
-
+
-
@@ -158,7 +158,7 @@
-
-
+
-
@@ -181,7 +181,7 @@
QTabWidget::West
- 0
+ 3
@@ -196,7 +196,7 @@
-
-
+
0
@@ -254,7 +254,7 @@
-
-
+
0
@@ -298,7 +298,7 @@
-
-
+
-
@@ -351,7 +351,7 @@
-
-
+
true
@@ -401,7 +401,7 @@
-
-
+
-
@@ -429,13 +429,10 @@
-
-
+
true
-
-
-
-
@@ -469,7 +466,7 @@
-
-
+
-
@@ -1233,38 +1230,26 @@
-
- 1
+ 0
-
-
-
- true
-
-
+
-
-
-
- true
-
-
+
-
-
-
- true
-
-
+
@@ -1367,90 +1352,7 @@
-
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- POV:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
- false
-
-
-
- -
-
-
- Goal:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- false
-
-
- border-radius: 6px;
-
-
- false
-
-
- Word count
-
-
-
-
-
- -
-
-
-
-
-
- One line scene summary
-
-
-
- -
-
-
- Few sentences summary:
-
-
-
- -
-
+
@@ -1795,9 +1697,9 @@
- Scene
+ Metadata
-
+
QLayout::SetMaximumSize
@@ -1805,90 +1707,7 @@
0
-
-
-
-
- 0
- 0
-
-
-
- Properties
-
-
- true
-
-
- true
-
-
-
- 0
-
-
-
-
-
-
- 0
- 50
-
-
-
-
-
-
-
- -
-
-
- Scene summary
-
-
- true
-
-
- true
-
-
-
- 0
-
-
-
-
-
-
-
-
- One line scene summary
-
-
-
- -
-
-
-
-
-
- -
-
-
- Notes
-
-
- true
-
-
- true
-
-
-
- 0
-
-
-
-
-
-
-
+
@@ -2230,43 +2049,48 @@
+
+ textEditView
+ QTextEdit
+
+
+
+ outlineView
+ QTreeView
+
+
sldImportance
QWidget
1
-
- cmbOutlinePersoChoser
- QComboBox
- ui.views.cmbOutlinePersoChoser.h
-
editorWidget
QWidget
ui.editors.editorWidget.h
1
-
- collapsibleGroupBox2
- QGroupBox
- ui.collapsibleGroupBox2.h
- 1
-
-
- outlineView
- QTreeView
-
-
treeView
QTreeView
- propertiesView
+ lineEditView
+ QLineEdit
+
+
+
+ metadataView
QWidget
- ui.views.propertiesView.h
+
+ 1
+
+
+ basicItemView
+ QWidget
+
1
diff --git a/src/ui/views/basicItemView.py b/src/ui/views/basicItemView.py
new file mode 100644
index 0000000..44acf03
--- /dev/null
+++ b/src/ui/views/basicItemView.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+#--!-- coding: utf8 --!--
+
+from qt import *
+from enums import *
+from ui.views.basicItemView_ui import *
+
+class basicItemView(QWidget, Ui_basicItemView):
+
+ def __init__(self, parent=None):
+ QWidget.__init__(self)
+ self.setupUi(self)
+ self.txtSummarySentance.setColumn(Outline.summarySentance.value)
+ self.txtSummaryFull.setColumn(Outline.summaryFull.value)
+
+ def setModels(self, mdlOutline, mdlPersos, mdlLabels, mdlStatus):
+ self.cmbPOV.setModels(mdlPersos, mdlOutline)
+ self.txtSummarySentance.setModel(mdlOutline)
+ self.txtSummaryFull.setModel(mdlOutline)
+ self.txtGoal.setModel(mdlOutline)
+
+ def getIndexes(self, sourceView):
+ "Returns a list of indexes from list of QItemSelectionRange"
+ indexes = []
+
+ for i in sourceView.selectionModel().selection().indexes():
+ if i.column() != 0:
+ continue
+
+ if i not in indexes:
+ indexes.append(i)
+
+ return indexes
+
+ def selectionChanged(self, sourceView):
+
+ indexes = self.getIndexes(sourceView)
+
+ if len(indexes) == 0:
+ self.setEnabled(False)
+
+ elif len(indexes) == 1:
+ self.setEnabled(True)
+ idx = indexes[0]
+ self.txtSummarySentance.setCurrentModelIndex(idx)
+ self.txtSummaryFull.setCurrentModelIndex(idx)
+ self.cmbPOV.setCurrentModelIndex(idx)
+ self.txtGoal.setCurrentModelIndex(idx)
+
+ else:
+ self.setEnabled(True)
+ self.txtSummarySentance.setCurrentModelIndexes(indexes)
+ self.txtSummaryFull.setCurrentModelIndexes(indexes)
+ self.cmbPOV.setCurrentModelIndexes(indexes)
+ self.txtGoal.setCurrentModelIndexes(indexes)
+
+
+ def toggleSpellcheck(self, v):
+ self.txtSummaryFull.toggleSpellcheck(v)
+
+
\ No newline at end of file
diff --git a/src/ui/views/basicItemView_ui.py b/src/ui/views/basicItemView_ui.py
new file mode 100644
index 0000000..4bdc31d
--- /dev/null
+++ b/src/ui/views/basicItemView_ui.py
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'src/ui/views/basicItemView_ui.ui'
+#
+# Created by: PyQt5 UI code generator 5.4.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+class Ui_basicItemView(object):
+ def setupUi(self, basicItemView):
+ basicItemView.setObjectName("basicItemView")
+ basicItemView.resize(400, 425)
+ self.verticalLayout = QtWidgets.QVBoxLayout(basicItemView)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_11.setObjectName("horizontalLayout_11")
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_11.addItem(spacerItem)
+ self.lblPlanPOV = QtWidgets.QLabel(basicItemView)
+ self.lblPlanPOV.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.lblPlanPOV.setObjectName("lblPlanPOV")
+ self.horizontalLayout_11.addWidget(self.lblPlanPOV)
+ self.cmbPOV = cmbOutlinePersoChoser(basicItemView)
+ self.cmbPOV.setFrame(False)
+ self.cmbPOV.setObjectName("cmbPOV")
+ self.horizontalLayout_11.addWidget(self.cmbPOV)
+ self.lblGoal = QtWidgets.QLabel(basicItemView)
+ self.lblGoal.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.lblGoal.setObjectName("lblGoal")
+ self.horizontalLayout_11.addWidget(self.lblGoal)
+ self.txtGoal = lineEditView(basicItemView)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.txtGoal.sizePolicy().hasHeightForWidth())
+ self.txtGoal.setSizePolicy(sizePolicy)
+ self.txtGoal.setAutoFillBackground(False)
+ self.txtGoal.setStyleSheet("border-radius: 6px;")
+ self.txtGoal.setFrame(False)
+ self.txtGoal.setObjectName("txtGoal")
+ self.horizontalLayout_11.addWidget(self.txtGoal)
+ self.verticalLayout.addLayout(self.horizontalLayout_11)
+ self.txtSummarySentance = lineEditView(basicItemView)
+ self.txtSummarySentance.setText("")
+ self.txtSummarySentance.setObjectName("txtSummarySentance")
+ self.verticalLayout.addWidget(self.txtSummarySentance)
+ self.label_9 = QtWidgets.QLabel(basicItemView)
+ self.label_9.setObjectName("label_9")
+ self.verticalLayout.addWidget(self.label_9)
+ self.txtSummaryFull = textEditView(basicItemView)
+ self.txtSummaryFull.setObjectName("txtSummaryFull")
+ self.verticalLayout.addWidget(self.txtSummaryFull)
+
+ self.retranslateUi(basicItemView)
+ QtCore.QMetaObject.connectSlotsByName(basicItemView)
+
+ def retranslateUi(self, basicItemView):
+ _translate = QtCore.QCoreApplication.translate
+ basicItemView.setWindowTitle(_translate("basicItemView", "Form"))
+ self.lblPlanPOV.setText(_translate("basicItemView", "POV:"))
+ self.lblGoal.setText(_translate("basicItemView", "Goal:"))
+ self.txtGoal.setPlaceholderText(_translate("basicItemView", "Word count"))
+ self.txtSummarySentance.setPlaceholderText(_translate("basicItemView", "One line scene summary"))
+ self.label_9.setText(_translate("basicItemView", "Few sentences summary:"))
+
+from ui.views.cmbOutlinePersoChoser import cmbOutlinePersoChoser
+from ui.views.textEditView import textEditView
+from ui.views.lineEditView import lineEditView
diff --git a/src/ui/views/basicItemView_ui.ui b/src/ui/views/basicItemView_ui.ui
new file mode 100644
index 0000000..0b5b2c1
--- /dev/null
+++ b/src/ui/views/basicItemView_ui.ui
@@ -0,0 +1,127 @@
+
+
+ basicItemView
+
+
+
+ 0
+ 0
+ 400
+ 425
+
+
+
+ Form
+
+
+
+ 0
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ POV:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ false
+
+
+
+ -
+
+
+ Goal:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ false
+
+
+ border-radius: 6px;
+
+
+ false
+
+
+ Word count
+
+
+
+
+
+ -
+
+
+
+
+
+ One line scene summary
+
+
+
+ -
+
+
+ Few sentences summary:
+
+
+
+ -
+
+
+
+
+
+
+ textEditView
+ QTextEdit
+
+
+
+ cmbOutlinePersoChoser
+ QComboBox
+ ui.views.cmbOutlinePersoChoser.h
+
+
+ lineEditView
+ QLineEdit
+
+
+
+
+
+
diff --git a/src/ui/views/lineEditView.py b/src/ui/views/lineEditView.py
index ce4e7b5..a4d6dc0 100644
--- a/src/ui/views/lineEditView.py
+++ b/src/ui/views/lineEditView.py
@@ -80,10 +80,10 @@ class lineEditView(QLineEdit):
self.updateText()
def updateText(self):
-
if self._index:
- item = self._index.internalPointer()
- txt = toString(item.data(self._column))
+ #item = self._index.internalPointer()
+ #txt = toString(item.data(self._column))
+ txt = toString(self._model.data(self._index))
if self.text() != txt:
self.setText(txt)
@@ -92,7 +92,7 @@ class lineEditView(QLineEdit):
same = True
for i in self._indexes:
item = i.internalPointer()
- t.append(str(item.data(self._column)))
+ t.append(toString(item.data(self._column)))
for t2 in t[1:]:
if t2 != t[0]:
diff --git a/src/ui/views/metadataView.py b/src/ui/views/metadataView.py
new file mode 100644
index 0000000..4e414e9
--- /dev/null
+++ b/src/ui/views/metadataView.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+#--!-- coding: utf8 --!--
+
+from qt import *
+from enums import *
+from ui.views.metadataView_ui import *
+
+class metadataView(QWidget, Ui_metadataView):
+
+ def __init__(self, parent=None):
+ QWidget.__init__(self)
+ self.setupUi(self)
+ self.txtSummarySentance.setColumn(Outline.summarySentance.value)
+ self.txtSummaryFull.setColumn(Outline.summaryFull.value)
+ self.txtNotes.setColumn(Outline.notes.value)
+
+ def setModels(self, mdlOutline, mdlPersos, mdlLabels, mdlStatus):
+ self.properties.setModels(mdlOutline, mdlPersos, mdlLabels, mdlStatus)
+ self.txtSummarySentance.setModel(mdlOutline)
+ self.txtSummaryFull.setModel(mdlOutline)
+ self.txtNotes.setModel(mdlOutline)
+
+ def getIndexes(self, sourceView):
+ "Returns a list of indexes from list of QItemSelectionRange"
+ indexes = []
+
+ for i in sourceView.selectionModel().selection().indexes():
+ if i.column() != 0:
+ continue
+
+ if i not in indexes:
+ indexes.append(i)
+
+ return indexes
+
+ def selectionChanged(self, sourceView):
+
+ indexes = self.getIndexes(sourceView)
+
+ if len(indexes) == 0:
+ self.setEnabled(False)
+
+ elif len(indexes) == 1:
+ self.setEnabled(True)
+ idx = indexes[0]
+ self.txtSummarySentance.setCurrentModelIndex(idx)
+ self.txtSummaryFull.setCurrentModelIndex(idx)
+ self.txtNotes.setCurrentModelIndex(idx)
+
+ else:
+ self.setEnabled(True)
+ self.txtSummarySentance.setCurrentModelIndexes(indexes)
+ self.txtSummaryFull.setCurrentModelIndexes(indexes)
+ self.txtNotes.setCurrentModelIndexes(indexes)
+
+ self.properties.selectionChanged(sourceView)
+
+ def toggleSpellcheck(self, v):
+ self.txtNotes.toggleSpellcheck(v)
+ self.txtSummaryFull.toggleSpellcheck(v)
+
+
\ No newline at end of file
diff --git a/src/ui/views/metadataView_ui.py b/src/ui/views/metadataView_ui.py
new file mode 100644
index 0000000..de80768
--- /dev/null
+++ b/src/ui/views/metadataView_ui.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'src/ui/views/metadataView_ui.ui'
+#
+# Created by: PyQt5 UI code generator 5.4.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+class Ui_metadataView(object):
+ def setupUi(self, metadataView):
+ metadataView.setObjectName("metadataView")
+ metadataView.resize(400, 425)
+ self.verticalLayout = QtWidgets.QVBoxLayout(metadataView)
+ self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.groupBox_4 = collapsibleGroupBox2(metadataView)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth())
+ self.groupBox_4.setSizePolicy(sizePolicy)
+ self.groupBox_4.setFlat(True)
+ self.groupBox_4.setCheckable(True)
+ self.groupBox_4.setObjectName("groupBox_4")
+ self.verticalLayout_28 = QtWidgets.QVBoxLayout(self.groupBox_4)
+ self.verticalLayout_28.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout_28.setObjectName("verticalLayout_28")
+ self.properties = propertiesView(self.groupBox_4)
+ self.properties.setMinimumSize(QtCore.QSize(0, 50))
+ self.properties.setObjectName("properties")
+ self.verticalLayout_28.addWidget(self.properties)
+ self.verticalLayout.addWidget(self.groupBox_4)
+ self.groupBox_5 = collapsibleGroupBox2(metadataView)
+ self.groupBox_5.setFlat(True)
+ self.groupBox_5.setCheckable(True)
+ self.groupBox_5.setObjectName("groupBox_5")
+ self.verticalLayout_22 = QtWidgets.QVBoxLayout(self.groupBox_5)
+ self.verticalLayout_22.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout_22.setObjectName("verticalLayout_22")
+ self.txtSummarySentance = lineEditView(self.groupBox_5)
+ self.txtSummarySentance.setInputMask("")
+ self.txtSummarySentance.setObjectName("txtSummarySentance")
+ self.verticalLayout_22.addWidget(self.txtSummarySentance)
+ self.txtSummaryFull = textEditView(self.groupBox_5)
+ self.txtSummaryFull.setObjectName("txtSummaryFull")
+ self.verticalLayout_22.addWidget(self.txtSummaryFull)
+ self.verticalLayout.addWidget(self.groupBox_5)
+ self.groupBox_6 = collapsibleGroupBox2(metadataView)
+ self.groupBox_6.setFlat(True)
+ self.groupBox_6.setCheckable(True)
+ self.groupBox_6.setObjectName("groupBox_6")
+ self.horizontalLayout_29 = QtWidgets.QHBoxLayout(self.groupBox_6)
+ self.horizontalLayout_29.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout_29.setObjectName("horizontalLayout_29")
+ self.txtNotes = textEditView(self.groupBox_6)
+ self.txtNotes.setObjectName("txtNotes")
+ self.horizontalLayout_29.addWidget(self.txtNotes)
+ self.verticalLayout.addWidget(self.groupBox_6)
+
+ self.retranslateUi(metadataView)
+ QtCore.QMetaObject.connectSlotsByName(metadataView)
+
+ def retranslateUi(self, metadataView):
+ _translate = QtCore.QCoreApplication.translate
+ metadataView.setWindowTitle(_translate("metadataView", "Form"))
+ self.groupBox_4.setTitle(_translate("metadataView", "Properties"))
+ self.groupBox_5.setTitle(_translate("metadataView", "Summary"))
+ self.txtSummarySentance.setPlaceholderText(_translate("metadataView", "One line scene summary"))
+ self.groupBox_6.setTitle(_translate("metadataView", "Notes"))
+
+from ui.views.lineEditView import lineEditView
+from ui.collapsibleGroupBox2 import collapsibleGroupBox2
+from ui.views.textEditView import textEditView
+from ui.views.propertiesView import propertiesView
diff --git a/src/ui/views/metadataView_ui.ui b/src/ui/views/metadataView_ui.ui
new file mode 100644
index 0000000..97a8d6f
--- /dev/null
+++ b/src/ui/views/metadataView_ui.ui
@@ -0,0 +1,134 @@
+
+
+ metadataView
+
+
+
+ 0
+ 0
+ 400
+ 425
+
+
+
+ Form
+
+
+
+ 0
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Properties
+
+
+ true
+
+
+ true
+
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 50
+
+
+
+
+
+
+
+ -
+
+
+ Summary
+
+
+ true
+
+
+ true
+
+
+
+ 0
+
+
-
+
+
+
+
+
+ One line scene summary
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+ Notes
+
+
+ true
+
+
+ true
+
+
+
+ 0
+
+
-
+
+
+
+
+
+
+
+
+
+ textEditView
+ QTextEdit
+
+
+
+ collapsibleGroupBox2
+ QGroupBox
+ ui.collapsibleGroupBox2.h
+ 1
+
+
+ propertiesView
+ QWidget
+ ui.views.propertiesView.h
+ 1
+
+
+ lineEditView
+ QLineEdit
+
+
+
+
+
+
diff --git a/src/ui/editors/customTextEdit.py b/src/ui/views/textEditView.py
similarity index 56%
rename from src/ui/editors/customTextEdit.py
rename to src/ui/views/textEditView.py
index cc009e5..2e08e40 100644
--- a/src/ui/editors/customTextEdit.py
+++ b/src/ui/views/textEditView.py
@@ -1,27 +1,34 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
-
-
-
from qt import *
from enums import *
from ui.editors.t2tHighlighter import *
+from functions import *
+
try:
import enchant
except ImportError:
enchant = None
-class customTextEdit(QTextEdit):
+class textEditView(QTextEdit):
def __init__(self, parent=None, index=None, html=None, spellcheck=True, dict="", autoResize=False):
QTextEdit.__init__(self, parent)
- self.currentIndex = None
- self.item = None
+ self._column = Outline.text.value
+ self._index = None
+ self._indexes = None
+ self._placeholderText = None
+ self._updating = False
+ self._item = None
+ self._update = False
+ self._highlighting = True
+
self.spellcheck = spellcheck
self.currentDict = dict
self.highlighter = None
+ self._autoResize = autoResize
if index:
self.setCurrentModelIndex(index)
@@ -29,18 +36,29 @@ class customTextEdit(QTextEdit):
elif html:
self.document().setHtml(html)
self.setReadOnly(True)
+
+ self.setAutoResize(self._autoResize)
+
+ def setModel(self, model):
+ self._model = model
+ self._model.dataChanged.connect(self.update)
- self.autoResize = autoResize
- if autoResize:
- self.document().contentsChanged.connect(self.sizeChange)
- self.heightMin = 0
- self.heightMax = 65000
- self.sizeChange()
+ def setColumn(self, col):
+ self._column = col
+
+ def setHighlighting(self, val):
+ self._highlighting = val
def setCurrentModelIndex(self, index):
+ self._indexes = None
if index.isValid():
- self.currentIndex = index
- self.item = index.internalPointer()
+ if index.column() != self._column:
+ index = index.sibling(index.row(), self._column)
+ self._index = index
+ self._item = index.internalPointer()
+ if self._placeholderText != None:
+ self.setPlaceholderText(self._placeholderText)
+
self._model = index.model()
self.document().contentsChanged.connect(self.submit)
self._model.dataChanged.connect(self.update)
@@ -50,7 +68,7 @@ class customTextEdit(QTextEdit):
self.highlightWord = ""
self.highligtCS = False
- if not self.highlighter:
+ if self._highlighting and not self.highlighter:
self.highlighter = t2tHighlighter(self)
# Spellchecking
@@ -59,23 +77,82 @@ class customTextEdit(QTextEdit):
else:
self.spellcheck = False
- def submit(self):
- if self.toPlainText() != self.item.data(Outline.text.value):
- #self._model.setData(self.item.index(), self.toPlainText(), Outline.text.value)
- self.item.setData(Outline.text.value, self.toPlainText())
+ def setCurrentModelIndexes(self, indexes):
+ self._index = None
+ self._indexes = []
+
+ for i in indexes:
+ if i.isValid():
+ if i.column() != self._column:
+ i = i.sibling(i.row(), self._column)
+ self._indexes.append(i)
+
+ self.document().contentsChanged.connect(self.submit)
+ self.updateText()
def update(self, topLeft, bottomRight):
- if topLeft.row() <= self.currentIndex.row() <= bottomRight.row():
- self.updateText()
+ if self._update:
+ return
+
+ elif self._index:
+ if topLeft.row() <= self._index.row() <= bottomRight.row():
+ self.updateText()
+
+ elif self._indexes:
+ update = False
+ for i in self._indexes:
+ if topLeft.row() <= i.row() <= bottomRight.row():
+ update = True
+ if update:
+ self.updateText()
def updateText(self):
- if self.item:
- if self.toPlainText() != self.item.data(Outline.text.value):
- self.document().setPlainText(self.item.data(Outline.text.value))
+ if self._index:
+ if self.toPlainText() != toString(self._model.data(self._index)):
+ self.document().setPlainText(toString(self._model.data(self._index)))
+
+ elif self._indexes:
+ t = []
+ same = True
+ for i in self._indexes:
+ item = i.internalPointer()
+ t.append(toString(item.data(self._column)))
+
+ for t2 in t[1:]:
+ if t2 != t[0]:
+ same = False
+ break
+
+ if same:
+ self.document().setPlainText(t[0])
+ else:
+ self.document().setPlainText("")
+
+ if not self._placeholderText:
+ self._placeholderText = self.placeholderText()
+
+ self.setPlaceholderText(self.tr("Various"))
+ def submit(self):
+ if self._index:
+ #item = self._index.internalPointer()
+ if self.toPlainText() != self._model.data(self._index):
+ self._model.setData(self._index, self.toPlainText())
+
+ elif self._indexes:
+ self._updating = True
+ for i in self._indexes:
+ item = i.internalPointer()
+ if self.toPlainText() != toString(item.data(self._column)):
+ self._model.setData(i, self.toPlainText())
+ self._updating = False
+
+ # -----------------------------------------------------------------------------------------------------
+ # Resize stuff
+
def resizeEvent(self, e):
QTextEdit.resizeEvent(self, e)
- if self.autoResize:
+ if self._autoResize:
self.sizeChange()
def sizeChange(self):
@@ -83,6 +160,13 @@ class customTextEdit(QTextEdit):
if self.heightMin <= docHeight <= self.heightMax:
self.setMinimumHeight(docHeight)
+ def setAutoResize(self, val):
+ self._autoResize = val
+ if self._autoResize:
+ self.document().contentsChanged.connect(self.sizeChange)
+ self.heightMin = 0
+ self.heightMax = 65000
+ self.sizeChange()
# -----------------------------------------------------------------------------------------------------
# Spellchecking based on http://john.nachtimwald.com/2009/08/22/qplaintextedit-with-in-line-spell-check/
@@ -93,7 +177,8 @@ class customTextEdit(QTextEdit):
def toggleSpellcheck(self, v):
self.spellcheck = v
- self.highlighter.rehighlight()
+ if self.highlighter:
+ self.highlighter.rehighlight()
def mousePressEvent(self, event):
if event.button() == Qt.RightButton:
diff --git a/test_project/flatModel.xml b/test_project/flatModel.xml
index d9957fe..30041cf 100644
--- a/test_project/flatModel.xml
+++ b/test_project/flatModel.xml
@@ -1,5 +1,5 @@
-
+
@@ -20,15 +20,19 @@
Titre du livre
Sous-titre
- None
- None
+
+
Fantasy
CC-BY-SA
Auteur Cool
auteur@cool.com
- Bonjour
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Bonjour asdasd</p></body></html>
Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir
Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir
@@ -47,10 +51,10 @@ Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir
Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir
Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir Bonsoir
- None
- None
- None
- None
+
+
+
+
diff --git a/test_project/labels.xml b/test_project/labels.xml
index fe3c3a1..1873061 100644
--- a/test_project/labels.xml
+++ b/test_project/labels.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/test_project/outline.xml b/test_project/outline.xml
index 2172658..e469047 100644
--- a/test_project/outline.xml
+++ b/test_project/outline.xml
@@ -1,5 +1,5 @@
-
+
@@ -16,7 +16,7 @@
-
+
@@ -35,7 +35,7 @@
-
+
@@ -51,7 +51,7 @@
-
+
diff --git a/test_project/perso.xml b/test_project/perso.xml
index eada73b..9ad09d8 100644
--- a/test_project/perso.xml
+++ b/test_project/perso.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/test_project/persoInfos.xml b/test_project/persoInfos.xml
index bc97a8e..9378ed5 100644
--- a/test_project/persoInfos.xml
+++ b/test_project/persoInfos.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/test_project/status.xml b/test_project/status.xml
index c04d167..60fb05f 100644
--- a/test_project/status.xml
+++ b/test_project/status.xml
@@ -1,5 +1,5 @@
-
+