Many things working great now

This commit is contained in:
Olivier Keshavjee 2015-06-04 07:08:49 +02:00
parent 245ea72eed
commit d58ae6a662
10 changed files with 314 additions and 37 deletions

View file

@ -12,6 +12,7 @@ from ui.treeOutlineDelegates import *
from loadSave import * from loadSave import *
from enums import * from enums import *
from models.outlineModel import * from models.outlineModel import *
from models.persosProxyModel import *
class MainWindow(QMainWindow, Ui_MainWindow): class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self): def __init__(self):
@ -84,10 +85,15 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Persos # Persos
self.mdlPersos = QStandardItemModel(0, 10) self.mdlPersos = QStandardItemModel(0, 10)
self.mdlPersosProxy = persosProxyModel()
self.mdlPersosProxy.setSourceModel(self.mdlPersos)
self.mdlPersosInfos = QStandardItemModel(1, 0) self.mdlPersosInfos = QStandardItemModel(1, 0)
self.mdlPersosInfos.insertColumn(0, [QStandardItem("ID")]) self.mdlPersosInfos.insertColumn(0, [QStandardItem("ID")])
self.mdlPersosInfos.setHorizontalHeaderLabels(["Description"]) self.mdlPersosInfos.setHorizontalHeaderLabels(["Description"])
self.lstPersos.setModel(self.mdlPersos) #self.lstPersos.setModel(self.mdlPersos)
self.lstPersos.setModel(self.mdlPersosProxy)
self.tblPersoInfos.setModel(self.mdlPersosInfos) self.tblPersoInfos.setModel(self.mdlPersosInfos)
self.tblPersoInfos.setRowHidden(0, True) self.tblPersoInfos.setRowHidden(0, True)
@ -114,7 +120,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.sldPersoImportance.importanceChanged.connect(self.mprPersos.submit) self.sldPersoImportance.importanceChanged.connect(self.mprPersos.submit)
self.mprPersos.setCurrentIndex(0) self.mprPersos.setCurrentIndex(0)
self.lstPersos.selectionModel().currentChanged.connect(self.mprPersos.setCurrentModelIndex)
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)
@ -180,6 +185,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacStatus.setCurrentModelIndex) self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacStatus.setCurrentModelIndex)
self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.lblRedacPOV.setHidden(idx.internalPointer().isFolder())) self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.lblRedacPOV.setHidden(idx.internalPointer().isFolder()))
self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.cmbRedacPOV.setHidden(idx.internalPointer().isFolder())) self.treeRedacOutline.selectionModel().currentChanged.connect(lambda idx: self.cmbRedacPOV.setHidden(idx.internalPointer().isFolder()))
self.treePlanOutline.selectionModel().currentChanged.connect(lambda idx: self.lblPlanPOV.setHidden(idx.internalPointer().isFolder()))
self.treePlanOutline.selectionModel().currentChanged.connect(lambda idx: self.cmbPlanPOV.setHidden(idx.internalPointer().isFolder()))
#Debug #Debug
@ -260,12 +267,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.mdlPersos.setItem(i, Perso.ID.value, item) self.mdlPersos.setItem(i, Perso.ID.value, item)
def removePerso(self): def removePerso(self):
i = self.lstPersos.currentIndex() i = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
self.mdlPersos.takeRow(i.row()) self.mdlPersos.takeRow(i.row())
self.mdlPersosInfos.takeColumn(i.row()+1) self.mdlPersosInfos.takeColumn(i.row()+1)
def changeCurrentPerso(self, trash=None): def changeCurrentPerso(self, trash=None):
idx = self.lstPersos.currentIndex() idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
self.mprPersos.setCurrentModelIndex(idx)
pid = self.mdlPersos.item(idx.row(), Perso.ID.value).text() pid = self.mdlPersos.item(idx.row(), Perso.ID.value).text()
for c in range(self.mdlPersosInfos.columnCount()): for c in range(self.mdlPersosInfos.columnCount()):
pid2 = self.mdlPersosInfos.item(0, c).text() pid2 = self.mdlPersosInfos.item(0, c).text()
@ -277,7 +286,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.tblPersoInfos.resizeColumnToContents(0) self.tblPersoInfos.resizeColumnToContents(0)
w = self.tblPersoInfos.viewport().width() w = self.tblPersoInfos.viewport().width()
w2 = self.tblPersoInfos.columnWidth(0) w2 = self.tblPersoInfos.columnWidth(0)
current = self.lstPersos.currentIndex().row() + 1 current = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex()).row() + 1
self.tblPersoInfos.setColumnWidth(current, w - w2) self.tblPersoInfos.setColumnWidth(current, w - w2)

