Differential D7278 Diff 18061 plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py
Changeset View
Changeset View
Standalone View
Standalone View
plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py
Show All 40 Lines | 31 | def run(self): | |||
---|---|---|---|---|---|
41 | stdout = sys.stdout | 41 | stdout = sys.stdout | ||
42 | stderr = sys.stderr | 42 | stderr = sys.stderr | ||
43 | output = docwrapper.DocWrapper(self.output.document()) | 43 | output = docwrapper.DocWrapper(self.output.document()) | ||
44 | output.write("======================================\n") | 44 | output.write("======================================\n") | ||
45 | sys.stdout = output | 45 | sys.stdout = output | ||
46 | sys.stderr = output | 46 | sys.stderr = output | ||
47 | script = self.editor.document().toPlainText() | 47 | script = self.editor.document().toPlainText() | ||
48 | document = self.scripter.documentcontroller.activeDocument | 48 | document = self.scripter.documentcontroller.activeDocument | ||
49 | | ||||
49 | try: | 50 | try: | ||
50 | if document: | 51 | if document: | ||
51 | spec = importlib.util.spec_from_file_location("users_script", document.filePath) | 52 | spec = importlib.util.spec_from_file_location("users_script", document.filePath) | ||
52 | users_module = importlib.util.module_from_spec(spec) | 53 | users_module = importlib.util.module_from_spec(spec) | ||
53 | spec.loader.exec_module(users_module) | 54 | spec.loader.exec_module(users_module) | ||
54 | users_module.main() | 55 | users_module.main() | ||
55 | else: | 56 | else: | ||
56 | code = compile(script, '<string>', 'exec') | 57 | code = compile(script, '<string>', 'exec') | ||
57 | exec(script, {}) | 58 | exec(script, {}) | ||
58 | except Exception as e: | 59 | except Exception as e: | ||
59 | self.scripter.uicontroller.showException(str(e)) | 60 | self.scripter.uicontroller.showException(str(e)) | ||
60 | 61 | | |||
61 | sys.stdout = stdout | 62 | sys.stdout = stdout | ||
62 | sys.stderr = stderr | 63 | sys.stderr = stderr | ||
63 | 64 | | |||
64 | # scroll to bottom of output | 65 | # scroll to bottom of output | ||
65 | max = self.output.verticalScrollBar().maximum() | 66 | bottom = self.output.verticalScrollBar().maximum() | ||
66 | self.output.verticalScrollBar().setValue(max) | 67 | self.output.verticalScrollBar().setValue(bottom) |