Plan view almost working

This commit is contained in:
Olivier Keshavjee 2015-06-04 02:04:47 +02:00
parent 5ecdabd43e
commit 8d7877e415
12 changed files with 409 additions and 83 deletions

View file

@ -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

View file

@ -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")

View file

@ -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)

View file

@ -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))

65
src/ui/cmbPersoChoser.py Normal file
View file

@ -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()

View file

@ -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

View file

@ -18,7 +18,7 @@
<item>
<widget class="QTabWidget" name="tabMain">
<property name="currentIndex">
<number>1</number>
<number>5</number>
</property>
<property name="documentMode">
<bool>true</bool>
@ -542,6 +542,9 @@
<property name="placeholderText">
<string>Filter</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
@ -901,6 +904,9 @@
<property name="placeholderText">
<string>Filter</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -1335,6 +1341,12 @@
<property name="dragDropMode">
<enum>QAbstractItemView::DragDrop</enum>
</property>
<property name="defaultDropAction">
<enum>Qt::MoveAction</enum>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
</widget>
</item>
<item>
@ -1353,7 +1365,7 @@
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbPlanPOV">
<widget class="cmbPersoChoser" name="cmbPlanPOV">
<property name="frame">
<bool>false</bool>
</property>
@ -1377,19 +1389,31 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_18">
<item>
<widget class="QPushButton" name="pushButton_17">
<widget class="QPushButton" name="btnPlanAddFolder">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="list-add">
<iconset theme="folder-new">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_18">
<widget class="QPushButton" name="btnPlanAddScene">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="document-new">
<normaloff/>
</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnPlanRemoveItem">
<property name="text">
<string/>
</property>
@ -1522,7 +1546,26 @@
<widget class="QWidget" name="layoutWidget">
<layout class="QVBoxLayout" name="verticalLayout_16">
<item>
<widget class="QPlainTextEdit" name="plainTextEdit_9"/>
<widget class="QLineEdit" name="txtRedacTitle">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background:transparent;</string>
</property>
<property name="text">
<string/>
</property>
<property name="frame">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPlainTextEdit" name="txtRedacText"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_19">
@ -1606,21 +1649,21 @@
</sizepolicy>
</property>
<property name="title">
<string>Propriétés de la scène</string>
<string>Propriétés</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QFormLayout" name="formLayout_5">
<item row="0" column="0">
<widget class="QLabel" name="label_29">
<widget class="QLabel" name="lblRedacPOV">
<property name="text">
<string>Personnage</string>
<string>POV</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_3">
<widget class="cmbPersoChoser" name="cmbRedacPOV">
<property name="frame">
<bool>false</bool>
</property>
@ -1634,10 +1677,30 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_4">
<widget class="QComboBox" name="cmbRedacStatus">
<property name="frame">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>TODO</string>
</property>
</item>
<item>
<property name="text">
<string>First draft</string>
</property>
</item>
<item>
<property name="text">
<string>Second draft</string>
</property>
</item>
<item>
<property name="text">
<string>Final</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
@ -1648,7 +1711,7 @@
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="checkBox">
<widget class="QCheckBox" name="chkRedacCompile">
<property name="text">
<string/>
</property>
@ -1689,7 +1752,7 @@
</property>
<layout class="QHBoxLayout" name="horizontalLayout_29">
<item>
<widget class="QPlainTextEdit" name="plainTextEdit_2"/>
<widget class="QPlainTextEdit" name="txtRedacNotes"/>
</item>
</layout>
</widget>
@ -1976,6 +2039,11 @@
<header>ui.collapsibleGroupBox.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>cmbPersoChoser</class>
<extends>QComboBox</extends>
<header>ui.cmbPersoChoser.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections>

View file

@ -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())

View file

@ -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 ""

View file

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

View file

@ -3,6 +3,8 @@
<header>
<vertical>
<label row="0" text="1"/>
<label row="1" text="2"/>
<label row="2" text="3"/>
</vertical>
<horizontal>
<label row="0" text="name"/>
@ -35,5 +37,31 @@
Pour voir.</col>
</row>
<row row="1">
<col col="0">Ginette</col>
<col col="1">1</col>
<col col="2"/>
<col col="3"/>
<col col="4"/>
<col col="5"/>
<col col="6"/>
<col col="7"/>
<col col="8"/>
<col col="9"/>
<col col="10"/>
</row>
<row row="2">
<col col="0">Nouveau perso avec un nom pas très long</col>
<col col="1">2</col>
<col col="2"/>
<col col="3"/>
<col col="4"/>
<col col="5"/>
<col col="6"/>
<col col="7"/>
<col col="8"/>
<col col="9"/>
<col col="10"/>
</row>
</data>
</model>

View file

@ -9,20 +9,28 @@
<horizontal>
<label row="0" text="Description"/>
<label row="1" text="Valeur"/>
<label row="2" text="Valeur"/>
<label row="3" text="Valeur"/>
</horizontal>
</header>
<data>
<row row="0">
<col col="0">ID</col>
<col col="1">0</col>
<col col="2">1</col>
<col col="3">2</col>
</row>
<row row="1">
<col col="0">Age</col>
<col col="1">42</col>
<col col="2">12</col>
<col col="3"/>
</row>
<row row="2">
<col col="0">Animal préféré</col>
<col col="1">Pingouin</col>
<col col="2">Crevette aquatique</col>
<col col="3"/>
</row>
</data>
</model>