View file

@ -323,12 +323,17 @@ class outlineItem():
return self._data[Outline(column)] return self._data[Outline(column)]
else: else:
return None return None
elif role == Qt.DecorationRole and column == Outline.title.value: elif role == Qt.DecorationRole and column == Outline.title.value:
if self.isFolder(): if self.isFolder():
return QIcon.fromTheme("folder") return QIcon.fromTheme("folder")
elif self.isScene(): elif self.isScene():
return QIcon.fromTheme("document-new") return QIcon.fromTheme("document-new")
elif role == Qt.ForegroundRole and column == Outline.title.value:
if not self.isCompile():
return QBrush(Qt.gray)
elif role == Qt.CheckStateRole and column == Outline.compile.value: elif role == Qt.CheckStateRole and column == Outline.compile.value:
if Outline(column) in self._data and self._data[Outline(column)]: if Outline(column) in self._data and self._data[Outline(column)]:
return Qt.Checked return Qt.Checked
@ -358,6 +363,9 @@ class outlineItem():
def isFolder(self): def isFolder(self):
return self._data[Outline.type] == "folder" return self._data[Outline.type] == "folder"
def isCompile(self):
return Outline.compile in self._data and self._data[Outline.compile]
def isScene(self): def isScene(self):
return self._data[Outline.type] == "scene" return self._data[Outline.type] == "scene"

View file

@ -0,0 +1,163 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
from __future__ import print_function
from __future__ import unicode_literals
from qt import *
from enums import *
from models.outlineModel import *
from enum import Enum
from lxml import etree as ET
class persosProxyModel(QAbstractProxyModel):
newStatuses = pyqtSignal()
def __init__(self, parent=None):
QAbstractProxyModel.__init__(self, parent)
self.rootItem = QStandardItem()
self.p1 = QStandardItem("Principal")
self.p2 = QStandardItem("Secondaire")
self.p3 = QStandardItem("Mineur")
self.cats = [
self.p1,
self.p2,
self.p3
]
def mapFromSource(self, sourceIndex):
if not sourceIndex.isValid():
return QModelIndex()
row = sourceIndex.row()
item = sourceIndex.internalPointer()
if row in self._map[0]:
row = self._map[0].index(row) + 1
elif row in self._map[1]:
row = len(self._map[0]) + 1 + self._map[1].index(row) + 1
elif row in self._map[2]:
row = len(self._map[0]) + 1 + len(self._map[1]) + 1 + self._map[2].index(row) + 1
return self.createIndex(row, sourceIndex.column(), item)
def flags(self, index):
if not index.isValid():
return Qt.NoItemFlags
if index.isValid() and not self.mapToSource(index).isValid():
return Qt.NoItemFlags#Qt.ItemIsEnabled
else:
return Qt.ItemIsEnabled | Qt.ItemIsSelectable
def mapToSource(self, proxyIndex):
if not proxyIndex.isValid():
return QModelIndex()
row = proxyIndex.row()
if row == 0:
return QModelIndex()
elif row < len(self._map[0]) + 1:
row = self._map[0][row-1]
elif row == len(self._map[0]) + 1:
return QModelIndex()
elif row < len(self._map[0]) + 1 + len(self._map[1]) + 1:
row = self._map[1][row - 2 - len(self._map[0])]
elif row == len(self._map[0]) + 1 + len(self._map[1]) + 1:
return QModelIndex()
else:
row = self._map[2][row - 3 - len(self._map[0]) - len(self._map[1])]
item = proxyIndex.internalPointer()
return self.sourceModel().createIndex(row, proxyIndex.column(), item)
def setSourceModel(self, model):
QAbstractProxyModel.setSourceModel(self, model)
self.sourceModel().dataChanged.connect(self.mapModel)
self.sourceModel().rowsInserted.connect(self.mapModel)
self.sourceModel().rowsRemoved.connect(self.mapModel)
self.sourceModel().rowsMoved.connect(self.mapModel)
self.mapModel()
def mapModel(self):
self.beginResetModel()
src = self.sourceModel()
self._map = [[], [], []]
for i in range(src.rowCount()):
item = src.item(i, Perso.importance.value)
ID = src.item(i, Perso.ID.value)
if item:
imp = int(item.text())
else:
imp = 0
self._map[2-imp].append(i)
self.endResetModel()
def numberOfPersosByImportance(self):
return [len(i) for i in self._map]
def data(self, index, role=Qt.DisplayRole):
row = index.row()
if index.isValid() and not self.mapToSource(index).isValid():
if role == Qt.DisplayRole:
n = self.numberOfPersosByImportance()
p = 0 if row == 0 else \
1 if row == n[0] + 1 else \
2
return self.cats[p].text()
else:
return self.sourceModel().data(self.mapToSource(index), role)
def index(self, row, column, parent):
n = self.numberOfPersosByImportance()
if row == 0 or row == n[0] + 1 or row == n[0]+n[1]+2:
p = 0 if row == 0 else \
1 if row == n[0] + 1 else \
2
return self.createIndex(row, column, self.cats[p])
else:
if row < len(self._map[0]) + 1:
nrow = self._map[0][row - 1]
elif row < len(self._map[0]) + 1 + len(self._map[1]) + 1:
nrow = self._map[1][row - 2 - len(self._map[0])]
else:
nrow = self._map[2][row - 3 - len(self._map[0]) - len(self._map[1])]
return self.mapFromSource(self.sourceModel().index(nrow, column, QModelIndex()))
def parent(self, index=QModelIndex()):
return QModelIndex()
def rowCount(self, parent=QModelIndex()):
return self.sourceModel().rowCount(QModelIndex())+3
def columnCount(self, parent=QModelIndex()):
return self.sourceModel().columnCount(QModelIndex())
def item(self, row, col, parent=QModelIndex()):
idx = self.mapToSource(self.index(row, col, parent))
return self.sourceModel().item(idx.row(), idx.column())
#def setData(self, index, value, role=Qt.EditRole):
#pass

