diff --git a/src/enums.py b/src/enums.py
index f7119810..46fcc5bf 100644
--- a/src/enums.py
+++ b/src/enums.py
@@ -24,3 +24,15 @@ class Perso(Enum):
summaryFull = 9
notes = 10
+
+class Outline(Enum):
+ title = 0
+ ID = 1
+ type = 2
+ summarySentance = 3
+ summaryFull = 4
+ POV = 5
+ notes = 6
+ status = 7
+ compile = 8
+ text = 9
diff --git a/src/loadSave.py b/src/loadSave.py
index 5082d951..de3d0454 100644
--- a/src/loadSave.py
+++ b/src/loadSave.py
@@ -17,13 +17,13 @@ def saveStandardItemModelXML(mdl, xml):
for x in range(mdl.rowCount()):
vH = ET.SubElement(vHeader, "label")
vH.attrib["row"] = unicode(x)
- vH.attrib["text"] = mdl.headerData(x, Qt.Vertical)
+ vH.attrib["text"] = unicode(mdl.headerData(x, Qt.Vertical))
hHeader = ET.SubElement(header, "horizontal")
for y in range(mdl.columnCount()):
hH = ET.SubElement(hHeader, "label")
hH.attrib["row"] = unicode(y)
- hH.attrib["text"] = mdl.headerData(y, Qt.Horizontal)
+ hH.attrib["text"] = unicode(mdl.headerData(y, Qt.Horizontal))
# Data
data = ET.SubElement(root, "data")
diff --git a/src/mainWindow.py b/src/mainWindow.py
index 7efd6a9b..0f9607dc 100644
--- a/src/mainWindow.py
+++ b/src/mainWindow.py
@@ -8,6 +8,7 @@ from qt import *
from ui.mainWindow import *
from ui.helpLabel import helpLabel
+from ui.treeOutlineDelegates import *
from loadSave import *
from enums import *
from models.outlineModel import *
@@ -119,17 +120,61 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Outline
self.mdlOutline = outlineModel()
- #self.mdlOutline.setHorizontalHeaderLabels(
- #[i.name for i in Outline])
self.treeRedacOutline.setModel(self.mdlOutline)
self.treePlanOutline.setModel(self.mdlOutline)
+ self.treePlanOutlinePersoDelegate = treeOutlinePersoDelegate(self.mdlPersos)
+ self.treePlanOutline.setItemDelegateForColumn(Outline.POV.value, self.treePlanOutlinePersoDelegate)
+ self.treePlanOutlineCompileDelegate = treeOutlineCompileDelegate()
+ self.treePlanOutline.setItemDelegateForColumn(Outline.compile.value, self.treePlanOutlineCompileDelegate)
+ self.cmbPlanPOV.setModels(self.mdlPersos, self.mdlOutline)
+ self.treePlanOutline.header().setSectionResizeMode(QHeaderView.ResizeToContents)
+ #self.treePlanOutline.header().setSectionResizeMode(QHeaderView.Interactive)
+ #self.treePlanOutline.header().sectionResized.connect(self.outlinePlanResizeTree)
+
+ self.mprPlan = QDataWidgetMapper()
+ self.mprPlan.setModel(self.mdlOutline)
+ mapping = [
+ (self.txtPlanSummarySentance, Outline.summarySentance.value),
+ (self.txtPlanSummaryFull, Outline.summaryFull.value)
+ ]
+ for w, i in mapping:
+ self.mprPlan.addMapping(w, i)
+ self.treePlanOutline.selectionModel().currentChanged.connect(self.mprPlan.setCurrentModelIndex)
+ self.treePlanOutline.selectionModel().currentChanged.connect(self.cmbPlanPOV.setCurrentModelIndex)
+
self.treeRedacOutline.setSelectionModel(self.treePlanOutline.selectionModel())
for c in range(1, self.mdlOutline.columnCount()):
self.treeRedacOutline.hideColumn(c)
self.treePlanOutline.hideColumn(c)
+ for c in [Outline.POV.value, Outline.status.value, Outline.compile.value]:
+ self.treePlanOutline.showColumn(c)
self.btnRedacAddFolder.clicked.connect(lambda: self.outlineAddItem("folder"))
+ self.btnPlanAddFolder.clicked.connect(lambda: self.outlineAddItem("folder"))
self.btnRedacAddScene.clicked.connect(lambda: self.outlineAddItem("scene"))
+ self.btnPlanAddScene.clicked.connect(lambda: self.outlineAddItem("scene"))
self.btnRedacRemoveItem.clicked.connect(self.outlineRemoveItems)
+ self.btnPlanRemoveItem.clicked.connect(self.outlineRemoveItems)
+
+ self.cmbRedacPOV.setModels(self.mdlPersos, self.mdlOutline)
+ self.mprOutline = QDataWidgetMapper()
+ self.mprOutline.setModel(self.mdlOutline)
+ mapping = [
+ (self.txtRedacText, Outline.text.value),
+ (self.txtRedacSummarySentance, Outline.summarySentance.value),
+ (self.txtRedacSummaryFull, Outline.summaryFull.value),
+ (self.txtRedacNotes, Outline.notes.value),
+ (self.cmbRedacStatus, Outline.status.value),
+ (self.chkRedacCompile, Outline.compile.value),
+ (self.txtRedacTitle, Outline.title.value)
+ ]
+ for w, i in mapping:
+ self.mprOutline.addMapping(w, i)
+
+ self.treeRedacOutline.selectionModel().currentChanged.connect(self.mprOutline.setCurrentModelIndex)
+ self.treeRedacOutline.selectionModel().currentChanged.connect(self.cmbRedacPOV.setCurrentModelIndex)
+ 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()))
+
#Debug
self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"])
@@ -157,6 +202,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
for idx in self.treeRedacOutline.selectedIndexes():
if idx.isValid():
self.mdlOutline.removeIndex(idx)
+
+ def outlinePlanResizeTree(self, **kargs):
+ print("Coucou")
+ stretch = Outline.title.value
+ w2 = 0
+ for c in range(self.mdlOutline.columnCount()):
+ if not self.treePlanOutline.isColumnHidden(c) and c <> stretch:
+ self.treePlanOutline.resizeColumnToContents(c)
+ w2 += self.treePlanOutline.columnWidth(c)
+
+ w = self.treePlanOutline.viewport().width()
+ self.treePlanOutline.setColumnWidth(stretch, w - w2)
####################################################################################################
@@ -339,7 +396,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
]
for widget, text in references:
- print(text)
label = helpLabel(text)
self.actShowHelp.toggled.connect(label.setVisible)
widget.layout().insertWidget(0, label)
diff --git a/src/models/outlineModel.py b/src/models/outlineModel.py
index d00a3293..f9b94974 100644
--- a/src/models/outlineModel.py
+++ b/src/models/outlineModel.py
@@ -5,23 +5,11 @@ from __future__ import print_function
from __future__ import unicode_literals
from qt import *
+from enums import *
from enum import Enum
from lxml import etree as ET
-class Outline(Enum):
- title = 0
- ID = 1
- type = 2
- summarySentance = 3
- summaryFull = 4
- POV = 5
- notes = 6
- status = 7
- compile = 8
- text = 9
-
-
class outlineModel(QAbstractItemModel):
def __init__(self):
QAbstractItemModel.__init__(self)
@@ -43,7 +31,6 @@ class outlineModel(QAbstractItemModel):
return self.createIndex(row, column, childItem)
else:
return QModelIndex()
-
def parent(self, index=QModelIndex()):
if not index.isValid():
@@ -99,17 +86,22 @@ class outlineModel(QAbstractItemModel):
# http://doc.qt.io/qt-5/model-view-programming.html#using-drag-and-drop-with-item-views
def flags(self, index):
+ #FIXME when dragging folders, sometimes flags is not called
+
flags = QAbstractItemModel.flags(self, index) | Qt.ItemIsEditable
if index.isValid() and index.internalPointer().isFolder():
- flags |= Qt.ItemIsDropEnabled | Qt.ItemIsDragEnabled
+ flags |= Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled
elif index.isValid():
flags |= Qt.ItemIsDragEnabled
else:
flags |= Qt.ItemIsDropEnabled
-
+
+ if index.isValid() and index.column() == Outline.compile.value:
+ flags |= Qt.ItemIsUserCheckable
+
return flags
def mimeTypes(self):
@@ -117,13 +109,12 @@ class outlineModel(QAbstractItemModel):
def mimeData(self, indexes):
mimeData = QMimeData()
- #encodedData = QByteArray()
- #stream = QDataStream(encodedData, QIODevice.WriteOnly)
encodedData = ""
root = ET.Element("outlineItems")
+
for index in indexes:
- if index.isValid():
+ if index.isValid() and index.column() == 0:
item = ET.XML(index.internalPointer().toXML())
root.append(item)
@@ -165,6 +156,7 @@ class outlineModel(QAbstractItemModel):
beginRow = self.rowCount() + 1
encodedData = str(data.data("application/xml"))
+
root = ET.XML(encodedData)
if root.tag <> "outlineItems":
@@ -290,7 +282,9 @@ class outlineItem():
def data(self, column, role=Qt.DisplayRole):
if role == Qt.DisplayRole or role == Qt.EditRole:
- if Outline(column) in self._data:
+ if column == Outline.compile.value:
+ return self.data(column, Qt.CheckStateRole)
+ elif Outline(column) in self._data:
return self._data[Outline(column)]
else:
return None
@@ -299,9 +293,15 @@ class outlineItem():
return QIcon.fromTheme("folder")
elif self.isScene():
return QIcon.fromTheme("document-new")
+
+ elif role == Qt.CheckStateRole and column == Outline.compile.value:
+ if Outline(column) in self._data and self._data[Outline(column)]:
+ return Qt.Checked
+ else:
+ return Qt.Unchecked
def setData(self, column, data):
- self._data[Outline(column)] = unicode(data.toString())
+ self._data[Outline(column)] = data
def row(self):
if self.parent:
@@ -332,7 +332,7 @@ class outlineItem():
for attrib in Outline:
val = self.data(attrib)
if val:
- item.set(attrib.name, val)
+ item.set(attrib.name, unicode(val))
for i in self.childItems:
item.append(ET.XML(i.toXML()))
@@ -344,7 +344,7 @@ class outlineItem():
for k in root.attrib:
if k in Outline.__members__:
- self._data[Outline.__members__[k]] = root.attrib[k]
+ self._data[Outline.__members__[k]] = unicode(root.attrib[k])
for child in root:
item = outlineItem(xml=ET.tostring(child))
diff --git a/src/ui/cmbPersoChoser.py b/src/ui/cmbPersoChoser.py
new file mode 100644
index 00000000..f4df80d8
--- /dev/null
+++ b/src/ui/cmbPersoChoser.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+#--!-- coding: utf8 --!--
+
+from __future__ import print_function
+from __future__ import unicode_literals
+
+from qt import *
+from enums import *
+
+class cmbPersoChoser(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()
+
+ #def setPOV(self, POV):
+ #idx = self.findData(POV)
+ #if idx <> -1:
+ #self.setCurrentIndex(idx)
+ #else:
+ #self.setCurrentIndex(0)
+ #print("cmbPersoChoser: POV {} not found.".format(POV))
+
+ #def getPOV(self):
+ #print("Getting data")
+ #return self.currentData()
\ No newline at end of file
diff --git a/src/ui/mainWindow.py b/src/ui/mainWindow.py
index 13faabc5..340cd393 100644
--- a/src/ui/mainWindow.py
+++ b/src/ui/mainWindow.py
@@ -286,6 +286,7 @@ class Ui_MainWindow(object):
self.btnRmPerso.setObjectName("btnRmPerso")
self.horizontalLayout_14.addWidget(self.btnRmPerso)
self.lineEdit_8 = QtWidgets.QLineEdit(self.groupBox)
+ self.lineEdit_8.setClearButtonEnabled(True)
self.lineEdit_8.setObjectName("lineEdit_8")
self.horizontalLayout_14.addWidget(self.lineEdit_8)
self.verticalLayout_8.addLayout(self.horizontalLayout_14)
@@ -472,6 +473,7 @@ class Ui_MainWindow(object):
self.pushButton_11.setObjectName("pushButton_11")
self.horizontalLayout_15.addWidget(self.pushButton_11)
self.lineEdit_7 = QtWidgets.QLineEdit(self.groupBox_2)
+ self.lineEdit_7.setClearButtonEnabled(True)
self.lineEdit_7.setObjectName("lineEdit_7")
self.horizontalLayout_15.addWidget(self.lineEdit_7)
self.btnPlotShowSummary = QtWidgets.QPushButton(self.groupBox_2)
@@ -698,6 +700,8 @@ class Ui_MainWindow(object):
self.treePlanOutline = QtWidgets.QTreeView(self.layoutWidget)
self.treePlanOutline.setDragEnabled(True)
self.treePlanOutline.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
+ self.treePlanOutline.setDefaultDropAction(QtCore.Qt.MoveAction)
+ self.treePlanOutline.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.treePlanOutline.setObjectName("treePlanOutline")
self.verticalLayout_14.addWidget(self.treePlanOutline)
self.groupbox = QtWidgets.QGroupBox(self.layoutWidget)
@@ -709,7 +713,7 @@ class Ui_MainWindow(object):
self.label_9 = QtWidgets.QLabel(self.groupbox)
self.label_9.setObjectName("label_9")
self.horizontalLayout_11.addWidget(self.label_9)
- self.cmbPlanPOV = QtWidgets.QComboBox(self.groupbox)
+ self.cmbPlanPOV = cmbPersoChoser(self.groupbox)
self.cmbPlanPOV.setFrame(False)
self.cmbPlanPOV.setObjectName("cmbPlanPOV")
self.horizontalLayout_11.addWidget(self.cmbPlanPOV)
@@ -723,18 +727,24 @@ class Ui_MainWindow(object):
self.verticalLayout_14.addWidget(self.groupbox)
self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
self.horizontalLayout_18.setObjectName("horizontalLayout_18")
- self.pushButton_17 = QtWidgets.QPushButton(self.layoutWidget)
- self.pushButton_17.setText("")
- icon = QtGui.QIcon.fromTheme("list-add")
- self.pushButton_17.setIcon(icon)
- self.pushButton_17.setObjectName("pushButton_17")
- self.horizontalLayout_18.addWidget(self.pushButton_17)
- self.pushButton_18 = QtWidgets.QPushButton(self.layoutWidget)
- self.pushButton_18.setText("")
+ self.btnPlanAddFolder = QtWidgets.QPushButton(self.layoutWidget)
+ self.btnPlanAddFolder.setText("")
+ icon = QtGui.QIcon.fromTheme("folder-new")
+ self.btnPlanAddFolder.setIcon(icon)
+ self.btnPlanAddFolder.setObjectName("btnPlanAddFolder")
+ self.horizontalLayout_18.addWidget(self.btnPlanAddFolder)
+ self.btnPlanAddScene = QtWidgets.QPushButton(self.layoutWidget)
+ self.btnPlanAddScene.setText("")
+ icon = QtGui.QIcon.fromTheme("document-new")
+ self.btnPlanAddScene.setIcon(icon)
+ self.btnPlanAddScene.setObjectName("btnPlanAddScene")
+ self.horizontalLayout_18.addWidget(self.btnPlanAddScene)
+ self.btnPlanRemoveItem = QtWidgets.QPushButton(self.layoutWidget)
+ self.btnPlanRemoveItem.setText("")
icon = QtGui.QIcon.fromTheme("list-remove")
- self.pushButton_18.setIcon(icon)
- self.pushButton_18.setObjectName("pushButton_18")
- self.horizontalLayout_18.addWidget(self.pushButton_18)
+ self.btnPlanRemoveItem.setIcon(icon)
+ self.btnPlanRemoveItem.setObjectName("btnPlanRemoveItem")
+ self.horizontalLayout_18.addWidget(self.btnPlanRemoveItem)
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_18.addItem(spacerItem8)
self.pushButton_23 = QtWidgets.QPushButton(self.layoutWidget)
@@ -794,9 +804,19 @@ class Ui_MainWindow(object):
self.verticalLayout_16 = QtWidgets.QVBoxLayout(self.layoutWidget2)
self.verticalLayout_16.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_16.setObjectName("verticalLayout_16")
- self.plainTextEdit_9 = QtWidgets.QPlainTextEdit(self.layoutWidget2)
- self.plainTextEdit_9.setObjectName("plainTextEdit_9")
- self.verticalLayout_16.addWidget(self.plainTextEdit_9)
+ self.txtRedacTitle = QtWidgets.QLineEdit(self.layoutWidget2)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.txtRedacTitle.setFont(font)
+ self.txtRedacTitle.setStyleSheet("background:transparent;")
+ self.txtRedacTitle.setText("")
+ self.txtRedacTitle.setFrame(False)
+ self.txtRedacTitle.setObjectName("txtRedacTitle")
+ self.verticalLayout_16.addWidget(self.txtRedacTitle)
+ self.txtRedacText = QtWidgets.QPlainTextEdit(self.layoutWidget2)
+ self.txtRedacText.setObjectName("txtRedacText")
+ self.verticalLayout_16.addWidget(self.txtRedacText)
self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
self.horizontalLayout_19.setObjectName("horizontalLayout_19")
self.pushButton_20 = QtWidgets.QPushButton(self.layoutWidget2)
@@ -837,27 +857,31 @@ class Ui_MainWindow(object):
self.groupBox_4.setObjectName("groupBox_4")
self.formLayout_5 = QtWidgets.QFormLayout(self.groupBox_4)
self.formLayout_5.setObjectName("formLayout_5")
- self.label_29 = QtWidgets.QLabel(self.groupBox_4)
- self.label_29.setObjectName("label_29")
- self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_29)
- self.comboBox_3 = QtWidgets.QComboBox(self.groupBox_4)
- self.comboBox_3.setFrame(False)
- self.comboBox_3.setObjectName("comboBox_3")
- self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboBox_3)
+ self.lblRedacPOV = QtWidgets.QLabel(self.groupBox_4)
+ self.lblRedacPOV.setObjectName("lblRedacPOV")
+ self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.lblRedacPOV)
+ self.cmbRedacPOV = cmbPersoChoser(self.groupBox_4)
+ self.cmbRedacPOV.setFrame(False)
+ self.cmbRedacPOV.setObjectName("cmbRedacPOV")
+ self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cmbRedacPOV)
self.label_30 = QtWidgets.QLabel(self.groupBox_4)
self.label_30.setObjectName("label_30")
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_30)
- self.comboBox_4 = QtWidgets.QComboBox(self.groupBox_4)
- self.comboBox_4.setFrame(False)
- self.comboBox_4.setObjectName("comboBox_4")
- self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.comboBox_4)
+ self.cmbRedacStatus = QtWidgets.QComboBox(self.groupBox_4)
+ self.cmbRedacStatus.setFrame(False)
+ self.cmbRedacStatus.setObjectName("cmbRedacStatus")
+ self.cmbRedacStatus.addItem("")
+ self.cmbRedacStatus.addItem("")
+ self.cmbRedacStatus.addItem("")
+ self.cmbRedacStatus.addItem("")
+ self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cmbRedacStatus)
self.label_32 = QtWidgets.QLabel(self.groupBox_4)
self.label_32.setObjectName("label_32")
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_32)
- self.checkBox = QtWidgets.QCheckBox(self.groupBox_4)
- self.checkBox.setText("")
- self.checkBox.setObjectName("checkBox")
- self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox)
+ self.chkRedacCompile = QtWidgets.QCheckBox(self.groupBox_4)
+ self.chkRedacCompile.setText("")
+ self.chkRedacCompile.setObjectName("chkRedacCompile")
+ self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.chkRedacCompile)
self.verticalLayout_20.addWidget(self.groupBox_4)
self.groupBox_5 = collapsibleGroupBox(self.tab_17)
self.groupBox_5.setCheckable(True)
@@ -876,9 +900,9 @@ class Ui_MainWindow(object):
self.groupBox_6.setObjectName("groupBox_6")
self.horizontalLayout_29 = QtWidgets.QHBoxLayout(self.groupBox_6)
self.horizontalLayout_29.setObjectName("horizontalLayout_29")
- self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(self.groupBox_6)
- self.plainTextEdit_2.setObjectName("plainTextEdit_2")
- self.horizontalLayout_29.addWidget(self.plainTextEdit_2)
+ self.txtRedacNotes = QtWidgets.QPlainTextEdit(self.groupBox_6)
+ self.txtRedacNotes.setObjectName("txtRedacNotes")
+ self.horizontalLayout_29.addWidget(self.txtRedacNotes)
self.verticalLayout_20.addWidget(self.groupBox_6)
self.tabWidget_2.addTab(self.tab_17, "")
self.tab_18 = QtWidgets.QWidget()
@@ -1015,7 +1039,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menu_Aide.menuAction())
self.retranslateUi(MainWindow)
- self.tabMain.setCurrentIndex(1)
+ self.tabMain.setCurrentIndex(5)
self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0)
@@ -1134,9 +1158,13 @@ class Ui_MainWindow(object):
self.label_9.setText(_translate("MainWindow", "POV"))
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.groupBox_4.setTitle(_translate("MainWindow", "Propriétés de la scène"))
- self.label_29.setText(_translate("MainWindow", "Personnage"))
+ self.groupBox_4.setTitle(_translate("MainWindow", "Propriétés"))
+ self.lblRedacPOV.setText(_translate("MainWindow", "POV"))
self.label_30.setText(_translate("MainWindow", "Status"))
+ self.cmbRedacStatus.setItemText(0, _translate("MainWindow", "TODO"))
+ self.cmbRedacStatus.setItemText(1, _translate("MainWindow", "First draft"))
+ self.cmbRedacStatus.setItemText(2, _translate("MainWindow", "Second draft"))
+ self.cmbRedacStatus.setItemText(3, _translate("MainWindow", "Final"))
self.label_32.setText(_translate("MainWindow", "Compile"))
self.groupBox_5.setTitle(_translate("MainWindow", "Résumé de la scène"))
self.txtRedacSummarySentance.setPlaceholderText(_translate("MainWindow", "Résumé de la scène en une ligne"))
@@ -1181,5 +1209,6 @@ class Ui_MainWindow(object):
self.actShowHelp.setText(_translate("MainWindow", "Afficher les &bulles d\'aide"))
self.actShowHelp.setShortcut(_translate("MainWindow", "Ctrl+Shift+B"))
-from ui.sldImportance import sldImportance
from ui.collapsibleGroupBox import collapsibleGroupBox
+from ui.cmbPersoChoser import cmbPersoChoser
+from ui.sldImportance import sldImportance
diff --git a/src/ui/mainWindow.ui b/src/ui/mainWindow.ui
index f01f959f..5494b03c 100644
--- a/src/ui/mainWindow.ui
+++ b/src/ui/mainWindow.ui
@@ -18,7 +18,7 @@
-
- 1
+ 5
true
@@ -542,6 +542,9 @@
Filter
+
+ true
+
@@ -901,6 +904,9 @@
Filter
+
+ true
+
-
@@ -1335,6 +1341,12 @@
QAbstractItemView::DragDrop
+
+ Qt::MoveAction
+
+
+ QAbstractItemView::ExtendedSelection
+
-
@@ -1353,7 +1365,7 @@
-
-
+
false
@@ -1377,19 +1389,31 @@
-
-
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+ -
+
@@ -1522,7 +1546,26 @@
-
-
+
+
+
+ 75
+ true
+
+
+
+ background:transparent;
+
+
+
+
+
+ false
+
+
+
+ -
+
-
@@ -1606,21 +1649,21 @@
- Propriétés de la scène
+ Propriétés
true
-
-
+
- Personnage
+ POV
-
-
+
false
@@ -1634,10 +1677,30 @@
-
-
+
false
+
-
+
+ TODO
+
+
+ -
+
+ First draft
+
+
+ -
+
+ Second draft
+
+
+ -
+
+ Final
+
+
-
@@ -1648,7 +1711,7 @@
-
-
+
@@ -1689,7 +1752,7 @@
-
-
+
@@ -1976,6 +2039,11 @@
1
+
+ cmbPersoChoser
+ QComboBox
+
+
diff --git a/src/ui/sldImportance.py b/src/ui/sldImportance.py
index 32e3c3e7..48145b06 100644
--- a/src/ui/sldImportance.py
+++ b/src/ui/sldImportance.py
@@ -20,7 +20,6 @@ class sldImportance(QWidget, Ui_sldImportance):
self.sld.valueChanged.connect(self.changed)
self.setValue(0)
-
def getImportance(self):
return str(self.sld.value())
diff --git a/src/ui/treeOutlineDelegates.py b/src/ui/treeOutlineDelegates.py
new file mode 100644
index 00000000..bd282100
--- /dev/null
+++ b/src/ui/treeOutlineDelegates.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+#--!-- coding: utf8 --!--
+
+from __future__ import print_function
+from __future__ import unicode_literals
+
+from qt import *
+from enums import *
+
+class treeOutlinePersoDelegate(QStyledItemDelegate):
+
+ def __init__(self, mdlPersos, parent=None):
+ QStyledItemDelegate.__init__(self, parent)
+ self.mdlPersos = mdlPersos
+
+ def createEditor(self, parent, option, index):
+ item = index.internalPointer()
+ if item.isFolder():
+ return
+
+ editor = QComboBox(parent)
+ editor.setAutoFillBackground(True)
+ return editor
+
+ def setEditorData(self, editor, index):
+ for i in range(self.mdlPersos.rowCount()):
+ editor.addItem(self.mdlPersos.item(i, Perso.name.value).text(), self.mdlPersos.item(i, Perso.ID.value).text())
+ editor.setCurrentIndex(editor.findData(index.data()))
+
+ def setModelData(self, editor, model, index):
+ val = editor.currentData()
+ model.setData(index, val)
+
+ def displayText(self, value, locale):
+
+ for i in range(self.mdlPersos.rowCount()):
+ if self.mdlPersos.item(i, Perso.ID.value).text() == value:
+ return self.mdlPersos.item(i, Perso.name.value).text()
+ return ""
+
+class treeOutlineCompileDelegate(QStyledItemDelegate):
+
+ def __init__(self, parent=None):
+ QStyledItemDelegate.__init__(self, parent)
+
+ def displayText(self, value, locale):
+ return ""
\ No newline at end of file
diff --git a/test_project/outline.xml b/test_project/outline.xml
index 35b00720..d0972a29 100644
--- a/test_project/outline.xml
+++ b/test_project/outline.xml
@@ -1,13 +1,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
+
diff --git a/test_project/perso.xml b/test_project/perso.xml
index 2fcfdcf0..7d328aaf 100644
--- a/test_project/perso.xml
+++ b/test_project/perso.xml
@@ -3,6 +3,8 @@
+
+
@@ -35,5 +37,31 @@
Pour voir.
+
+ Ginette
+ 1
+
+
+
+
+
+
+
+
+
+
+
+ Nouveau perso avec un nom pas très long
+ 2
+
+
+
+
+
+
+
+
+
+
diff --git a/test_project/persoInfos.xml b/test_project/persoInfos.xml
index ab45c89b..5d53d5bc 100644
--- a/test_project/persoInfos.xml
+++ b/test_project/persoInfos.xml
@@ -9,20 +9,28 @@
+
+
ID
0
+ 1
+ 2
Age
42
+ 12
+
Animal préféré
Pingouin
+ Crevette aquatique
+