Saves to single zipfile.

This commit is contained in:
Olivier Keshavjee 2015-06-17 13:25:46 +02:00
parent dadf14518d
commit 02a81996a9
13 changed files with 118 additions and 350 deletions

3
.gitignore vendored
View file

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

View file

@ -6,4 +6,5 @@ Dépendances:
- lxml
Optional:
- pyenchant
- pyenchant
- zlib

View file

@ -4,8 +4,35 @@
from qt import *
from functions import *
from lxml import etree as ET
import zipfile
try:
import zlib # Used with zipfile for compression
compression = zipfile.ZIP_DEFLATED
except:
compression = zipfile.ZIP_STORED
def saveStandardItemModelXML(mdl, xml):
def saveFilesToZip(files, zipname):
"""Saves given files to zipname.
files is actually a list of (content, filename)."""
zf = zipfile.ZipFile(zipname, mode="w")
for content, filename in files:
zf.writestr(filename, content, compress_type=compression)
zf.close()
def loadFilesFromZip(zipname):
"""Returns the content of zipfile as a dict of filename:content."""
zf = zipfile.ZipFile(zipname)
files = {}
for f in zf.namelist():
files[f] = zf.read(f)
return files
def saveStandardItemModelXML(mdl, xml=None):
"""Saves the given QStandardItemModel to XML.
If xml (filename) is given, saves to xml. Otherwise returns as string."""
root = ET.Element("model")
root.attrib["version"] = qApp.applicationVersion()
@ -41,20 +68,28 @@ def saveStandardItemModelXML(mdl, xml):
col.text = mdl.data(mdl.index(x, y))
#print(qApp.tr("Saving to {}.").format(xml))
ET.ElementTree(root).write(xml, encoding="UTF-8", xml_declaration=True, pretty_print=True)
if xml:
ET.ElementTree(root).write(xml, encoding="UTF-8", xml_declaration=True, pretty_print=True)
else:
return ET.tostring(root, encoding="UTF-8", xml_declaration=True, pretty_print=True)
def loadStandardItemModelXML(mdl, xml):
def loadStandardItemModelXML(mdl, xml, fromString=False):
"""Load data to a QStandardItemModel mdl from xml.
By default xml is a filename. If fromString=True, xml is a string containg the data."""
#print(qApp.tr("Loading {}... ").format(xml), end="")
try:
tree = ET.parse(xml)
except:
print("Failed.")
return
if not fromString:
try:
tree = ET.parse(xml)
except:
print("Failed.")
return
else:
root = ET.fromstring(xml)
root = tree.getroot()
#root = tree.getroot()
#Header
hLabels = []

View file

@ -226,7 +226,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.lstDebugLabels.setModel(self.mdlLabels)
self.lstDebugStatus.setModel(self.mdlStatus)
self.loadProject("test_project")
self.loadProject("test_project.zip")
####################################################################################################
# OUTLINE #
@ -375,7 +375,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.loadDatas()
# Load settings
settings.load("{}/settings.pickle".format(project))
self.generateViewMenu()
self.sldCorkSizeFactor.setValue(settings.corkSizeFactor)
self.actSpellcheck.setChecked(settings.spellcheck)
@ -435,29 +434,47 @@ class MainWindow(QMainWindow, Ui_MainWindow):
if settings.saveOnQuit:
self.saveDatas()
# Save settings
settings.save("{}/settings.pickle".format(self.currentProject))
# closeEvent
QMainWindow.closeEvent(self, event)
def saveDatas(self):
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))
saveStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(self.currentProject))
self.mdlOutline.saveToXML("{}/outline.xml".format(self.currentProject))
# Saving
files = []
files.append((saveStandardItemModelXML(self.mdlFlatData), "flatModel.xml"))
files.append((saveStandardItemModelXML(self.mdlPersos), "perso.xml"))
files.append((saveStandardItemModelXML(self.mdlPersosInfos), "persoInfos.xml"))
files.append((saveStandardItemModelXML(self.mdlLabels), "labels.xml"))
files.append((saveStandardItemModelXML(self.mdlStatus), "status.xml"))
files.append((self.mdlOutline.saveToXML(), "outline.xml"))
files.append((settings.save(),"settings.pickle"))
saveFilesToZip(files, self.currentProject)
# Giving some feedback
print(self.tr("Project {} saved.").format(self.currentProject))
self.statusBar().showMessage(self.tr("Project {} saved.").format(self.currentProject), 5000)
def loadDatas(self):
loadStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
loadStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(self.currentProject))
loadStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(self.currentProject))
loadStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(self.currentProject))
loadStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(self.currentProject))
self.mdlOutline.loadFromXML("{}/outline.xml".format(self.currentProject))
# Loading
files = loadFilesFromZip(self.currentProject)
if "flatModel.xml" in files:
loadStandardItemModelXML(self.mdlFlatData, files["flatModel.xml"], fromString=True)
if "perso.xml" in files:
loadStandardItemModelXML(self.mdlPersos, files["perso.xml"], fromString=True)
if "persoInfos.xml" in files:
loadStandardItemModelXML(self.mdlPersosInfos, files["persoInfos.xml"], fromString=True)
if "labels.xml" in files:
loadStandardItemModelXML(self.mdlLabels, files["labels.xml"], fromString=True)
if "status.xml" in files:
loadStandardItemModelXML(self.mdlStatus, files["status.xml"], fromString=True)
if "outline.xml" in files:
self.mdlOutline.loadFromXML(files["outline.xml"], fromString=True)
if "settings.pickle" in files:
settings.load(files["settings.pickle"], fromString=True)
# Giving some feedback
print(self.tr("Project {} loaded.").format(self.currentProject))
self.statusBar().showMessage(self.tr("Project {} loaded.").format(self.currentProject), 5000)

