+
+ 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)
+ self._toolchain_manager.addToolchain(sel_toolchain)
+
+ 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"]
+ self._toolchain_manager.removeToolchain(toolchain)
+
+ 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.
+ """
+ self.pageContent.toolchainList.clear()
+ toolchains = self._toolchain_manager.predefined_toolchains + self._toolchain_manager.toolchains
+ sel_toolchain = self.projectInfo("TOOLCHAIN")
+ for key, value in toolchains:
+ if os.path.exists(key):
+ item = QListWidgetItem(key)
+ item_data = {"path":key}
+ if value:
+ item_data.update(value)
+ item.setData(Qt.UserRole, qvariant_converter.convertStringDict(item_data))
+ self.pageContent.toolchainList.addItem(item)
+ if sel_toolchain and sel_toolchain["path"] == key:
+ self.pageContent.toolchainList.setCurrentItem(item)
+ if value is not None:
+ 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()
+