Adds: labels (not yet editable)

This commit is contained in:
Olivier Keshavjee 2015-06-09 14:03:22 +02:00
parent 6a8c89d019
commit 7cb05b98f2
10 changed files with 257 additions and 32 deletions

View file

@ -33,12 +33,14 @@ class Outline(Enum):
summaryFull = 4
POV = 5
notes = 6
status = 7
compile = 8
text = 9
wordCount = 10
goal = 11
goalPercentage = 12
setGoal = 13 # The goal set by the user, if any. Can be different from goal which can be computed
label = 7
status = 8
compile = 9
text = 10
wordCount = 11
goal = 12
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)
textFormat = 14
textFormat = 15

View file

@ -134,10 +134,25 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.lstPersos.selectionModel().currentChanged.connect(self.changeCurrentPerso)
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
self.mdlOutline = outlineModel()
self.treeRedacOutline.setModel(self.mdlOutline)
self.treePlanOutline.setModelPersos(self.mdlPersos)
self.treePlanOutline.setModelLabels(self.mdlLabels)
self.treePlanOutline.setModel(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.cmbRedacPOV.setModels(self.mdlPersos, self.mdlOutline)
self.cmbRedacLabel.setModels(self.mdlLabels, self.mdlOutline)
self.cmbRedacStatus.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(self.mprOutline.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.chkRedacCompile.setCurrentModelIndex)
self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.setCurrentModelIndex)
@ -208,6 +225,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.tblDebugPersos.setModel(self.mdlPersos)
self.tblDebugPersosInfos.setModel(self.mdlPersosInfos)
self.treeDebugOutline.setModel(self.mdlOutline)
self.lstDebugLabels.setModel(self.mdlLabels)
# Playing with qStyle
self.cmbStyle.addItems(list(QStyleFactory.keys()))
@ -328,6 +346,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
loadStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(project))
loadStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(project))
loadStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(project))
loadStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(project))
self.mdlOutline.loadFromXML("{}/outline.xml".format(project))
# Stuff
@ -352,6 +371,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
saveStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
saveStandardItemModelXML(self.mdlPersos, "{}/perso.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))
# closeEvent

View 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()

View file

@ -19,6 +19,7 @@ class cmbOutlinePersoChoser(QComboBox):
self.mdlPersos.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():

View file

@ -958,14 +958,14 @@ class Ui_MainWindow(object):
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbRedacStatus)
self.label_32 = QtWidgets.QLabel(self.groupBox_4)
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.setText("")
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.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)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
@ -976,7 +976,19 @@ class Ui_MainWindow(object):
self.txtRedacGoal.setStyleSheet("border-radius: 6px;")
self.txtRedacGoal.setFrame(False)
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.groupBox_5 = collapsibleGroupBox2(self.tab_17)
self.groupBox_5.setFlat(True)
@ -1078,6 +1090,14 @@ class Ui_MainWindow(object):
self.treeDebugOutline.setObjectName("treeDebugOutline")
self.horizontalLayout_32.addWidget(self.treeDebugOutline)
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.tabMain.addTab(self.lytTabDebug, "")
self.horizontalLayout_2.addWidget(self.tabMain)
@ -1153,14 +1173,14 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuTools.menuAction())
self.retranslateUi(MainWindow)
self.tabMain.setCurrentIndex(5)
self.tabMain.setCurrentIndex(6)
self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0)
self.comboBox_2.setCurrentIndex(0)
self.stkPlotSummary.setCurrentIndex(1)
self.tabRedacInfos.setCurrentIndex(0)
self.tabWidget.setCurrentIndex(3)
self.tabWidget.setCurrentIndex(4)
self.pushButton_16.toggled['bool'].connect(self.plainTextEdit_7.setVisible)
self.btnPlotShowSummary.toggled['bool'].connect(self.grpPlotSummary.setVisible)
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_29.setText(_translate("MainWindow", "Goal"))
self.txtRedacGoal.setPlaceholderText(_translate("MainWindow", "Word count"))
self.label_33.setText(_translate("MainWindow", "Label"))
self.groupBox_5.setTitle(_translate("MainWindow", "Scene summary"))
self.txtRedacSummarySentance.setPlaceholderText(_translate("MainWindow", "One line scene summary"))
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_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), _translate("MainWindow", "Labels"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabDebug), _translate("MainWindow", "Debug"))
self.menu_Fichier.setTitle(_translate("MainWindow", "File"))
self.menuMode.setTitle(_translate("MainWindow", "Mode"))
@ -1332,11 +1354,12 @@ class Ui_MainWindow(object):
self.actSpellcheck.setText(_translate("MainWindow", "Spellcheck"))
self.actSpellcheck.setShortcut(_translate("MainWindow", "F8"))
from ui.views.outlineView import outlineView
from ui.views.treeView import treeView
from ui.chkOutlineCompile import chkOutlineCompile
from ui.editors.editorWidget import editorWidget
from ui.collapsibleGroupBox2 import collapsibleGroupBox2
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.views.outlineView import outlineView
from ui.sldImportance import sldImportance

