diff --git a/src/enums.py b/src/enums.py new file mode 100644 index 00000000..65072c5a --- /dev/null +++ b/src/enums.py @@ -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 + diff --git a/src/mainWindow.py b/src/mainWindow.py index 0adab77e..613b485a 100644 --- a/src/mainWindow.py +++ b/src/mainWindow.py @@ -9,6 +9,7 @@ from PyQt4.QtGui import * from ui.mainWindow import * from loadSave import * +from enums import * class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self): @@ -96,13 +97,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): # Persos self.mdlPersos = QStandardItemModel(0, 10) 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.lstPersos.setModel(self.mdlPersos) - self.tblDebugPersos.setModel(self.mdlPersos) self.tblPersoInfos.setModel(self.mdlPersosInfos) self.tblPersoInfos.setRowHidden(0, True) - self.tblDebugPersosInfos.setModel(self.mdlPersosInfos) self.btnAddPerso.clicked.connect(self.createPerso) self.btnRmPerso.clicked.connect(self.removePerso) @@ -111,18 +110,18 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.mprPersos.setModel(self.mdlPersos) mapping = [ - (self.txtPersoName, 0), - (self.txtPersoMotivation, 2), - (self.txtPersoGoal, 3), - (self.txtPersoConflict, 4), - (self.txtPersoEpiphany, 5), - (self.txtPersoSummarySentance, 6), - (self.txtPersoSummaryPara, 7), - (self.txtPersoSummaryFull, 8) + (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) ] for w, i in mapping: 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.mprPersos.setCurrentIndex(0) @@ -133,6 +132,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): #Debug self.mdlFlatData.setVerticalHeaderLabels(["Infos générales", "Summary"]) self.tblDebugFlatData.setModel(self.mdlFlatData) + self.tblDebugPersos.setModel(self.mdlPersos) + self.tblDebugPersosInfos.setModel(self.mdlPersosInfos) self.loadProject("test_project") @@ -156,7 +157,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): "Returns an unused perso ID (row 1)" vals = [] 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(): 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" empty = [] for i in range(self.mdlPersos.rowCount()): - item = self.mdlPersos.item(i, 1) + item = self.mdlPersos.item(i, Perso.ID.value) if not item: item = QStandardItem() item.setText(self.getPersosID()) - self.mdlPersos.setItem(i, 1, item) + self.mdlPersos.setItem(i, Perso.ID.value, item) def removePerso(self): i = self.lstPersos.currentIndex() @@ -181,7 +182,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): def changeCurrentPerso(self, trash=None): 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()): pid2 = self.mdlPersosInfos.item(0, c).text() self.tblPersoInfos.setColumnHidden(c, c <> 0 and pid <> pid2) @@ -208,6 +209,9 @@ class MainWindow(QMainWindow, Ui_MainWindow): # Stuff self.checkPersosID() + # Adds header labels + self.mdlPersos.setHorizontalHeaderLabels( + [i.name for i in Perso]) def readSettings(self): # Load State and geometry diff --git a/src/ui/mainWindow.py b/src/ui/mainWindow.py index a3356eb8..7b2a56fe 100644 --- a/src/ui/mainWindow.py +++ b/src/ui/mainWindow.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'src/ui/mainWindow.ui' # -# Created: Sun May 31 22:39:01 2015 -# by: PyQt4 UI code generator 4.11.3 +# Created: Mon Jun 1 12:00:14 2015 +# by: PyQt4 UI code generator 4.10.4 # # 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.retranslateUi(MainWindow) - self.tabMain.setCurrentIndex(6) + self.tabMain.setCurrentIndex(2) self.tabSummary.setCurrentIndex(0) self.tabPersos.setCurrentIndex(0) self.tabPlot.setCurrentIndex(0) diff --git a/src/ui/mainWindow.ui b/src/ui/mainWindow.ui index 8ea15b07..6273194e 100644 --- a/src/ui/mainWindow.ui +++ b/src/ui/mainWindow.ui @@ -18,7 +18,7 @@ - 6 + 2 true diff --git a/test_project/perso.xml b/test_project/perso.xml index 873cd2d7..6c05736a 100644 --- a/test_project/perso.xml +++ b/test_project/perso.xml @@ -6,41 +6,41 @@