PropertyView: all sub-views are multi-indexes friendly. Quite cool.

This commit is contained in:
Olivier Keshavjee 2015-06-10 23:36:30 +02:00
parent 20b44ad517
commit f2d6798e2a
10 changed files with 355 additions and 119 deletions

View file

@ -205,7 +205,12 @@ 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().selectionChanged.connect(lambda: self.viewRedacProperties.selectionChanged(self.treeRedacOutline))
self.treeRedacOutline.selectionModel().selectionChanged.connect(
lambda: self.viewRedacProperties.selectionChanged(self.treeRedacOutline))
self.treeRedacOutline.clicked.connect(
lambda: self.viewRedacProperties.selectionChanged(self.treeRedacOutline))
#self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.setCurrentModelIndex) #self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.setCurrentModelIndex)
self.treeRedacOutline.selectionModel().selectionChanged.connect(self.redacEditor.setView) self.treeRedacOutline.selectionModel().selectionChanged.connect(self.redacEditor.setView)
self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.txtRedacText.setCurrentModelIndex) self.treeRedacOutline.selectionModel().currentChanged.connect(self.redacEditor.txtRedacText.setCurrentModelIndex)

View file

@ -1,9 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
#--!-- coding: utf8 --!-- #--!-- coding: utf8 --!--
from qt import * from qt import *
from enums import * from enums import *
@ -11,35 +8,20 @@ class cmbOutlineLabelChoser(QComboBox):
def __init__(self, parent=None): def __init__(self, parent=None):
QComboBox.__init__(self, parent) QComboBox.__init__(self, parent)
self.activated[int].connect(self.changed) self.activated[int].connect(self.submit)
self.currentModelIndex = None self._column = Outline.label.value
self._index = None
self._indexes = None
self._updating = False
def setModels(self, mdlLabels, mdlOutline): def setModels(self, mdlLabels, mdlOutline):
self.mdlLabels = mdlLabels self.mdlLabels = mdlLabels
self.mdlLabels.dataChanged.connect(self.updateItems) # Not emiting? self.mdlLabels.dataChanged.connect(self.updateItems)
self.mdlOutline = mdlOutline self.mdlOutline = mdlOutline
self.mdlOutline.dataChanged.connect(self.updateSelectedItem) self.mdlOutline.dataChanged.connect(self.update)
self.updateItems() self.updateItems()
def updateSelectedItem(self, idx1=None, idx2=None): def updateItems(self):
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.updateItems()
self.updateSelectedItem()
def updateItems(self, topLeft=None, bottomRight=None, roles=None):
self.clear() self.clear()
for i in range(self.mdlLabels.rowCount()): for i in range(self.mdlLabels.rowCount()):
item = self.mdlLabels.item(i, 0) item = self.mdlLabels.item(i, 0)
@ -47,5 +29,90 @@ class cmbOutlineLabelChoser(QComboBox):
self.addItem(item.icon(), self.addItem(item.icon(),
item.text()) item.text())
if self.currentModelIndex: if self._index or self._indexes:
self.updateSelectedItem() self.updateSelectedItem()
def setCurrentModelIndex(self, index):
self._indexes = None
if index.column() != self._column:
index = index.sibling(index.row(), self._column)
self._index = index
self.updateSelectedItem()
def setCurrentModelIndexes(self, indexes):
self._indexes = []
self._index = None
for i in indexes:
if i.isValid():
if i.column() != self._column:
i = i.sibling(i.row(), self._column)
self._indexes.append(i)
self.updateSelectedItem()
def update(self, topLeft, bottomRight):
if self._updating:
# We are currently putting data in the model, so no updates
return
if self._index:
if topLeft.row() <= self._index.row() <= bottomRight.row():
self.updateSelectedItem()
elif self._indexes:
update = False
for i in self._indexes:
if topLeft.row() <= i.row() <= bottomRight.row():
update = True
if update:
self.updateSelectedItem()
def getLabel(self, index):
item = index.internalPointer()
label = item.data(self._column)
if not label:
label = 0
return int(label)
def updateSelectedItem(self):
if self._updating:
return
if self._index:
label = self.getLabel(self._index)
self.setCurrentIndex(label)
elif self._indexes:
labels = []
same = True
for i in self._indexes:
labels.append(self.getLabel(i))
for lbl in labels[1:]:
if lbl != labels[0]:
same = False
break
if same:
self.setCurrentIndex(labels[0])
else:
self.setCurrentIndex(0)
else:
self.setCurrentIndex(0)
def submit(self, idx):
if self._index:
self.mdlOutline.setData(self._index, self.currentIndex())
elif self._indexes:
self._updating = True
for i in self._indexes:
self.mdlOutline.setData(i, self.currentIndex())
self._updating = False