View file

@ -18,7 +18,7 @@
<item>
<widget class="QTabWidget" name="tabMain">
<property name="currentIndex">
<number>5</number>
<number>6</number>
</property>
<property name="documentMode">
<bool>true</bool>
@ -1887,28 +1887,28 @@
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="QLabel" name="label_32">
<property name="text">
<string>Compile</string>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="chkOutlineCompile" name="chkRedacCompile">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_29">
<property name="text">
<string>Goal</string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QLineEdit" name="txtRedacGoal">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
@ -1930,6 +1930,26 @@
</property>
</widget>
</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>
</widget>
</item>
@ -2062,7 +2082,7 @@
<enum>QTabWidget::West</enum>
</property>
<property name="currentIndex">
<number>3</number>
<number>4</number>
</property>
<widget class="QWidget" name="tab_9">
<attribute name="title">
@ -2112,6 +2132,16 @@
</item>
</layout>
</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>
</item>
</layout>
@ -2337,6 +2367,11 @@
<extends>QTreeView</extends>
<header>ui.views.treeView.h</header>
</customwidget>
<customwidget>
<class>cmbOutlineLabelChoser</class>
<extends>QComboBox</extends>
<header>ui.cmbOutlineLabelChoser.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections>

View file

@ -12,16 +12,21 @@ from ui.views.dndView import *
class outlineView(QTreeView, dndView):
def __init__(self, parent=None, modelPersos=None):
def __init__(self, parent=None, modelPersos=None, modelLabels=None):
QTreeView.__init__(self, parent)
dndView.__init__(self)
self.modelPersos = modelPersos
self.modelLabels = modelLabels
self.header().setStretchLastSection(False)
def setModelPersos(self, model):
# This is used by treeOutlinePersoDelegate to select character
self.modelPersos = model
def setModelLabels(self, model):
# This is used by treeOutlineLabelDelegate to display labels
self.modelLabels = model
def setModel(self, model):
QTreeView.setModel(self, model)
@ -34,12 +39,15 @@ class outlineView(QTreeView, dndView):
self.setItemDelegateForColumn(Outline.status.value, self.treePlanOutlineStatusDelegate)
self.treePlanOutlineGoalPercentageDelegate = treeOutlineGoalPercentageDelegate()
self.setItemDelegateForColumn(Outline.goalPercentage.value, self.treePlanOutlineGoalPercentageDelegate)
self.treePlanOutlineLabelDelegate = treeOutlineLabelDelegate(self.modelLabels)
self.setItemDelegateForColumn(Outline.label.value, self.treePlanOutlineLabelDelegate)
# Hiding columns
for c in range(1, self.model().columnCount()):
self.hideColumn(c)
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.header().setSectionResizeMode(Outline.title.value, QHeaderView.Stretch)

View file

@ -1,13 +1,11 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
from qt import *
from enums import *
from functions import *
class treeOutlinePersoDelegate(QStyledItemDelegate):
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.setCurrentIndex(editor.findData(index.data()))
editor.showPopup()
def setModelData(self, editor, model, index):
val = editor.currentData()
@ -50,6 +49,7 @@ class treeOutlinePersoDelegate(QStyledItemDelegate):
return self.mdlPersos.item(i, Perso.name.value).text()
return ""
class treeOutlineCompileDelegate(QStyledItemDelegate):
def __init__(self, parent=None):
@ -58,6 +58,7 @@ class treeOutlineCompileDelegate(QStyledItemDelegate):
def displayText(self, value, locale):
return ""
class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
def __init__(self, rootIndex=None, parent=None):
QStyledItemDelegate.__init__(self, parent)
@ -109,6 +110,7 @@ class treeOutlineGoalPercentageDelegate(QStyledItemDelegate):
def displayText(self, value, locale):
return ""
class treeOutlineStatusDelegate(QStyledItemDelegate):
def __init__(self, parent=None):
@ -131,7 +133,61 @@ class treeOutlineStatusDelegate(QStyledItemDelegate):
for status in statuses:
editor.addItem(status)
editor.setCurrentIndex(editor.findText(index.data()))
editor.showPopup()
def setModelData(self, editor, model, index):
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
View 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>

View file

@ -37,7 +37,7 @@
</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**?&#10;&#10;Ben voilà, suffisait de demander ! " wordCount="21" setGoal="250"/>
</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 &#10;&#10;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 &#10;&#10;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 &#10;&#10;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 &#10;&#10;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="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="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 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" 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" 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>