#!/usr/bin/env python
# encoding: utf-8
#
-# Copyright 2009 Develer S.r.l. (http://www.develer.com/)
-# All rights reserved.
+# This file is part of BeRTOS.
+#
+# Bertos is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+#
+# Copyright 2008 Develer S.r.l. (http://www.develer.com/)
#
# $Id$
#
Overload of the BWizardPage connectSignals method.
"""
self.connect(self.pageContent.moduleTree, SIGNAL("itemPressed(QTreeWidgetItem*, int)"), self.fillPropertyTable)
+ self.connect(self.pageContent.moduleTree, SIGNAL("itemPressed(QTreeWidgetItem*, int)"), self.moduleClicked)
self.connect(self.pageContent.moduleTree, SIGNAL("itemChanged(QTreeWidgetItem*, int)"), self.dependencyCheck)
self.connect(self.pageContent.propertyTable, SIGNAL("itemSelectionChanged()"), self.showPropertyDescription)
## Slots ##
+ def moduleClicked(self, item, column):
+ self.setBold(item, False)
+
def fillPropertyTable(self):
"""
Slot called when the user selects a module from the module tree.
if self.pageContent.propertyTable.rowCount() == 0:
module_label = self.pageContent.moduleLabel.text()
module_label += "\n\nNo configuration needed."
- self.pageContent.moduleLabel.setText(module_label)
+ self.pageContent.moduleLabel.setText(module_label)
+ else:
+ self.pageContent.moduleLabel.setText("")
+ self.pageContent.moduleLabel.setVisible(False)
def dependencyCheck(self, item):
"""
configuration = self.projectInfo("MODULES")[self.currentModule()]["configuration"]
configurations = self.projectInfo("CONFIGURATIONS")
if "type" not in configurations[configuration][property]["informations"] or configurations[configuration][property]["informations"]["type"] == "int":
- configurations[configuration][property]["value"] = str(int(self.pageContent.propertyTable.cellWidget(index, 1).value()))
+ configurations[configuration][property]["value"] = unicode(int(self.pageContent.propertyTable.cellWidget(index, 1).value()))
elif configurations[configuration][property]["informations"]["type"] == "enum":
configurations[configuration][property]["value"] = unicode(self.pageContent.propertyTable.cellWidget(index, 1).currentText())
elif configurations[configuration][property]["informations"]["type"] == "boolean":
"""
Fills the module tree with the module entries separated in categories.
"""
+ self.pageContent.moduleTree.clear()
modules = self.projectInfo("MODULES")
if not modules:
return
module_item.setCheckState(0, Qt.Unchecked)
self.pageContent.moduleTree.addTopLevelItem(item)
self.pageContent.moduleTree.sortItems(0, Qt.AscendingOrder)
+ self.fillPropertyTable()
def insertCheckBox(self, index, value):
"""
break
self.pageContent.propertyTable.item(index, 0).setText(self.currentModuleConfigurations()[property_name]['brief'])
+ def setBold(self, item, bold):
+ self.pageContent.moduleTree.blockSignals(True)
+ font = item.font(0)
+ font.setBold(bold)
+ item.setFont(0, font)
+ self.pageContent.moduleTree.blockSignals(False)
+
def moduleSelected(self, selectedModule):
"""
Resolves the selection dependencies.
item = self.pageContent.moduleTree.topLevelItem(category)
for child in range(item.childCount()):
if unicode(item.child(child).text(0)) in unsatisfied:
+ self.setBold(item.child(child), True)
+ self.setBold(item, True)
item.child(child).setCheckState(0, Qt.Checked)
def moduleUnselected(self, unselectedModule):
Slot called when the value of one of the stored widget changes. It emits
another signal.
"""
- self.emit(SIGNAL("stateChanged"), id)
\ No newline at end of file
+ self.emit(SIGNAL("stateChanged"), id)