View file

@ -11,37 +11,19 @@ class cmbOutlinePersoChoser(QComboBox):
def __init__(self, parent=None): def __init__(self, parent=None):
QComboBox.__init__(self, parent) QComboBox.__init__(self, parent)
self.activated[int].connect(self.changed) self.activated[int].connect(self.submit)
self.currentModelIndex = None self._column = Outline.POV.value
self._index = None
self._indexes = None
self._updating = False
def setModels(self, mdlPersos, mdlOutline): def setModels(self, mdlPersos, mdlOutline):
self.mdlPersos = mdlPersos self.mdlPersos = mdlPersos
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.update)
self.updateItems() self.updateItems()
def updateSelectedItem(self, idx1=None, idx2=None):
if not self.currentModelIndex or not self.currentModelIndex.isValid():
self.setCurrentIndex(0)
else:
item = self.currentModelIndex.internalPointer()
POV = item.data(Outline.POV.value)
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): def updateItems(self):
self.clear() self.clear()
self.addItem("") self.addItem("")
@ -51,5 +33,95 @@ class cmbOutlinePersoChoser(QComboBox):
self.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole) self.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole)
except: except:
pass pass
if self.currentModelIndex:
self.updateSelectedItem() if self._index or self._indexes:
self.updateSelectedItem()
def setCurrentModelIndex(self, index):
self._indexes = None
if index.column() != self._column:
index = index.sibling(index.row(), self._column)
self._index = index
self.updateSelectedItem()
def setCurrentModelIndexes(self, indexes):
self._indexes = []
self._index = None
for i in indexes:
if i.isValid():
if i.column() != self._column:
i = i.sibling(i.row(), self._column)
self._indexes.append(i)
self.updateSelectedItem()
def update(self, topLeft, bottomRight):
if self._updating:
# We are currently putting data in the model, so no updates
return
if self._index:
if topLeft.row() <= self._index.row() <= bottomRight.row():
self.updateSelectedItem()
elif self._indexes:
update = False
for i in self._indexes:
if topLeft.row() <= i.row() <= bottomRight.row():
update = True
if update:
self.updateSelectedItem()
def getPOV(self, index):
item = index.internalPointer()
POV = item.data(self._column)
return POV
def selectPOV(self, POV):
idx = self.findData(POV)
if idx != -1:
self.setCurrentIndex(idx)
else:
self.setCurrentIndex(0)
def updateSelectedItem(self, idx1=None, idx2=None):
if self._updating:
return
if self._index:
POV = self.getPOV(self._index)
self.selectPOV(POV)
elif self._indexes:
POVs = []
same = True
for i in self._indexes:
POVs.append(self.getPOV(i))
for POV in POVs[1:]:
if POV != POVs[0]:
same = False
break
if same:
self.selectPOV(POVs[0])
else:
self.setCurrentIndex(0)
else:
self.setCurrentIndex(0)
def submit(self, idx):
if self._index:
self.mdlOutline.setData(self._index, self.currentData())
elif self._indexes:
self._updating = True
for i in self._indexes:
self.mdlOutline.setData(i, self.currentData())
self._updating = False

