mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-09-28 07:21:31 +12:00
Adds: labels (not yet editable)
This commit is contained in:
parent
6a8c89d019
commit
7cb05b98f2
10 changed files with 257 additions and 32 deletions
18
src/enums.py
18
src/enums.py
|
@ -33,12 +33,14 @@ class Outline(Enum):
|
||||||
summaryFull = 4
|
summaryFull = 4
|
||||||
POV = 5
|
POV = 5
|
||||||
notes = 6
|
notes = 6
|
||||||
status = 7
|
label = 7
|
||||||
compile = 8
|
status = 8
|
||||||
text = 9
|
compile = 9
|
||||||
wordCount = 10
|
text = 10
|
||||||
goal = 11
|
wordCount = 11
|
||||||
goalPercentage = 12
|
goal = 12
|
||||||
setGoal = 13 # The goal set by the user, if any. Can be different from goal which can be computed
|
goalPercentage = 13
|
||||||
|
setGoal = 14 # The goal set by the user, if any. Can be different from goal which can be computed
|
||||||
# (sum of all sub-items' goals)
|
# (sum of all sub-items' goals)
|
||||||
textFormat = 14
|
textFormat = 15
|
||||||
|
|
||||||
|
|
|
@ -134,10 +134,25 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
self.lstPersos.selectionModel().currentChanged.connect(self.changeCurrentPerso)
|
self.lstPersos.selectionModel().currentChanged.connect(self.changeCurrentPerso)
|
||||||
self.tabPersos.currentChanged.connect(self.resizePersosInfos)
|
self.tabPersos.currentChanged.connect(self.resizePersosInfos)
|
||||||
|
|
||||||
|
# Labels
|
||||||
|
self.mdlLabels = QStandardItemModel()
|
||||||
|
for color, text in [
|
||||||
|
(Qt.transparent, ""),
|
||||||
|
(Qt.yellow, "Idea"),
|
||||||
|
(Qt.green, "Note"),
|
||||||
|
(Qt.blue, "Chapter"),
|
||||||
|
(Qt.red, "Scene")
|
||||||
|
]:
|
||||||
|
px = QPixmap(32, 32)
|
||||||
|
px.fill(color)
|
||||||
|
self.mdlLabels.appendRow(QStandardItem(QIcon(px), text))
|
||||||
|
|
||||||
|
|
||||||
# Outline
|
# Outline
|
||||||
self.mdlOutline = outlineModel()
|
self.mdlOutline = outlineModel()
|
||||||
self.treeRedacOutline.setModel(self.mdlOutline)
|
self.treeRedacOutline.setModel(self.mdlOutline)
|
||||||
self.treePlanOutline.setModelPersos(self.mdlPersos)
|
self.treePlanOutline.setModelPersos(self.mdlPersos)
|
||||||
|
self.treePlanOutline.setModelLabels(self.mdlLabels)
|
||||||
self.treePlanOutline.setModel(self.mdlOutline)
|
self.treePlanOutline.setModel(self.mdlOutline)
|
||||||
self.cmbPlanPOV.setModels(self.mdlPersos, self.mdlOutline)
|
self.cmbPlanPOV.setModels(self.mdlPersos, self.mdlOutline)
|
||||||
|
|
||||||
|
@ -166,6 +181,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
self.btnPlanRemoveItem.clicked.connect(self.outlineRemoveItems)
|
self.btnPlanRemoveItem.clicked.connect(self.outlineRemoveItems)
|
||||||
|
|
||||||
self.cmbRedacPOV.setModels(self.mdlPersos, self.mdlOutline)
|
self.cmbRedacPOV.setModels(self.mdlPersos, self.mdlOutline)
|
||||||
|
self.cmbRedacLabel.setModels(self.mdlLabels, self.mdlOutline)
|
||||||
self.cmbRedacStatus.setModel(self.mdlOutline)
|
self.cmbRedacStatus.setModel(self.mdlOutline)
|
||||||
#self.chkRedacCompile.setModel(self.mdlOutline)
|
#self.chkRedacCompile.setModel(self.mdlOutline)
|
||||||
|
|
||||||
|
@ -184,6 +200,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.mprOutline.setRootIndex(idx.parent()))
|
self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.mprOutline.setRootIndex(idx.parent()))
|
||||||
self.treeRedacOutline.selectionModel().currentChanged.connect(self.mprOutline.setCurrentModelIndex)
|
self.treeRedacOutline.selectionModel().currentChanged.connect(self.mprOutline.setCurrentModelIndex)
|
||||||
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacPOV.setCurrentModelIndex)
|
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacPOV.setCurrentModelIndex)
|
||||||
|
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacLabel.setCurrentModelIndex)
|
||||||
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacStatus.setCurrentModelIndex)
|
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacStatus.setCurrentModelIndex)
|
||||||
self.treeRedacOutline.selectionModel().currentChanged.connect(self.chkRedacCompile.setCurrentModelIndex)
|
self.treeRedacOutline.selectionModel().currentChanged.connect(self.chkRedacCompile.setCurrentModelIndex)
|
||||||
self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.setCurrentModelIndex)
|
self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.setCurrentModelIndex)
|
||||||
|
@ -208,6 +225,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
self.tblDebugPersos.setModel(self.mdlPersos)
|
self.tblDebugPersos.setModel(self.mdlPersos)
|
||||||
self.tblDebugPersosInfos.setModel(self.mdlPersosInfos)
|
self.tblDebugPersosInfos.setModel(self.mdlPersosInfos)
|
||||||
self.treeDebugOutline.setModel(self.mdlOutline)
|
self.treeDebugOutline.setModel(self.mdlOutline)
|
||||||
|
self.lstDebugLabels.setModel(self.mdlLabels)
|
||||||
|
|
||||||
# Playing with qStyle
|
# Playing with qStyle
|
||||||
self.cmbStyle.addItems(list(QStyleFactory.keys()))
|
self.cmbStyle.addItems(list(QStyleFactory.keys()))
|
||||||
|
@ -328,6 +346,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
loadStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(project))
|
loadStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(project))
|
||||||
loadStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(project))
|
loadStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(project))
|
||||||
loadStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(project))
|
loadStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(project))
|
||||||
|
loadStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(project))
|
||||||
self.mdlOutline.loadFromXML("{}/outline.xml".format(project))
|
self.mdlOutline.loadFromXML("{}/outline.xml".format(project))
|
||||||
|
|
||||||
# Stuff
|
# Stuff
|
||||||
|
@ -352,6 +371,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
saveStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
|
saveStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
|
||||||
saveStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(self.currentProject))
|
saveStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(self.currentProject))
|
||||||
saveStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(self.currentProject))
|
saveStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(self.currentProject))
|
||||||
|
saveStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(self.currentProject))
|
||||||
self.mdlOutline.saveToXML("{}/outline.xml".format(self.currentProject))
|
self.mdlOutline.saveToXML("{}/outline.xml".format(self.currentProject))
|
||||||
|
|
||||||
# closeEvent
|
# closeEvent
|
||||||
|
|
48
src/ui/cmbOutlineLabelChoser.py
Normal file
48
src/ui/cmbOutlineLabelChoser.py
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
#--!-- coding: utf8 --!--
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
from qt import *
|
||||||
|
from enums import *
|
||||||
|
|
||||||
|
class cmbOutlineLabelChoser(QComboBox):
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
QComboBox.__init__(self, parent)
|
||||||
|
self.activated[int].connect(self.changed)
|
||||||
|
self.currentModelIndex = None
|
||||||
|
|
||||||
|
def setModels(self, mdlLabels, mdlOutline):
|
||||||
|
self.mdlLabels = mdlLabels
|
||||||
|
self.mdlLabels.dataChanged.connect(self.updateItems)
|
||||||
|
self.mdlOutline = mdlOutline
|
||||||
|
self.mdlOutline.dataChanged.connect(self.updateSelectedItem)
|
||||||
|
self.updateItems()
|
||||||
|
|
||||||
|
def updateSelectedItem(self, idx1=None, idx2=None):
|
||||||
|
if not self.currentModelIndex or not self.currentModelIndex.isValid():
|
||||||
|
self.setCurrentIndex(0)
|
||||||
|
else:
|
||||||
|
val = self.currentModelIndex.internalPointer().data(Outline.label.value)
|
||||||
|
if not val: val = 0
|
||||||
|
self.setCurrentIndex(int(val))
|
||||||
|
|
||||||
|
def changed(self, idx):
|
||||||
|
if self.currentModelIndex:
|
||||||
|
modelIndex = self.mdlOutline.index(self.currentModelIndex.row(), Outline.label.value, self.currentModelIndex.parent())
|
||||||
|
self.mdlOutline.setData(modelIndex, self.currentIndex())
|
||||||
|
|
||||||
|
def setCurrentModelIndex(self, idx):
|
||||||
|
self.currentModelIndex = idx
|
||||||
|
self.updateSelectedItem()
|
||||||
|
|
||||||
|
def updateItems(self):
|
||||||
|
self.clear()
|
||||||
|
for i in range(self.mdlLabels.rowCount()):
|
||||||
|
self.addItem(self.mdlLabels.item(i, 0).icon(),
|
||||||
|
self.mdlLabels.item(i, 0).text())
|
||||||
|
|
||||||
|
if self.currentModelIndex:
|
||||||
|
self.updateSelectedItem()
|
|
@ -19,6 +19,7 @@ class cmbOutlinePersoChoser(QComboBox):
|
||||||
self.mdlPersos.dataChanged.connect(self.updateItems)
|
self.mdlPersos.dataChanged.connect(self.updateItems)
|
||||||
self.mdlOutline = mdlOutline
|
self.mdlOutline = mdlOutline
|
||||||
self.mdlOutline.dataChanged.connect(self.updateSelectedItem)
|
self.mdlOutline.dataChanged.connect(self.updateSelectedItem)
|
||||||
|
self.updateItems()
|
||||||
|
|
||||||
def updateSelectedItem(self, idx1=None, idx2=None):
|
def updateSelectedItem(self, idx1=None, idx2=None):
|
||||||
if not self.currentModelIndex or not self.currentModelIndex.isValid():
|
if not self.currentModelIndex or not self.currentModelIndex.isValid():
|
||||||
|
|
|
@ -958,14 +958,14 @@ class Ui_MainWindow(object):
|
||||||
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbRedacStatus)
|
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbRedacStatus)
|
||||||
self.label_32 = QtWidgets.QLabel(self.groupBox_4)
|
self.label_32 = QtWidgets.QLabel(self.groupBox_4)
|
||||||
self.label_32.setObjectName("label_32")
|
self.label_32.setObjectName("label_32")
|
||||||
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_32)
|
self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_32)
|
||||||
self.chkRedacCompile = chkOutlineCompile(self.groupBox_4)
|
self.chkRedacCompile = chkOutlineCompile(self.groupBox_4)
|
||||||
self.chkRedacCompile.setText("")
|
self.chkRedacCompile.setText("")
|
||||||
self.chkRedacCompile.setObjectName("chkRedacCompile")
|
self.chkRedacCompile.setObjectName("chkRedacCompile")
|
||||||
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.chkRedacCompile)
|
self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.chkRedacCompile)
|
||||||
self.label_29 = QtWidgets.QLabel(self.groupBox_4)
|
self.label_29 = QtWidgets.QLabel(self.groupBox_4)
|
||||||
self.label_29.setObjectName("label_29")
|
self.label_29.setObjectName("label_29")
|
||||||
self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_29)
|
self.formLayout_5.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_29)
|
||||||
self.txtRedacGoal = QtWidgets.QLineEdit(self.groupBox_4)
|
self.txtRedacGoal = QtWidgets.QLineEdit(self.groupBox_4)
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
@ -976,7 +976,19 @@ class Ui_MainWindow(object):
|
||||||
self.txtRedacGoal.setStyleSheet("border-radius: 6px;")
|
self.txtRedacGoal.setStyleSheet("border-radius: 6px;")
|
||||||
self.txtRedacGoal.setFrame(False)
|
self.txtRedacGoal.setFrame(False)
|
||||||
self.txtRedacGoal.setObjectName("txtRedacGoal")
|
self.txtRedacGoal.setObjectName("txtRedacGoal")
|
||||||
self.formLayout_5.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.txtRedacGoal)
|
self.formLayout_5.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.txtRedacGoal)
|
||||||
|
self.label_33 = QtWidgets.QLabel(self.groupBox_4)
|
||||||
|
self.label_33.setObjectName("label_33")
|
||||||
|
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_33)
|
||||||
|
self.cmbRedacLabel = cmbOutlineLabelChoser(self.groupBox_4)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.cmbRedacLabel.sizePolicy().hasHeightForWidth())
|
||||||
|
self.cmbRedacLabel.setSizePolicy(sizePolicy)
|
||||||
|
self.cmbRedacLabel.setFrame(False)
|
||||||
|
self.cmbRedacLabel.setObjectName("cmbRedacLabel")
|
||||||
|
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbRedacLabel)
|
||||||
self.verticalLayout_20.addWidget(self.groupBox_4)
|
self.verticalLayout_20.addWidget(self.groupBox_4)
|
||||||
self.groupBox_5 = collapsibleGroupBox2(self.tab_17)
|
self.groupBox_5 = collapsibleGroupBox2(self.tab_17)
|
||||||
self.groupBox_5.setFlat(True)
|
self.groupBox_5.setFlat(True)
|
||||||
|
@ -1078,6 +1090,14 @@ class Ui_MainWindow(object):
|
||||||
self.treeDebugOutline.setObjectName("treeDebugOutline")
|
self.treeDebugOutline.setObjectName("treeDebugOutline")
|
||||||
self.horizontalLayout_32.addWidget(self.treeDebugOutline)
|
self.horizontalLayout_32.addWidget(self.treeDebugOutline)
|
||||||
self.tabWidget.addTab(self.tab_20, "")
|
self.tabWidget.addTab(self.tab_20, "")
|
||||||
|
self.tab = QtWidgets.QWidget()
|
||||||
|
self.tab.setObjectName("tab")
|
||||||
|
self.horizontalLayout = QtWidgets.QHBoxLayout(self.tab)
|
||||||
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
|
self.lstDebugLabels = QtWidgets.QListView(self.tab)
|
||||||
|
self.lstDebugLabels.setObjectName("lstDebugLabels")
|
||||||
|
self.horizontalLayout.addWidget(self.lstDebugLabels)
|
||||||
|
self.tabWidget.addTab(self.tab, "")
|
||||||
self.verticalLayout_29.addWidget(self.tabWidget)
|
self.verticalLayout_29.addWidget(self.tabWidget)
|
||||||
self.tabMain.addTab(self.lytTabDebug, "")
|
self.tabMain.addTab(self.lytTabDebug, "")
|
||||||
self.horizontalLayout_2.addWidget(self.tabMain)
|
self.horizontalLayout_2.addWidget(self.tabMain)
|
||||||
|
@ -1153,14 +1173,14 @@ class Ui_MainWindow(object):
|
||||||
self.menubar.addAction(self.menuTools.menuAction())
|
self.menubar.addAction(self.menuTools.menuAction())
|
||||||
|
|
||||||
self.retranslateUi(MainWindow)
|
self.retranslateUi(MainWindow)
|
||||||
self.tabMain.setCurrentIndex(5)
|
self.tabMain.setCurrentIndex(6)
|
||||||
self.tabSummary.setCurrentIndex(0)
|
self.tabSummary.setCurrentIndex(0)
|
||||||
self.tabPersos.setCurrentIndex(0)
|
self.tabPersos.setCurrentIndex(0)
|
||||||
self.tabPlot.setCurrentIndex(0)
|
self.tabPlot.setCurrentIndex(0)
|
||||||
self.comboBox_2.setCurrentIndex(0)
|
self.comboBox_2.setCurrentIndex(0)
|
||||||
self.stkPlotSummary.setCurrentIndex(1)
|
self.stkPlotSummary.setCurrentIndex(1)
|
||||||
self.tabRedacInfos.setCurrentIndex(0)
|
self.tabRedacInfos.setCurrentIndex(0)
|
||||||
self.tabWidget.setCurrentIndex(3)
|
self.tabWidget.setCurrentIndex(4)
|
||||||
self.pushButton_16.toggled['bool'].connect(self.plainTextEdit_7.setVisible)
|
self.pushButton_16.toggled['bool'].connect(self.plainTextEdit_7.setVisible)
|
||||||
self.btnPlotShowSummary.toggled['bool'].connect(self.grpPlotSummary.setVisible)
|
self.btnPlotShowSummary.toggled['bool'].connect(self.grpPlotSummary.setVisible)
|
||||||
self.comboBox_2.currentIndexChanged['int'].connect(self.stkPlotSummary.setCurrentIndex)
|
self.comboBox_2.currentIndexChanged['int'].connect(self.stkPlotSummary.setCurrentIndex)
|
||||||
|
@ -1286,6 +1306,7 @@ class Ui_MainWindow(object):
|
||||||
self.label_32.setText(_translate("MainWindow", "Compile"))
|
self.label_32.setText(_translate("MainWindow", "Compile"))
|
||||||
self.label_29.setText(_translate("MainWindow", "Goal"))
|
self.label_29.setText(_translate("MainWindow", "Goal"))
|
||||||
self.txtRedacGoal.setPlaceholderText(_translate("MainWindow", "Word count"))
|
self.txtRedacGoal.setPlaceholderText(_translate("MainWindow", "Word count"))
|
||||||
|
self.label_33.setText(_translate("MainWindow", "Label"))
|
||||||
self.groupBox_5.setTitle(_translate("MainWindow", "Scene summary"))
|
self.groupBox_5.setTitle(_translate("MainWindow", "Scene summary"))
|
||||||
self.txtRedacSummarySentance.setPlaceholderText(_translate("MainWindow", "One line scene summary"))
|
self.txtRedacSummarySentance.setPlaceholderText(_translate("MainWindow", "One line scene summary"))
|
||||||
self.groupBox_6.setTitle(_translate("MainWindow", "Notes"))
|
self.groupBox_6.setTitle(_translate("MainWindow", "Notes"))
|
||||||
|
@ -1309,6 +1330,7 @@ class Ui_MainWindow(object):
|
||||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_10), _translate("MainWindow", "Persos"))
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_10), _translate("MainWindow", "Persos"))
|
||||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_16), _translate("MainWindow", "Perso Infos"))
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_16), _translate("MainWindow", "Perso Infos"))
|
||||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_20), _translate("MainWindow", "Outline"))
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_20), _translate("MainWindow", "Outline"))
|
||||||
|
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Labels"))
|
||||||
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabDebug), _translate("MainWindow", "Debug"))
|
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabDebug), _translate("MainWindow", "Debug"))
|
||||||
self.menu_Fichier.setTitle(_translate("MainWindow", "File"))
|
self.menu_Fichier.setTitle(_translate("MainWindow", "File"))
|
||||||
self.menuMode.setTitle(_translate("MainWindow", "Mode"))
|
self.menuMode.setTitle(_translate("MainWindow", "Mode"))
|
||||||
|
@ -1332,11 +1354,12 @@ class Ui_MainWindow(object):
|
||||||
self.actSpellcheck.setText(_translate("MainWindow", "Spellcheck"))
|
self.actSpellcheck.setText(_translate("MainWindow", "Spellcheck"))
|
||||||
self.actSpellcheck.setShortcut(_translate("MainWindow", "F8"))
|
self.actSpellcheck.setShortcut(_translate("MainWindow", "F8"))
|
||||||
|
|
||||||
|
from ui.views.outlineView import outlineView
|
||||||
from ui.views.treeView import treeView
|
from ui.views.treeView import treeView
|
||||||
from ui.chkOutlineCompile import chkOutlineCompile
|
from ui.chkOutlineCompile import chkOutlineCompile
|
||||||
from ui.editors.editorWidget import editorWidget
|
|
||||||
from ui.collapsibleGroupBox2 import collapsibleGroupBox2
|
|
||||||
from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser
|
from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser
|
||||||
|
from ui.cmbOutlineLabelChoser import cmbOutlineLabelChoser
|
||||||
|
from ui.collapsibleGroupBox2 import collapsibleGroupBox2
|
||||||
|
from ui.editors.editorWidget import editorWidget
|
||||||
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
|
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
|
||||||
from ui.views.outlineView import outlineView
|
|
||||||
from ui.sldImportance import sldImportance
|
from ui.sldImportance import sldImportance
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabMain">
|
<widget class="QTabWidget" name="tabMain">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>5</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="documentMode">
|
<property name="documentMode">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
@ -1887,28 +1887,28 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_32">
|
<widget class="QLabel" name="label_32">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Compile</string>
|
<string>Compile</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="chkOutlineCompile" name="chkRedacCompile">
|
<widget class="chkOutlineCompile" name="chkRedacCompile">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_29">
|
<widget class="QLabel" name="label_29">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Goal</string>
|
<string>Goal</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLineEdit" name="txtRedacGoal">
|
<widget class="QLineEdit" name="txtRedacGoal">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
@ -1930,6 +1930,26 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_33">
|
||||||
|
<property name="text">
|
||||||
|
<string>Label</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="cmbOutlineLabelChoser" name="cmbRedacLabel">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="frame">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -2062,7 +2082,7 @@
|
||||||
<enum>QTabWidget::West</enum>
|
<enum>QTabWidget::West</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>3</number>
|
<number>4</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab_9">
|
<widget class="QWidget" name="tab_9">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
@ -2112,6 +2132,16 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QWidget" name="tab">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Labels</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QListView" name="lstDebugLabels"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -2337,6 +2367,11 @@
|
||||||
<extends>QTreeView</extends>
|
<extends>QTreeView</extends>
|
||||||
<header>ui.views.treeView.h</header>
|
<header>ui.views.treeView.h</header>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>cmbOutlineLabelChoser</class>
|
||||||
|
<extends>QComboBox</extends>
|
||||||
|
<header>ui.cmbOutlineLabelChoser.h</header>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections>
|
<connections>
|
||||||
|
|
|
@ -12,16 +12,21 @@ from ui.views.dndView import *
|
||||||
|
|
||||||
class outlineView(QTreeView, dndView):
|
class outlineView(QTreeView, dndView):
|
||||||
|
|
||||||
def __init__(self, parent=None, modelPersos=None):
|
def __init__(self, parent=None, modelPersos=None, modelLabels=None):
|
||||||
QTreeView.__init__(self, parent)
|
QTreeView.__init__(self, parent)
|
||||||
dndView.__init__(self)
|
dndView.__init__(self)
|
||||||
self.modelPersos = modelPersos
|
self.modelPersos = modelPersos
|
||||||
|
self.modelLabels = modelLabels
|
||||||
self.header().setStretchLastSection(False)
|
self.header().setStretchLastSection(False)
|
||||||
|
|
||||||
def setModelPersos(self, model):
|
def setModelPersos(self, model):
|
||||||
# This is used by treeOutlinePersoDelegate to select character
|
# This is used by treeOutlinePersoDelegate to select character
|
||||||
self.modelPersos = model
|
self.modelPersos = model
|
||||||
|
|
||||||
|
def setModelLabels(self, model):
|
||||||
|
# This is used by treeOutlineLabelDelegate to display labels
|
||||||
|
self.modelLabels = model
|
||||||
|
|
||||||
def setModel(self, model):
|
def setModel(self, model):
|
||||||
QTreeView.setModel(self, model)
|
QTreeView.setModel(self, model)
|
||||||
|
|
||||||
|
@ -34,12 +39,15 @@ class outlineView(QTreeView, dndView):
|
||||||
self.setItemDelegateForColumn(Outline.status.value, self.treePlanOutlineStatusDelegate)
|
self.setItemDelegateForColumn(Outline.status.value, self.treePlanOutlineStatusDelegate)
|
||||||
self.treePlanOutlineGoalPercentageDelegate = treeOutlineGoalPercentageDelegate()
|
self.treePlanOutlineGoalPercentageDelegate = treeOutlineGoalPercentageDelegate()
|
||||||
self.setItemDelegateForColumn(Outline.goalPercentage.value, self.treePlanOutlineGoalPercentageDelegate)
|
self.setItemDelegateForColumn(Outline.goalPercentage.value, self.treePlanOutlineGoalPercentageDelegate)
|
||||||
|
self.treePlanOutlineLabelDelegate = treeOutlineLabelDelegate(self.modelLabels)
|
||||||
|
self.setItemDelegateForColumn(Outline.label.value, self.treePlanOutlineLabelDelegate)
|
||||||
|
|
||||||
# Hiding columns
|
# Hiding columns
|
||||||
for c in range(1, self.model().columnCount()):
|
for c in range(1, self.model().columnCount()):
|
||||||
self.hideColumn(c)
|
self.hideColumn(c)
|
||||||
for c in [Outline.POV.value, Outline.status.value, Outline.compile.value,
|
for c in [Outline.POV.value, Outline.status.value, Outline.compile.value,
|
||||||
Outline.wordCount.value, Outline.goal.value, Outline.goalPercentage.value]:
|
Outline.wordCount.value, Outline.goal.value, Outline.goalPercentage.value,
|
||||||
|
Outline.label.value]:
|
||||||
self.showColumn(c)
|
self.showColumn(c)
|
||||||
|
|
||||||
self.header().setSectionResizeMode(Outline.title.value, QHeaderView.Stretch)
|
self.header().setSectionResizeMode(Outline.title.value, QHeaderView.Stretch)
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
#--!-- coding: utf8 --!--
|
#--!-- coding: utf8 --!--
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
from qt import *
|
from qt import *
|
||||||
from enums import *
|
from enums import *
|
||||||
from functions import *
|
from functions import *
|
||||||
|
|
||||||
|
|
||||||
class treeOutlinePersoDelegate(QStyledItemDelegate):
|
class treeOutlinePersoDelegate(QStyledItemDelegate):
|
||||||
|
|
||||||
def __init__(self, mdlPersos, parent=None):
|
def __init__(self, mdlPersos, parent=None):
|
||||||
|
@ -39,6 +37,7 @@ class treeOutlinePersoDelegate(QStyledItemDelegate):
|
||||||
editor.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole)
|
editor.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole)
|
||||||
|
|
||||||
editor.setCurrentIndex(editor.findData(index.data()))
|
editor.setCurrentIndex(editor.findData(index.data()))
|
||||||
|
editor.showPopup()
|
||||||
|
|
||||||
def setModelData(self, editor, model, index):
|
def setModelData(self, editor, model, index):
|
||||||
val = editor.currentData()
|
val = editor.currentData()
|
||||||
|
@ -50,6 +49,7 @@ class treeOutlinePersoDelegate(QStyledItemDelegate):
|
||||||
return self.mdlPersos.item(i, Perso.name.value).text()
|
return self.mdlPersos.item(i, Perso.name.value).text()
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
class treeOutlineCompileDelegate(QStyledItemDelegate):
|
class treeOutlineCompileDelegate(QStyledItemDelegate):
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
|
@ -58,6 +58,7 @@ class treeOutlineCompileDelegate(QStyledItemDelegate):
|
||||||
def displayText(self, value, locale):
|
def displayText(self, value, locale):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
|
class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
|
||||||
def __init__(self, rootIndex=None, parent=None):
|
def __init__(self, rootIndex=None, parent=None):
|
||||||
QStyledItemDelegate.__init__(self, parent)
|
QStyledItemDelegate.__init__(self, parent)
|
||||||
|
@ -109,6 +110,7 @@ class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
|
||||||
def displayText(self, value, locale):
|
def displayText(self, value, locale):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
class treeOutlineStatusDelegate(QStyledItemDelegate):
|
class treeOutlineStatusDelegate(QStyledItemDelegate):
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
|
@ -131,7 +133,61 @@ class treeOutlineStatusDelegate(QStyledItemDelegate):
|
||||||
for status in statuses:
|
for status in statuses:
|
||||||
editor.addItem(status)
|
editor.addItem(status)
|
||||||
editor.setCurrentIndex(editor.findText(index.data()))
|
editor.setCurrentIndex(editor.findText(index.data()))
|
||||||
|
editor.showPopup()
|
||||||
|
|
||||||
def setModelData(self, editor, model, index):
|
def setModelData(self, editor, model, index):
|
||||||
val = editor.currentText()
|
val = editor.currentText()
|
||||||
model.setData(index, val)
|
model.setData(index, val)
|
||||||
|
|
||||||
|
|
||||||
|
class treeOutlineLabelDelegate(QStyledItemDelegate):
|
||||||
|
|
||||||
|
def __init__(self, mdlLabels, parent=None):
|
||||||
|
QStyledItemDelegate.__init__(self, parent)
|
||||||
|
self.mdlLabels = mdlLabels
|
||||||
|
|
||||||
|
#def sizeHint(self, option, index):
|
||||||
|
#s = QStyledItemDelegate.sizeHint(self, option, index)
|
||||||
|
#if s.width() > 200:
|
||||||
|
#s.setWidth(200)
|
||||||
|
#elif s.width() < 100:
|
||||||
|
#s.setWidth(100)
|
||||||
|
#return s + QSize(18, 0)
|
||||||
|
|
||||||
|
def createEditor(self, parent, option, index):
|
||||||
|
item = index.internalPointer()
|
||||||
|
editor = QComboBox(parent)
|
||||||
|
editor.setAutoFillBackground(True)
|
||||||
|
editor.setFrame(False)
|
||||||
|
return editor
|
||||||
|
|
||||||
|
def setEditorData(self, editor, index):
|
||||||
|
for i in range(self.mdlLabels.rowCount()):
|
||||||
|
editor.addItem(self.mdlLabels.item(i, 0).icon(),
|
||||||
|
self.mdlLabels.item(i, 0).text())
|
||||||
|
|
||||||
|
val = index.internalPointer().data(Outline.label.value)
|
||||||
|
if not val: val = 0
|
||||||
|
editor.setCurrentIndex(int(val))
|
||||||
|
editor.showPopup()
|
||||||
|
|
||||||
|
def setModelData(self, editor, model, index):
|
||||||
|
val = editor.currentIndex()
|
||||||
|
model.setData(index, val)
|
||||||
|
|
||||||
|
def paint(self, painter, option, index):
|
||||||
|
if not index.isValid():
|
||||||
|
return QStyledItemDelegate.paint(self, painter, option, index)
|
||||||
|
else:
|
||||||
|
item = index.internalPointer()
|
||||||
|
|
||||||
|
d = item.data(index.column(), Qt.DisplayRole)
|
||||||
|
if not d:
|
||||||
|
d = 0
|
||||||
|
|
||||||
|
lbl = self.mdlLabels.item(int(d), 0)
|
||||||
|
opt = QStyleOptionViewItem(option)
|
||||||
|
self.initStyleOption(opt, self.mdlLabels.indexFromItem(lbl))
|
||||||
|
|
||||||
|
qApp.style().drawControl(QStyle.CE_ItemViewItem, opt, painter)
|
||||||
|
|
32
test_project/labels.xml
Normal file
32
test_project/labels.xml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<model>
|
||||||
|
<header>
|
||||||
|
<vertical>
|
||||||
|
<label row="0" text="1"/>
|
||||||
|
<label row="1" text="2"/>
|
||||||
|
<label row="2" text="3"/>
|
||||||
|
<label row="3" text="4"/>
|
||||||
|
<label row="4" text="5"/>
|
||||||
|
</vertical>
|
||||||
|
<horizontal>
|
||||||
|
<label row="0" text="1"/>
|
||||||
|
</horizontal>
|
||||||
|
</header>
|
||||||
|
<data>
|
||||||
|
<row row="0">
|
||||||
|
<col col="0"/>
|
||||||
|
</row>
|
||||||
|
<row row="1">
|
||||||
|
<col col="0">Idea</col>
|
||||||
|
</row>
|
||||||
|
<row row="2">
|
||||||
|
<col col="0">Note</col>
|
||||||
|
</row>
|
||||||
|
<row row="3">
|
||||||
|
<col col="0">Chapter</col>
|
||||||
|
</row>
|
||||||
|
<row row="4">
|
||||||
|
<col col="0">Scene</col>
|
||||||
|
</row>
|
||||||
|
</data>
|
||||||
|
</model>
|
|
@ -37,7 +37,7 @@
|
||||||
</outlineItem>
|
</outlineItem>
|
||||||
<outlineItem title="MOIMOIMOI" type="scene" summarySentance="Résumé" summaryFull="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**?" status="Second draft" compile="2" text="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Ben voilà, suffisait de demander ! " wordCount="21" setGoal="250"/>
|
<outlineItem title="MOIMOIMOI" type="scene" summarySentance="Résumé" summaryFull="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Là ça joue, et on est content. Pas de raison de se plaindre. **OK**?" status="Second draft" compile="2" text="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**? Ben voilà, suffisait de demander ! " wordCount="21" setGoal="250"/>
|
||||||
</outlineItem>
|
</outlineItem>
|
||||||
<outlineItem title="Nouveau A" type="folder" compile="2" wordCount="1084" setGoal="250">
|
<outlineItem title="Nouveau A" type="folder" label="4" compile="2" wordCount="1084" setGoal="250">
|
||||||
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
<outlineItem title="Nouveau" type="scene" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD ASDASd ASD adasaas adasds adssdawdas saasdASDASd ASD ASDASd ASD ASDASd ASD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" wordCount="211"/>
|
||||||
<outlineItem title="Titre cool" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
<outlineItem title="Titre cool" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||||
<outlineItem title="Nouveau Avec un nom franchement très long et on est mal barré pour l'imprimer correctement" type="scene" POV="2" compile="2" text="ASDASd ASD ASDASd ASD " wordCount="4"/>
|
<outlineItem title="Nouveau Avec un nom franchement très long et on est mal barré pour l'imprimer correctement" type="scene" POV="2" compile="2" text="ASDASd ASD ASDASd ASD " wordCount="4"/>
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
<outlineItem title="Nouveau" type="scene" status="First draft" compile="2" text="ASDASd ASD " wordCount="2"/>
|
<outlineItem title="Nouveau" type="scene" status="First draft" compile="2" text="ASDASd ASD " wordCount="2"/>
|
||||||
<outlineItem title="A" type="scene" status="Final" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
<outlineItem title="A" type="scene" status="Final" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||||
</outlineItem>
|
</outlineItem>
|
||||||
<outlineItem title="A" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
<outlineItem title="A" type="scene" POV="0" label="2" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||||
<outlineItem title="A" type="scene" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
<outlineItem title="A" type="scene" label="4" compile="2" text="asdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasdasdasd asd asd asd asd asdasd asdaasd asdasd asd aasdasd asd asd asd asd asdasd asdaasd " wordCount="58" setGoal="50"/>
|
||||||
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
<outlineItem title="B" type="scene" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" wordCount="12" setGoal="10"/>
|
||||||
</outlineItem>
|
</outlineItem>
|
||||||
|
|
Loading…
Reference in a new issue