View file

@ -0,0 +1,53 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
from __future__ import print_function
from __future__ import unicode_literals
from qt import *
from enums import *
class cmbOutlinePersoChoser(QComboBox):
def __init__(self, parent=None):
QComboBox.__init__(self, parent)
self.activated[int].connect(self.changed)
self.currentModelIndex = None
def setModels(self, mdlPersos, mdlOutline):
self.mdlPersos = mdlPersos
self.mdlPersos.dataChanged.connect(self.updateItems)
self.mdlOutline = mdlOutline
self.mdlOutline.dataChanged.connect(self.updateSelectedItem)
def updateSelectedItem(self, idx1=None, idx2=None):
if not self.currentModelIndex:
self.setCurrentIndex(0)
else:
item = self.currentModelIndex.internalPointer()
POV = item.data(Outline.POV)
idx = self.findData(POV)
if idx <> -1:
self.setCurrentIndex(idx)
else:
self.setCurrentIndex(0)
def changed(self, idx):
if self.currentModelIndex:
modelIndex = self.mdlOutline.index(self.currentModelIndex.row(), Outline.POV.value, self.currentModelIndex.parent())
self.mdlOutline.setData(modelIndex, self.currentData())
def setCurrentModelIndex(self, idx):
self.currentModelIndex = idx
self.updateSelectedItem()
def updateItems(self):
self.clear()
self.addItem("")
for i in range(self.mdlPersos.rowCount()):
try:
self.addItem(self.mdlPersos.item(i, Perso.name.value).text(), self.mdlPersos.item(i, Perso.ID.value).text())
except:
pass
if self.currentModelIndex:
self.updateSelectedItem()

View file