View file

@ -296,17 +296,23 @@ class outlineModel(QAbstractItemModel):
################# XML / saving / loading #################
def saveToXML(self, xml):
def saveToXML(self, xml=None):
"If xml (filename) is given, saves the items to xml. Otherwise returns as string."
root = ET.XML(self.rootItem.toXML())
ET.ElementTree(root).write(xml, encoding="UTF-8", xml_declaration=True, pretty_print=True)
if xml:
ET.ElementTree(root).write(xml, encoding="UTF-8", xml_declaration=True, pretty_print=True)
else:
return ET.tostring(root, encoding="UTF-8", xml_declaration=True, pretty_print=True)
def loadFromXML(self, xml):
#try:
def loadFromXML(self, xml, fromString=False):
"Load from xml. Assume that xml is a filename. If fromString=True, xml is the content."
if not fromString:
root = ET.parse(xml)
self.rootItem = outlineItem(self, xml=ET.tostring(root))
#except:
#print("N'arrive pas à ouvrir {}".format(xml))
#return
else:
root = ET.fromstring(xml)
self.rootItem = outlineItem(self, xml=ET.tostring(root))
def pathToIndex(self, index, path=""):
if not index.isValid():

View file

@ -33,7 +33,7 @@ autoSave = True
autoSaveDelay = 5
saveOnQuit = True
def save(filename):
def save(filename=None):
global spellcheck, dict, corkSliderFactor, viewSettings, corkSizeFactor, folderView, lastTab, lastIndex, \
autoSave, autoSaveDelay, saveOnQuit
@ -55,19 +55,27 @@ def save(filename):
#print("Saving:")
#pp.pprint(allSettings)
f = open(filename, "wb")
pickle.dump(allSettings, f)
if filename:
f = open(filename, "wb")
pickle.dump(allSettings, f)
else:
return pickle.dumps(allSettings)
def load(filename):
try:
global allSettings
f = open(filename, "rb")
allSettings = pickle.load(f)
except:
print("{} doesn't exist, cannot load settings.".format(filename))
return
def load(string, fromString=False):
"""Load settings from 'string'. 'string' is the filename of the pickle dump.
If fromString=True, string is the data of the pickle dumps."""
global allSettings
if not fromString:
try:
f = open(string, "rb")
allSettings = pickle.load(f)
except:
print("{} doesn't exist, cannot load settings.".format(string))
return
else:
allSettings = pickle.loads(string)
#pp=pprint.PrettyPrinter(indent=4, compact=False)
#print("Loading:")

View file

@ -1,60 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<model version="0.1">
<header>
<vertical>
<label row="0" text="Infos générales"/>
<label row="1" text="Summary"/>
</vertical>
<horizontal>
<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"/>
<label row="5" text="6"/>
<label row="6" text="7"/>
<label row="7" text="8"/>
</horizontal>
</header>
<data>
<row row="0">
<col col="0">Titre du livre</col>
<col col="1">Sous-titre</col>
<col col="2"/>
<col col="3"/>
<col col="4">Fantasy</col>
<col col="5">CC-BY-SA</col>
<col col="6">Auteur Cool</col>
<col col="7">auteur@cool.com</col>
</row>
<row row="1">
<col col="0">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name="qrichtext" content="1" /&gt;&lt;style type="text/css"&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=" font-family:'Oxygen-Sans'; font-size:10pt; font-weight:400; font-style:normal;"&gt;
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"&gt;Bonjour asdasd&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</col>
<col col="1">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 </col>
<col col="2">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 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 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 </col>
<col col="3">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
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 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 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
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 </col>
<col col="4"/>
<col col="5"/>
<col col="6"/>
<col col="7"/>
</row>
</data>
</model>

