Add a final page after the project creation
[bertos.git] / wizard / BWizard.py
1 #!/usr/bin/env python
2 # encoding: utf-8
3 #
4 # Copyright 2008 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 copy
13
14 from PyQt4.QtCore import *
15 from PyQt4.QtGui import *
16
17 import BFolderPage
18 import BVersionPage
19 import BCpuPage
20 import BToolchainPage
21 import BModulePage
22 import BOutputPage
23 import BCreationPage
24 import BFinalPage
25
26 class BWizard(QWizard):
27     
28     def __init__(self):
29         QWizard.__init__(self)
30         # TODO: choose the right minimum size
31         self.setMinimumSize(1000, 500)
32         self.setWindowTitle(self.tr("Create a BeRTOS project"))
33         self.setOption(QWizard.DisabledBackButtonOnLastPage, True)
34         self._addPages()
35         self._connectSignals()
36     
37     def _addPages(self):
38         self.addPage(BFolderPage.BFolderPage())
39         self.addPage(BVersionPage.BVersionPage())
40         self.addPage(BCpuPage.BCpuPage())
41         self.addPage(BToolchainPage.BToolchainPage())
42         self.addPage(BModulePage.BModulePage())
43         self.addPage(BOutputPage.BOutputPage())
44         self.addPage(BCreationPage.BCreationPage())
45         self.addPage(BFinalPage.BFinalPage())
46     
47     def _connectSignals(self):
48         self.connect(self, SIGNAL("currentIdChanged(int)"), self._pageChanged)
49     
50     def _pageChanged(self, pageId):
51         prev_page = self.page(pageId - 1)
52         if prev_page is not None:
53             prev_page.saveData()
54         page = self.page(pageId)
55         if page is not None:
56             page.reloadData()
57     
58     def project(self):
59         return copy.deepcopy(QApplication.instance().project)