@ -0,0 +1,52 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
from __future__ import print_function
from __future__ import unicode_literals
from qt import *
from enums import *
class cmbOutlineStatusChoser(QComboBox):
def __init__(self, parent=None):
QComboBox.__init__(self, parent)
self.activated[int].connect(self.changed)
self.currentModelIndex = None
self.setEditable(True)
self.setAutoFillBackground(True)
def setModel(self, mdlOutline):
self.mdlOutline = mdlOutline
self.mdlOutline.dataChanged.connect(self.updateItems)
self.mdlOutline.dataChanged.connect(self.updateSelectedItem)
self.mdlOutline.newStatuses.connect(self.updateItems)
self.updateItems()
def updateSelectedItem(self, idx1=None, idx2=None):
if not self.currentModelIndex:
self.setCurrentIndex(0)
else:
item = self.currentModelIndex.internalPointer()
self.setCurrentIndex(self.findText(item.data(Outline.status.value)))
def changed(self, idx):
if self.currentModelIndex:
modelIndex = self.mdlOutline.index(self.currentModelIndex.row(), Outline.status.value, self.currentModelIndex.parent())
self.mdlOutline.setData(modelIndex, self.currentText())
def setCurrentModelIndex(self, idx):
self.currentModelIndex = idx
self.updateSelectedItem()
def updateItems(self):
self.clear()
self.addItem("")
for status in self.mdlOutline.statuses:
self.addItem(status)
if self.currentModelIndex:
self.updateSelectedItem()

View file

@ -268,7 +268,6 @@ class Ui_MainWindow(object):
self.verticalLayout_8.setObjectName("verticalLayout_8") self.verticalLayout_8.setObjectName("verticalLayout_8")
self.lstPersos = QtWidgets.QListView(self.groupBox) self.lstPersos = QtWidgets.QListView(self.groupBox)
self.lstPersos.setDragEnabled(True) self.lstPersos.setDragEnabled(True)
self.lstPersos.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove)
self.lstPersos.setObjectName("lstPersos") self.lstPersos.setObjectName("lstPersos")
self.verticalLayout_8.addWidget(self.lstPersos) self.verticalLayout_8.addWidget(self.lstPersos)
self.horizontalLayout_14 = QtWidgets.QHBoxLayout() self.horizontalLayout_14 = QtWidgets.QHBoxLayout()
@ -710,9 +709,9 @@ class Ui_MainWindow(object):
self.verticalLayout_13.setObjectName("verticalLayout_13") self.verticalLayout_13.setObjectName("verticalLayout_13")
self.horizontalLayout_11 = QtWidgets.QHBoxLayout() self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
self.horizontalLayout_11.setObjectName("horizontalLayout_11") self.horizontalLayout_11.setObjectName("horizontalLayout_11")
self.label_9 = QtWidgets.QLabel(self.groupbox) self.lblPlanPOV = QtWidgets.QLabel(self.groupbox)
self.label_9.setObjectName("label_9") self.lblPlanPOV.setObjectName("lblPlanPOV")
self.horizontalLayout_11.addWidget(self.label_9) self.horizontalLayout_11.addWidget(self.lblPlanPOV)
self.cmbPlanPOV = cmbOutlinePersoChoser(self.groupbox) self.cmbPlanPOV = cmbOutlinePersoChoser(self.groupbox)
self.cmbPlanPOV.setFrame(False) self.cmbPlanPOV.setFrame(False)
self.cmbPlanPOV.setObjectName("cmbPlanPOV") self.cmbPlanPOV.setObjectName("cmbPlanPOV")
@ -866,7 +865,6 @@ class Ui_MainWindow(object):
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.cmbRedacPOV.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.cmbRedacPOV.sizePolicy().hasHeightForWidth())
self.cmbRedacPOV.setSizePolicy(sizePolicy) self.cmbRedacPOV.setSizePolicy(sizePolicy)
self.cmbRedacPOV.setFrame(False)
self.cmbRedacPOV.setObjectName("cmbRedacPOV") self.cmbRedacPOV.setObjectName("cmbRedacPOV")
self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbRedacPOV) self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbRedacPOV)
self.label_30 = QtWidgets.QLabel(self.groupBox_4) self.label_30 = QtWidgets.QLabel(self.groupBox_4)
@ -878,7 +876,7 @@ class Ui_MainWindow(object):
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.cmbRedacStatus.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.cmbRedacStatus.sizePolicy().hasHeightForWidth())
self.cmbRedacStatus.setSizePolicy(sizePolicy) self.cmbRedacStatus.setSizePolicy(sizePolicy)
self.cmbRedacStatus.setFrame(False) self.cmbRedacStatus.setEditable(True)
self.cmbRedacStatus.setObjectName("cmbRedacStatus") self.cmbRedacStatus.setObjectName("cmbRedacStatus")
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)
@ -1045,7 +1043,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menu_Aide.menuAction()) self.menubar.addAction(self.menu_Aide.menuAction())
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.tabMain.setCurrentIndex(6) self.tabMain.setCurrentIndex(2)
self.tabSummary.setCurrentIndex(0) self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0) self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0) self.tabPlot.setCurrentIndex(0)
@ -1160,8 +1158,8 @@ class Ui_MainWindow(object):
self.treeWidget_2.topLevelItem(1).child(0).setText(0, _translate("MainWindow", "Scène 1")) 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.topLevelItem(1).child(1).setText(0, _translate("MainWindow", "Scène 2"))
self.treeWidget_2.setSortingEnabled(__sortingEnabled) self.treeWidget_2.setSortingEnabled(__sortingEnabled)
self.groupbox.setTitle(_translate("MainWindow", "Détails de la scène")) self.groupbox.setTitle(_translate("MainWindow", "Détails"))
self.label_9.setText(_translate("MainWindow", "POV")) self.lblPlanPOV.setText(_translate("MainWindow", "POV"))
self.txtPlanSummarySentance.setPlaceholderText(_translate("MainWindow", "Résumé de la scène en une ligne")) self.txtPlanSummarySentance.setPlaceholderText(_translate("MainWindow", "Résumé de la scène en une ligne"))
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Plan")) self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabOutline), _translate("MainWindow", "Plan"))
self.groupBox_4.setTitle(_translate("MainWindow", "Propriétés")) self.groupBox_4.setTitle(_translate("MainWindow", "Propriétés"))
@ -1211,7 +1209,7 @@ class Ui_MainWindow(object):
self.actShowHelp.setText(_translate("MainWindow", "Afficher les &bulles d\'aide")) self.actShowHelp.setText(_translate("MainWindow", "Afficher les &bulles d\'aide"))
self.actShowHelp.setShortcut(_translate("MainWindow", "Ctrl+Shift+B")) self.actShowHelp.setShortcut(_translate("MainWindow", "Ctrl+Shift+B"))
from ui.collapsibleGroupBox import collapsibleGroupBox
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
from ui.sldImportance import sldImportance from ui.sldImportance import sldImportance
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
from ui.collapsibleGroupBox import collapsibleGroupBox
from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser

