Add the module qvariant_converter.py that abstracts the user from the qvariant_conver...
[bertos.git] / wizard / BVersionPage.py
index 5ba51bd14841f05ea5a2b092756142418b56fa53..2f5a62605b9c3b833611964d91316b4d743e6709 100644 (file)
@@ -12,6 +12,7 @@
 from PyQt4.QtGui import *
 from BWizardPage import *
 import bertos_utils
+import qvariant_converter
 
 class BVersionPage(BWizardPage):
     
@@ -23,44 +24,43 @@ class BVersionPage(BWizardPage):
         self.setTitle(self.tr("Select the BeRTOS version needed"))
     
     def _connectSignals(self):
-        self.connect(self.pageContent.versionList, SIGNAL("itemClicked(QListWidgetItem *)"), self.itemClicked)
+        self.connect(self.pageContent.versionList, SIGNAL("itemSelectionChanged()"), self.rowChanged)
         self.connect(self.pageContent.addButton, SIGNAL("clicked()"), self.addVersion)
         self.connect(self.pageContent.removeButton, SIGNAL("clicked()"), self.removeVersion)
         # Fake signal connection for the update button
         self.connect(self.pageContent.updateButton, SIGNAL("clicked()"), self.updateClicked)
     
     def _setupUi(self):
-        pass
+        self.pageContent.versionList.setCurrentRow(-1)
     
     def _storeVersion(self, directory):
-        versions = self._settingsRetrieve("versions").toList()
-        versions = set([x.toString() for x in versions] + [directory])
-        self._settingsStore("versions", list(versions))
+        versions = self.versions()
+        versions = set(versions + [directory])
+        self.setVersions(list(versions))
     
     def _deleteVersion(self, directory):
-        versions = self._settingsRetrieve(QString("versions")).toList()
-        versions = [x.toString() for x in versions]
+        versions = self.versions()
         versions.remove(directory)
-        self._settingsStore("versions", versions)
+        self.setVersions(versions)
         
     def _insertListElement(self, directory):
         if bertos_utils.isBertosDir(directory):
             item = QListWidgetItem(QIcon(":/images/ok.png"), bertos_utils.bertosVersion(directory) + " (\"" + directory + "\")")
-            item.setData(Qt.UserRole, QVariant(directory))
+            item.setData(Qt.UserRole, qvariant_converter.convertString(directory))
             self.pageContent.versionList.addItem(item)
-        elif not directory.isEmpty():
+        elif len(directory) > 0:
             item = QListWidgetItem(QIcon(":/images/warning.png"), "UNKNOWN" + " (\"" + directory + "\")")
-            item.setData(Qt.UserRole, QVariant(directory))
+            item.setData(Qt.UserRole, qvariant_converter.convertString(directory))
             self.pageContent.versionList.addItem(item)
     
     def _fillVersionList(self):
-        versions = self._settingsRetrieve("versions").toList()
+        versions = self.versions()
         for directory in versions:
-            self._insertListElement(directory.toString())
+            self._insertListElement(directory)
 
     def isComplete(self):
         if self.pageContent.versionList.currentRow() != -1:
-            self._projectInfoStore("SOURCES_PATH", str(self.pageContent.versionList.currentItem().data(Qt.UserRole).toString()))
+            self._projectInfoStore("SOURCES_PATH", qvariant_converter.getString(self.pageContent.versionList.currentItem().data(Qt.UserRole)))
             return True
         else:
             return False
@@ -68,19 +68,19 @@ class BVersionPage(BWizardPage):
     def addVersion(self):
         directory = QFileDialog.getExistingDirectory(self, self.tr("Choose a directory"), "", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
         if not directory.isEmpty():
-            self._storeVersion(directory)
+            self._storeVersion(unicode(directory))
             self.pageContent.versionList.clear()
             self._fillVersionList()
             self.emit(SIGNAL("completeChanged()"))
     
     def removeVersion(self):
         item = self.pageContent.versionList.takeItem(self.pageContent.versionList.currentRow())
-        self._deleteVersion(item.data(Qt.UserRole).toString())
+        self._deleteVersion(qvariant_converter.getString(item.data(Qt.UserRole)))
         self.emit(SIGNAL("completeChanged()"))
     
     def updateClicked(self):
         print "fake update checking"
     
-    def itemClicked(self, item):
+    def rowChanged(self):
         self.emit(SIGNAL("completeChanged()"))
     
\ No newline at end of file