4 # Copyright 2008 Develer S.r.l. (http://www.develer.com/)
9 # Author: Lorenzo Berni <duplo@develer.com>
12 from PyQt4.QtGui import *
13 from BWizardPage import *
15 import qvariant_converter
17 class BVersionPage(BWizardPage):
20 BWizardPage.__init__(self, "bertos_versions.ui")
21 self._connectSignals()
22 self._fillVersionList()
24 self.setTitle(self.tr("Select the BeRTOS version needed"))
26 def _connectSignals(self):
27 self.connect(self.pageContent.versionList, SIGNAL("itemSelectionChanged()"), self.rowChanged)
28 self.connect(self.pageContent.addButton, SIGNAL("clicked()"), self.addVersion)
29 self.connect(self.pageContent.removeButton, SIGNAL("clicked()"), self.removeVersion)
30 # Fake signal connection for the update button
31 self.connect(self.pageContent.updateButton, SIGNAL("clicked()"), self.updateClicked)
34 self.pageContent.versionList.setCurrentRow(-1)
36 def _storeVersion(self, directory):
37 versions = self.versions()
38 versions = set(versions + [directory])
39 self.setVersions(list(versions))
41 def _deleteVersion(self, directory):
42 versions = self.versions()
43 versions.remove(directory)
44 self.setVersions(versions)
46 def _insertListElement(self, directory):
47 if bertos_utils.isBertosDir(directory):
48 item = QListWidgetItem(QIcon(":/images/ok.png"), bertos_utils.bertosVersion(directory) + " (\"" + directory + "\")")
49 item.setData(Qt.UserRole, qvariant_converter.convertString(directory))
50 self.pageContent.versionList.addItem(item)
51 elif len(directory) > 0:
52 item = QListWidgetItem(QIcon(":/images/warning.png"), "UNKNOWN" + " (\"" + directory + "\")")
53 item.setData(Qt.UserRole, qvariant_converter.convertString(directory))
54 self.pageContent.versionList.addItem(item)
56 def _fillVersionList(self):
57 versions = self.versions()
58 for directory in versions:
59 self._insertListElement(directory)
62 if self.pageContent.versionList.currentRow() != -1:
63 self._projectInfoStore("SOURCES_PATH", qvariant_converter.getString(self.pageContent.versionList.currentItem().data(Qt.UserRole)))
69 directory = QFileDialog.getExistingDirectory(self, self.tr("Choose a directory"), "", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
70 if not directory.isEmpty():
71 self._storeVersion(unicode(directory))
72 self.pageContent.versionList.clear()
73 self._fillVersionList()
74 self.emit(SIGNAL("completeChanged()"))
76 def removeVersion(self):
77 item = self.pageContent.versionList.takeItem(self.pageContent.versionList.currentRow())
78 self._deleteVersion(qvariant_converter.getString(item.data(Qt.UserRole)))
79 self.emit(SIGNAL("completeChanged()"))
81 def updateClicked(self):
82 print "fake update checking"
85 self.emit(SIGNAL("completeChanged()"))