4 # This file is part of BeRTOS.
6 # Bertos is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 # As a special exception, you may use this file as part of a free software
21 # library without restriction. Specifically, if other files instantiate
22 # templates or use macros or inline functions from this file, or you compile
23 # this file and link it with other files to produce an executable, this
24 # file does not by itself cause the resulting executable to be covered by
25 # the GNU General Public License. This exception does not however
26 # invalidate any other reasons why the executable file might be covered by
27 # the GNU General Public License.
29 # Copyright 2008 Develer S.r.l. (http://www.develer.com/)
33 # Author: Lorenzo Berni <duplo@develer.com>
38 from PyQt4.QtCore import *
39 from PyQt4.QtGui import *
42 import qvariant_converter
46 class BWizardPage(QWizardPage):
48 Base class for all the wizard pages. It has the utility method used in all
49 the pages. A wizard page class need to extend this class.
52 def __init__(self, wizardGui, parent = None):
53 QWizardPage.__init__(self, parent)
54 self.pageContent = uic.loadUi(os.path.join(const.DATA_DIR, wizardGui), None)
55 layout = QVBoxLayout()
56 layout.addWidget(self.pageContent)
57 self.setLayout(layout)
61 def exceptionOccurred(self, message):
63 Simple message box showing method.
65 QMessageBox.critical(self, self.tr("Error occurred"), message, QMessageBox.Ok, QMessageBox.NoButton)
67 def showMessage(self, title, message):
69 Show an information message box with title and message.
71 QMessageBox.information(self, title, message)
73 ## BProject interaction methods ##
75 def setProjectInfo(self, key, value):
77 Stores the given value in the BProject class associating it with the given
80 QApplication.instance().project.setInfo(key, value)
82 def projectInfo(self, key):
84 Retrieves the information associated with the given key.
86 return QApplication.instance().project.info(key)
91 Returns the BProject instance.
93 return QApplication.instance().project
97 ## QSettings interaction methods ##
99 def settingsStore(self, key, value):
101 Stores the given value in the QSettings associated with the given key.
103 QApplication.instance().settings.setValue(QString(key), value)
105 def settingsRetrieve(self, key):
107 Retrieves the value associated to key in the QSettings. Note that this
108 Value is a QVariant and neet to be converted in a standard type.
110 return QApplication.instance().settings.value(QString(key), QVariant())
114 Returns the list of actived plugins.
116 return qvariant_converter.getStringList(self.settingsRetrieve("plugins"))
118 def setPlugins(self, plugins):
120 Stores the given list of actived plugins.
122 self.settingsStore("plugins", qvariant_converter.convertStringList(plugins))
126 Returns the version list from the QSettings.
128 return qvariant_converter.getStringList(self.settingsRetrieve("versions"))
130 def setVersions(self, versions):
132 Stores the given versions in the QSettings.
134 self.settingsStore("versions", qvariant_converter.convertStringList(versions))
136 def searchDirList(self):
138 Returns the search dir list from the QSettings.
140 return qvariant_converter.getStringList(self.settingsRetrieve("search_dir_list"))
142 def setSearchDirList(self, search_dir_list):
144 Stores the search dir list in the QSettings.
146 self.settingsStore("search_dir_list", qvariant_converter.convertStringList(search_dir_list))
148 def pathSearch(self):
150 Returns the value of path search from the QSettings.
152 return qvariant_converter.getBool(self.settingsRetrieve("path_search"))
154 def setPathSearch(self, path_search):
156 Stores the path search value in the QSettings.
158 self.settingsStore("path_search", qvariant_converter.convertBool(path_search))
160 def toolchains(self):
162 Returns the toolchains stored in the QSettings.
164 return qvariant_converter.getBoolDict(self.settingsRetrieve("toolchains"))
166 def setToolchains(self, toolchains):
168 Stores the toolchains in the QSettings.
170 self.settingsStore("toolchains", qvariant_converter.convertBoolDict(toolchains))
172 def defaultFolder(self):
174 Returns the default save folder stored in the QSettings.
176 return qvariant_converter.getString(self.settingsRetrieve("folder"))
178 def setDefaultFolder(self, folder):
180 Stores the default save folder in the QSettings.
182 self.settingsStore("folder", qvariant_converter.convertString(folder))
186 ## Methodo to be implemented in child classes when needed ##
188 def reloadData(self, previous_id=None):
190 Method called before the page is loaded. The pages that need to use this
191 method have to implement it.
197 Method called automatically during the initialization of the wizard page.
198 It set up the interface. Pages that need to use this method have to
203 def connectSignals(self):
205 Method called automatically during the initialization of the wizard page.
206 It connects the signals and the slots. The pages that need to use this
207 method have to implement it.