Adds enums

This commit is contained in:
Olivier Keshavjee 2015-06-01 12:29:06 +02:00
parent 239095a2e3
commit 0cdd017340
6 changed files with 67 additions and 56 deletions

25
src/enums.py Normal file
View file

@ -0,0 +1,25 @@
#!/usr/bin/env python
#--!-- coding: utf8 --!--
from __future__ import print_function
from __future__ import unicode_literals
# As seen on http://stackoverflow.com/questions/36932/how-can-i-represent-an-enum-in-python
from enum import Enum
#def enum(**enums):
#return type(str('Enum'), (), enums)
class Perso(Enum):
name = 0
ID = 1
importance = 2
motivation = 3
goal = 4
conflict = 5
epiphany = 6
summarySentance = 7
summaryPara = 8
summaryFull = 9

View file

@ -9,6 +9,7 @@ from PyQt4.QtGui import *
from ui.mainWindow import * from ui.mainWindow import *
from loadSave import * from loadSave import *
from enums import *
class MainWindow(QMainWindow, Ui_MainWindow): class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self): def __init__(self):
@ -96,13 +97,11 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Persos # Persos
self.mdlPersos = QStandardItemModel(0, 10) self.mdlPersos = QStandardItemModel(0, 10)
self.mdlPersosInfos = QStandardItemModel(1, 0) self.mdlPersosInfos = QStandardItemModel(1, 0)
self.mdlPersosInfos.insertColumn(0, [QStandardItem(i) for i in ["ID"]]) self.mdlPersosInfos.insertColumn(0, [QStandardItem("ID")])
self.mdlPersosInfos.setHorizontalHeaderLabels(["Description"]) self.mdlPersosInfos.setHorizontalHeaderLabels(["Description"])
self.lstPersos.setModel(self.mdlPersos) self.lstPersos.setModel(self.mdlPersos)
self.tblDebugPersos.setModel(self.mdlPersos)
self.tblPersoInfos.setModel(self.mdlPersosInfos) self.tblPersoInfos.setModel(self.mdlPersosInfos)
self.tblPersoInfos.setRowHidden(0, True) self.tblPersoInfos.setRowHidden(0, True)
self.tblDebugPersosInfos.setModel(self.mdlPersosInfos)
self.btnAddPerso.clicked.connect(self.createPerso) self.btnAddPerso.clicked.connect(self.createPerso)
self.btnRmPerso.clicked.connect(self.removePerso) self.btnRmPerso.clicked.connect(self.removePerso)
@ -111,18 +110,18 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.mprPersos.setModel(self.mdlPersos) self.mprPersos.setModel(self.mdlPersos)
mapping = [ mapping = [
(self.txtPersoName, 0), (self.txtPersoName, Perso.name.value),
(self.txtPersoMotivation, 2), (self.txtPersoMotivation, Perso.motivation.value),
(self.txtPersoGoal, 3), (self.txtPersoGoal, Perso.goal.value),
(self.txtPersoConflict, 4), (self.txtPersoConflict, Perso.conflict.value),
(self.txtPersoEpiphany, 5), (self.txtPersoEpiphany, Perso.epiphany.value),
(self.txtPersoSummarySentance, 6), (self.txtPersoSummarySentance, Perso.summarySentance.value),
(self.txtPersoSummaryPara, 7), (self.txtPersoSummaryPara, Perso.summaryPara.value),
(self.txtPersoSummaryFull, 8) (self.txtPersoSummaryFull, Perso.summaryFull.value)
] ]
for w, i in mapping: for w, i in mapping:
self.mprPersos.addMapping(w, i) self.mprPersos.addMapping(w, i)
self.mprPersos.addMapping(self.sldPersoImportance, 8, "importance") self.mprPersos.addMapping(self.sldPersoImportance, Perso.importance.value, "importance")
self.sldPersoImportance.importanceChanged.connect(self.mprPersos.submit) self.sldPersoImportance.importanceChanged.connect(self.mprPersos.submit)
self.mprPersos.setCurrentIndex(0) self.mprPersos.setCurrentIndex(0)
@ -133,6 +132,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
#Debug #Debug
self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"]) self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"])
self.tblDebugFlatData.setModel(self.mdlFlatData) self.tblDebugFlatData.setModel(self.mdlFlatData)
self.tblDebugPersos.setModel(self.mdlPersos)
self.tblDebugPersosInfos.setModel(self.mdlPersosInfos)
self.loadProject("test_project") self.loadProject("test_project")
@ -156,7 +157,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
"Returns an unused perso ID (row 1)" "Returns an unused perso ID (row 1)"
vals = [] vals = []
for i in range(self.mdlPersos.rowCount()): for i in range(self.mdlPersos.rowCount()):
item = self.mdlPersos.item(i, 1) item = self.mdlPersos.item(i, Perso.ID.value)
if item and item.text(): if item and item.text():
vals.append(int(item.text())) vals.append(int(item.text()))
@ -168,11 +169,11 @@ class MainWindow(QMainWindow, Ui_MainWindow):
"Checks whether some persos ID (row 1) are empty, if so, assign an ID" "Checks whether some persos ID (row 1) are empty, if so, assign an ID"
empty = [] empty = []
for i in range(self.mdlPersos.rowCount()): for i in range(self.mdlPersos.rowCount()):
item = self.mdlPersos.item(i, 1) item = self.mdlPersos.item(i, Perso.ID.value)
if not item: if not item:
item = QStandardItem() item = QStandardItem()
item.setText(self.getPersosID()) item.setText(self.getPersosID())
self.mdlPersos.setItem(i, 1, item) self.mdlPersos.setItem(i, Perso.ID.value, item)
def removePerso(self): def removePerso(self):
i = self.lstPersos.currentIndex() i = self.lstPersos.currentIndex()
@ -181,7 +182,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def changeCurrentPerso(self, trash=None): def changeCurrentPerso(self, trash=None):
idx = self.lstPersos.currentIndex() idx = self.lstPersos.currentIndex()
pid = self.mdlPersos.item(idx.row(), 1).text() pid = self.mdlPersos.item(idx.row(), Perso.ID.value).text()
for c in range(self.mdlPersosInfos.columnCount()): for c in range(self.mdlPersosInfos.columnCount()):
pid2 = self.mdlPersosInfos.item(0, c).text() pid2 = self.mdlPersosInfos.item(0, c).text()
self.tblPersoInfos.setColumnHidden(c, c <> 0 and pid <> pid2) self.tblPersoInfos.setColumnHidden(c, c <> 0 and pid <> pid2)
@ -208,6 +209,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Stuff # Stuff
self.checkPersosID() self.checkPersosID()
# Adds header labels
self.mdlPersos.setHorizontalHeaderLabels(
[i.name for i in Perso])
def readSettings(self): def readSettings(self):
# Load State and geometry # Load State and geometry

