mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
[processing] allow selecting multiple file in ‘add script from file’
This commit is contained in:
parent
91d0f1ebff
commit
2c4eb3cb8c
@ -52,20 +52,28 @@ class AddScriptFromFileAction(ToolboxAction):
|
|||||||
def execute(self):
|
def execute(self):
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
lastDir = settings.value('Processing/lastScriptsDir', '')
|
lastDir = settings.value('Processing/lastScriptsDir', '')
|
||||||
filename, selected_filter = QFileDialog.getOpenFileName(self.toolbox,
|
filenames, selected_filter = QFileDialog.getOpenFileNames(self.toolbox,
|
||||||
self.tr('Script files', 'AddScriptFromFileAction'), lastDir,
|
self.tr('Script files', 'AddScriptFromFileAction'), lastDir,
|
||||||
self.tr('Script files (*.py *.PY)', 'AddScriptFromFileAction'))
|
self.tr('Script files (*.py *.PY)', 'AddScriptFromFileAction'))
|
||||||
if filename:
|
if filenames:
|
||||||
try:
|
validAlgs = 0
|
||||||
settings.setValue('Processing/lastScriptsDir',
|
wrongAlgs = []
|
||||||
QFileInfo(filename).absoluteDir().absolutePath())
|
for filename in filenames:
|
||||||
script = ScriptAlgorithm(filename)
|
try:
|
||||||
except WrongScriptException:
|
settings.setValue('Processing/lastScriptsDir',
|
||||||
|
QFileInfo(filename).absoluteDir().absolutePath())
|
||||||
|
script = ScriptAlgorithm(filename)
|
||||||
|
destFilename = os.path.join(ScriptUtils.scriptsFolders()[0], os.path.basename(filename))
|
||||||
|
with open(destFilename, 'w') as f:
|
||||||
|
f.write(script.script)
|
||||||
|
validAlgs += 1
|
||||||
|
except WrongScriptException:
|
||||||
|
wrongAlgs.append(os.path.basename(filename))
|
||||||
|
if validAlgs:
|
||||||
|
algList.reloadProvider('script')
|
||||||
|
if wrongAlgs:
|
||||||
QMessageBox.warning(self.toolbox,
|
QMessageBox.warning(self.toolbox,
|
||||||
self.tr('Error reading script', 'AddScriptFromFileAction'),
|
self.tr('Error reading scripts', 'AddScriptFromFileAction'),
|
||||||
self.tr('The selected file does not contain a valid script', 'AddScriptFromFileAction'))
|
self.tr('The following files do not contain a valid script:\n-', 'AddScriptFromFileAction')
|
||||||
return
|
+ "\n-".join(wrongAlgs))
|
||||||
destFilename = os.path.join(ScriptUtils.scriptsFolders()[0], os.path.basename(filename))
|
|
||||||
with open(destFilename, 'w') as f:
|
|
||||||
f.write(script.script)
|
|
||||||
algList.reloadProvider('script')
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user