Perso infos

This commit is contained in:
Olivier Keshavjee 2015-06-29 11:28:34 +02:00
parent 0e28825649
commit 37810a7108
6 changed files with 98 additions and 55 deletions

View file

@ -17,6 +17,7 @@ SOURCES += ../src/settingsWindow.py
SOURCES += ../src/models/outlineModel.py
SOURCES += ../src/models/persosProxyModel.py
SOURCES += ../src/models/plotModel.py
SOURCES += ../src/models/persosModel.py
SOURCES += ../src/models/references.py
SOURCES += ../src/ui/helpLabel.py

View file

@ -21,6 +21,8 @@ class Perso(Enum):
summaryPara = 8
summaryFull = 9
notes = 10
infoName = 11
infoData = 12
class Plot(Enum):
name = 0

View file

@ -193,9 +193,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
]:
w.setCurrentModelIndex(index)
## Button color
# Button color
self.mdlPersos.updatePersoColor(index)
# Perso Infos
self.tblPersoInfos.setRootIndex(index)
if self.mdlPersos.rowCount(index):
self.updatePersoInfoView()
#if self.mdlPersosProxy:
#idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
@ -213,6 +218,19 @@ class MainWindow(QMainWindow, Ui_MainWindow):
#self.resizePersosInfos()
def updatePersoInfoView(self):
# Hide columns
for i in range(self.mdlPersos.columnCount()):
self.tblPersoInfos.hideColumn(i)
self.tblPersoInfos.showColumn(Perso.infoName.value)
self.tblPersoInfos.showColumn(Perso.infoData.value)
self.tblPersoInfos.horizontalHeader().setSectionResizeMode(
Perso.infoName.value, QHeaderView.ResizeToContents)
self.tblPersoInfos.horizontalHeader().setSectionResizeMode(
Perso.infoData.value, QHeaderView.Stretch)
self.tblPersoInfos.verticalHeader().hide()
#def updatePersoColor(self):
#if self.mdlPersosProxy:
#idx = self.mdlPersosProxy.mapToSource(self.lstPersos.currentIndex())
@ -634,6 +652,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Persos
self.lstPersos.setPersosModel(self.mdlPersos)
self.tblPersoInfos.setModel(self.mdlPersos)
self.btnAddPerso.clicked.connect(self.mdlPersos.addPerso, AUC)
self.btnRmPerso.clicked.connect(self.mdlPersos.removePerso, AUC)
self.btnPersoColor.clicked.connect(self.mdlPersos.chosePersoColor, AUC)
@ -646,10 +666,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
#self.tblPersoInfos.setModel(self.mdlPersosInfos)
#self.tblPersoInfos.setRowHidden(0, True)
#FIXME
#self.btnPersoAddInfo.clicked.connect(lambda:
#self.mdlPersosInfos.insertRow(self.mdlPersosInfos.rowCount()), AUC)
self.btnPersoAddInfo.clicked.connect(self.mdlPersos.addPersoInfo, AUC)
self.btnPersoRmInfo.clicked.connect(self.mdlPersos.removePersoInfo, AUC)
#self.mprPersos = QDataWidgetMapper()
#self.mprPersos.setModel(self.mdlPersos)
@ -759,7 +778,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"])
self.tblDebugFlatData.setModel(self.mdlFlatData)
self.tblDebugPersos.setModel(self.mdlPersos)
#self.tblDebugPersosInfos.setModel(self.mdlPersosInfos)
self.tblDebugPersosInfos.setModel(self.mdlPersos)
self.tblDebugPersos.selectionModel().currentChanged.connect(
lambda: self.tblDebugPersosInfos.setRootIndex(self.mdlPersos.index(
self.tblDebugPersos.selectionModel().currentIndex().row(),
Perso.name.value)), AUC)
self.tblDebugPlots.setModel(self.mdlPlots)
self.tblDebugPlotsPersos.setModel(self.mdlPlots)
self.tblDebugSubPlots.setModel(self.mdlPlots)
@ -774,7 +798,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.treeDebugOutline.setModel(self.mdlOutline)
self.lstDebugLabels.setModel(self.mdlLabels)
self.lstDebugStatus.setModel(self.mdlStatus)
self.mdlPersos.setHorizontalHeaderLabels([i.name for i in Perso])
#self.mdlPersos.setHorizontalHeaderLabels([i.name for i in Perso])
###############################################################################
@ -843,7 +867,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.splitterRedac.setStretchFactor(0, 20)
self.splitterRedac.setStretchFactor(1, 60)
self.splitterRedac.setStretchFactor(2, 20)
# Help box
references = [
(self.lytTabOverview,

View file

@ -31,7 +31,7 @@ class persosModel(QStandardItemModel):
return self.item(row, Perso.importance.value).text()
###############################################################################
# GENERAL QUERRIES
# MODEL QUERRIES
###############################################################################
def getPersosByImportance(self):
@ -82,6 +82,7 @@ class persosModel(QStandardItemModel):
and a column in mdlPersosInfos with same ID"""
p = QStandardItem(self.tr("New character"))
self.setPersoColor(p, randomColor(QColor(Qt.white)))
pid = self.getUniqueID()
self.appendRow([p, QStandardItem(pid), QStandardItem("0")])
@ -129,11 +130,40 @@ class persosModel(QStandardItemModel):
color = self.getPersoColorName(idx)
self.mw.btnPersoColor.setStyleSheet("background:{};".format(color))
###############################################################################
# PERSO INFOS
###############################################################################
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
if section == Perso.infoName.value:
return self.tr("Name")
elif section == Perso.infoData.value:
return self.tr("Value")
else:
return Perso(section).name
else:
return QStandardItemModel.headerData(self, section, orientation, role=Qt.DisplayRole)
def addPersoInfo(self):
#FIXME
pass
perso = self.itemFromIndex(self.currentPersoIndex())
row = perso.rowCount()
perso.setChild(row, Perso.infoName.value, QStandardItem(""))
perso.setChild(row, Perso.infoData.value, QStandardItem(""))
self.mw.updatePersoInfoView()
def removePersoInfo(self):
perso = self.itemFromIndex(self.currentPersoIndex())
rm = []
for idx in self.mw.tblPersoInfos.selectedIndexes():
if not idx.row() in rm:
rm.append(idx.row())
rm.sort()
rm.reverse()
for r in rm:
perso.takeRow(r)

View file

@ -466,6 +466,7 @@ class Ui_MainWindow(object):
self.verticalLayout_9.setObjectName("verticalLayout_9")
self.tblPersoInfos = QtWidgets.QTableView(self.tab_12)
self.tblPersoInfos.setAlternatingRowColors(True)
self.tblPersoInfos.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.tblPersoInfos.setTextElideMode(QtCore.Qt.ElideNone)
self.tblPersoInfos.setObjectName("tblPersoInfos")
self.verticalLayout_9.addWidget(self.tblPersoInfos)
@ -484,12 +485,12 @@ class Ui_MainWindow(object):
self.pushButton_3.setCheckable(True)
self.pushButton_3.setObjectName("pushButton_3")
self.horizontalLayout_9.addWidget(self.pushButton_3)
self.pushButton_2 = QtWidgets.QPushButton(self.tab_12)
self.pushButton_2.setText("")
self.btnPersoRmInfo = QtWidgets.QPushButton(self.tab_12)
self.btnPersoRmInfo.setText("")
icon = QtGui.QIcon.fromTheme("list-remove")
self.pushButton_2.setIcon(icon)
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout_9.addWidget(self.pushButton_2)
self.btnPersoRmInfo.setIcon(icon)
self.btnPersoRmInfo.setObjectName("btnPersoRmInfo")
self.horizontalLayout_9.addWidget(self.btnPersoRmInfo)
self.lineEdit = QtWidgets.QLineEdit(self.tab_12)
self.lineEdit.setObjectName("lineEdit")
self.horizontalLayout_9.addWidget(self.lineEdit)
@ -878,21 +879,15 @@ class Ui_MainWindow(object):
self.tabWidget.addTab(self.tab_9, "")
self.tab_10 = QtWidgets.QWidget()
self.tab_10.setObjectName("tab_10")
self.horizontalLayout_27 = QtWidgets.QHBoxLayout(self.tab_10)
self.horizontalLayout_27.setObjectName("horizontalLayout_27")
self.verticalLayout_19 = QtWidgets.QVBoxLayout(self.tab_10)
self.verticalLayout_19.setObjectName("verticalLayout_19")
self.tblDebugPersos = QtWidgets.QTableView(self.tab_10)
self.tblDebugPersos.setObjectName("tblDebugPersos")
self.horizontalLayout_27.addWidget(self.tblDebugPersos)
self.tabWidget.addTab(self.tab_10, "")
self.tab_16 = QtWidgets.QWidget()
self.tab_16.setObjectName("tab_16")
self.horizontalLayout_28 = QtWidgets.QHBoxLayout(self.tab_16)
self.horizontalLayout_28.setObjectName("horizontalLayout_28")
self.tblDebugPersosInfos = QtWidgets.QTableView(self.tab_16)
self.tblDebugPersosInfos.setAlternatingRowColors(True)
self.verticalLayout_19.addWidget(self.tblDebugPersos)
self.tblDebugPersosInfos = QtWidgets.QTableView(self.tab_10)
self.tblDebugPersosInfos.setObjectName("tblDebugPersosInfos")
self.horizontalLayout_28.addWidget(self.tblDebugPersosInfos)
self.tabWidget.addTab(self.tab_16, "")
self.verticalLayout_19.addWidget(self.tblDebugPersosInfos)
self.tabWidget.addTab(self.tab_10, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.horizontalLayout_11 = QtWidgets.QHBoxLayout(self.tab_2)
@ -1039,12 +1034,12 @@ class Ui_MainWindow(object):
self.stack.setCurrentIndex(1)
self.tabMain.setCurrentIndex(2)
self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(3)
self.tabPlot.setCurrentIndex(0)
self.comboBox_2.setCurrentIndex(0)
self.stkPlotSummary.setCurrentIndex(0)
self.tabRedacInfos.setCurrentIndex(0)
self.tabWidget.setCurrentIndex(3)
self.tabWidget.setCurrentIndex(1)
self.btnPlotShowSummary.toggled['bool'].connect(self.grpPlotSummary.setVisible)
self.comboBox_2.currentIndexChanged['int'].connect(self.stkPlotSummary.setCurrentIndex)
self.btnPlanShowDetails.toggled['bool'].connect(self.frame.setVisible)
@ -1139,7 +1134,6 @@ class Ui_MainWindow(object):
self.tabMain.setTabText(self.tabMain.indexOf(self.lytTabRedac), _translate("MainWindow", "Redaction"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_9), _translate("MainWindow", "FlatData"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_10), _translate("MainWindow", "Persos"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_16), _translate("MainWindow", "Perso Infos"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Plots"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_20), _translate("MainWindow", "Outline"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Labels"))
@ -1175,14 +1169,14 @@ class Ui_MainWindow(object):
self.actSettings.setShortcut(_translate("MainWindow", "F8"))
self.actCloseProject.setText(_translate("MainWindow", "Close project"))
from ui.views.plotTreeView import plotTreeView
from ui.views.lineEditView import lineEditView
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.plotTreeView import plotTreeView
from ui.views.textEditView import textEditView
from ui.views.metadataView import metadataView
from ui.views.persoTreeView import persoTreeView
from ui.views.basicItemView import basicItemView
from ui.editors.mainEditor import mainEditor
from ui.views.metadataView import metadataView
from ui.views.outlineView import outlineView
from ui.views.persoTreeView import persoTreeView
from ui.views.treeView import treeView
from ui.views.lineEditView import lineEditView
from ui.sldImportance import sldImportance

View file

@ -717,7 +717,7 @@
</widget>
<widget class="QTabWidget" name="tabPersos">
<property name="currentIndex">
<number>0</number>
<number>3</number>
</property>
<widget class="QWidget" name="infos">
<attribute name="title">
@ -913,6 +913,9 @@
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="textElideMode">
<enum>Qt::ElideNone</enum>
</property>
@ -946,7 +949,7 @@
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<widget class="QPushButton" name="btnPersoRmInfo">
<property name="text">
<string/>
</property>
@ -1673,7 +1676,7 @@
<enum>QTabWidget::West</enum>
</property>
<property name="currentIndex">
<number>3</number>
<number>1</number>
</property>
<widget class="QWidget" name="tab_9">
<attribute name="title">
@ -1689,23 +1692,12 @@
<attribute name="title">
<string>Persos</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_27">
<layout class="QVBoxLayout" name="verticalLayout_19">
<item>
<widget class="QTableView" name="tblDebugPersos"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_16">
<attribute name="title">
<string>Perso Infos</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_28">
<item>
<widget class="QTableView" name="tblDebugPersosInfos">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
</widget>
<widget class="QTableView" name="tblDebugPersosInfos"/>
</item>
</layout>
</widget>