#!/usr/bin/env python
# encoding: utf-8
#
-# This file is part of slimqc.
+# 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
#
# Copyright 2010 Develer S.r.l. (http://www.develer.com/)
#
-# $Id$
#
# Author: Lorenzo Berni <duplo@develer.com>
#
from BWizardPage import BWizardPage
-from BOutputPage import BOutputPage
+from BCreationPage import BCreationPage
from BToolchainPage import BToolchainPage
+from DefineException import ModuleDefineException
+
from bertos_utils import _cmp
from toolchain_manager import ToolchainManager
self.updateUi()
def connectSignals(self):
- self.connect(self.pageContent.presetList, SIGNAL("itemSelectionChanged()"), self.updateUi)
- self.connect(self.pageContent.presetList, SIGNAL("itemSelectionChanged()"), self, SIGNAL("completeChanged()"))
+ self.connect(self.pageContent.presetList, SIGNAL("currentItemChanged(QListWidgetItem *, QListWidgetItem*)"), self.updateUi)
+ self.connect(self.pageContent.presetList, SIGNAL("currentItemChanged(QListWidgetItem *, QListWidgetItem*)"), self, SIGNAL("completeChanged()"))
def updateUi(self):
if self.selected:
preset_path = self.selected_path
try:
QApplication.instance().setOverrideCursor(Qt.WaitCursor)
- self.project.loadProjectFromPreset(preset_path)
+ try:
+ self.project.loadProjectFromPreset(preset_path)
+ except ModuleDefineException, e:
+ self.exceptionOccurred(self.tr("Error parsing line '%2' in file %1").arg(e.path).arg(e.line))
+ self.setProjectInfo("PRESET_LOADED", True)
finally:
QApplication.instance().restoreOverrideCursor()
# Return always True, this is a fake validation.
toolchain_info = tm._validateToolchain(toolchain)
toolchain_info["path"] = toolchain
self.setProjectInfo("TOOLCHAIN", toolchain_info)
- return self.wizard().pageIndex(BOutputPage)
+ return self.wizard().pageIndex(BCreationPage)
else:
return self.wizard().pageIndex(BToolchainPage)
else:
## Overloaded BWizardPage methods ##
- def reloadData(self):
- preset_path = self.projectInfo("PROJECT_BOARD")
- preset_tree = self.projectInfo("PRESET_TREE")
- preset_list = preset_tree["children"][preset_path]["children"]
- preset_list = sorted(preset_list.values(), _cmp)
- self.setTitle(self.tr("Select the project template for %1").arg(preset_tree["children"][preset_path]["info"].get("name", preset_tree["children"][preset_path]["info"]["filename"])))
- self.setupTabs(preset_list)
+ def reloadData(self, previous_id=None):
+ if not self.projectInfo("PRESET_LOADED"):
+ preset_path = self.projectInfo("PROJECT_BOARD")
+ preset_tree = self.projectInfo("PRESET_TREE")
+ preset_list = preset_tree["children"][preset_path]["children"]
+ preset_list = sorted(preset_list.values(), _cmp)
+ self.setTitle(self.tr("Select the project template for %1").arg(preset_tree["children"][preset_path]["info"].get("name", preset_tree["children"][preset_path]["info"]["filename"])))
+ self.setupTabs(preset_list)
def connectSignals(self):
self.connect(self.pageContent.boardTabWidget, SIGNAL("currentChanged(int)"), self, SIGNAL("completeChanged()"))