View file

@ -18,7 +18,7 @@
<item> <item>
<widget class="QTabWidget" name="tabMain"> <widget class="QTabWidget" name="tabMain">
<property name="currentIndex"> <property name="currentIndex">
<number>6</number> <number>2</number>
</property> </property>
<property name="documentMode"> <property name="documentMode">
<bool>true</bool> <bool>true</bool>
@ -506,9 +506,6 @@
<property name="dragEnabled"> <property name="dragEnabled">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="dragDropMode">
<enum>QAbstractItemView::InternalMove</enum>
</property>
</widget> </widget>
</item> </item>
<item> <item>
@ -1352,13 +1349,13 @@
<item> <item>
<widget class="QGroupBox" name="groupbox"> <widget class="QGroupBox" name="groupbox">
<property name="title"> <property name="title">
<string>Détails de la scène</string> <string>Détails</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_13"> <layout class="QVBoxLayout" name="verticalLayout_13">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_11"> <layout class="QHBoxLayout" name="horizontalLayout_11">
<item> <item>
<widget class="QLabel" name="label_9"> <widget class="QLabel" name="lblPlanPOV">
<property name="text"> <property name="text">
<string>POV</string> <string>POV</string>
</property> </property>
@ -1670,9 +1667,6 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="frame">
<bool>false</bool>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@ -1690,8 +1684,8 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="frame"> <property name="editable">
<bool>false</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>

View file