View file

@ -1,53 +1,117 @@
#!/usr/bin/env python #!/usr/bin/env python
#--!-- coding: utf8 --!-- #--!-- coding: utf8 --!--
from qt import * from qt import *
from enums import * from enums import *
class cmbOutlineStatusChoser(QComboBox): class cmbOutlineStatusChoser(QComboBox):
def __init__(self, parent=None): def __init__(self, parent=None):
QComboBox.__init__(self, parent) QComboBox.__init__(self, parent)
self.activated[int].connect(self.changed) self.activated[int].connect(self.submit)
self.currentModelIndex = None self._column = Outline.status.value
self._index = None
self._indexes = None
self._updating = False
def setModels(self, mdlStatus, mdlOutline): def setModels(self, mdlStatus, mdlOutline):
self.mdlStatus = mdlStatus self.mdlStatus = mdlStatus
self.mdlStatus.dataChanged.connect(self.updateItems) # Not emiting? self.mdlStatus.dataChanged.connect(self.updateItems)
self.mdlOutline = mdlOutline self.mdlOutline = mdlOutline
self.mdlOutline.dataChanged.connect(self.updateSelectedItem) self.mdlOutline.dataChanged.connect(self.update)
self.updateItems() self.updateItems()
def updateSelectedItem(self, idx1=None, idx2=None): def updateItems(self):
if not self.currentModelIndex or not self.currentModelIndex.isValid():
self.setCurrentIndex(0)
else:
val = self.currentModelIndex.internalPointer().data(Outline.status.value)
if not val: val = 0
try:
self.setCurrentIndex(int(val))
except:
pass
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.currentIndex())
def setCurrentModelIndex(self, idx):
self.currentModelIndex = idx
self.updateItems()
self.updateSelectedItem()
def updateItems(self, topLeft=None, bottomRight=None, roles=None):
self.clear() self.clear()
for i in range(self.mdlStatus.rowCount()): for i in range(self.mdlStatus.rowCount()):
item = self.mdlStatus.item(i, 0) item = self.mdlStatus.item(i, 0)
if item: if item:
self.addItem(item.text()) self.addItem(item.text())
if self.currentModelIndex: if self._index or self._indexes:
self.updateSelectedItem() self.updateSelectedItem()
def setCurrentModelIndex(self, index):
self._indexes = None
if index.column() != self._column:
index = index.sibling(index.row(), self._column)
self._index = index
self.updateSelectedItem()
def setCurrentModelIndexes(self, indexes):
self._indexes = []
self._index = None
for i in indexes:
if i.isValid():
if i.column() != self._column:
i = i.sibling(i.row(), self._column)
self._indexes.append(i)
self.updateSelectedItem()
def update(self, topLeft, bottomRight):
if self._updating:
# We are currently putting data in the model, so no updates
return
if self._index:
if topLeft.row() <= self._index.row() <= bottomRight.row():
self.updateSelectedItem()
elif self._indexes:
update = False
for i in self._indexes:
if topLeft.row() <= i.row() <= bottomRight.row():
update = True
if update:
self.updateSelectedItem()
def getStatus(self, index):
item = index.internalPointer()
status = item.data(self._column)
if not status:
status = 0
return int(status)
def updateSelectedItem(self):
if self._updating:
return
if self._index:
status = self.getStatus(self._index)
self.setCurrentIndex(status)
elif self._indexes:
statuses = []
same = True
for i in self._indexes:
statuses.append(self.getStatus(i))
for s in statuses[1:]:
if s != statuses[0]:
same = False
break
if same:
self.setCurrentIndex(statuses[0])
else:
self.setCurrentIndex(0)
else:
self.setCurrentIndex(0)
def submit(self, idx):
if self._index:
self.mdlOutline.setData(self._index, self.currentIndex())
elif self._indexes:
self._updating = True
for i in self._indexes:
self.mdlOutline.setData(i, self.currentIndex())
self._updating = False

