| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | """***************************************************************************    EditScriptAction.py    ---------------------    Date                 : August 2012    Copyright            : (C) 2012 by Victor Olaya    Email                : volayaf at gmail dot com****************************************************************************                                                                         **   This program is free software; you can redistribute it and/or modify  **   it under the terms of the GNU General Public License as published by  **   the Free Software Foundation; either version 2 of the License, or     **   (at your option) any later version.                                   **                                                                         ****************************************************************************"""__author__ = 'Victor Olaya'__date__ = 'April 2014'__copyright__ = '(C) 201, Victor Olaya'import osimport shutilfrom qgis.PyQt.QtCore import QCoreApplicationfrom qgis.PyQt.QtWidgets import QFileDialogfrom qgis.core import Qgis, QgsApplication, QgsMessageLog, QgsSettingsfrom processing.gui.ToolboxAction import ToolboxActionfrom processing.script import ScriptUtilsclass AddScriptFromFileAction(ToolboxAction):    def __init__(self):        self.name = QCoreApplication.translate("AddScriptFromFileAction", "Add Script to Toolbox…")        self.group = self.tr("Tools")    def execute(self):        settings = QgsSettings()        lastDir = settings.value("processing/lastScriptsDir", "")        files, _ = QFileDialog.getOpenFileNames(self.toolbox,                                                self.tr("Add script(s)"),                                                lastDir,                                                self.tr("Processing scripts (*.py *.PY)"))        if files:            settings.setValue("processing/lastScriptsDir", os.path.dirname(files[0]))            valid = 0            for f in files:                try:                    shutil.copy(f, ScriptUtils.scriptsFolders()[0])                    valid += 1                except OSError as e:                    QgsMessageLog.logMessage(self.tr("Could not copy script '{}'\n{}").format(f, str(e)),                                             "Processing",                                             Qgis.Warning)            if valid > 0:                QgsApplication.processingRegistry().providerById("script").refreshAlgorithms()
 |