diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/scripter.py b/plugins/extensions/pykrita/plugin/plugins/scripter/scripter.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/scripter.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/scripter.py @@ -3,6 +3,8 @@ from PyQt5.QtCore import * from krita import * from scripter import uicontroller, documentcontroller, debugcontroller +import os as osp +import sys class ScripterViewExtension(ViewExtension): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/debugaction/debugaction.py @@ -12,7 +12,7 @@ self.setText('Debug') # path to the icon - self.setIcon(QIcon('/home/eliakincosta/Pictures/debug.svg')) + #self.setIcon(QIcon('/home/eliakincosta/Pictures/debug.svg')) @property def parent(self): diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/actions/runaction/runaction.py @@ -2,6 +2,7 @@ from PyQt5.QtGui import QIcon import sys from . import docwrapper +import os class RunAction(QAction): @@ -16,28 +17,30 @@ self.setText('Run') # path to the icon - self.setIcon(QIcon('/home/eliakincosta/Pictures/play.svg')) + #self.setIcon(QIcon('/home/eliakincosta/Pictures/play.svg')) @property def parent(self): return 'toolBar' def run(self): - print('roda roda') - stdout = sys.stdout - stderr = sys.stderr - output = docwrapper.DocWrapper(self.output.document()) - output.write("======================================\n") - sys.stdout = output - sys.stderr = output - script = self.editor.document().toPlainText() - try: - bc = compile(script, "", "exec") - except Exception as e: - QMessageBox.critical(self.editor, "Error compiling script", str(e)) - return - - exec(bc) - - sys.stdout = stdout - sys.stderr = stderr + document = self.scripter.uicontroller.invokeAction('save') + + if document: + stdout = sys.stdout + stderr = sys.stderr + output = docwrapper.DocWrapper(self.output.document()) + output.write("======================================\n") + sys.stdout = output + sys.stderr = output + script = self.editor.document().toPlainText() + try: + bc = compile(document.data, document.filePath, "exec") + except Exception as e: + QMessageBox.critical(self.editor, "Error compiling script", str(e)) + return + + exec(bc) + + sys.stdout = stdout + sys.stderr = stderr diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/editor/pythoneditor.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/editor/pythoneditor.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/editor/pythoneditor.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/editor/pythoneditor.py @@ -16,7 +16,6 @@ self.scripter = scripter self.lineNumberArea = linenumberarea.LineNumberArea(self) self.debugArea = debugarea.DebugArea(self) - self.debugIcon = QIcon('/home/eliakincosta/Pictures/debug_arrow.svg') self.blockCountChanged.connect(self.updateMarginsWidth) self.updateRequest.connect(self.updateLineNumberArea) @@ -106,8 +105,7 @@ bottom = top + int(self.blockBoundingRect(block).height()) painter = QPainter(self.debugArea) - pixmap = self.debugIcon.pixmap(QSize(self.debugAreaWidth()-3, int(self.blockBoundingRect(block).height()))) - painter.drawPixmap(QPoint(0, top), pixmap) + painter.fillRect(0, top, self.debugAreaWidth()-3, int(self.blockBoundingRect(block).height()), QColor(Qt.yellow).darker(300)) def highlightCurrentLine(self): """Highlight current line under cursor""" diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/debuggerwidget.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/debuggerwidget.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/debuggerwidget.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/debuggerwidget.py @@ -1,7 +1,7 @@ -from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QTableWidget,QAction -from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolBar, QTableWidget, QAction from . import stepaction, stopaction + class DebuggerWidget(QWidget): def __init__(self, scripter, parent=None): @@ -11,8 +11,8 @@ self.setObjectName('Debugger') self.layout = QVBoxLayout() - self.toolbar = QToolBar() self.stopAction = stopaction.StopAction(self.scripter, self) + self.toolbar = QToolBar() self.stepAction = stepaction.StepAction(self.scripter, self) self.toolbar.addAction(self.stopAction) self.toolbar.addAction(self.stepAction) diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stepaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stepaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stepaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stepaction.py @@ -13,7 +13,7 @@ self.setText('Step Over') # path to the icon - self.setIcon(QIcon('/home/eliakincosta/Pictures/step.svg')) + #self.setIcon(QIcon('/home/eliakincosta/Pictures/step.svg')) def step(self): status = self.scripter.debugcontroller.isActive diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stopaction.py b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stopaction.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stopaction.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/ui_scripter/stackwidgets/debuggerwidget/stopaction.py @@ -13,7 +13,7 @@ self.setText('Stop') # path to the icon - self.setIcon(QIcon('/home/eliakincosta/Pictures/stop.svg')) + #self.setIcon(QIcon('/home/eliakincosta/Pictures/stop.svg')) def stop(self): self.scripter.debugcontroller.stop() diff --git a/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py b/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py --- a/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py +++ b/plugins/extensions/pykrita/plugin/plugins/scripter/uicontroller.py @@ -119,7 +119,9 @@ def setDocumentEditor(self, document): self.editor.clear() - self.editor.appendPlainText(document.data) + self.editor.moveCursor(QTextCursor.Start) + self.editor.insertPlainText(document.data) + self.editor.moveCursor(QTextCursor.End) def setStatusBar(self, value='untitled'): self.statusBar.setText(value)