View file

@ -144,6 +144,11 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
self.stack.setCurrentIndex(2) self.stack.setCurrentIndex(2)
self.corkView.setModel(self._model) self.corkView.setModel(self._model)
self.corkView.setRootIndex(index) self.corkView.setRootIndex(index)
self.corkView.selectionModel().selectionChanged.connect(
lambda: mainWindow().viewRedacProperties.selectionChanged(self.corkView))
self.corkView.clicked.connect(
lambda: mainWindow().viewRedacProperties.selectionChanged(self.corkView))
elif item.isFolder() and self.folderView == "outline": elif item.isFolder() and self.folderView == "outline":
self.stack.setCurrentIndex(3) self.stack.setCurrentIndex(3)
@ -152,6 +157,11 @@ class editorWidget(QWidget, Ui_editorWidget_ui):
self.outlineView.setModelStatus(mainWindow().mdlStatus) self.outlineView.setModelStatus(mainWindow().mdlStatus)
self.outlineView.setModel(self._model) self.outlineView.setModel(self._model)
self.outlineView.setRootIndex(index) self.outlineView.setRootIndex(index)
self.outlineView.selectionModel().selectionChanged.connect(
lambda: mainWindow().viewRedacProperties.selectionChanged(self.outlineView))
self.outlineView.clicked.connect(
lambda: mainWindow().viewRedacProperties.selectionChanged(self.outlineView))
else: else:
self.stack.setCurrentIndex(0) self.stack.setCurrentIndex(0)

View file

@ -103,6 +103,9 @@ class lineEditView(QLineEdit):
self.setText(t[0]) self.setText(t[0])
else: else:
self.setText("") self.setText("")
self._placeholderText = self.placeholderText()
if not self._placeholderText:
self._placeholderText = self.placeholderText()
self.setPlaceholderText("Various") self.setPlaceholderText("Various")

View file

@ -42,6 +42,7 @@ class propertiesView(QWidget, Ui_propertiesView):
elif len(indexes) == 1: elif len(indexes) == 1:
self.setEnabled(True) self.setEnabled(True)
self.setLabelsItalic(False)
idx = indexes[0] idx = indexes[0]
self.cmbPOV.setCurrentModelIndex(idx) self.cmbPOV.setCurrentModelIndex(idx)
self.cmbLabel.setCurrentModelIndex(idx) self.cmbLabel.setCurrentModelIndex(idx)
@ -51,9 +52,23 @@ class propertiesView(QWidget, Ui_propertiesView):
self.txtGoal.setCurrentModelIndex(idx) self.txtGoal.setCurrentModelIndex(idx)
else: else:
print("Multiple selection, Work in progress") self.setEnabled(True)
self.setLabelsItalic(True)
self.txtTitle.setCurrentModelIndexes(indexes) self.txtTitle.setCurrentModelIndexes(indexes)
self.txtGoal.setCurrentModelIndexes(indexes) self.txtGoal.setCurrentModelIndexes(indexes)
self.chkCompile.setCurrentModelIndexes(indexes) self.chkCompile.setCurrentModelIndexes(indexes)
#FIXME: do the other views self.cmbPOV.setCurrentModelIndexes(indexes)
self.cmbLabel.setCurrentModelIndexes(indexes)
self.cmbStatus.setCurrentModelIndexes(indexes)
def setLabelsItalic(self, value):
f = self.lblPOV.font()
f.setItalic(value)
for lbl in [
self.lblPOV,
self.lblStatus,
self.lblLabel,
self.lblCompile,
self.lblGoal
]:
lbl.setFont(f)

View file

