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 *
16 class BVersionPage(BWizardPage):
19 BWizardPage.__init__(self, "bertos_versions.ui")
20 self._connectSignals()
21 self._fillVersionList()
23 self.setTitle(self.tr("Select the BeRTOS version needed"))
25 def _connectSignals(self):
26 self.connect(self.pageContent.versionList, SIGNAL("itemClicked(QListWidgetItem *)"), self.itemClicked)
27 self.connect(self.pageContent.addButton, SIGNAL("clicked()"), self.addVersion)
28 self.connect(self.pageContent.removeButton, SIGNAL("clicked()"), self.removeVersion)
29 # Fake signal connection for the update button
30 self.connect(self.pageContent.updateButton, SIGNAL("clicked()"), self.updateClicked)
35 def _storeVersion(self, directory):
36 versions = self._settingsRetrieve("versions").toList()
37 versions = set([x.toString() for x in versions] + [directory])
38 self._settingsStore("versions", list(versions))
40 def _deleteVersion(self, directory):
41 versions = self._settingsRetrieve(QString("versions")).toList()
42 versions = [x.toString() for x in versions]
43 versions.remove(directory)
44 self._settingsStore("versions", 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(directory))
50 self.pageContent.versionList.addItem(item)
51 elif not directory.isEmpty():
52 item = QListWidgetItem(QIcon(":/images/warning.png"), "UNKNOWN" + " (\"" + directory + "\")")
53 item.setData(Qt.UserRole, QVariant(directory))
54 self.pageContent.versionList.addItem(item)
56 def _fillVersionList(self):
57 versions = self._settingsRetrieve("versions").toList()
58 for directory in versions:
59 self._insertListElement(directory.toString())
62 if self.pageContent.versionList.currentRow() != -1:
63 self._projectInfoStore("SOURCES_PATH", str(self.pageContent.versionList.currentItem().data(Qt.UserRole).toString()))
69 directory = QFileDialog.getExistingDirectory(self, self.tr("Choose a directory"), "", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
70 if not directory.isEmpty():
71 self._storeVersion(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(item.data(Qt.UserRole).toString())
79 self.emit(SIGNAL("completeChanged()"))
81 def updateClicked(self):
82 print "fake update checking"
84 def itemClicked(self, item):
85 self.emit(SIGNAL("completeChanged()"))