Ejemplo n.º 1
0
    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"))
Ejemplo n.º 2
0
 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"))
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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())
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
 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()
Ejemplo n.º 9
0
 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()"))
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
 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
Ejemplo n.º 12
0
 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())
Ejemplo n.º 13
0
 def currentToolchain(self):
     selected_toolchain = qvariant_converter.getStringDict(self.pageContent.toolchainList.currentItem().data(Qt.UserRole))
     return selected_toolchain
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)