Change the resize policy
[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.ResizeToContents)
33         self.pageContent.propertyTable.horizontalHeader().setVisible(False)
34         self.pageContent.propertyTable.verticalHeader().setVisible(False)
35         self.pageContent.propertyTable.setColumnCount(2)
36         self.pageContent.propertyTable.setRowCount(0)
37     
38     def _connectSignals(self):
39         self.connect(self.pageContent.moduleList, SIGNAL("currentRowChanged(int)"), self.moduleItemClicked)
40     
41     def _fillModuleList(self):
42         moduleInfos = bertos_utils.loadModuleInfos(self._projectInfoRetrieve("SOURCES_PATH"))
43         self._projectInfoStore("MODULE_INFO", moduleInfos)
44         for key, value in moduleInfos.items():
45             self.pageContent.moduleList.addItem(QListWidgetItem(key))
46     
47     def _fillParameterTable(self, parameters):
48         self.pageContent.propertyTable.clear()
49         self.pageContent.propertyTable.setRowCount(len(parameters))
50         for index, key in enumerate(parameters):
51             self.pageContent.propertyTable.setItem(index, 0, QTableWidgetItem(key))
52             self.pageContent.propertyTable.setItem(index, 1, QTableWidgetItem(parameters[key]["value"]))
53     
54     def moduleItemClicked(self):
55         module = unicode(self.pageContent.moduleList.currentItem().text())
56         self._fillParameterTable(self._projectInfoRetrieve("MODULE_INFO")[module])
57
58             
59