def __init__(self, client, binding, qUndoStack, dfgLogWidget, settings, canvasWindow, config): QtGui.QWidget.__init__(self) self.setObjectName('ScriptEditorWidget') self.setStyleSheet(LoadFabricStyleSheet("FabricUI.qss")) self.__undoStackIndex = qUndoStack.index() qUndoStack.indexChanged.connect(self.undoStackIndexChanged) self.__qUndoStack = qUndoStack self.__echoStackIndexChanges = True self.eval_globals = { "binding": BindingWrapper(client, binding, qUndoStack), "newGraph": canvasWindow.onNewGraph, "newScript": self.newScript, "loadScript": self.loadScript, "bindingUtils": DFG.DFGBindingUtils(), } self.dfgLogWidget = dfgLogWidget self.settings = settings self.log = LogWidget() self.log.setFont(config.fixedFont) self.filename = "" self.stdout = LogStdOut(self.log) self.stderr = LogStdErr(self.log) self.cmd = self.CmdEditor(config.fixedFont) self.cmd.returnPressed.connect(self.execute) self.cmd.linesSelected.connect(self.onLinesSelected) splitter = QtGui.QSplitter(QtCore.Qt.Vertical) splitter.setContentsMargins(0, 0, 0, 0) splitter.addWidget(self.cmd) splitter.addWidget(self.log) newAction = QtGui.QAction("New", self) newAction.setShortcut(QtGui.QKeySequence("Alt+Ctrl+N")) newAction.setToolTip( "New script (%s)" % newAction.shortcut().toString(QtGui.QKeySequence.NativeText)) newAction.triggered.connect(self.newScript) openAction = QtGui.QAction("Open", self) openAction.setShortcut(QtGui.QKeySequence("Alt+Ctrl+O")) openAction.setToolTip( "Open script (%s)" % openAction.shortcut().toString(QtGui.QKeySequence.NativeText)) openAction.triggered.connect(self.open) self.saveAction = QtGui.QAction("Save", self) self.saveAction.setShortcut(QtGui.QKeySequence("Alt+Ctrl+S")) self.saveAction.setToolTip( "Save script (%s)" % self.saveAction.shortcut().toString(QtGui.QKeySequence.NativeText)) self.saveAction.triggered.connect(self.save) self.saveAction.setEnabled(False) self.cmd.modificationChanged.connect(self.onModificationChanged) saveAsAction = QtGui.QAction("Save As...", self) saveAsAction.setShortcut(QtGui.QKeySequence("Alt+Shift+Ctrl+S")) saveAsAction.setToolTip( "Save script As... (%s)" % saveAsAction.shortcut().toString(QtGui.QKeySequence.NativeText)) saveAsAction.triggered.connect(self.saveAs) executeAction = QtGui.QAction("Execute", self) executeAction.setShortcuts([ QtGui.QKeySequence("Ctrl+Return"), QtGui.QKeySequence("Ctrl+Enter") ]) executeAction.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) executeAction.setToolTip( "Execute script (%s)" % executeAction.shortcut().toString(QtGui.QKeySequence.NativeText)) executeAction.triggered.connect(self.execute) self.cmd.addAction(executeAction) self.echoCommandsAction = QtGui.QAction("Echo Commands", self) self.echoCommandsAction.setCheckable(True) self.echoCommandsAction.setChecked( bool(self.settings.value("scriptEditor/echoCommands", True))) self.echoCommandsAction.toggled.connect(self.echoCommandsToggled) toolBar = QtGui.QToolBar() toolBar.addAction(newAction) toolBar.addAction(openAction) toolBar.addAction(self.saveAction) toolBar.addAction(saveAsAction) toolBar.addSeparator() toolBar.addAction(executeAction) toolBar.addSeparator() toolBar.addAction(self.echoCommandsAction) toolBar.addAction(self.log.clearAction("Clear Output")) layout = QtGui.QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(toolBar) layout.addWidget(splitter) self.setContentsMargins(0, 0, 0, 0) self.setLayout(layout)
def __init__(self, client, binding, qUndoStack, dfgLogWidget, settings, canvasWindow, config): QtGui.QWidget.__init__(self) self.setObjectName('ScriptEditorWidget') self.setStyleSheet(LoadFabricStyleSheet("FabricUI.qss")) self.__undoStackIndex = qUndoStack.index() qUndoStack.indexChanged.connect(self.undoStackIndexChanged) self.__qUndoStack = qUndoStack self._echoStackIndexChanges = True self._isExecuting = False self.eval_globals = { "binding": BindingWrapper(client, binding, qUndoStack), "newGraph": canvasWindow.onNewGraph, "newScript": self.newScript, "loadScript": self.loadScript, "bindingUtils": DFG.DFGBindingUtils(), "Commands": sys.modules["Commands"] } self.dfgLogWidget = dfgLogWidget self.settings = settings self.log = LogWidget() self.log.setFont(config.fixedFont) self.filename = "" self.stdout = LogStdOut(self.log) self.stderr = LogStdErr(self.log) self.cmd = self.CmdEditor(config.fixedFont) self.cmd.returnPressed.connect(self.execute) self.cmd.linesSelected.connect(self.onLinesSelected) splitter = QtGui.QSplitter(QtCore.Qt.Vertical) splitter.setContentsMargins(0, 0, 0, 0) splitter.addWidget(self.cmd) splitter.addWidget(self.log) newAction = NewScriptAction(self) openAction = OpenScriptAction(self) self.saveAction = SaveScriptAction(self) self.cmd.modificationChanged.connect(self.onModificationChanged) saveAsAction = SaveScriptAsAction(self) executeAction = ExecuteScriptAction(self) self.cmd.addAction(executeAction) self.echoCommandsAction = QtGui.QAction("Echo Commands", self) self.echoCommandsAction.setCheckable(True) self.echoCommandsAction.setChecked( bool(self.settings.value("scriptEditor/echoCommands", True))) self.echoCommandsAction.toggled.connect(self.echoCommandsToggled) toolBar = QtGui.QToolBar() toolBar.addAction(newAction) toolBar.addAction(openAction) toolBar.addAction(self.saveAction) toolBar.addAction(saveAsAction) toolBar.addSeparator() toolBar.addAction(executeAction) toolBar.addSeparator() toolBar.addAction(self.echoCommandsAction) toolBar.addAction(self.log.clearAction("Clear Output")) layout = QtGui.QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(toolBar) layout.addWidget(splitter) self.setContentsMargins(0, 0, 0, 0) self.setLayout(layout)