@@ -52,20 +52,28 @@ def getIcon(self):
52
52
def execute (self ):
53
53
settings = QSettings ()
54
54
lastDir = settings .value ('Processing/lastScriptsDir' , '' )
55
- filename , selected_filter = QFileDialog .getOpenFileName (self .toolbox ,
55
+ filenames , selected_filter = QFileDialog .getOpenFileNames (self .toolbox ,
56
56
self .tr ('Script files' , 'AddScriptFromFileAction' ), lastDir ,
57
57
self .tr ('Script files (*.py *.PY)' , 'AddScriptFromFileAction' ))
58
- if filename :
59
- try :
60
- settings .setValue ('Processing/lastScriptsDir' ,
61
- QFileInfo (filename ).absoluteDir ().absolutePath ())
62
- script = ScriptAlgorithm (filename )
63
- except WrongScriptException :
58
+ if filenames :
59
+ validAlgs = 0
60
+ wrongAlgs = []
61
+ for filename in filenames :
62
+ try :
63
+ settings .setValue ('Processing/lastScriptsDir' ,
64
+ QFileInfo (filename ).absoluteDir ().absolutePath ())
65
+ script = ScriptAlgorithm (filename )
66
+ destFilename = os .path .join (ScriptUtils .scriptsFolders ()[0 ], os .path .basename (filename ))
67
+ with open (destFilename , 'w' ) as f :
68
+ f .write (script .script )
69
+ validAlgs += 1
70
+ except WrongScriptException :
71
+ wrongAlgs .append (os .path .basename (filename ))
72
+ if validAlgs :
73
+ algList .reloadProvider ('script' )
74
+ if wrongAlgs :
64
75
QMessageBox .warning (self .toolbox ,
65
- self .tr ('Error reading script' , 'AddScriptFromFileAction' ),
66
- self .tr ('The selected file does not contain a valid script' , 'AddScriptFromFileAction' ))
67
- return
68
- destFilename = os .path .join (ScriptUtils .scriptsFolders ()[0 ], os .path .basename (filename ))
69
- with open (destFilename , 'w' ) as f :
70
- f .write (script .script )
71
- algList .reloadProvider ('script' )
76
+ self .tr ('Error reading scripts' , 'AddScriptFromFileAction' ),
77
+ self .tr ('The following files do not contain a valid script:\n -' , 'AddScriptFromFileAction' )
78
+ + "\n -" .join (wrongAlgs ))
79
+
0 commit comments