View file

@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'src/ui/mainWindow.ui' # Form implementation generated from reading ui file 'src/ui/mainWindow.ui'
# #
# Created: Sun May 31 22:39:01 2015 # Created: Mon Jun 1 12:00:14 2015
# by: PyQt4 UI code generator 4.11.3 # by: PyQt4 UI code generator 4.10.4
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
@ -983,7 +983,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuMode.menuAction()) self.menubar.addAction(self.menuMode.menuAction())
self.retranslateUi(MainWindow) self.retranslateUi(MainWindow)
self.tabMain.setCurrentIndex(6) self.tabMain.setCurrentIndex(2)
self.tabSummary.setCurrentIndex(0) self.tabSummary.setCurrentIndex(0)
self.tabPersos.setCurrentIndex(0) self.tabPersos.setCurrentIndex(0)
self.tabPlot.setCurrentIndex(0) self.tabPlot.setCurrentIndex(0)

View file

@ -18,7 +18,7 @@
<item> <item>
<widget class="QTabWidget" name="tabMain"> <widget class="QTabWidget" name="tabMain">
<property name="currentIndex"> <property name="currentIndex">
<number>6</number> <number>2</number>
</property> </property>
<property name="documentMode"> <property name="documentMode">
<bool>true</bool> <bool>true</bool>

View file

@ -6,41 +6,41 @@
<label row="1" text="2"/> <label row="1" text="2"/>
</vertical> </vertical>
<horizontal> <horizontal>
<label row="0" text="1"/> <label row="0" text="name"/>
<label row="1" text="2"/> <label row="1" text="ID"/>
<label row="2" text="3"/> <label row="2" text="importance"/>
<label row="3" text="4"/> <label row="3" text="motivation"/>
<label row="4" text="5"/> <label row="4" text="goal"/>
<label row="5" text="6"/> <label row="5" text="conflict"/>
<label row="6" text="7"/> <label row="6" text="epiphany"/>
<label row="7" text="8"/> <label row="7" text="summarySentance"/>
<label row="8" text="9"/> <label row="8" text="summaryPara"/>
<label row="9" text="10"/> <label row="9" text="summaryFull"/>
</horizontal> </horizontal>
</header> </header>
<data> <data>
<row row="0"> <row row="0">
<col col="0">Albert</col> <col col="0">Albert</col>
<col col="1">0</col> <col col="1">0</col>
<col col="2"></col> <col col="2">2</col>
<col col="3"></col> <col col="3"></col>
<col col="4"></col> <col col="4"></col>
<col col="5"></col> <col col="5"></col>
<col col="6"></col> <col col="6"></col>
<col col="7"></col> <col col="7"></col>
<col col="8">1</col> <col col="8"></col>
<col col="9"></col> <col col="9"></col>
</row> </row>
<row row="1"> <row row="1">
<col col="0">Jean</col> <col col="0">Ginette</col>
<col col="1">1</col> <col col="1">1</col>
<col col="2"></col> <col col="2">1</col>
<col col="3"></col> <col col="3"></col>
<col col="4"></col> <col col="4"></col>
<col col="5"></col> <col col="5"></col>
<col col="6"></col> <col col="6"></col>
<col col="7"></col> <col col="7"></col>
<col col="8">2</col> <col col="8"></col>
<col col="9"></col> <col col="9"></col>
</row> </row>
</data> </data>

View file

@ -4,9 +4,6 @@
<vertical> <vertical>
<label row="0" text="1"/> <label row="0" text="1"/>
<label row="1" text="2"/> <label row="1" text="2"/>
<label row="2" text="3"/>
<label row="3" text="4"/>
<label row="4" text="5"/>
</vertical> </vertical>
<horizontal> <horizontal>
<label row="0" text="Description"/> <label row="0" text="Description"/>
@ -21,24 +18,9 @@
<col col="2">1</col> <col col="2">1</col>
</row> </row>
<row row="1"> <row row="1">
<col col="0">Àge</col> <col col="0">Age</col>
<col col="1">14</col> <col col="1">42</col>
<col col="2">42</col> <col col="2">12</col>
</row>
<row row="2">
<col col="0">Animal favori</col>
<col col="1"></col>
<col col="2"></col>
</row>
<row row="3">
<col col="0">Histoire préférée</col>
<col col="1"></col>
<col col="2"></col>
</row>
<row row="4">
<col col="0">Couleur des cheveux</col>
<col col="1"></col>
<col col="2"></col>
</row> </row>
</data> </data>
</model> </model>