+
+ def addToolchain(self):
+ """
+ Slot called when the user adds manually a toolchain.
+ """
+ sel_toolchain = unicode(QFileDialog.getOpenFileName(self, self.tr("Choose the toolchain"), ""))
+ if sel_toolchain != "":
+ item = QListWidgetItem(sel_toolchain)
+ item.setData(Qt.UserRole, qvariant_converter.convertStringDict({"path": sel_toolchain}))
+ self.pageContent.toolchainList.addItem(item)
+ toolchains = self.toolchains()
+ toolchains[sel_toolchain] = False
+ self.setToolchains(toolchains)
+
+ def removeToolchain(self):
+ """
+ Slot called when the user removes manually a toolchain.
+ """
+ if self.pageContent.toolchainList.currentRow() != -1:
+ item = self.pageContent.toolchainList.takeItem(self.pageContent.toolchainList.currentRow())
+ toolchain = qvariant_converter.getStringDict(item.data(Qt.UserRole))["path"]
+ toolchains = self.toolchains()
+ del toolchains[toolchain]
+ self.setToolchains(toolchains)
+
+ def searchToolchain(self):
+ """
+ Slot called when the user clicks on the 'search' button. It opens the
+ toolchain search dialog.
+ """
+ search = BToolchainSearch.BToolchainSearch()
+ self.connect(search, SIGNAL("accepted()"), self._search)
+ search.exec_()
+
+ def validateAllToolchains(self):
+ """
+ Slot called when the user clicks on the validate button. It starts the
+ toolchain validation procedure for all the toolchains.
+ """
+ try:
+ QApplication.instance().setOverrideCursor(Qt.WaitCursor)
+ for i in range(self.pageContent.toolchainList.count()):
+ self.validateToolchain(i)
+ finally:
+ QApplication.instance().restoreOverrideCursor()
+
+ ####
+
+ def _populateToolchainList(self):
+ """
+ Fills the toolchain list with the toolchains stored in the QSettings.
+ """
+ toolchains = self.toolchains()
+ if os.name == "nt":
+ import winreg_importer
+ stored_toolchains = winreg_importer.getBertosToolchains()
+ for toolchain in stored_toolchains:
+ toolchains[toolchain] = True
+ sel_toolchain = self.projectInfo("TOOLCHAIN")
+ for key, value in toolchains.items():
+ if os.path.exists(key):
+ item = QListWidgetItem(key)
+ item.setData(Qt.UserRole, qvariant_converter.convertStringDict({"path": key}))
+ self.pageContent.toolchainList.addItem(item)
+ if sel_toolchain and sel_toolchain["path"] == key:
+ self.pageContent.toolchainList.setCurrentItem(item)
+ if value:
+ self.validateToolchain(self.pageContent.toolchainList.row(item))
+
+ def currentToolchain(self):
+ selected_toolchain = qvariant_converter.getStringDict(self.pageContent.toolchainList.currentItem().data(Qt.UserRole))
+ return selected_toolchain
+
+ def _clearList(self):
+ """
+ Removes all the toolchain from the list.
+ """
+ self.pageContent.toolchainList.clear()
+