View file

@ -1,36 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<model version="0.1">
<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"/>
<label row="5" text="6"/>
</vertical>
<horizontal>
<label row="0" text="1"/>
</horizontal>
</header>
<data>
<row row="0">
<col col="0" color="#00000000"/>
</row>
<row row="1">
<col col="0" color="#ffffff00">Idée</col>
</row>
<row row="2">
<col col="0" color="#ff00ff00">Note</col>
</row>
<row row="3">
<col col="0" color="#ff0000ff">Chapitre</col>
</row>
<row row="4">
<col col="0" color="#ffff0000">Scène</col>
</row>
<row row="5">
<col col="0" color="#ffc9ff9d">Nouveau label</col>
</row>
</data>
</model>

View file

@ -1,63 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<outlineItem title="root" type="folder" compile="2">
<outlineItem title="Nouveau" type="folder" compile="2">
<outlineItem title="Nouveau" type="text" POV="1" label="2" status="2" compile="2" text="return QTextEdit.resizeEvent(self, e) ad ad ad ad adaasd ad adsdasd ad e drset"/>
</outlineItem>
<outlineItem title="Parent" type="folder" POV="0" label="1" compile="2">
<outlineItem title="Nouveau" type="folder" summarySentance="Résumé de la scène en une phrase" compile="2">
<outlineItem title="A" type="text" compile="2" text="§Du texteDu texteDu text ad ad ad ad a Du texteDu te asd " setGoal="10"/>
<outlineItem title="B" type="text" compile="2" setGoal="3"/>
<outlineItem title="C" type="text" compile="2" text="adasd ad ad asdasd asdasdasdasd asdad asd asd asd asd asd as as " setGoal="3"/>
<outlineItem title="Nouveau" type="folder" compile="2">
<outlineItem title="Interest" type="text" compile="2" text="s" setGoal="100"/>
<outlineItem title="Nouveau" type="text" compile="2"/>
</outlineItem>
</outlineItem>
<outlineItem title="Nouveau" type="folder" summarySentance="Résumé de la scène en une phrase" summaryFull="asdasd asd " label="2" compile="2">
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
</outlineItem>
<outlineItem title="Nouveau" type="folder" notes="None" label="1" compile="2">
<outlineItem title="Nouveau" type="folder" compile="2">
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
</outlineItem>
<outlineItem title="Nouveau" type="text" compile="2" text="ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD **ASDASd** ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;" setGoal="100"/>
<outlineItem title="Nouveau s" type="text" summaryFull="asd asdasd asaa asd asd " POV="1" compile="2" text="ASDASd ASD ASDASd ASD asd sss ad ad ssss" setGoal="10"/>
<outlineItem title="MOIMOIMOI" type="text" POV="1" compile="2" text="ASDASd ASD ASDASd ASD ASDASd ASD **ssss**" setGoal="10"/>
<outlineItem title="Nouveau s" type="text" POV="1" compile="2" text="ASDASd ASD ASDASd ASD asd sss ad ad ssss" setGoal="10"/>
<outlineItem title="Nouveau" type="text" compile="2" text="ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD **ASDASd** ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;" setGoal="100"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="Nouveau" type="text" compile="2" text="ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD **ASDASd** ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;ASDASd ASD ASDASd ASD &#10;asd asd &#10;" setGoal="100"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="Nouveau s" type="text" summaryFull="asd asdasd asaa asd asd " POV="1" compile="2" text="ASDASd ASD ASDASd ASD asd sss ad ad ssss" setGoal="10"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="B" type="text" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
</outlineItem>
<outlineItem title="MOIMOIMOI" type="text" summarySentance="Résumé" notes="None" compile="2" text="Là ça joue, et on est content. Pas de raison de se plaindre. **OK**?&#10;&#10;Ben voilà, suffisait de demander ! " setGoal="250"/>
</outlineItem>
<outlineItem title="Nouveau A" type="folder" POV="0" label="5" status="1" compile="2">
<outlineItem title="Nouveau" type="text" label="0" 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" setGoal="250"/>
<outlineItem title="Nouveau Avec un nom franchement très long et on est mal barré pour l'imprimer correctement" type="text" POV="2" label="0" compile="2" text="ASDASd ASD ASDASd ASD "/>
<outlineItem title="B" type="text" label="0" status="0" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="B" type="text" label="0" status="0" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="B" type="text" label="0" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="Nouveau" type="text" label="0" compile="2"/>
<outlineItem title="Nouveau" type="text" label="0" 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" setGoal="25"/>
<outlineItem title="B" type="text" label="0" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="A" type="text" label="0" 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 " setGoal="50"/>
<outlineItem title="B" type="text" label="0" compile="2" text="asd asd asd asd asd asd asd asd asd asd asd" setGoal="10"/>
<outlineItem title="Nouveau" type="text" label="0" compile="2" text="ASDASd ASD "/>
<outlineItem title="A" type="text" label="0" 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 " setGoal="50"/>
</outlineItem>
<outlineItem title="Same title" type="text" summarySentance="Résumé court" POV="0" label="5" status="3" 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 AAAAA" setGoal="50"/>
<outlineItem title="Nouveau" type="folder" POV="1" label="5" status="1" compile="2">
<outlineItem title="Nouveau" type="text" POV="0" status="4" 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 English French Français" setGoal="200"/>
<outlineItem title="Avec titre" type="text" POV="2" label="1" status="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 " setGoal="100"/>
<outlineItem title="Avec titre" type="text" POV="0" label="3" status="4" 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" setGoal="200"/>
<outlineItem title="Titre cool" type="text" POV="0" label="1" status="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 " setGoal="50"/>
<outlineItem title="Avec titre" type="text" POV="0" label="1" status="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 " setGoal="100"/>
</outlineItem>
<outlineItem title="Same title 2" type="text" summaryFull="Français&#10;French Word Mot" POV="1" label="1" status="1" 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 asdasd &#10;&#10;asdasd asd maison français French " setGoal="100"/>
</outlineItem>

