def __init__(self): super(ScriptSelector, self).__init__(None) self.setupUi(self) self.scripts = None allScripts = defaultdict(list) alglist = algList.getProviderFromName("script").algs for script in alglist: allScripts[script.group].append(script) for group, groupScripts in list(allScripts.items()): groupItem = QTreeWidgetItem() groupItem.setText(0, group) groupItem.setFlags(groupItem.flags() | Qt.ItemIsTristate) for script in groupScripts: scriptItem = QTreeWidgetItem() scriptItem.setFlags(scriptItem.flags() | Qt.ItemIsUserCheckable) scriptItem.setCheckState(0, Qt.Checked) scriptItem.script = script scriptItem.setText(0, script.name) groupItem.addChild(scriptItem) self.scriptsTree.addTopLevelItem(groupItem) self.scriptsTree.expandAll() self.selectAllLabel.linkActivated.connect(lambda: self.checkScripts(True)) self.unselectAllLabel.linkActivated.connect(lambda: self.checkScripts(False)) self.folderButton.clicked.connect(self.selectFolder) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed)
def editHelp(self): if self.alg.provider is None: # Might happen if model is opened from modeler dialog self.alg.provider = algList.getProviderFromName('model') alg = self.alg.getCopy() dlg = HelpEditionDialog(alg) dlg.exec_() if dlg.descriptions: self.alg.helpContent = dlg.descriptions self.hasChanged = True
def runModel(self): if len(self.alg.algs) == 0: self.bar.pushMessage("", "Model doesn't contain any algorithm and/or parameter and can't be executed", level=QgsMessageBar.WARNING, duration=5) return if self.alg.provider is None: # Might happen if model is opened from modeler dialog self.alg.provider = algList.getProviderFromName('model') alg = self.alg.getCopy() dlg = AlgorithmDialog(alg) dlg.exec_()
def fillAlgorithmTreeUsingProviders(self): self.algorithmTree.clear() text = str(self.searchBox.text()) search_strings = text.split(' ') allAlgs = algList.algs for providerName in list(allAlgs.keys()): name = 'ACTIVATE_' + providerName.upper().replace(' ', '_') if not ProcessingConfig.getSetting(name): continue groups = {} algs = list(allAlgs[providerName].values()) # Add algorithms for alg in algs: if not alg.showInModeler: continue if alg.commandLineName() == self.alg.commandLineName(): continue item_text = [alg.name.lower()] item_text.extend(alg.tags.split(',')) show = not search_strings or all( any(part in t for t in item_text) for part in search_strings) if show: if alg.group in groups: groupItem = groups[alg.group] else: groupItem = QTreeWidgetItem() name = alg.i18n_group or alg.group groupItem.setText(0, name) groupItem.setToolTip(0, name) groups[alg.group] = groupItem algItem = TreeAlgorithmItem(alg) groupItem.addChild(algItem) if len(groups) > 0: providerItem = QTreeWidgetItem() provider = algList.getProviderFromName(providerName) providerItem.setText(0, provider.getDescription()) providerItem.setToolTip(0, provider.getDescription()) providerItem.setIcon(0, provider.getIcon()) for groupItem in list(groups.values()): providerItem.addChild(groupItem) self.algorithmTree.addTopLevelItem(providerItem) providerItem.setExpanded(text != '') for groupItem in list(groups.values()): if text != '': groupItem.setExpanded(True) self.algorithmTree.sortItems(0, Qt.AscendingOrder)
def runModel(self): if len(self.alg.algs) == 0: QMessageBox.warning(self, self.tr('Empty model'), self.tr("Model doesn't contains any algorithms and/or " "parameters and can't be executed")) return if self.alg.provider is None: # Might happen if model is opened from modeler dialog self.alg.provider = algList.getProviderFromName('model') alg = self.alg.getCopy() dlg = AlgorithmDialog(alg) dlg.exec_()
def runAlgorithm(self): if self.algType == self.SCRIPT_PYTHON: alg = ScriptAlgorithm(None, self.editor.text()) alg.provider = algList.getProviderFromName('script') if self.algType == self.SCRIPT_R: alg = RAlgorithm(None, self.editor.text()) alg.provider = algList.getProviderFromName('r') dlg = alg.getCustomParametersDialog() if not dlg: dlg = AlgorithmDialog(alg) canvas = iface.mapCanvas() prevMapTool = canvas.mapTool() dlg.show() dlg.exec_() if canvas.mapTool() != prevMapTool: try: canvas.mapTool().reset() except: pass canvas.setMapTool(prevMapTool)
def fillAlgorithmTreeUsingProviders(self): self.algorithmTree.clear() text = unicode(self.searchBox.text()) allAlgs = algList.algs for providerName in allAlgs.keys(): name = 'ACTIVATE_' + providerName.upper().replace(' ', '_') if not ProcessingConfig.getSetting(name): continue groups = {} algs = allAlgs[providerName].values() # Add algorithms for alg in algs: if not alg.showInModeler or alg.allowOnlyOpenedLayers: continue if alg.commandLineName() == self.alg.commandLineName(): continue if text == '' or text.lower() in alg.name.lower(): if alg.group in groups: groupItem = groups[alg.group] else: groupItem = QTreeWidgetItem() name = alg.i18n_group or alg.group groupItem.setText(0, name) groupItem.setToolTip(0, name) groups[alg.group] = groupItem algItem = TreeAlgorithmItem(alg) groupItem.addChild(algItem) if len(groups) > 0: providerItem = QTreeWidgetItem() provider = algList.getProviderFromName(providerName) providerItem.setText(0, provider.getDescription()) providerItem.setToolTip(0, provider.getDescription()) providerItem.setIcon(0, provider.getIcon()) for groupItem in groups.values(): providerItem.addChild(groupItem) self.algorithmTree.addTopLevelItem(providerItem) providerItem.setExpanded(text != '') for groupItem in groups.values(): if text != '': groupItem.setExpanded(True) self.algorithmTree.sortItems(0, Qt.AscendingOrder)
def __init__(self): super(ScriptSelector, self).__init__(None) self.setupUi(self) self.scripts = None allScripts = defaultdict(list) alglist = algList.getProviderFromName("script").algs for script in alglist: allScripts[script.group].append(script) for group, groupScripts in allScripts.iteritems(): groupItem = QTreeWidgetItem() groupItem.setText(0, group) groupItem.setFlags(groupItem.flags() | Qt.ItemIsTristate) for script in groupScripts: scriptItem = QTreeWidgetItem() scriptItem.setFlags(scriptItem.flags() | Qt.ItemIsUserCheckable) scriptItem.setCheckState(0, Qt.Checked) scriptItem.script = script scriptItem.setText(0, script.name) groupItem.addChild(scriptItem) self.scriptsTree.addTopLevelItem(groupItem) self.scriptsTree.expandAll() self.selectAllLabel.linkActivated.connect( lambda: self.checkScripts(True)) self.unselectAllLabel.linkActivated.connect( lambda: self.checkScripts(False)) self.folderButton.clicked.connect(self.selectFolder) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed)
def getProviderFromName(name): """Returns the provider with the given name.""" return algList.getProviderFromName(name)