@ -45,9 +45,9 @@ class Ui_propertiesView(object):
self.cmbPOV.setFrame(False) self.cmbPOV.setFrame(False)
self.cmbPOV.setObjectName("cmbPOV") self.cmbPOV.setObjectName("cmbPOV")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbPOV) self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbPOV)
self.label_30 = QtWidgets.QLabel(self.page) self.lblStatus = QtWidgets.QLabel(self.page)
self.label_30.setObjectName("label_30") self.lblStatus.setObjectName("lblStatus")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_30) self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.lblStatus)
self.cmbStatus = cmbOutlineStatusChoser(self.page) self.cmbStatus = cmbOutlineStatusChoser(self.page)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -57,9 +57,9 @@ class Ui_propertiesView(object):
self.cmbStatus.setFrame(False) self.cmbStatus.setFrame(False)
self.cmbStatus.setObjectName("cmbStatus") self.cmbStatus.setObjectName("cmbStatus")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbStatus) self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbStatus)
self.label_33 = QtWidgets.QLabel(self.page) self.lblLabel = QtWidgets.QLabel(self.page)
self.label_33.setObjectName("label_33") self.lblLabel.setObjectName("lblLabel")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_33) self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.lblLabel)
self.cmbLabel = cmbOutlineLabelChoser(self.page) self.cmbLabel = cmbOutlineLabelChoser(self.page)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -69,16 +69,16 @@ class Ui_propertiesView(object):
self.cmbLabel.setFrame(False) self.cmbLabel.setFrame(False)
self.cmbLabel.setObjectName("cmbLabel") self.cmbLabel.setObjectName("cmbLabel")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbLabel) self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cmbLabel)
self.label_32 = QtWidgets.QLabel(self.page) self.lblCompile = QtWidgets.QLabel(self.page)
self.label_32.setObjectName("label_32") self.lblCompile.setObjectName("lblCompile")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_32) self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lblCompile)
self.chkCompile = chkOutlineCompile(self.page) self.chkCompile = chkOutlineCompile(self.page)
self.chkCompile.setText("") self.chkCompile.setText("")
self.chkCompile.setObjectName("chkCompile") self.chkCompile.setObjectName("chkCompile")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.chkCompile) self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.chkCompile)
self.label_29 = QtWidgets.QLabel(self.page) self.lblGoal = QtWidgets.QLabel(self.page)
self.label_29.setObjectName("label_29") self.lblGoal.setObjectName("lblGoal")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_29) self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.lblGoal)
self.txtGoal = lineEditView(self.page) self.txtGoal = lineEditView(self.page)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -169,10 +169,10 @@ class Ui_propertiesView(object):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
propertiesView.setWindowTitle(_translate("propertiesView", "Form")) propertiesView.setWindowTitle(_translate("propertiesView", "Form"))
self.lblPOV.setText(_translate("propertiesView", "POV")) self.lblPOV.setText(_translate("propertiesView", "POV"))
self.label_30.setText(_translate("propertiesView", "Status")) self.lblStatus.setText(_translate("propertiesView", "Status"))
self.label_33.setText(_translate("propertiesView", "Label")) self.lblLabel.setText(_translate("propertiesView", "Label"))
self.label_32.setText(_translate("propertiesView", "Compile")) self.lblCompile.setText(_translate("propertiesView", "Compile"))
self.label_29.setText(_translate("propertiesView", "Goal")) self.lblGoal.setText(_translate("propertiesView", "Goal"))
self.txtGoal.setPlaceholderText(_translate("propertiesView", "Word count")) self.txtGoal.setPlaceholderText(_translate("propertiesView", "Word count"))
self.lblPOV_2.setText(_translate("propertiesView", "POV")) self.lblPOV_2.setText(_translate("propertiesView", "POV"))
self.label_31.setText(_translate("propertiesView", "Status")) self.label_31.setText(_translate("propertiesView", "Status"))
@ -181,8 +181,8 @@ class Ui_propertiesView(object):
self.label_36.setText(_translate("propertiesView", "Goal")) self.label_36.setText(_translate("propertiesView", "Goal"))
self.txtGoalMulti.setPlaceholderText(_translate("propertiesView", "Word count")) self.txtGoalMulti.setPlaceholderText(_translate("propertiesView", "Word count"))
from ui.views.lineEditView import lineEditView
from ui.chkOutlineCompile import chkOutlineCompile from ui.chkOutlineCompile import chkOutlineCompile
from ui.cmbOutlineLabelChoser import cmbOutlineLabelChoser from ui.cmbOutlineLabelChoser import cmbOutlineLabelChoser
from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser from ui.cmbOutlineStatusChoser import cmbOutlineStatusChoser
from ui.views.lineEditView import lineEditView
from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser from ui.cmbOutlinePersoChoser import cmbOutlinePersoChoser

