9 QMessageBox, QSplitter, QTabWidget)
14 QMessageBox, QSplitter, QTabWidget)
16from widget
import PythonEditorWidget, QtQmlEditorWidget, SaveDialog
17from console
import PythonConsole, QtQmlConsole
18from mainwindow_ui
import Ui_ScriptEditor
25# -*- coding: utf-8 -*-
26from __future__ import with_statement
34 QMainWindow.__init__(self, parent)
38 self.
splitter = QSplitter(Qt.Orientation.Vertical, self)
54 if(edit.isModified()):
55 saveBox =
SaveDialog(
"You have unsaved script. Save it now?")
56 prompt = saveBox.exec()
57 if(prompt == QMessageBox.StandardButton.Save):
60 elif(prompt == QMessageBox.StandardButton.Cancel):
63 elif(prompt == QMessageBox.StandardButton.Discard):
75 if(edit.isModified()):
76 saveBox =
SaveDialog(
"You have unsaved script. Save it now?")
77 prompt = saveBox.exec()
78 if(prompt == QMessageBox.StandardButton.Save):
80 elif(prompt == QMessageBox.StandardButton.Cancel):
82 elif(prompt == QMessageBox.StandardButton.Discard):
92 pyedit.setPlainText(template_py)
93 self.
edit_tab.addTab(pyedit,
"Python")
94 self.
edit_tab.setCurrentWidget(pyedit)
99 pyedit.view.setFocus()
104 self.
edit_tab.addTab(jsedit,
"QtQml")
105 self.
edit_tab.setCurrentWidget(jsedit)
112 edit = self.
edit_tab.currentWidget()
114 if(edit.isModified()):
115 saveBox =
SaveDialog(
"Do you want to save this Script?")
116 prompt = saveBox.exec()
117 if(prompt == QMessageBox.StandardButton.Save):
119 elif(prompt == QMessageBox.StandardButton.Cancel):
121 elif(prompt == QMessageBox.StandardButton.Discard):
143 edit = self.
edit_tab.currentWidget()
144 contents = str(edit.toPlainText())
145 if((Update ==
False)
or (self.
edit_tab.tabText(self.
edit_tab.currentIndex()) ==
"Python")):
147 filename = QFileDialog.getSaveFileName(self,
"Save File",
"",
"*.spy")
148 fil = open(filename,
'w')
149 if(filename
and self.
edit_tab.tabText(self.
edit_tab.currentIndex()) ==
"Python"):
151 self.
edit_tab.setTabToolTip(self.
edit_tab.currentIndex(), filename +
'.spy')
152 self.
edit_tab.setTabText(self.
edit_tab.currentIndex(), os.path.basename(str(filename +
'.spy')))
156 fil = open(filename,
'w')
159 edit.setModified(
False)
163 filename = QFileDialog.getOpenFileName(self,
"Open File",
"",
"*.spy")
165 fil = open(filename,
'r')
169 edit = self.
edit_tab.currentWidget()
170 self.
edit_tab.setTabText(self.
edit_tab.currentIndex(), os.path.basename(str(filename)))
172 edit.setPlainText(code)
183 def run(self, console=False):
184 edit = self.
edit_tab.currentWidget()
185 code = str(edit.toPlainText())
186 if isinstance(edit, PythonEditorWidget):
194 exec(code, namespace)
195 except Exception
as e:
196 traceback.print_exc()
198 Scripter.activeWindow.redraw =
True
199 Scripter.activeWindow.update()
211if __name__ ==
"__main__":
213 app = QApplication(sys.argv)
on_actionNewQtQml_triggered(self)
on_actionRunConsole_triggered(self)
on_actionSave_As_triggered(self)
__init__(self, parent=None)
on_actionClose_triggered(self)
on_actionSave_triggered(self)
on_actionNewPython_triggered(self)
on_actionOpen_triggered(self)
on_actionExit_triggered(self)
on_actionRun_triggered(self)
on_actionClear_triggered(self)