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 if PYQT_VERSION_STR > "4.4.3":
16 import qvariant_converter_new as qvariant_converter
18 import qvariant_converter_old as qvariant_converter
20 class BVersionPage(BWizardPage):
23 BWizardPage.__init__(self, "bertos_versions.ui")
24 self._connectSignals()
25 self._fillVersionList()
27 self.setTitle(self.tr("Select the BeRTOS version needed"))
29 def _connectSignals(self):
30 self.connect(self.pageContent.versionList, SIGNAL("itemSelectionChanged()"), self.rowChanged)
31 self.connect(self.pageContent.addButton, SIGNAL("clicked()"), self.addVersion)
32 self.connect(self.pageContent.removeButton, SIGNAL("clicked()"), self.removeVersion)
33 # Fake signal connection for the update button
34 self.connect(self.pageContent.updateButton, SIGNAL("clicked()"), self.updateClicked)
37 self.pageContent.versionList.setCurrentRow(-1)
39 def _storeVersion(self, directory):
40 versions = self.versions()
41 versions = set(versions + [directory])
42 self.setVersions(list(versions))
44 def _deleteVersion(self, directory):
45 versions = self.versions()
46 versions.remove(directory)
47 self.setVersions(versions)
49 def _insertListElement(self, directory):
50 if bertos_utils.isBertosDir(directory):
51 item = QListWidgetItem(QIcon(":/images/ok.png"), bertos_utils.bertosVersion(directory) + " (\"" + directory + "\")")
52 item.setData(Qt.UserRole, qvariant_converter.convertString(directory))
53 self.pageContent.versionList.addItem(item)
54 elif len(directory) > 0:
55 item = QListWidgetItem(QIcon(":/images/warning.png"), "UNKNOWN" + " (\"" + directory + "\")")
56 item.setData(Qt.UserRole, qvariant_converter.convertString(directory))
57 self.pageContent.versionList.addItem(item)
59 def _fillVersionList(self):
60 versions = self.versions()
61 for directory in versions:
62 self._insertListElement(directory)
65 if self.pageContent.versionList.currentRow() != -1:
66 self._projectInfoStore("SOURCES_PATH", qvariant_converter.getString(self.pageContent.versionList.currentItem().data(Qt.UserRole)))
72 directory = QFileDialog.getExistingDirectory(self, self.tr("Choose a directory"), "", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
73 if not directory.isEmpty():
74 self._storeVersion(unicode(directory))
75 self.pageContent.versionList.clear()
76 self._fillVersionList()
77 self.emit(SIGNAL("completeChanged()"))
79 def removeVersion(self):
80 item = self.pageContent.versionList.takeItem(self.pageContent.versionList.currentRow())
81 self._deleteVersion(qvariant_converter.getString(item.data(Qt.UserRole)))
82 self.emit(SIGNAL("completeChanged()"))
84 def updateClicked(self):
85 print "fake update checking"
88 self.emit(SIGNAL("completeChanged()"))