View file

@ -66,7 +66,7 @@
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="label_30"> <widget class="QLabel" name="lblStatus">
<property name="text"> <property name="text">
<string>Status</string> <string>Status</string>
</property> </property>
@ -86,7 +86,7 @@
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_33"> <widget class="QLabel" name="lblLabel">
<property name="text"> <property name="text">
<string>Label</string> <string>Label</string>
</property> </property>
@ -106,7 +106,7 @@
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_32"> <widget class="QLabel" name="lblCompile">
<property name="text"> <property name="text">
<string>Compile</string> <string>Compile</string>
</property> </property>
@ -120,7 +120,7 @@
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item row="4" column="0">
<widget class="QLabel" name="label_29"> <widget class="QLabel" name="lblGoal">
<property name="text"> <property name="text">
<string>Goal</string> <string>Goal</string>
</property> </property>

View file

@ -51,13 +51,13 @@
<outlineItem title="Nouveau" type="scene" label="0" compile="2" text="ASDASd ASD " wordCount="2"/> <outlineItem title="Nouveau" type="scene" label="0" compile="2" text="ASDASd ASD " wordCount="2"/>
<outlineItem title="A" type="scene" 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 " wordCount="58" setGoal="50"/> <outlineItem title="A" type="scene" 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 " wordCount="58" setGoal="50"/>
</outlineItem> </outlineItem>
<outlineItem title="Same title" type="scene" POV="1" 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 " wordCount="58" setGoal="50"/> <outlineItem title="Same title" type="scene" POV="1" label="4" 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 " wordCount="58" setGoal="50"/>
<outlineItem title="Nouveau" type="folder" status="2" compile="2" wordCount="596"> <outlineItem title="Nouveau" type="folder" POV="1" label="4" status="1" compile="2" wordCount="596">
<outlineItem title="Nouveau" type="scene" POV="0" label="0" status="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" wordCount="211"/> <outlineItem title="Nouveau" type="scene" POV="0" label="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" wordCount="211"/>
<outlineItem title="Titre cool" type="scene" POV="0" label="0" 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 " wordCount="58" setGoal="50"/> <outlineItem title="Avec titre" type="scene" 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 " wordCount="58" setGoal="50"/>
<outlineItem title="Nouveau" type="scene" POV="0" label="2" 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" wordCount="211"/> <outlineItem title="Avec titre" type="scene" POV="0" label="1" 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" wordCount="211"/>
<outlineItem title="Titre cool" type="scene" POV="0" label="1" 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 " wordCount="58" setGoal="50"/> <outlineItem title="Titre cool" type="scene" 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 " wordCount="58" setGoal="50"/>
<outlineItem title="Titre cool" type="scene" POV="0" label="0" status="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 " wordCount="58" setGoal="50"/> <outlineItem title="Avec titre" type="scene" 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 " wordCount="58" setGoal="50"/>
</outlineItem> </outlineItem>
<outlineItem title="Same title 2" type="scene" POV="2" label="1" status="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 asdasd &#10;&#10;asdasd asd " wordCount="64" setGoal="1000"/> <outlineItem title="Same title 2" type="scene" POV="2" label="4" 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 " wordCount="64" setGoal="1000"/>
</outlineItem> </outlineItem>