@ -1,21 +1,21 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<outlineItem title="root" type="folder"> <outlineItem title="root" type="folder">
<outlineItem title="NouveauNouveauNouveauNouveauNouveauNouveau asd asd s Franchement?" type="scene" summarySentance="Texte" POV="2" status="TODO" compile="2"/> <outlineItem title="NouveauNouveauNouveauNouveauNouveauNouveau asd asd s Franchement?" type="scene" summarySentance="Texte" POV="2" status="Second draft" compile="2"/>
<outlineItem title="Nouveau" type="folder" compile="2"> <outlineItem title="Nouveau" type="folder" compile="2">
<outlineItem title="Nouveau" type="scene" POV="2" compile="2"/> <outlineItem title="Nouveau" type="scene" POV="2" status="First draft" compile="2"/>
</outlineItem> </outlineItem>
<outlineItem title="éüæ" type="folder" summarySentance="Il arrive au comptoir" summaryFull="Il arrive au comptoir après avoir garé son cheval, et mange une grosse glace à la vanille." notes="Utiliser un jeu de mot sur &quot;comptoir&quot; / &quot;abreuvoir&quot;" compile="2" text="Le texte.&#10;&#10;De l'histoire."> <outlineItem title="éüæ" type="folder" summarySentance="Il arrive au comptoir" summaryFull="Il arrive au comptoir après avoir garé son cheval, et mange une grosse glace à la vanille." notes="Utiliser un jeu de mot sur &quot;comptoir&quot; / &quot;abreuvoir&quot;" compile="2" text="Le texte.&#10;&#10;De l'histoire.">
<outlineItem title="Nouveau" type="scene" POV="1" status="TODO" compile="True" text="Le texte du truc."/> <outlineItem title="Nouveau" type="scene" POV="0" status="TODO" compile="2" text="Le texte du truc."/>
</outlineItem> </outlineItem>
<outlineItem title="Nouveau" type="folder" status="Second draft *"> <outlineItem title="Nouveau" type="folder" status="Second draft" compile="True">
<outlineItem title="Nouveau" type="folder"> <outlineItem title="Nouveau" type="folder">
<outlineItem title="Nouveau" type="folder"/> <outlineItem title="Nouveau" type="folder"/>
<outlineItem title="Nouveau" type="folder"/> <outlineItem title="Nouveau" type="folder" compile="2"/>
<outlineItem title="Nouveau" type="folder"/> <outlineItem title="Nouveau" type="folder"/>
<outlineItem title="Nouveau" type="folder"/> <outlineItem title="Nouveau" type="folder"/>
</outlineItem> </outlineItem>
</outlineItem> </outlineItem>
<outlineItem title="Nouveau" type="folder" status="TODO"/> <outlineItem title="Nouveau" type="folder" status="TODO" compile="2"/>
<outlineItem title="Nouveau" type="folder" status="First draft"/> <outlineItem title="Nouveau" type="folder" status="First draft"/>
<outlineItem title="Nouveau" type="folder" status="First draft"> <outlineItem title="Nouveau" type="folder" status="First draft">
<outlineItem title="Nouveau" type="scene"/> <outlineItem title="Nouveau" type="scene"/>

View file

@ -40,7 +40,7 @@ Pour voir.</col>
<row row="1"> <row row="1">
<col col="0">Ginette</col> <col col="0">Ginette</col>
<col col="1">1</col> <col col="1">1</col>
<col col="2"/> <col col="2">1</col>
<col col="3"/> <col col="3"/>
<col col="4"/> <col col="4"/>
<col col="5"/> <col col="5"/>
@ -53,7 +53,7 @@ Pour voir.</col>
<row row="2"> <row row="2">
<col col="0">Nouveau perso avec un nom pas très long</col> <col col="0">Nouveau perso avec un nom pas très long</col>
<col col="1">2</col> <col col="1">2</col>
<col col="2"/> <col col="2">0</col>
<col col="3"/> <col col="3"/>
<col col="4"/> <col col="4"/>
<col col="5"/> <col col="5"/>

View file

@ -24,12 +24,12 @@
<col col="0">Age</col> <col col="0">Age</col>
<col col="1">42</col> <col col="1">42</col>
<col col="2">12</col> <col col="2">12</col>
<col col="3"/> <col col="3">11</col>
</row> </row>
<row row="2"> <row row="2">
<col col="0">Animal préféré</col> <col col="0">Animal préféré</col>
<col col="1">Pingouin</col> <col col="1">Pingouin</col>
<col col="2">Crevette aquatique</col> <col col="2"/>
<col col="3"/> <col col="3"/>
</row> </row>
</data> </data>