Changes some more 'persos' to 'characters'

This commit is contained in:
Olivier Keshavjee 2016-03-06 09:26:59 +01:00
parent 50dc7f3739
commit 599a60ecff
5 changed files with 63 additions and 10 deletions

View file

@ -26,7 +26,7 @@ class Plot(Enum):
name = 0
ID = 1
importance = 2
persos = 3
characters = 3
description = 4
result = 5
subplots = 6
@ -64,4 +64,3 @@ class Outline(Enum):
# (sum of all sub-items' goals)
textFormat = 15
revisions = 16

View file

@ -13,7 +13,7 @@ from PyQt5.QtCore import Qt, QModelIndex
from PyQt5.QtGui import QColor
from manuskript import settings
from manuskript.enums import Character, World
from manuskript.enums import Character, World, Plot
from manuskript.functions import mainWindow, iconColor
from lxml import etree as ET
@ -217,7 +217,15 @@ def saveProject(zip=None):
# Either in XML or lots of plain texts?
# More probably XML since there is not really a lot if writing to do (third-party)
# TODO
path = "plots.opml"
mdl = mw.mdlPlots
root = ET.Element("opml")
root.attrib["version"] = "1.0"
body = ET.SubElement(root, "body")
addPlotItem(body, mdl)
content = ET.tostring(root, encoding="UTF-8", xml_declaration=True, pretty_print=True)
files.append((path, content))
# Settings
# Saved in readable text (json) for easier versionning. But they mustn't be shared, it seems.
@ -301,6 +309,52 @@ def addWorldItem(root, mdl, parent=QModelIndex()):
return root
def addPlotItem(root, mdl, parent=QModelIndex()):
"""
Lists elements in a plot model and create an OPML xml file.
@param root: an Etree element
@param mdl: a plotModel
@param parent: the parent index in the plot model
@return: root, to which sub element have been added
"""
# List every row (every plot item)
for x in range(mdl.rowCount(parent)):
# For each row, create an outline item.
outline = ET.SubElement(root, "outline")
for y in range(mdl.columnCount(parent)):
index = mdl.index(x, y, parent)
val = mdl.data(index)
if not val:
continue
for w in Plot:
if y == w.value:
outline.attrib[w.name] = val
if y == Plot.characters.value:
if mdl.hasChildren(index):
characters = []
for cX in range(mdl.rowCount(index)):
for cY in range(mdl.columnCount(index)):
cIndex = mdl.index(cX, cY, index)
characters.append(mdl.data(cIndex))
outline.attrib[Plot.characters.name] = ",".join(characters)
else:
outline.attrib.pop(Plot.characters.name)
elif y == Plot.subplots.value and mdl.hasChildren(index):
outline.attrib.pop(Plot.subplots.name)
# addWorldItem(outline, mdl, index)
return root
def loadProject(project):
"""
Loads a project.

View file

@ -205,7 +205,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.txtPlotResult.setCurrentModelIndex(index)
self.sldPlotImportance.setCurrentModelIndex(index)
self.lstPlotPerso.setRootIndex(index.sibling(index.row(),
Plot.persos.value))
Plot.characters.value))
subplotindex = index.sibling(index.row(), Plot.subplots.value)
self.lstSubPlots.setRootIndex(subplotindex)
if self.mdlPlots.rowCount(subplotindex):
@ -678,7 +678,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.tblDebugPlots.selectionModel().currentChanged.connect(
lambda: self.tblDebugPlotsPersos.setRootIndex(self.mdlPlots.index(
self.tblDebugPlots.selectionModel().currentIndex().row(),
Plot.persos.value)), AUC)
Plot.characters.value)), AUC)
self.tblDebugPlots.selectionModel().currentChanged.connect(
lambda: self.tblDebugSubPlots.setRootIndex(self.mdlPlots.index(
self.tblDebugPlots.selectionModel().currentIndex().row(),

View file

@ -182,10 +182,10 @@ class plotModel(QStandardItemModel):
def addPlotPerso(self, v):
index = self.mw.lstPlots.currentPlotIndex()
if index.isValid():
if not self.item(index.row(), Plot.persos.value):
self.setItem(index.row(), Plot.persos.value, QStandardItem())
if not self.item(index.row(), Plot.characters.value):
self.setItem(index.row(), Plot.characters.value, QStandardItem())
item = self.item(index.row(), Plot.persos.value)
item = self.item(index.row(), Plot.characters.value)
# We check that the PersoID is not in the list yet
for i in range(item.rowCount()):

View file

@ -277,7 +277,7 @@ def infos(ref):
# Characters
pM = mainWindow().mdlCharacter
item = m.item(index.row(), Plot.persos.value)
item = m.item(index.row(), Plot.characters.value)
characters = ""
if item:
for r in range(item.rowCount()):