class ImScrMainView(QtWidgets.QMainWindow): """ Main view of imscripting. """ sigNewFile = QtCore.Signal() sigOpenFile = QtCore.Signal() sigSaveFile = QtCore.Signal() sigSaveAsFile = QtCore.Signal() sigClosing = QtCore.Signal() def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('Scripting') # Actions in menubar menuBar = self.menuBar() file = menuBar.addMenu('&File') self.newFileAction = QtWidgets.QAction('New…', self) self.newFileAction.setShortcut('Ctrl+N') self.newFileAction.triggered.connect(self.sigNewFile) file.addAction(self.newFileAction) self.openFileAction = QtWidgets.QAction('Open…', self) self.openFileAction.setShortcut('Ctrl+O') self.openFileAction.triggered.connect(self.sigOpenFile) file.addAction(self.openFileAction) self.saveFileAction = QtWidgets.QAction('Save', self) self.saveFileAction.setShortcut('Ctrl+S') self.saveFileAction.triggered.connect(self.sigSaveFile) file.addAction(self.saveFileAction) self.saveAsFileAction = QtWidgets.QAction('Save as…', self) self.saveAsFileAction.setShortcut('Ctrl+Shift+S') self.saveAsFileAction.triggered.connect(self.sigSaveAsFile) file.addAction(self.saveAsFileAction) # Main layout self.dockArea = DockArea() self.setCentralWidget(self.dockArea) self.editor = EditorView() self.editorDock = Dock('Script Editor') self.editorDock.addWidget(self.editor) self.dockArea.addDock(self.editorDock) self.files = FilesView() self.filesDock = Dock('Files') self.filesDock.addWidget(self.files) self.dockArea.addDock(self.filesDock, 'left', self.editorDock) self.console = ConsoleView() self.consoleDock = Dock('Console') self.consoleDock.addWidget(self.console) self.dockArea.addDock(self.consoleDock, 'right', self.editorDock) self.output = OutputView() self.outputDock = Dock('Output') self.outputDock.addWidget(self.output) self.dockArea.addDock(self.outputDock, 'bottom', self.editorDock) self.editorDock.setStretch(20, 30) self.showMaximized() def closeEvent(self, event): self.sigClosing.emit() event.accept()