mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-14 09:52:27 +12:00
Custom perso model, mostly working
This commit is contained in:
parent
83552ef210
commit
0e28825649
|
@ -108,8 +108,8 @@ def outlineItemColors(item):
|
|||
colors["POV"] = QColor(Qt.transparent)
|
||||
POV = item.data(Outline.POV.value)
|
||||
for i in range(mw.mdlPersos.rowCount()):
|
||||
if mw.mdlPersos.item(i, Perso.ID.value).text() == POV:
|
||||
colors["POV"] = iconColor(mw.mdlPersos.item(i, 0).icon())
|
||||
if mw.mdlPersos.ID(i) == POV:
|
||||
colors["POV"] = iconColor(mw.mdlPersos.icon(i))
|
||||
|
||||
# Label
|
||||
lbl = item.data(Outline.label.value)
|
||||
|
|
|
@ -178,11 +178,20 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
return
|
||||
|
||||
self.tabPersos.setEnabled(True)
|
||||
# FIXME
|
||||
#self.txtPlotName.setCurrentModelIndex(index)
|
||||
#self.txtPlotDescription.setCurrentModelIndex(index)
|
||||
#self.txtPlotResult.setCurrentModelIndex(index)
|
||||
#self.sldPlotImportance.setCurrentModelIndex(index)
|
||||
|
||||
for w in [
|
||||
self.txtPersoName,
|
||||
self.sldPersoImportance,
|
||||
self.txtPersoMotivation,
|
||||
self.txtPersoGoal,
|
||||
self.txtPersoConflict,
|
||||
self.txtPersoEpiphany,
|
||||
self.txtPersoSummarySentance,
|
||||
self.txtPersoSummaryPara,
|
||||
self.txtPersoSummaryFull,
|
||||
self.txtPersoNotes,
|
||||
]:
|
||||
w.setCurrentModelIndex(index)
|
||||
|
||||
## Button color
|
||||
self.mdlPersos.updatePersoColor(index)
|
||||
|
@ -440,7 +449,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
self.saveDatas()
|
||||
|
||||
# closeEvent
|
||||
QMainWindow.closeEvent(self, event)
|
||||
#QMainWindow.closeEvent(self, event) # Causin segfaults?
|
||||
|
||||
def startTimerNoChanges(self):
|
||||
if settings.autoSaveNoChanges:
|
||||
|
@ -640,11 +649,32 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
#FIXME
|
||||
#self.btnPersoAddInfo.clicked.connect(lambda:
|
||||
#self.mdlPersosInfos.insertRow(self.mdlPersosInfos.rowCount()), AUC)
|
||||
self.mprPersos = QDataWidgetMapper()
|
||||
self.mprPersos.setModel(self.mdlPersos)
|
||||
|
||||
#self.mprPersos = QDataWidgetMapper()
|
||||
#self.mprPersos.setModel(self.mdlPersos)
|
||||
|
||||
mapping = [
|
||||
#mapping = [
|
||||
#(self.txtPersoName, Perso.name.value),
|
||||
#(self.txtPersoMotivation, Perso.motivation.value),
|
||||
#(self.txtPersoGoal, Perso.goal.value),
|
||||
#(self.txtPersoConflict, Perso.conflict.value),
|
||||
#(self.txtPersoEpiphany, Perso.epiphany.value),
|
||||
#(self.txtPersoSummarySentance, Perso.summarySentance.value),
|
||||
#(self.txtPersoSummaryPara, Perso.summaryPara.value),
|
||||
#(self.txtPersoSummaryFull, Perso.summaryFull.value),
|
||||
#(self.txtPersoNotes, Perso.notes.value)
|
||||
#]
|
||||
#for w, i in mapping:
|
||||
#self.mprPersos.addMapping(w, i)
|
||||
#self.mprPersos.addMapping(self.sldPersoImportance,
|
||||
#Perso.importance.value, "importance")
|
||||
#self.sldPersoImportance.importanceChanged.connect(self.mprPersos.submit, AUC)
|
||||
#self.tabMain.currentChanged.connect(self.mprPersos.submit, AUC)
|
||||
#self.mprPersos.setCurrentIndex(0)
|
||||
|
||||
for w, c in [
|
||||
(self.txtPersoName, Perso.name.value),
|
||||
(self.sldPersoImportance, Perso.importance.value),
|
||||
(self.txtPersoMotivation, Perso.motivation.value),
|
||||
(self.txtPersoGoal, Perso.goal.value),
|
||||
(self.txtPersoConflict, Perso.conflict.value),
|
||||
|
@ -653,17 +683,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
(self.txtPersoSummaryPara, Perso.summaryPara.value),
|
||||
(self.txtPersoSummaryFull, Perso.summaryFull.value),
|
||||
(self.txtPersoNotes, Perso.notes.value)
|
||||
]
|
||||
for w, i in mapping:
|
||||
self.mprPersos.addMapping(w, i)
|
||||
self.mprPersos.addMapping(self.sldPersoImportance,
|
||||
Perso.importance.value, "importance")
|
||||
self.sldPersoImportance.importanceChanged.connect(self.mprPersos.submit, AUC)
|
||||
self.tabMain.currentChanged.connect(self.mprPersos.submit, AUC)
|
||||
|
||||
self.mprPersos.setCurrentIndex(0)
|
||||
self.lstPersos.selectionModel().currentChanged.connect(
|
||||
self.mdlPersos.updatePersoColor, AUC)
|
||||
]:
|
||||
w.setModel(self.mdlPersos)
|
||||
w.setColumn(c)
|
||||
self.tabPersos.setEnabled(False)
|
||||
|
||||
#self.lstPersos.selectionModel().currentChanged.connect(
|
||||
#self.mdlPersos.updatePersoColor, AUC)
|
||||
#self.tabPersos.currentChanged.connect(self.resizePersosInfos)
|
||||
|
||||
# Plots
|
||||
|
@ -688,7 +714,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||
w.setColumn(c)
|
||||
|
||||
self.tabPlot.setEnabled(False)
|
||||
|
||||
self.mdlPlots.updatePlotPersoButton()
|
||||
self.mdlPersos.dataChanged.connect(self.mdlPlots.updatePlotPersoButton)
|
||||
self.lstOutlinePlots.setPlotModel(self.mdlPlots)
|
||||
self.lstOutlinePlots.setShowSubPlot(True)
|
||||
|
||||
|
|
|
@ -15,7 +15,23 @@ class persosModel(QStandardItemModel):
|
|||
#self._proxy.setSourceModel(self)
|
||||
|
||||
###############################################################################
|
||||
# QUERRIES
|
||||
# PERSOS QUERRIES
|
||||
###############################################################################
|
||||
|
||||
def name(self, row):
|
||||
return self.item(row, Perso.name.value).text()
|
||||
|
||||
def icon(self, row):
|
||||
return self.item(row, Perso.name.value).icon()
|
||||
|
||||
def ID(self, row):
|
||||
return self.item(row, Perso.ID.value).text()
|
||||
|
||||
def importance(self, row):
|
||||
return self.item(row, Perso.importance.value).text()
|
||||
|
||||
###############################################################################
|
||||
# GENERAL QUERRIES
|
||||
###############################################################################
|
||||
|
||||
def getPersosByImportance(self):
|
||||
|
@ -27,11 +43,9 @@ class persosModel(QStandardItemModel):
|
|||
return persos
|
||||
|
||||
def getPersoNameByID(self, ID):
|
||||
for i in range(self.rowCount()):
|
||||
_ID = self.item(i, Perso.ID.value).text()
|
||||
if _ID == ID or toInt(_ID) == ID:
|
||||
name = self.item(i, Perso.name.value).text()
|
||||
return name
|
||||
index = self.getIndexFromID(ID)
|
||||
if index.isValid():
|
||||
return self.name(index.row())
|
||||
return None
|
||||
|
||||
def getIndexFromID(self, ID):
|
||||
|
@ -100,7 +114,7 @@ class persosModel(QStandardItemModel):
|
|||
color = iconColor(item.icon())
|
||||
else:
|
||||
color = Qt.white
|
||||
self.colorDialog = QColorDialog(color, self)
|
||||
self.colorDialog = QColorDialog(color, self.mw)
|
||||
color = self.colorDialog.getColor(color)
|
||||
if color.isValid():
|
||||
self.setPersoColor(item, color)
|
||||
|
|
|
@ -13,7 +13,6 @@ class plotModel(QStandardItemModel):
|
|||
self.mw = mainWindow()
|
||||
|
||||
self.updatePlotPersoButton()
|
||||
self.mw.mdlPersos.dataChanged.connect(self.updatePlotPersoButton)
|
||||
|
||||
####################################################################################################
|
||||
# QUERIES #
|
||||
|
@ -168,18 +167,14 @@ class plotModel(QStandardItemModel):
|
|||
|
||||
mpr = QSignalMapper(menu)
|
||||
for i in range(self.mw.mdlPersos.rowCount()):
|
||||
if self.mw.mdlPersos.item(i, Perso.ID.value):
|
||||
a = QAction(self.mw.mdlPersos.item(i, Perso.name.value).text(), menu)
|
||||
a.triggered.connect(mpr.map)
|
||||
mpr.setMapping(a, int(self.mw.mdlPersos.item(i, Perso.ID.value).text()))
|
||||
a = QAction(self.mw.mdlPersos.name(i), menu)
|
||||
a.setIcon(self.mw.mdlPersos.icon(i))
|
||||
a.triggered.connect(mpr.map)
|
||||
mpr.setMapping(a, int(self.mw.mdlPersos.ID(i)))
|
||||
|
||||
imp = toInt(self.mw.mdlPersos.importance(i))
|
||||
|
||||
imp = self.mw.mdlPersos.item(i, Perso.importance.value)
|
||||
if imp:
|
||||
imp = toInt(imp.text())
|
||||
else:
|
||||
imp = 0
|
||||
|
||||
menus[2-imp].addAction(a)
|
||||
menus[2-imp].addAction(a)
|
||||
|
||||
mpr.mapped.connect(self.addPlotPerso)
|
||||
self.mw.btnAddPlotPerso.setMenu(menu)
|
|
@ -53,10 +53,10 @@ def openReference(ref):
|
|||
mw = mainWindow()
|
||||
|
||||
for i in range(mw.mdlPersos.rowCount()):
|
||||
if mw.mdlPersos.item(i, Perso.ID.value).text() == _ref:
|
||||
if mw.mdlPersos.ID(i) == _ref:
|
||||
mw.tabMain.setCurrentIndex(2)
|
||||
# FIXME: update after creating a custom persomodel
|
||||
#mw.lstPersos.setCurrentRow(i)
|
||||
item = mw.lstPersos.getItemByID(_ref)
|
||||
mw.lstPersos.setCurrentItem(item)
|
||||
return True
|
||||
|
||||
print("Ref not found")
|
||||
|
|
|
@ -372,39 +372,21 @@ class Ui_MainWindow(object):
|
|||
self.label_4 = QtWidgets.QLabel(self.infos)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_4)
|
||||
self.txtPersoMotivation = QtWidgets.QPlainTextEdit(self.infos)
|
||||
self.txtPersoMotivation.setObjectName("txtPersoMotivation")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.txtPersoMotivation)
|
||||
self.label_5 = QtWidgets.QLabel(self.infos)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_5)
|
||||
self.txtPersoGoal = QtWidgets.QPlainTextEdit(self.infos)
|
||||
self.txtPersoGoal.setObjectName("txtPersoGoal")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.txtPersoGoal)
|
||||
self.label_6 = QtWidgets.QLabel(self.infos)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_6)
|
||||
self.txtPersoConflict = QtWidgets.QPlainTextEdit(self.infos)
|
||||
self.txtPersoConflict.setObjectName("txtPersoConflict")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.txtPersoConflict)
|
||||
self.label_7 = QtWidgets.QLabel(self.infos)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.label_7)
|
||||
self.txtPersoEpiphany = QtWidgets.QPlainTextEdit(self.infos)
|
||||
self.txtPersoEpiphany.setObjectName("txtPersoEpiphany")
|
||||
self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.txtPersoEpiphany)
|
||||
self.label_24 = QtWidgets.QLabel(self.infos)
|
||||
self.label_24.setObjectName("label_24")
|
||||
self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.label_24)
|
||||
self.txtPersoSummarySentance = QtWidgets.QPlainTextEdit(self.infos)
|
||||
self.txtPersoSummarySentance.setObjectName("txtPersoSummarySentance")
|
||||
self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummarySentance)
|
||||
self.label_8 = QtWidgets.QLabel(self.infos)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.formLayout.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.label_8)
|
||||
self.txtPersoSummaryPara = QtWidgets.QPlainTextEdit(self.infos)
|
||||
self.txtPersoSummaryPara.setObjectName("txtPersoSummaryPara")
|
||||
self.formLayout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummaryPara)
|
||||
self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_21.setObjectName("horizontalLayout_21")
|
||||
spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
|
@ -425,7 +407,7 @@ class Ui_MainWindow(object):
|
|||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.sldPersoImportance)
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.txtPersoName = QtWidgets.QLineEdit(self.infos)
|
||||
self.txtPersoName = lineEditView(self.infos)
|
||||
self.txtPersoName.setObjectName("txtPersoName")
|
||||
self.horizontalLayout_3.addWidget(self.txtPersoName)
|
||||
self.btnPersoColor = QtWidgets.QPushButton(self.infos)
|
||||
|
@ -433,12 +415,30 @@ class Ui_MainWindow(object):
|
|||
self.btnPersoColor.setObjectName("btnPersoColor")
|
||||
self.horizontalLayout_3.addWidget(self.btnPersoColor)
|
||||
self.formLayout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
|
||||
self.txtPersoMotivation = textEditView(self.infos)
|
||||
self.txtPersoMotivation.setObjectName("txtPersoMotivation")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.txtPersoMotivation)
|
||||
self.txtPersoGoal = textEditView(self.infos)
|
||||
self.txtPersoGoal.setObjectName("txtPersoGoal")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.txtPersoGoal)
|
||||
self.txtPersoConflict = textEditView(self.infos)
|
||||
self.txtPersoConflict.setObjectName("txtPersoConflict")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.txtPersoConflict)
|
||||
self.txtPersoEpiphany = textEditView(self.infos)
|
||||
self.txtPersoEpiphany.setObjectName("txtPersoEpiphany")
|
||||
self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.txtPersoEpiphany)
|
||||
self.txtPersoSummarySentance = textEditView(self.infos)
|
||||
self.txtPersoSummarySentance.setObjectName("txtPersoSummarySentance")
|
||||
self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummarySentance)
|
||||
self.txtPersoSummaryPara = textEditView(self.infos)
|
||||
self.txtPersoSummaryPara.setObjectName("txtPersoSummaryPara")
|
||||
self.formLayout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.txtPersoSummaryPara)
|
||||
self.tabPersos.addTab(self.infos, "")
|
||||
self.tab_11 = QtWidgets.QWidget()
|
||||
self.tab_11.setObjectName("tab_11")
|
||||
self.verticalLayout_17 = QtWidgets.QVBoxLayout(self.tab_11)
|
||||
self.verticalLayout_17.setObjectName("verticalLayout_17")
|
||||
self.txtPersoSummaryFull = QtWidgets.QPlainTextEdit(self.tab_11)
|
||||
self.txtPersoSummaryFull = textEditView(self.tab_11)
|
||||
self.txtPersoSummaryFull.setObjectName("txtPersoSummaryFull")
|
||||
self.verticalLayout_17.addWidget(self.txtPersoSummaryFull)
|
||||
self.horizontalLayout_22 = QtWidgets.QHBoxLayout()
|
||||
|
@ -456,7 +456,7 @@ class Ui_MainWindow(object):
|
|||
self.tab_19.setObjectName("tab_19")
|
||||
self.horizontalLayout_30 = QtWidgets.QHBoxLayout(self.tab_19)
|
||||
self.horizontalLayout_30.setObjectName("horizontalLayout_30")
|
||||
self.txtPersoNotes = QtWidgets.QPlainTextEdit(self.tab_19)
|
||||
self.txtPersoNotes = textEditView(self.tab_19)
|
||||
self.txtPersoNotes.setObjectName("txtPersoNotes")
|
||||
self.horizontalLayout_30.addWidget(self.txtPersoNotes)
|
||||
self.tabPersos.addTab(self.tab_19, "")
|
||||
|
@ -1176,13 +1176,13 @@ class Ui_MainWindow(object):
|
|||
self.actCloseProject.setText(_translate("MainWindow", "Close project"))
|
||||
|
||||
from ui.views.plotTreeView import plotTreeView
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.views.persoTreeView import persoTreeView
|
||||
from ui.views.lineEditView import lineEditView
|
||||
from ui.views.textEditView import textEditView
|
||||
from ui.sldImportance import sldImportance
|
||||
from ui.editors.mainEditor import mainEditor
|
||||
from ui.views.metadataView import metadataView
|
||||
from ui.views.basicItemView import basicItemView
|
||||
from ui.views.treeView import treeView
|
||||
from ui.views.outlineView import outlineView
|
||||
from ui.welcome import welcome
|
||||
from ui.views.treeView import treeView
|
||||
from ui.views.basicItemView import basicItemView
|
||||
from ui.views.textEditView import textEditView
|
||||
from ui.views.metadataView import metadataView
|
||||
from ui.views.persoTreeView import persoTreeView
|
||||
from ui.editors.mainEditor import mainEditor
|
||||
from ui.sldImportance import sldImportance
|
||||
|
|
|
@ -748,9 +748,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPlainTextEdit" name="txtPersoMotivation"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
|
@ -758,9 +755,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPlainTextEdit" name="txtPersoGoal"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
|
@ -768,9 +762,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPlainTextEdit" name="txtPersoConflict"/>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
|
@ -778,9 +769,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QPlainTextEdit" name="txtPersoEpiphany"/>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
|
@ -788,9 +776,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QPlainTextEdit" name="txtPersoSummarySentance"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
|
@ -798,9 +783,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QPlainTextEdit" name="txtPersoSummaryPara"/>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_21">
|
||||
<item>
|
||||
|
@ -842,7 +824,7 @@
|
|||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txtPersoName"/>
|
||||
<widget class="lineEditView" name="txtPersoName"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnPersoColor">
|
||||
|
@ -853,6 +835,24 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="textEditView" name="txtPersoMotivation"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="textEditView" name="txtPersoGoal"/>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="textEditView" name="txtPersoConflict"/>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="textEditView" name="txtPersoEpiphany"/>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="textEditView" name="txtPersoSummarySentance"/>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="textEditView" name="txtPersoSummaryPara"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_11">
|
||||
|
@ -861,7 +861,7 @@
|
|||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="txtPersoSummaryFull"/>
|
||||
<widget class="textEditView" name="txtPersoSummaryFull"/>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_22">
|
||||
|
@ -899,7 +899,7 @@
|
|||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_30">
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="txtPersoNotes"/>
|
||||
<widget class="textEditView" name="txtPersoNotes"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
|
|
@ -31,25 +31,17 @@ class cmbOutlinePersoChoser(QComboBox):
|
|||
|
||||
for importance in range(3):
|
||||
self.addItem(l[importance])
|
||||
# FIXME: segfault sometimes on QBrush next line
|
||||
self.setItemData(self.count()-1, QBrush(QColor(Qt.darkBlue)), Qt.ForegroundRole)
|
||||
self.setItemData(self.count()-1, QBrush(QColor(Qt.blue).lighter(190)), Qt.BackgroundRole)
|
||||
item = self.model().item(self.count()-1)
|
||||
item.setFlags(Qt.ItemIsEnabled)
|
||||
for i in range(self.mdlPersos.rowCount()):
|
||||
imp = self.mdlPersos.item(i, Perso.importance.value)
|
||||
if imp:
|
||||
imp = toInt(imp.text())
|
||||
else:
|
||||
imp = 0
|
||||
imp = toInt(self.mdlPersos.importance(i))
|
||||
|
||||
if not 2-imp == importance: continue
|
||||
|
||||
item = self.mdlPersos.item(i, Perso.name.value)
|
||||
item2 = self.mdlPersos.item(i, Perso.ID.value)
|
||||
|
||||
if item and item2: # Otherwise error while loading
|
||||
self.addItem(item.icon(), item.text(), item2.text())
|
||||
self.setItemData(i+1, item.text(), Qt.ToolTipRole)
|
||||
self.addItem(self.mdlPersos.icon(i), self.mdlPersos.name(i), self.mdlPersos.ID(i))
|
||||
self.setItemData(self.count() - 1, self.mdlPersos.name(i), Qt.ToolTipRole)
|
||||
|
||||
|
||||
self._various = False
|
||||
|
|
|
@ -79,15 +79,11 @@ class outlineBasics(QAbstractItemView):
|
|||
|
||||
mpr = QSignalMapper(self.menuPOV)
|
||||
for i in range(mw.mdlPersos.rowCount()):
|
||||
a = QAction(mw.mdlPersos.item(i, Perso.name.value).text(), self.menuPOV)
|
||||
a = QAction(mw.mdlPersos.icon(i), mw.mdlPersos.name(i), self.menuPOV)
|
||||
a.triggered.connect(mpr.map)
|
||||
mpr.setMapping(a, int(mw.mdlPersos.item(i, Perso.ID.value).text()))
|
||||
mpr.setMapping(a, int(mw.mdlPersos.ID(i)))
|
||||
|
||||
imp = mw.mdlPersos.item(i, Perso.importance.value)
|
||||
if imp:
|
||||
imp = toInt(imp.text())
|
||||
else:
|
||||
imp = 0
|
||||
imp = toInt(mw.mdlPersos.importance(i))
|
||||
|
||||
menus[2-imp].addAction(a)
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ class outlinePersoDelegate(QStyledItemDelegate):
|
|||
|
||||
item = QModelIndex()
|
||||
for i in range(self.mdlPersos.rowCount()):
|
||||
if self.mdlPersos.item(i, Perso.ID.value).text() == index.data(Perso.name.value):
|
||||
if self.mdlPersos.ID(i) == index.data():
|
||||
item = self.mdlPersos.index(i, Perso.name.value)
|
||||
|
||||
opt = QStyleOptionViewItem(option)
|
||||
|
@ -124,30 +124,23 @@ class outlinePersoDelegate(QStyledItemDelegate):
|
|||
def setEditorData(self, editor, index):
|
||||
#editor.addItem("")
|
||||
editor.addItem(QIcon.fromTheme("edit-delete"), self.tr("None"))
|
||||
#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.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole)
|
||||
|
||||
l = [self.tr("Main"), self.tr("Secondary"), self.tr("Minor")]
|
||||
for importance in range(3):
|
||||
editor.addItem(l[importance])
|
||||
editor.setItemData(editor.count()-1, QBrush(Qt.darkBlue), Qt.ForegroundRole)
|
||||
editor.setItemData(editor.count()-1, QBrush(QColor(Qt.blue).lighter(190)), Qt.BackgroundRole)
|
||||
item = editor.model().item(editor.count()-1)
|
||||
editor.setItemData(editor.count() - 1, QBrush(Qt.darkBlue), Qt.ForegroundRole)
|
||||
editor.setItemData(editor.count() - 1, QBrush(QColor(Qt.blue).lighter(190)), Qt.BackgroundRole)
|
||||
item = editor.model().item(editor.count() - 1)
|
||||
item.setFlags(Qt.ItemIsEnabled)
|
||||
for i in range(self.mdlPersos.rowCount()):
|
||||
imp = self.mdlPersos.item(i, Perso.importance.value)
|
||||
if imp:
|
||||
imp = toInt(imp.text())
|
||||
else:
|
||||
imp = 0
|
||||
imp = toInt(self.mdlPersos.importance(i))
|
||||
if not 2-imp == importance: continue
|
||||
|
||||
try:
|
||||
editor.addItem(self.mdlPersos.item(i, Perso.name.value).icon(), self.mdlPersos.item(i, Perso.name.value).text(), self.mdlPersos.item(i, Perso.ID.value).text())
|
||||
editor.setItemData(i+1, self.mdlPersos.item(i, Perso.name.value).text(), Qt.ToolTipRole)
|
||||
except:
|
||||
pass
|
||||
#try:
|
||||
editor.addItem(self.mdlPersos.icon(i), self.mdlPersos.name(i), self.mdlPersos.ID(i))
|
||||
editor.setItemData(editor.count() - 1, self.mdlPersos.name(i), Qt.ToolTipRole)
|
||||
#except:
|
||||
#pass
|
||||
|
||||
editor.setCurrentIndex(editor.findData(index.data()))
|
||||
editor.showPopup()
|
||||
|
@ -156,12 +149,6 @@ class outlinePersoDelegate(QStyledItemDelegate):
|
|||
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 ""
|
||||
|
||||
def paint(self, painter, option, index):
|
||||
##option.rect.setWidth(option.rect.width() - 18)
|
||||
#QStyledItemDelegate.paint(self, painter, option, index)
|
||||
|
@ -169,7 +156,7 @@ class outlinePersoDelegate(QStyledItemDelegate):
|
|||
|
||||
item = QModelIndex()
|
||||
for i in range(self.mdlPersos.rowCount()):
|
||||
if self.mdlPersos.item(i, Perso.ID.value).text() == index.data(Perso.name.value):
|
||||
if self.mdlPersos.ID(i) == index.data():
|
||||
item = self.mdlPersos.index(i, Perso.name.value)
|
||||
|
||||
opt = QStyleOptionViewItem(option)
|
||||
|
|
|
@ -17,6 +17,8 @@ class persoTreeView(QTreeWidget):
|
|||
self._updating = False
|
||||
self.setRootIsDecorated(False)
|
||||
self.setIndentation(10)
|
||||
self.setHeaderHidden(True)
|
||||
self.setIconSize(QSize(24, 24))
|
||||
|
||||
self.setColumnCount(1)
|
||||
self._rootItem = QTreeWidgetItem()
|
||||
|
@ -46,7 +48,7 @@ class persoTreeView(QTreeWidget):
|
|||
self.updateItems()
|
||||
|
||||
def updateMaybe2(self, parent, first, last):
|
||||
"Rows inserted or removed"
|
||||
#Rows inserted or removed, we update only if they are topLevel rows.
|
||||
if parent == QModelIndex():
|
||||
self.updateItems()
|
||||
|
||||
|
@ -58,8 +60,14 @@ class persoTreeView(QTreeWidget):
|
|||
sub = item.child(c)
|
||||
ID = sub.data(0, Qt.UserRole)
|
||||
if ID:
|
||||
# Update name
|
||||
name = self._model.getPersoNameByID(ID)
|
||||
sub.setText(0, name)
|
||||
# Update icon
|
||||
px = QPixmap(32, 32)
|
||||
color = QColor(self._model.getPersoColorByID(ID))
|
||||
px.fill(color)
|
||||
sub.setIcon(0, QIcon(px))
|
||||
|
||||
def updateItems(self):
|
||||
if not self._model:
|
||||
|
@ -102,9 +110,11 @@ class persoTreeView(QTreeWidget):
|
|||
self._updating = False
|
||||
|
||||
def getItemByID(self, ID):
|
||||
for i in range(self.topLevelItemCount()):
|
||||
if self.topLevelItem(i).data(0, Qt.UserRole) == ID:
|
||||
return self.topLevelItem(i)
|
||||
for t in range(self.topLevelItemCount()):
|
||||
for i in range(self.topLevelItem(t).childCount()):
|
||||
item = self.topLevelItem(t).child(i)
|
||||
if item.data(0, Qt.UserRole) == ID:
|
||||
return item
|
||||
|
||||
def currentPersoIndex(self):
|
||||
ID = None
|
||||
|
|
Loading…
Reference in a new issue