X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2Fbertos.py;h=ca6072e42e73c6a766b36e83a9ea639adc5eee38;hb=adbbf203c26e7cfa12f9d1e759b3b9eab973c69d;hp=627e93aeec2d3a260c4e7c1bc19bf0f091f935d4;hpb=6f3b279d1e37ea6d0deebc9ee11f9a8d9dfcfece;p=bertos.git diff --git a/wizard/bertos.py b/wizard/bertos.py old mode 100644 new mode 100755 index 627e93ae..ca6072e4 --- a/wizard/bertos.py +++ b/wizard/bertos.py @@ -4,28 +4,84 @@ # Copyright 2008 Develer S.r.l. (http://www.develer.com/) # All rights reserved. # -# $Id:$ +# $Id$ # # Author: Lorenzo Berni # +import os import sys +from distutils.dep_util import newer + from PyQt4.QtCore import * from PyQt4.QtGui import * + +import BProject + import BStartPage -import BVersionPage +import BWizard + +from BFolderPage import BFolderPage +from BOpenPage import BOpenPage +from BVersionPage import BVersionPage +from BCpuPage import BCpuPage +from BToolchainPage import BToolchainPage +from BModulePage import BModulePage +from BOutputPage import BOutputPage +from BCreationPage import BCreationPage +from BFinalPage import BFinalPage + +import bertos_utils + +def newProject(): + page_list = [BFolderPage, BVersionPage, BCpuPage, BToolchainPage, BModulePage, BOutputPage, BCreationPage, BFinalPage] + wizard = BWizard.BWizard(page_list) + wizard.show() + wizard.exec_() + project = QApplication.instance().project + to_be_opened = project.info("TO_BE_OPENED") + command_lines = project.info("COMMAND_LINES") + relevant_files = project.info("RELEVANT_FILES") + if to_be_opened: + for ide in to_be_opened: + command_line = command_lines[ide] + relevant_file = relevant_files[ide] + import subprocess + subprocess.call(command_line + " \"" + relevant_file + "\"") + sys.exit() + +def editProject(): + page_list = [BOpenPage, BVersionPage, BCpuPage, BToolchainPage, BModulePage, BOutputPage, BCreationPage, BFinalPage] + wizard = BWizard.BWizard(page_list) + wizard.show() + wizard.exec_() + +def showStartPage(): + QApplication.instance().dialog = BStartPage.BStartPage() + QApplication.instance().connect(QApplication.instance().dialog, SIGNAL("newProject"), newProject) + QApplication.instance().connect(QApplication.instance().dialog, SIGNAL("editProject"), editProject) + QApplication.instance().dialog.show() def main(): + os.chdir(os.path.dirname(os.path.abspath(sys.argv[0]))) app = QApplication(sys.argv) + app.settings = QSettings("Develer", "Bertos Configurator") + app.project = BProject.BProject() + # Development utility lines, to be removed for production + if not (hasattr(sys, "frozen") and sys.frozen) and newer("bertos.qrc", "bertos.rcc"): + os.system("rcc -binary bertos.qrc -o bertos.rcc") QResource.registerResource("bertos.rcc") - startPage = BStartPage.BStartPage() - wizard = QWizard() - wizard.setWindowTitle("Welcome in beRTOS configuration wizard") - wizard.addPage(startPage) - wizard.addPage(BVersionPage.BVersionPage()) - wizard.show() - sys.exit(app.exec_()) - + if "--create" in sys.argv and "--edit" not in sys.argv: + newProject() + elif "--edit" in sys.argv and "--create" not in sys.argv: + editProject() + elif "--create" in sys.argv and "--edit" in sys.argv: + # TODO need an explaining message + print " ".join(sys.argv) + print "Invalid usage!" + pass + else: + newProject() if __name__ == '__main__': main()