Change the rapresentation of the module configuration parameters
[bertos.git] / wizard / BModulePage.py
1 #!/usr/bin/env python
2 # encoding: utf-8
3 #
4 # Copyright 2009 Develer S.r.l. (http://www.develer.com/)
5 # All rights reserved.
6 #
7 # $Id:$
8 #
9 # Author: Lorenzo Berni <duplo@develer.com>
10 #
11
12 import os
13
14 from PyQt4.QtGui import *
15 from BWizardPage import *
16 import bertos_utils
17
18
19 class BModulePage(BWizardPage):
20     
21     def __init__(self):
22         BWizardPage.__init__(self, "module_select.ui")
23         self.setTitle(self.tr("Configure the modules"))
24         self._setupUi()
25         self._connectSignals()
26     
27     def reloadData(self):
28         self._fillModuleList()
29     
30     def _setupUi(self):
31         self.pageContent.moduleList.setSortingEnabled(True)
32         self.pageContent.propertyTable.horizontalHeader().setResizeMode(QHeaderView.Stretch)
33         self.pageContent.propertyTable.horizontalHeader().setVisible(False)
34         #self.pageContent.propertyTable.verticalHeader().setResizeMode(QHeaderView.Stretch)
35         self.pageContent.propertyTable.verticalHeader().setVisible(False)
36         self.pageContent.propertyTable.setColumnCount(2)
37         self.pageContent.propertyTable.setRowCount(0)
38     
39     def _connectSignals(self):
40         self.connect(self.pageContent.moduleList, SIGNAL("currentRowChanged(int)"), self.moduleItemClicked)
41     
42     def _fillModuleList(self):
43         moduleInfos = bertos_utils.loadModuleInfos(self._projectInfoRetrieve("SOURCES_PATH"))
44         self._projectInfoStore("MODULE_INFO", moduleInfos)
45         for key, value in moduleInfos.items():
46             self.pageContent.moduleList.addItem(QListWidgetItem(key))
47     
48     def _fillParameterTable(self, parameters):
49         self.pageContent.propertyTable.clear()
50         self.pageContent.propertyTable.setRowCount(len(parameters))
51         for index, key in enumerate(parameters):
52             self.pageContent.propertyTable.setItem(index, 0, QTableWidgetItem(key))
53             self.pageContent.propertyTable.setItem(index, 1, QTableWidgetItem(parameters[key]["value"]))
54     
55     def moduleItemClicked(self):
56         module = unicode(self.pageContent.moduleList.currentItem().text())
57         self._fillParameterTable(self._projectInfoRetrieve("MODULE_INFO")[module])
58
59             
60