View file

@ -1,71 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<model version="0.1">
<header>
<vertical>
<label row="0" text="1"/>
<label row="1" text="2"/>
<label row="2" text="3"/>
</vertical>
<horizontal>
<label row="0" text="name"/>
<label row="1" text="ID"/>
<label row="2" text="importance"/>
<label row="3" text="motivation"/>
<label row="4" text="goal"/>
<label row="5" text="conflict"/>
<label row="6" text="epiphany"/>
<label row="7" text="summarySentance"/>
<label row="8" text="summaryPara"/>
<label row="9" text="summaryFull"/>
<label row="10" text="notes"/>
<label row="11" text="color"/>
</horizontal>
</header>
<data>
<row row="0">
<col col="0" color="#ffff0000">Albert le vert</col>
<col col="1">0</col>
<col col="2">2</col>
<col col="3"/>
<col col="4"/>
<col col="5"/>
<col col="6"/>
<col col="7"/>
<col col="8"/>
<col col="9"/>
<col col="10">Quelques notes
Pour voir.</col>
<col col="11"/>
</row>
<row row="1">
<col col="0" color="#ff18f0f3">Ginette La Barbette</col>
<col col="1">1</col>
<col col="2">1</col>
<col col="3"/>
<col col="4"/>
<col col="5"/>
<col col="6"/>
<col col="7"/>
<col col="8"/>
<col col="9"/>
<col col="10"/>
<col col="11"/>
</row>
<row row="2">
<col col="0" color="#ff005500">Nouveau perso avec un nom très très long pour voir comment ça fait</col>
<col col="1">2</col>
<col col="2">0</col>
<col col="3"/>
<col col="4"/>
<col col="5"/>
<col col="6"/>
<col col="7"/>
<col col="8"/>
<col col="9"/>
<col col="10"/>
<col col="11"/>
</row>
</data>
</model>

View file

@ -1,36 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<model version="0.1">
<header>
<vertical>
<label row="0" text="1"/>
<label row="1" text="2"/>
<label row="2" text="3"/>
</vertical>
<horizontal>
<label row="0" text="Valeur"/>
<label row="1" text="Valeur"/>
<label row="2" text="Valeur"/>
<label row="3" text="Valeur"/>
</horizontal>
</header>
<data>
<row row="0">
<col col="0">1</col>
<col col="1">2</col>
<col col="2">4</col>
<col col="3">5</col>
</row>
<row row="1">
<col col="0">12</col>
<col col="1"/>
<col col="2"/>
<col col="3"/>
</row>
<row row="2">
<col col="0"/>
<col col="1"/>
<col col="2"/>
<col col="3"/>
</row>
</data>
</model>

Binary file not shown.

View file

@ -1,36 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<model version="0.1">
<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"/>
<label row="5" text="6"/>
</vertical>
<horizontal>
<label row="0" text="1"/>
</horizontal>
</header>
<data>
<row row="0">
<col col="0"/>
</row>
<row row="1">
<col col="0">TODO</col>
</row>
<row row="2">
<col col="0">Premier brouillon</col>
</row>
<row row="3">
<col col="0">Second brouillon</col>
</row>
<row row="4">
<col col="0">Final</col>
</row>
<row row="5">
<col col="0">Nouveau status</col>
</row>
</data>
</model>