def __init__(self): QDialog.__init__(self) self.setWindowIcon(QIcon(":/images/appicon.png")) layout = QVBoxLayout() toolchain_page = BToolchainPage() current_toolchain = toolchain_page.projectInfo("TOOLCHAIN") toolchain_page.reloadData() # TODO: to be moved in BToolchainPage for toolchain_row in range(toolchain_page.pageContent.toolchainList.count()): toolchain = qvariant_converter.getStringDict(toolchain_page.pageContent.toolchainList.item(toolchain_row).data(Qt.UserRole)) if current_toolchain and toolchain["path"] == current_toolchain["path"]: toolchain_page.pageContent.toolchainList.setCurrentRow(toolchain_row) toolchain_page.selectionChanged() break self.toolchain_page = toolchain_page layout.addWidget(toolchain_page) button_layout = QHBoxLayout() button_layout.addStretch() cancel_button = QPushButton(self.tr("Cancel")) button_layout.addWidget(cancel_button) ok_button = QPushButton(self.tr("Ok")) button_layout.addWidget(ok_button) self.connect(cancel_button, SIGNAL("clicked()"), self.reject) layout.addLayout(button_layout) self.setLayout(layout) self.connect(ok_button, SIGNAL("clicked()"), self.accept) self.setWindowTitle(self.tr("Change toolchain"))
def __init__(self): QDialog.__init__(self) self.setWindowIcon(QIcon(":/images/appicon.png")) layout = QVBoxLayout() toolchain_page = BToolchainPage() current_toolchain = toolchain_page.projectInfo("TOOLCHAIN") toolchain_page.reloadData() # TODO: to be moved in BToolchainPage for toolchain_row in range( toolchain_page.pageContent.toolchainList.count()): toolchain = qvariant_converter.getStringDict( toolchain_page.pageContent.toolchainList.item( toolchain_row).data(Qt.UserRole)) if current_toolchain and toolchain["path"] == current_toolchain[ "path"]: toolchain_page.pageContent.toolchainList.setCurrentRow( toolchain_row) toolchain_page.selectionChanged() break self.toolchain_page = toolchain_page layout.addWidget(toolchain_page) button_layout = QHBoxLayout() button_layout.addStretch() cancel_button = QPushButton(self.tr("Cancel")) button_layout.addWidget(cancel_button) ok_button = QPushButton(self.tr("Ok")) button_layout.addWidget(ok_button) self.connect(cancel_button, SIGNAL("clicked()"), self.reject) layout.addLayout(button_layout) self.setLayout(layout) self.connect(ok_button, SIGNAL("clicked()"), self.accept) self.setWindowTitle(self.tr("Change 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 updateUi(self): if self.selected: info_dict = qvariant_converter.getDict(self.selected.data(Qt.UserRole)) info_dict = qvariant_converter.getStringDict(info_dict["info"]) description = info_dict.get("description", "") path = unicode(QUrl.fromLocalFile(info_dict["path"]).toString()) description = description.replace("$path", path) self.pageContent.descriptionArea.setHtml(description)
def _validItem(self, item): """ Sets the item at index as a valid item and associates the given info to it. """ data = qvariant_converter.getStringDict(item.data(Qt.UserRole)) item.setIcon(QIcon(":/images/ok.png")) self._valid_items.append(item) if "version" in data and "target" in data: item.setText("GCC " + data["version"] + " - " + data["target"].strip())
def isComplete(self): """ Overload of the QWizard isComplete method. """ if self.pageContent.toolchainList.currentRow() != -1: self.setProjectInfo("TOOLCHAIN", qvariant_converter.getStringDict(self.pageContent.toolchainList.currentItem().data(Qt.UserRole))) return True else: return False
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()): data = qvariant_converter.getStringDict(self.pageContent.toolchainList.item(i).data(Qt.UserRole)) self.validateToolchain(data["path"]) self._populateToolchainList() finally: QApplication.instance().restoreOverrideCursor()
def selectionChanged(self): """ Slot called when the user click on an entry of the toolchain list. """ if self.pageContent.toolchainList.currentRow() != -1: infos = collections.defaultdict(lambda: unicode("not defined")) infos.update(qvariant_converter.getStringDict(self.pageContent.toolchainList.currentItem().data(Qt.UserRole))) self.pageContent.infoLabel.setText("GCC " + infos["version"] + " (" + infos["build"] + ")\nTarget: " + infos["target"] + "\nPath: " + os.path.normpath(infos["path"])) self.pageContent.infoLabel.setVisible(True) if self.isDefaultToolchain(infos): self.disableRemoveButton() else: self.enableRemoveButton() self.emit(SIGNAL("completeChanged()"))
def isComplete(self): """ Overload of the QWizardPage isComplete method. """ if self.selected: preset_path = qvariant_converter.getDict(self.selected.data(Qt.UserRole)) preset_path = qvariant_converter.getStringDict(preset_path["info"]) preset_path = preset_path.get("path","") self.setProjectInfo("PROJECT_BOARD", preset_path) self.setProjectInfo("PROJECT_FROM_PRESET", True) self.setProjectInfo("PRESET_LOADED", False) return True else: return False
def isComplete(self): """ Overload of the QWizardPage isComplete method. """ if self.selected: preset_path = qvariant_converter.getDict(self.selected.data(Qt.UserRole)) preset_path = qvariant_converter.getStringDict(preset_path["info"]) preset_path = preset_path["path"] self.setProjectInfo("PROJECT_BOARD", preset_path) self.setProjectInfo("PROJECT_FROM_PRESET", True) self.setProjectInfo("PRESET_LOADED", False) return True else: return False
def _invalidItem(self, item): data = qvariant_converter.getStringDict(item.data(Qt.UserRole)) item.setIcon(QIcon(":/images/warning.png")) if "version" in data and "target" in data: item.setText("GCC " + data["version"] + " - " + data["target"].strip())
def currentToolchain(self): selected_toolchain = qvariant_converter.getStringDict(self.pageContent.toolchainList.currentItem().data(Qt.UserRole)) return selected_toolchain
def changeToolchain(self): dialog = BToolchainDialog() if dialog.exec_(): toolchain = qvariant_converter.getStringDict(dialog.toolchain_page.currentItem().data(Qt.UserRole)) dialog.toolchain_page.setProjectInfo("TOOLCHAIN", toolchain)
def changeToolchain(self): dialog = BToolchainDialog() if dialog.exec_(): toolchain = qvariant_converter.getStringDict( dialog.toolchain_page.currentItem().data(Qt.UserRole)) dialog.toolchain_page.setProjectInfo("TOOLCHAIN", toolchain)