class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.setWindowTitle("SUN - Risc-V Editor & Simulator ") MainWindow.resize(1417, 820) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) MainWindow.setMinimumSize(QtCore.QSize(1200, 800)) MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.tabs = QtWidgets.QTabWidget(self.centralwidget) self.tabs.setTabShape(QtWidgets.QTabWidget.Triangular) self.tabs.setObjectName("tabs") self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") self.verticalLayout = QtWidgets.QVBoxLayout(self.tab) self.verticalLayout.setObjectName("verticalLayout") self.uploadButton = QtWidgets.QPushButton(self.tab) self.uploadButton.setMaximumSize(QtCore.QSize(200, 50)) self.uploadButton.setObjectName("uploadButton") self.verticalLayout.addWidget(self.uploadButton) self.codeEditor = CodeEditor(self.tab) self.codeEditor.setObjectName("codeEditor") self.verticalLayout.addWidget(self.codeEditor) self.errorBox = QtWidgets.QPlainTextEdit(self.tab) self.errorBox.setStyleSheet("color: rgb(255,0,0);") self.errorBox.setObjectName("errorBox") self.errorBox.setMaximumHeight(150) self.verticalLayout.addWidget(self.errorBox) self.errorBox.setReadOnly(True) self.errorBox.setPlaceholderText("Errors will be displayed here") self.tabs.addTab(self.tab, "") self.tab_2 = QtWidgets.QWidget() self.tab_2.setObjectName("tab_2") self.horizontalLayout = QtWidgets.QHBoxLayout(self.tab_2) self.horizontalLayout.setObjectName("horizontalLayout") self.widget = QtWidgets.QWidget(self.tab_2) self.widget.setObjectName("widget") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget) self.verticalLayout_2.setObjectName("verticalLayout_2") self.horizontalWidget = QtWidgets.QWidget(self.widget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.horizontalWidget.sizePolicy().hasHeightForWidth()) self.horizontalWidget.setSizePolicy(sizePolicy) self.horizontalWidget.setMinimumSize(QtCore.QSize(20, 50)) self.horizontalWidget.setMaximumSize(QtCore.QSize(16777215, 75)) self.horizontalWidget.setObjectName("horizontalWidget") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalWidget) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.runButton = QtWidgets.QPushButton(self.horizontalWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runButton.sizePolicy().hasHeightForWidth()) self.runButton.setSizePolicy(sizePolicy) self.runButton.setObjectName("runButton") self.horizontalLayout_2.addWidget(self.runButton) self.stepButton = QtWidgets.QPushButton(self.horizontalWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.stepButton.sizePolicy().hasHeightForWidth()) self.stepButton.setSizePolicy(sizePolicy) self.stepButton.setObjectName("stepButton") self.horizontalLayout_2.addWidget(self.stepButton) self.prevButton = QtWidgets.QPushButton(self.horizontalWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.prevButton.sizePolicy().hasHeightForWidth()) self.prevButton.setSizePolicy(sizePolicy) self.prevButton.setObjectName("prevButton") self.horizontalLayout_2.addWidget(self.prevButton) self.resetButton = QtWidgets.QPushButton(self.horizontalWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.resetButton.sizePolicy().hasHeightForWidth()) self.resetButton.setSizePolicy(sizePolicy) self.resetButton.setObjectName("resetButton") self.horizontalLayout_2.addWidget(self.resetButton) self.verticalLayout_2.addWidget(self.horizontalWidget) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.codeTable = QtWidgets.QTableWidget(self.widget) self.codeTable.setGridStyle(QtCore.Qt.DashDotLine) self.codeTable.setObjectName("codeTable") self.codeTable.setColumnCount(4) self.codeTable.setRowCount(100) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignCenter) font = QtGui.QFont() font.setPointSize(12) item.setFont(font) self.codeTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) self.codeTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignCenter) font = QtGui.QFont() font.setPointSize(12) font.setBold(False) font.setWeight(50) item.setFont(font) self.codeTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignCenter) font = QtGui.QFont() font.setPointSize(12) font.setBold(False) font.setWeight(50) item.setFont(font) self.codeTable.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignCenter) font = QtGui.QFont() font.setPointSize(12) font.setBold(False) font.setWeight(50) item.setFont(font) self.codeTable.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.codeTable.setItem(0, 0, item) item = QtWidgets.QTableWidgetItem() self.codeTable.setItem(0, 1, item) item = QtWidgets.QTableWidgetItem() self.codeTable.setItem(0, 2, item) item = QtWidgets.QTableWidgetItem() self.codeTable.setItem(1, 0, item) item = QtWidgets.QTableWidgetItem() self.codeTable.setItem(1, 1, item) item = QtWidgets.QTableWidgetItem() self.codeTable.setItem(1, 2, item) self.codeTable.horizontalHeader().setCascadingSectionResizes(True) self.codeTable.horizontalHeader().setDefaultSectionSize(200) self.codeTable.horizontalHeader().setMinimumSectionSize(100) self.codeTable.horizontalHeader().setSortIndicatorShown(False) self.codeTable.horizontalHeader().setStretchLastSection(True) self.codeTable.verticalHeader().setVisible(False) self.codeTable.verticalHeader().setCascadingSectionResizes(True) self.codeTable.verticalHeader().setHighlightSections(True) self.codeTable.verticalHeader().setStretchLastSection(True) self.horizontalLayout_3.addWidget(self.codeTable) self.verticalLayout_2.addLayout(self.horizontalLayout_3) self.horizontalLayout.addWidget(self.widget) self.widget_2 = QtWidgets.QWidget(self.tab_2) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.widget_2.sizePolicy().hasHeightForWidth()) self.widget_2.setSizePolicy(sizePolicy) self.widget_2.setMinimumSize(QtCore.QSize(550, 0)) self.widget_2.setMaximumSize(QtCore.QSize(600, 16777215)) self.widget_2.setObjectName("widget_2") self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget_2) self.verticalLayout_3.setObjectName("verticalLayout_3") self.splitter = QtWidgets.QSplitter(self.widget_2) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName("splitter") self.label_2 = QtWidgets.QLabel(self.splitter) self.label_2.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.label_2.setObjectName("label_2") self.regMemDisplayTypeDrop = QtWidgets.QComboBox(self.splitter) self.regMemDisplayTypeDrop.setObjectName("regMemDisplayTypeDrop") self.regMemDisplayTypeDrop.addItem("") self.regMemDisplayTypeDrop.addItem("") self.regMemDisplayTypeDrop.addItem("") self.regMemDisplayTypeDrop.addItem("") self.verticalLayout_3.addWidget(self.splitter) self.regMemTab = QtWidgets.QTabWidget(self.widget_2) self.regMemTab.setTabShape(QtWidgets.QTabWidget.Rounded) self.regMemTab.setObjectName("regMemTab") self.tab_4 = QtWidgets.QWidget() self.tab_4.setObjectName("tab_4") self.gridLayout_2 = QtWidgets.QGridLayout(self.tab_4) self.gridLayout_2.setObjectName("gridLayout_2") self.registerTable = QtWidgets.QTableWidget(self.tab_4) self.tab_6 = QtWidgets.QWidget() self.tab_6.setObjectName("tab_6") self.gridLayout_3 = QtWidgets.QGridLayout(self.tab_6) self.gridLayout_3.setObjectName("gridLayout_3") self.registerTable = QtWidgets.QTableWidget(self.tab_6) self.registerTable.setGridStyle(QtCore.Qt.DashLine) self.registerTable.setObjectName("registerTable") self.registerTable.setEditTriggers( QtWidgets.QTableWidget.NoEditTriggers) self.registerTable.setColumnCount(1) self.registerTable.setRowCount(32) self.pipeTable = QtWidgets.QTableWidget(self.tab_6) self.pipeTable.setGridStyle(QtCore.Qt.DashLine) self.pipeTable.setObjectName("pipeTable") self.pipeTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) self.pipeTable.setColumnCount(1) self.pipeTable.setRowCount(20) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(6, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(7, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(8, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(9, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(10, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(11, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(12, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(13, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(14, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(15, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(16, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(17, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(18, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(19, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setVerticalHeaderItem(20, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setItem(0, 0, item) item = QtWidgets.QTableWidgetItem() self.pipeTable.setItem(1, 0, item) self.pipeTable.horizontalHeader().setCascadingSectionResizes(True) self.pipeTable.horizontalHeader().setDefaultSectionSize(150) self.pipeTable.horizontalHeader().setMinimumSectionSize(80) self.pipeTable.horizontalHeader().setStretchLastSection(True) self.pipeTable.verticalHeader().setCascadingSectionResizes(False) self.pipeTable.verticalHeader().setDefaultSectionSize(37) self.pipeTable.verticalHeader().setStretchLastSection(False) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(6, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(7, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(8, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(9, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(10, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(11, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(12, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(13, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(14, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(15, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(16, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(17, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(18, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(19, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(20, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(21, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(22, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(23, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(24, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(25, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(26, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(27, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(28, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(29, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(30, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setVerticalHeaderItem(31, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setItem(0, 0, item) item = QtWidgets.QTableWidgetItem() self.registerTable.setItem(1, 0, item) self.registerTable.horizontalHeader().setCascadingSectionResizes(True) self.registerTable.horizontalHeader().setDefaultSectionSize(150) self.registerTable.horizontalHeader().setMinimumSectionSize(80) self.registerTable.horizontalHeader().setStretchLastSection(True) self.registerTable.verticalHeader().setCascadingSectionResizes(False) self.registerTable.verticalHeader().setDefaultSectionSize(37) self.registerTable.verticalHeader().setStretchLastSection(False) self.gridLayout_2.addWidget(self.registerTable, 0, 0, 1, 1) self.gridLayout_3.addWidget(self.pipeTable, 0, 0, 1, 1) self.regMemTab.addTab(self.tab_4, "") self.tab_5 = QtWidgets.QWidget() self.tab_5.setObjectName("tab_5") self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.tab_5) self.verticalLayout_4.setObjectName("verticalLayout_4") self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.label = QtWidgets.QLabel(self.tab_5) self.label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.label.setObjectName("label") self.horizontalLayout_4.addWidget(self.label) self.memJumpDropDown = QtWidgets.QComboBox(self.tab_5) self.memJumpDropDown.setObjectName("memJumpDropDown") self.memJumpDropDown.addItem("") self.memJumpDropDown.addItem("") self.memJumpDropDown.addItem("") self.memJumpDropDown.addItem("") self.horizontalLayout_4.addWidget(self.memJumpDropDown) self.memUp = QtWidgets.QPushButton(self.tab_5) self.memUp.setObjectName("memUp") self.horizontalLayout_4.addWidget(self.memUp) self.memDown = QtWidgets.QPushButton(self.tab_5) self.memDown.setObjectName("memDown") self.horizontalLayout_4.addWidget(self.memDown) self.verticalLayout_4.addLayout(self.horizontalLayout_4) self.memoryTable = QtWidgets.QTableWidget(self.tab_5) self.memoryTable.setAlternatingRowColors(True) self.memoryTable.setObjectName("memoryTable") self.memoryTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) self.memoryTable.setColumnCount(5) self.memoryTable.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.memoryTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.memoryTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.memoryTable.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.memoryTable.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.memoryTable.setHorizontalHeaderItem(4, item) self.memoryTable.horizontalHeader().setCascadingSectionResizes(True) self.memoryTable.horizontalHeader().setDefaultSectionSize(100) self.memoryTable.horizontalHeader().setStretchLastSection(True) self.memoryTable.verticalHeader().setCascadingSectionResizes(True) self.verticalLayout_4.addWidget(self.memoryTable) self.regMemTab.addTab(self.tab_5, "") self.regMemTab.addTab(self.tab_6, "") self.verticalLayout_3.addWidget(self.regMemTab) self.horizontalLayout.addWidget(self.widget_2) self.tabs.addTab(self.tab_2, "") self.tab_3 = QtWidgets.QWidget() self.tab_3.setObjectName("tab_3") self.tabs.addTab(self.tab_3, "") #self.horizontalLayout = QtWidgets.QHBoxLayout(self.tab_2) #self.horizontalLayout.setObjectName("horizontalLayout") self.tab_3.layout = QtWidgets.QGridLayout() self.temp1 = QtWidgets.QLabel("") self.cb1 = QtWidgets.QCheckBox('Enable Pipelining') self.cb1.toggle() self.cb1.toggled.connect(lambda: self.knobs(self.cb1, 0)) self.cb2 = QtWidgets.QCheckBox('Enable Data Forwarding') self.cb2.toggle() self.cb2.toggled.connect(lambda: self.knobs(self.cb2, 1)) self.cb3 = QtWidgets.QCheckBox('Enable Printing Register File') self.cb3.toggled.connect(lambda: self.knobs(self.cb3, 2)) self.cb4 = QtWidgets.QCheckBox('Enable Printing Pipelining Registers') self.cb4.toggled.connect(lambda: self.knobs(self.cb4, 3)) #cb.stateChanged.connect(self.changeTitle) #TODO self.pushButton1 = QtWidgets.QPushButton("PyQt5 button") self.tab_3.layout.addWidget(self.cb1, 1, 1) self.tab_3.layout.addWidget(self.cb2, 2, 1) self.tab_3.layout.addWidget(self.cb3, 3, 1) self.tab_3.layout.addWidget(self.cb4, 4, 1) self.tab_3.layout.addWidget(self.temp1, 5, 0) self.tab_3.setLayout(self.tab_3.layout) self.gridLayout.addWidget(self.tabs, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.uploadButton.clicked.connect(self.file_open) self.tabs.currentChanged.connect(self.onTabChange) self.runButton.clicked.connect(self.runCodeClick) self.stepButton.clicked.connect(self.stepForward) self.resetButton.clicked.connect(self.reset) self.prevButton.clicked.connect(self.stepBack) # self.regMemDisplayTypeDrop.currentIndexChanged.connect(self.displayTypeChange) self.regMemDisplayTypeDrop.activated[str].connect( self.displayTypeChange) self.memJumpDropDown.activated[str].connect(self.memoryTypeChange) self.retranslateUi(MainWindow) self.tabs.setCurrentIndex(0) self.regMemTab.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate self.translate = _translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.uploadButton.setText(_translate("MainWindow", "Upload Code")) self.tabs.setTabText(self.tabs.indexOf(self.tab), _translate("MainWindow", "Editor")) self.runButton.setText(_translate("MainWindow", "Run")) self.stepButton.setText(_translate("MainWindow", "Step")) self.prevButton.setText(_translate("MainWindow", "Prev")) self.resetButton.setText(_translate("MainWindow", "Reset")) item = self.codeTable.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "PC")) item = self.codeTable.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Machine Code")) item = self.codeTable.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Basic Code")) item = self.codeTable.horizontalHeaderItem(3) item.setText(_translate("MainWindow", "Original Code")) __sortingEnabled = self.codeTable.isSortingEnabled() self.codeTable.setSortingEnabled(False) self.codeTable.setSortingEnabled(__sortingEnabled) self.label_2.setText(_translate("MainWindow", "Display Setting ")) self.regMemDisplayTypeDrop.setItemText(0, _translate("MainWindow", "Hex")) self.regMemDisplayTypeDrop.setItemText( 1, _translate("MainWindow", "Decimal")) self.regMemDisplayTypeDrop.setItemText( 2, _translate("MainWindow", "Unsigned")) self.regMemDisplayTypeDrop.setItemText( 3, _translate("MainWindow", "Ascii")) item = self.pipeTable.verticalHeaderItem(0) item.setText(_translate("MainWindow", "Fetch (PC Value)")) item = self.pipeTable.verticalHeaderItem(1) item.setText(_translate("MainWindow", "Decode (PC Value)")) item = self.pipeTable.verticalHeaderItem(2) item.setText(_translate("MainWindow", "Execute (PC Value)")) item = self.pipeTable.verticalHeaderItem(3) item.setText(_translate("MainWindow", "Memory Access (PC Value)")) item = self.pipeTable.verticalHeaderItem(4) item.setText(_translate("MainWindow", "Writeback (PC Value)")) item = self.pipeTable.verticalHeaderItem(5) item.setText(_translate("MainWindow", "Total number of cycles")) item = self.pipeTable.verticalHeaderItem(6) item.setText(_translate("MainWindow", "Total instructions executed")) item = self.pipeTable.verticalHeaderItem(7) item.setText(_translate("MainWindow", "CPI")) item = self.pipeTable.verticalHeaderItem(8) item.setText(_translate("MainWindow", "Number of Data-transfer")) item = self.pipeTable.verticalHeaderItem(9) item.setText(_translate("MainWindow", "ALU instructions executed")) item = self.pipeTable.verticalHeaderItem(10) item.setText(_translate("MainWindow", "Control instructions executed")) item = self.pipeTable.verticalHeaderItem(11) item.setText(_translate("MainWindow", "Number of stalls/bubbles")) item = self.pipeTable.verticalHeaderItem(12) item.setText(_translate("MainWindow", "Number of data hazards")) item = self.pipeTable.verticalHeaderItem(13) item.setText(_translate("MainWindow", "Number of control hazards")) item = self.pipeTable.verticalHeaderItem(14) item.setText( _translate("MainWindow", "Number of branch mispredictions")) item = self.pipeTable.verticalHeaderItem(15) item.setText( _translate("MainWindow", "Number of stalls due to data hazards")) item = self.pipeTable.verticalHeaderItem(16) item.setText( _translate("MainWindow", "Number of stalls due to control hazards")) item = self.pipeTable.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "Status / Values")) __sortingEnabled = self.pipeTable.isSortingEnabled() self.pipeTable.setSortingEnabled(False) self.pipeTable.setSortingEnabled(__sortingEnabled) item = self.registerTable.verticalHeaderItem(0) item.setText(_translate("MainWindow", "zero(x0)")) item = self.registerTable.verticalHeaderItem(1) item.setText(_translate("MainWindow", "ra(x1)")) item = self.registerTable.verticalHeaderItem(2) item.setText(_translate("MainWindow", "sp(x2)")) item = self.registerTable.verticalHeaderItem(3) item.setText(_translate("MainWindow", "gp(x3)")) item = self.registerTable.verticalHeaderItem(4) item.setText(_translate("MainWindow", "tp(x4)")) item = self.registerTable.verticalHeaderItem(5) item.setText(_translate("MainWindow", "t0(x5)")) item = self.registerTable.verticalHeaderItem(6) item.setText(_translate("MainWindow", "t1(x6)")) item = self.registerTable.verticalHeaderItem(7) item.setText(_translate("MainWindow", "t2(x7)")) item = self.registerTable.verticalHeaderItem(8) item.setText(_translate("MainWindow", "s0(x8)")) item = self.registerTable.verticalHeaderItem(9) item.setText(_translate("MainWindow", "s1(x9)")) item = self.registerTable.verticalHeaderItem(10) item.setText(_translate("MainWindow", "a0(x10)")) item = self.registerTable.verticalHeaderItem(11) item.setText(_translate("MainWindow", "a1(x11)")) item = self.registerTable.verticalHeaderItem(12) item.setText(_translate("MainWindow", "a2(x12)")) item = self.registerTable.verticalHeaderItem(13) item.setText(_translate("MainWindow", "a3(x13)")) item = self.registerTable.verticalHeaderItem(14) item.setText(_translate("MainWindow", "a4(x14)")) item = self.registerTable.verticalHeaderItem(15) item.setText(_translate("MainWindow", "a5(x15)")) item = self.registerTable.verticalHeaderItem(16) item.setText(_translate("MainWindow", "a6(x16)")) item = self.registerTable.verticalHeaderItem(17) item.setText(_translate("MainWindow", "a7(x17)")) item = self.registerTable.verticalHeaderItem(18) item.setText(_translate("MainWindow", "s2(x18)")) item = self.registerTable.verticalHeaderItem(19) item.setText(_translate("MainWindow", "s3(x19)")) item = self.registerTable.verticalHeaderItem(20) item.setText(_translate("MainWindow", "s4(x20)")) item = self.registerTable.verticalHeaderItem(21) item.setText(_translate("MainWindow", "s5(x21)")) item = self.registerTable.verticalHeaderItem(22) item.setText(_translate("MainWindow", "s6(x22)")) item = self.registerTable.verticalHeaderItem(23) item.setText(_translate("MainWindow", "s7(x23)")) item = self.registerTable.verticalHeaderItem(24) item.setText(_translate("MainWindow", "s8(x24)")) item = self.registerTable.verticalHeaderItem(25) item.setText(_translate("MainWindow", "s9(x25)")) item = self.registerTable.verticalHeaderItem(26) item.setText(_translate("MainWindow", "s10(x26)")) item = self.registerTable.verticalHeaderItem(27) item.setText(_translate("MainWindow", "s11(x27)")) item = self.registerTable.verticalHeaderItem(28) item.setText(_translate("MainWindow", "t3(x28)")) item = self.registerTable.verticalHeaderItem(29) item.setText(_translate("MainWindow", "t4(x29)")) item = self.registerTable.verticalHeaderItem(30) item.setText(_translate("MainWindow", "t5(x30)")) item = self.registerTable.verticalHeaderItem(31) item.setText(_translate("MainWindow", "t6(x31)")) item = self.registerTable.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "Values")) __sortingEnabled = self.registerTable.isSortingEnabled() self.registerTable.setSortingEnabled(False) self.registerTable.setSortingEnabled(__sortingEnabled) self.regMemTab.setTabText(self.regMemTab.indexOf(self.tab_4), _translate("MainWindow", "Registers")) self.regMemTab.setTabText(self.regMemTab.indexOf(self.tab_6), _translate("MainWindow", "Pipelining Info")) self.label.setText(_translate("MainWindow", "Jump To")) self.memJumpDropDown.setItemText(0, _translate("MainWindow", "Text")) self.memJumpDropDown.setItemText(1, _translate("MainWindow", "Data")) self.memJumpDropDown.setItemText(2, _translate("MainWindow", "Heap")) self.memJumpDropDown.setItemText(3, _translate("MainWindow", "Stack")) self.memUp.setText(_translate("MainWindow", "Up")) self.memDown.setText(_translate("MainWindow", "Down")) item = self.memoryTable.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "Address")) item = self.memoryTable.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "+0")) item = self.memoryTable.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "+1")) item = self.memoryTable.horizontalHeaderItem(3) item.setText(_translate("MainWindow", "+2")) item = self.memoryTable.horizontalHeaderItem(4) item.setText(_translate("MainWindow", "+3")) self.regMemTab.setTabText(self.regMemTab.indexOf(self.tab_5), _translate("MainWindow", "Memory")) self.tabs.setTabText(self.tabs.indexOf(self.tab_2), _translate("MainWindow", "Simulator")) self.tabs.setTabText(self.tabs.indexOf(self.tab_3), _translate("MainWindow", "Customize Options")) def file_open(self): name = QtWidgets.QFileDialog.getOpenFileName(None, 'Open File') if (len(name[0]) == 0): return code_file = open(name[0], 'r') with code_file: text = code_file.read() self.codeEditor.clear() self.codeEditor.appendPlainText(text) def file_save(self): file = open("../lib/Files/assemblyCode.asm", 'w+') text = self.codeEditor.toPlainText() file.write(text) file.close() def reset(self): self.currentPC = 0 self.displayTypeChange(0) self.tableReColor() def onTabChange(self, i): self.currentPC = 0 if (i == 0): self.codeTable.setRowCount(0) self.memoryTable.setRowCount(0) # self.errorBox.clear() from Phase2.registers import RegisterTable RegisterTable.Initialize(file_path="../lib/Phase2/") self.doRegisterUpdate() if (i == 1): self.file_save() mydir = os.getcwd() mydir_tmp = "../lib/" mydir_new = os.chdir(mydir_tmp) exec(open("first_half_controller.py").read(), locals(), locals()) mydir = os.chdir(mydir) from Phase1.detectError import detectError error_list = detectError() if (len(error_list) > 0): self.errorBox.setPlainText(error_list) self.tabs.setCurrentIndex(0) return self.errorBox.clear() mydir = os.getcwd() mydir_tmp = "../lib/" mydir_new = os.chdir(mydir_tmp) exec(open("second_half_controller.py").read()) mydir = os.chdir(mydir) self.showProcessedCode() self.memJumpDropDown.setCurrentIndex(0) self.doMemoryUpdate() self.tableReColor() from Phase2.registers import RegisterTable RegisterTable.Initialize(file_path="../lib/Phase2/") self.doRegisterUpdate() self.doPipeUpdate() self.allInfo() def showProcessedCode(self): ori = open("../lib/Files/assemblyCodeFinal.asm") mac = open("../lib/Files/machine_code.mc") bas = open("../lib/Files/assemblyCodeFinal_BasicVersion.asm") ori = ori.readlines() mac = mac.readlines() bas = bas.readlines() self.codeTable.setRowCount(len(ori) + 2) self.maxPC = 1 auipc_count = 0 for ind in range(len(bas) + 1): # print(ind) # item = self.codeTable.verticalHeaderItem(ind) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.codeTable.setItem(ind, 0, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.codeTable.setItem(ind, 1, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.codeTable.setItem(ind, 2, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.codeTable.setItem(ind, 3, item) if (ind == len(bas)): continue item.setText(self.translate("MainWindow", "New Row")) item = self.codeTable.item(ind, 0) item.setText( self.translate("MainWindow", mac[ind].strip().split()[0])) item = self.codeTable.item(ind, 1) item.setText( self.translate("MainWindow", mac[ind].strip().split()[1])) item = self.codeTable.item(ind, 2) item.setText(self.translate("MainWindow", bas[ind].strip())) item = self.codeTable.item(ind, 3) item.setText( self.translate("MainWindow", ori[ind - auipc_count].strip())) if bas[ind].split()[0] == "auipc": auipc_count += 1 def displayTypeChange(self, i): self.doRegisterUpdate() self.doMemoryUpdate() self.doPipeUpdate() self.allInfo() def memoryTypeChange(self, i): self.doMemoryUpdate() def stepForward(self): if self.currentPC == 0: self.runCode() if self.currentPC < self.maxPC: self.currentPC += 1 self.displayTypeChange(0) self.tableReColor() def stepBack(self): if self.currentPC > 0: self.currentPC -= 1 self.displayTypeChange(0) self.tableReColor() def getVal(self, val): if (self.regMemDisplayTypeDrop.currentIndex() == 0): val = (val & 0xffffffff) val = hex(val) elif (self.regMemDisplayTypeDrop.currentIndex() == 1): pass elif (self.regMemDisplayTypeDrop.currentIndex() == 2): val = (val & 0xffffffff) elif (self.regMemDisplayTypeDrop.currentIndex() == 3): try: val = chr(val) except: val = chr(1) return val def selectMemory(self, index): if (index == 0): dmt = open('../lib/Phase3/Snapshot/memory_instructions.txt', 'r+').readlines() return dmt if (self.currentPC == 0 or self.currentPC > self.maxPC): return [] if (index == 1): dmt = open( '../lib/Phase3/Snapshot/Files/memory_after_cycle' + str(self.currentPC) + '.txt', 'r+').readlines() return dmt if (index == 2): dmt = open('../lib/Files/heap_memory_table.txt', 'r+').readlines() return dmt if (index == 3): dmt = open( '../lib/Phase3/Snapshot/Files/memory_after_cycle' + str(self.currentPC) + '.txt', 'r+').readlines() return dmt def doRegisterUpdate(self): rt = [] if self.currentPC == 0 or self.currentPC > self.maxPC: rt = ["0"] * 32 rt[2] = "2147483632" else: rt = open( '../lib/Phase3/Snapshot/Files/registers_after_cycle' + str(self.currentPC) + '.txt', 'r+') rt = rt.readlines() for ind in range(len(rt)): item = QtWidgets.QTableWidgetItem() val = int(rt[ind].strip()) val = self.getVal(val) item.setText(str(val)) self.registerTable.setItem(ind, 0, item) def doPipeUpdate(self): rt = [] if self.currentPC == 0 or self.currentPC > self.maxPC: rt = ["0"] * 10 else: rt = open( '../lib/Phase3/Snapshot/Files/instruction_details_after_cycle' + str(self.currentPC) + '.txt', 'r+') rt = rt.readlines() for ind in range(len(rt)): item = QtWidgets.QTableWidgetItem() val = int(rt[ind].strip(), 16) val = self.getVal(val) item.setText(str(val)) self.pipeTable.setItem(ind, 0, item) def allInfo(self): rt = [] if self.currentPC == 0: rt = ["0"] * 10 else: rt = open('../lib/Phase3/Files/summary.txt', 'r+') rt = rt.readlines() for ind in range(len(rt)): item = QtWidgets.QTableWidgetItem() val = rt[ind].strip() #val = self.getVal(val) item.setText(str(val)) self.pipeTable.setItem(5 + ind, 0, item) def knobs(self, but, ind): rt = open('../lib/Phase3/Files/knobs.txt', 'r+') rt = rt.readlines() if (len(rt) == 0): rt = ['1 1 0 0'] lis = rt[0].strip().split() if but.isChecked() == True: lis[ind] = '1' else: lis[ind] = '0' rt = open('../lib/Phase3/Files/knobs.txt', 'w') rt.write(" ".join(lis)) #print(lis) def tableReColor(self): for j in range(self.codeTable.rowCount() - 1): self.codeTable.item(j, 0).setBackground(QtGui.QColor(255, 255, 255)) if self.currentPC != 0 and self.currentPC <= self.maxPC: self.codeTable.item((int(self.PCList[self.currentPC - 1]) // 4), 0).setBackground(QtGui.QColor(144, 238, 144)) def doMemoryUpdate(self): memList = self.selectMemory(self.memJumpDropDown.currentIndex()) self.memoryTable.setRowCount((len(memList) + 3) // 4) for ind in range(0, len(memList) // 4): item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.memoryTable.setItem(ind, 0, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.memoryTable.setItem(ind, 1, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.memoryTable.setItem(ind, 2, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.memoryTable.setItem(ind, 3, item) item = QtWidgets.QTableWidgetItem() item.setTextAlignment(QtCore.Qt.AlignHCenter) self.memoryTable.setItem(ind, 4, item) item.setText("New Row") item = self.memoryTable.item(ind, 0) item.setText(memList[ind * 4].strip().split()[0]) item = self.memoryTable.item(ind, 1) item.setText( str(self.getVal(int(memList[ind * 4].strip().split()[1])))) item = self.memoryTable.item(ind, 2) item.setText( str(self.getVal(int(memList[ind * 4 + 1].strip().split()[1])))) item = self.memoryTable.item(ind, 3) item.setText( str(self.getVal(int(memList[ind * 4 + 2].strip().split()[1])))) item = self.memoryTable.item(ind, 4) item.setText( str(self.getVal(int(memList[ind * 4 + 3].strip().split()[1])))) def runCodeClick(self): self.runCode() self.currentPC = self.maxPC self.displayTypeChange(0) self.tableReColor() def runCode(self): mydir = os.getcwd() mydir_tmp = "../lib/" mydir_new = os.chdir(os.path.join(mydir, mydir_tmp)) exec(open("Main_Controller.py").read()) mydir = os.chdir(mydir) self.PCList = open( '../lib/Phase3/Snapshot/Files/pcs_after_each_cycle.txt', 'r+').readlines() self.maxPC = len(self.PCList) - 1 self.doRegisterUpdate() self.doPipeUpdate() self.doMemoryUpdate() self.allInfo() def init(self): self.knobs(self.cb1, 0) self.knobs(self.cb2, 1) self.knobs(self.cb3, 2) self.knobs(self.cb4, 3)
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(574, 601) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/icons/kaddressbook.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) self.centralWidget = QtGui.QWidget(MainWindow) self.centralWidget.setObjectName("centralWidget") self.horizontalLayout_3 = QtGui.QHBoxLayout(self.centralWidget) self.horizontalLayout_3.setMargin(3) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.tabs = QtGui.QTabWidget(self.centralWidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.tabs.sizePolicy().hasHeightForWidth()) self.tabs.setSizePolicy(sizePolicy) self.tabs.setObjectName("tabs") self.tab = QtGui.QWidget() self.tab.setObjectName("tab") self.horizontalLayout = QtGui.QHBoxLayout(self.tab) self.horizontalLayout.setMargin(0) self.horizontalLayout.setObjectName("horizontalLayout") self.text = CodeEditor(self.tab) font = QtGui.QFont() font.setFamily("DejaVu Sans Mono") self.text.setFont(font) self.text.setFrameShape(QtGui.QFrame.NoFrame) self.text.setFrameShadow(QtGui.QFrame.Plain) self.text.setLineWidth(0) self.text.setObjectName("text") self.horizontalLayout.addWidget(self.text) self.tabs.addTab(self.tab, "") self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName("tab_2") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.tab_2) self.horizontalLayout_2.setMargin(0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.style = CodeEditor(self.tab_2) font = QtGui.QFont() font.setFamily("DejaVu Sans Mono") self.style.setFont(font) self.style.setFrameShape(QtGui.QFrame.NoFrame) self.style.setObjectName("style") self.horizontalLayout_2.addWidget(self.style) self.tabs.addTab(self.tab_2, "") self.horizontalLayout_3.addWidget(self.tabs) MainWindow.setCentralWidget(self.centralWidget) self.statusBar = QtGui.QStatusBar(MainWindow) self.statusBar.setObjectName("statusBar") MainWindow.setStatusBar(self.statusBar) self.menuBar = QtGui.QMenuBar(MainWindow) self.menuBar.setGeometry(QtCore.QRect(0, 0, 574, 32)) self.menuBar.setObjectName("menuBar") self.menuText = QtGui.QMenu(self.menuBar) self.menuText.setObjectName("menuText") self.menuView = QtGui.QMenu(self.menuBar) self.menuView.setObjectName("menuView") self.menuEdit = QtGui.QMenu(self.menuBar) self.menuEdit.setObjectName("menuEdit") self.menuHelp = QtGui.QMenu(self.menuBar) self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menuBar) self.toolBar = QtGui.QToolBar(MainWindow) self.toolBar.setObjectName("toolBar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) self.pdfbar = QtGui.QToolBar(MainWindow) self.pdfbar.setObjectName("pdfbar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.pdfbar) self.dock = QtGui.QDockWidget(MainWindow) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(":/icons/pdf.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.dock.setWindowIcon(icon1) self.dock.setObjectName("dock") self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName("dockWidgetContents") self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName("verticalLayout") self.dockLayout = QtGui.QVBoxLayout() self.dockLayout.setSpacing(0) self.dockLayout.setSizeConstraint(QtGui.QLayout.SetNoConstraint) self.dockLayout.setContentsMargins(-1, -1, -1, 0) self.dockLayout.setObjectName("dockLayout") self.verticalLayout.addLayout(self.dockLayout) self.dock.setWidget(self.dockWidgetContents) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dock) self.editbar = QtGui.QToolBar(MainWindow) self.editbar.setObjectName("editbar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.editbar) self.searchbar = QtGui.QToolBar(MainWindow) self.searchbar.setMovable(False) self.searchbar.setAllowedAreas(QtCore.Qt.BottomToolBarArea) self.searchbar.setFloatable(False) self.searchbar.setObjectName("searchbar") MainWindow.addToolBar(QtCore.Qt.BottomToolBarArea, self.searchbar) self.structure = QtGui.QDockWidget(MainWindow) self.structure.setObjectName("structure") self.dockWidgetContents_2 = QtGui.QWidget() self.dockWidgetContents_2.setObjectName("dockWidgetContents_2") self.verticalLayout_3 = QtGui.QVBoxLayout(self.dockWidgetContents_2) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName("verticalLayout_3") self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.tree = QtGui.QTreeWidget(self.dockWidgetContents_2) self.tree.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.tree.setProperty("showDropIndicator", QtCore.QVariant(False)) self.tree.setAlternatingRowColors(True) self.tree.setHeaderHidden(False) self.tree.setObjectName("tree") self.tree.header().setVisible(True) self.tree.header().setStretchLastSection(False) self.verticalLayout_2.addWidget(self.tree) self.verticalLayout_3.addLayout(self.verticalLayout_2) self.structure.setWidget(self.dockWidgetContents_2) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.structure) self.actionLoad_Text = QtGui.QAction(MainWindow) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(":/icons/fileopen.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionLoad_Text.setIcon(icon2) self.actionLoad_Text.setObjectName("actionLoad_Text") self.actionLoad_Style = QtGui.QAction(MainWindow) self.actionLoad_Style.setIcon(icon2) self.actionLoad_Style.setObjectName("actionLoad_Style") self.actionRender = QtGui.QAction(MainWindow) self.actionRender.setIcon(icon1) self.actionRender.setObjectName("actionRender") self.actionSave_Text = QtGui.QAction(MainWindow) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(":/icons/filesave.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSave_Text.setIcon(icon3) self.actionSave_Text.setObjectName("actionSave_Text") self.actionSave_Style = QtGui.QAction(MainWindow) self.actionSave_Style.setIcon(icon3) self.actionSave_Style.setObjectName("actionSave_Style") self.actionSave_PDF = QtGui.QAction(MainWindow) self.actionSave_PDF.setIcon(icon1) self.actionSave_PDF.setObjectName("actionSave_PDF") self.actionSaveAs_Text = QtGui.QAction(MainWindow) self.actionSaveAs_Text.setIcon(icon3) self.actionSaveAs_Text.setObjectName("actionSaveAs_Text") self.actionSaveAs_Style = QtGui.QAction(MainWindow) self.actionSaveAs_Style.setIcon(icon3) self.actionSaveAs_Style.setObjectName("actionSaveAs_Style") self.actionSaveAs_PDF = QtGui.QAction(MainWindow) self.actionSaveAs_PDF.setIcon(icon1) self.actionSaveAs_PDF.setObjectName("actionSaveAs_PDF") self.actionUndo1 = QtGui.QAction(MainWindow) self.actionUndo1.setEnabled(False) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(":/icons/undo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionUndo1.setIcon(icon4) self.actionUndo1.setObjectName("actionUndo1") self.actionRedo1 = QtGui.QAction(MainWindow) self.actionRedo1.setEnabled(False) icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(":/icons/redo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionRedo1.setIcon(icon5) self.actionRedo1.setObjectName("actionRedo1") self.actionCut1 = QtGui.QAction(MainWindow) self.actionCut1.setEnabled(False) icon6 = QtGui.QIcon() icon6.addPixmap(QtGui.QPixmap(":/icons/editcut.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionCut1.setIcon(icon6) self.actionCut1.setObjectName("actionCut1") self.actionCopy1 = QtGui.QAction(MainWindow) self.actionCopy1.setEnabled(False) icon7 = QtGui.QIcon() icon7.addPixmap(QtGui.QPixmap(":/icons/editcopy.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionCopy1.setIcon(icon7) self.actionCopy1.setObjectName("actionCopy1") self.actionPaste1 = QtGui.QAction(MainWindow) self.actionPaste1.setEnabled(False) icon8 = QtGui.QIcon() icon8.addPixmap(QtGui.QPixmap(":/icons/editpaste.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionPaste1.setIcon(icon8) self.actionPaste1.setObjectName("actionPaste1") self.actionUndo2 = QtGui.QAction(MainWindow) self.actionUndo2.setEnabled(False) self.actionUndo2.setIcon(icon4) self.actionUndo2.setObjectName("actionUndo2") self.actionRedo2 = QtGui.QAction(MainWindow) self.actionRedo2.setEnabled(False) self.actionRedo2.setIcon(icon5) self.actionRedo2.setObjectName("actionRedo2") self.actionCut2 = QtGui.QAction(MainWindow) self.actionCut2.setEnabled(False) self.actionCut2.setIcon(icon6) self.actionCut2.setObjectName("actionCut2") self.actionCopy2 = QtGui.QAction(MainWindow) self.actionCopy2.setEnabled(False) self.actionCopy2.setIcon(icon7) self.actionCopy2.setObjectName("actionCopy2") self.actionPaste2 = QtGui.QAction(MainWindow) self.actionPaste2.setEnabled(False) self.actionPaste2.setIcon(icon8) self.actionPaste2.setObjectName("actionPaste2") self.actionFind = QtGui.QAction(MainWindow) icon9 = QtGui.QIcon() icon9.addPixmap(QtGui.QPixmap(":/icons/find.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionFind.setIcon(icon9) self.actionFind.setObjectName("actionFind") self.actionAbout_Bookrest = QtGui.QAction(MainWindow) self.actionAbout_Bookrest.setObjectName("actionAbout_Bookrest") self.actionTest_Action = QtGui.QAction(MainWindow) self.actionTest_Action.setObjectName("actionTest_Action") self.actionSettings = QtGui.QAction(MainWindow) icon10 = QtGui.QIcon() icon10.addPixmap(QtGui.QPixmap(":/icons/configure.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSettings.setIcon(icon10) self.actionSettings.setObjectName("actionSettings") self.menuText.addAction(self.actionLoad_Text) self.menuText.addAction(self.actionLoad_Style) self.menuText.addSeparator() self.menuText.addAction(self.actionSave_Text) self.menuText.addAction(self.actionSaveAs_Text) self.menuText.addAction(self.actionSave_Style) self.menuText.addAction(self.actionSaveAs_Style) self.menuText.addAction(self.actionSave_PDF) self.menuText.addAction(self.actionSaveAs_PDF) self.menuEdit.addAction(self.actionUndo1) self.menuEdit.addAction(self.actionUndo2) self.menuEdit.addAction(self.actionRedo1) self.menuEdit.addAction(self.actionRedo2) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionCut1) self.menuEdit.addAction(self.actionCut2) self.menuEdit.addAction(self.actionCopy1) self.menuEdit.addAction(self.actionCopy2) self.menuEdit.addAction(self.actionPaste1) self.menuEdit.addAction(self.actionPaste2) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionFind) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionSettings) self.menuHelp.addAction(self.actionAbout_Bookrest) self.menuBar.addAction(self.menuText.menuAction()) self.menuBar.addAction(self.menuEdit.menuAction()) self.menuBar.addAction(self.menuView.menuAction()) self.menuBar.addAction(self.menuHelp.menuAction()) self.toolBar.addAction(self.actionLoad_Text) self.toolBar.addAction(self.actionRender) self.toolBar.addAction(self.actionSettings) self.editbar.addAction(self.actionUndo1) self.editbar.addAction(self.actionUndo2) self.editbar.addAction(self.actionRedo1) self.editbar.addAction(self.actionRedo2) self.editbar.addAction(self.actionCut1) self.editbar.addAction(self.actionCut2) self.editbar.addAction(self.actionCopy1) self.editbar.addAction(self.actionCopy2) self.editbar.addAction(self.actionPaste1) self.editbar.addAction(self.actionPaste2) self.retranslateUi(MainWindow) self.tabs.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.setTabOrder(self.text, self.tabs) MainWindow.setTabOrder(self.tabs, self.style) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QtGui.QApplication.translate("MainWindow", "Bookrest", None, QtGui.QApplication.UnicodeUTF8)) self.tabs.setTabText( self.tabs.indexOf(self.tab), QtGui.QApplication.translate("MainWindow", "Text", None, QtGui.QApplication.UnicodeUTF8)) self.tabs.setTabText( self.tabs.indexOf(self.tab_2), QtGui.QApplication.translate("MainWindow", "StyleSheet", None, QtGui.QApplication.UnicodeUTF8)) self.menuText.setTitle( QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.menuView.setTitle( QtGui.QApplication.translate("MainWindow", "View", None, QtGui.QApplication.UnicodeUTF8)) self.menuEdit.setTitle( QtGui.QApplication.translate("MainWindow", "Edit", None, QtGui.QApplication.UnicodeUTF8)) self.menuHelp.setTitle( QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.toolBar.setWindowTitle( QtGui.QApplication.translate("MainWindow", "toolBar", None, QtGui.QApplication.UnicodeUTF8)) self.pdfbar.setWindowTitle( QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8)) self.dock.setWindowTitle( QtGui.QApplication.translate("MainWindow", "PDF Preview", None, QtGui.QApplication.UnicodeUTF8)) self.editbar.setWindowTitle( QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8)) self.searchbar.setWindowTitle( QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8)) self.structure.setWindowTitle( QtGui.QApplication.translate("MainWindow", "Document Structure", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText( 0, QtGui.QApplication.translate("MainWindow", "Section", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText( 1, QtGui.QApplication.translate("MainWindow", "Line", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Text.setText( QtGui.QApplication.translate("MainWindow", "Open Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Text.setToolTip( QtGui.QApplication.translate("MainWindow", "Open Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Text.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Style.setText( QtGui.QApplication.translate("MainWindow", "Open Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Style.setToolTip( QtGui.QApplication.translate("MainWindow", "Open Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionRender.setText( QtGui.QApplication.translate("MainWindow", "Render", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Text.setText( QtGui.QApplication.translate("MainWindow", "Save Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Text.setToolTip( QtGui.QApplication.translate("MainWindow", "Save Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Text.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+S", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Style.setText( QtGui.QApplication.translate("MainWindow", "Save Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Style.setToolTip( QtGui.QApplication.translate("MainWindow", "Save Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_PDF.setText( QtGui.QApplication.translate("MainWindow", "Save PDF", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_PDF.setToolTip( QtGui.QApplication.translate("MainWindow", "Save PDF", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Text.setText( QtGui.QApplication.translate("MainWindow", "Save Text As", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Text.setToolTip( QtGui.QApplication.translate("MainWindow", "Save Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Style.setText( QtGui.QApplication.translate("MainWindow", "Save Style As", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Style.setToolTip( QtGui.QApplication.translate("MainWindow", "Save Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_PDF.setText( QtGui.QApplication.translate("MainWindow", "Save PDF As", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_PDF.setToolTip( QtGui.QApplication.translate("MainWindow", "Save PDF", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo1.setText( QtGui.QApplication.translate("MainWindow", "Undo", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo1.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo1.setText( QtGui.QApplication.translate("MainWindow", "Redo", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo1.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+Shift+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut1.setText( QtGui.QApplication.translate("MainWindow", "Cut", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut1.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+X", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy1.setText( QtGui.QApplication.translate("MainWindow", "Copy", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy1.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste1.setText( QtGui.QApplication.translate("MainWindow", "Paste", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste1.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+V", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo2.setText( QtGui.QApplication.translate("MainWindow", "Undo", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo2.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo2.setText( QtGui.QApplication.translate("MainWindow", "Redo", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo2.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+Shift+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut2.setText( QtGui.QApplication.translate("MainWindow", "Cut", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut2.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+X", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy2.setText( QtGui.QApplication.translate("MainWindow", "Copy", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy2.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste2.setText( QtGui.QApplication.translate("MainWindow", "Paste", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste2.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+V", None, QtGui.QApplication.UnicodeUTF8)) self.actionFind.setText( QtGui.QApplication.translate("MainWindow", "Find", None, QtGui.QApplication.UnicodeUTF8)) self.actionFind.setShortcut( QtGui.QApplication.translate("MainWindow", "Ctrl+F", None, QtGui.QApplication.UnicodeUTF8)) self.actionAbout_Bookrest.setText( QtGui.QApplication.translate("MainWindow", "About Bookrest", None, QtGui.QApplication.UnicodeUTF8)) self.actionTest_Action.setText( QtGui.QApplication.translate("MainWindow", "Test Action", None, QtGui.QApplication.UnicodeUTF8)) self.actionSettings.setText( QtGui.QApplication.translate("MainWindow", "Settings", None, QtGui.QApplication.UnicodeUTF8))
class GeneralWidget(QWidget): def __init__(self, parent=None): super(QWidget, self).__init__(parent) self.model = Model() self.type = 'simple' self.prev = '' self.window = None self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") self.gridLayout_4 = QtWidgets.QGridLayout(self.tab) self.gridLayout_4.setObjectName("gridLayout_4") self.widget = QtWidgets.QWidget(self.tab) self.widget.setObjectName("widget") self.gridLayout_3 = QtWidgets.QGridLayout(self.widget) self.gridLayout_3.setContentsMargins(-1, 0, -1, -1) self.gridLayout_3.setObjectName("gridLayout_3") self.splitter = QtWidgets.QSplitter(self.widget) self.splitter.setOrientation(QtCore.Qt.Vertical) self.splitter.setObjectName("splitter") self.frame = QtWidgets.QFrame(self.splitter) self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) self.frame.setFrameShadow(QtWidgets.QFrame.Raised) self.frame.setObjectName("frame") self.gridLayout = QtWidgets.QGridLayout(self.frame) self.gridLayout.setContentsMargins(0, 0, 0, 3) self.gridLayout.setObjectName("gridLayout") self.verticalLayout_3 = QtWidgets.QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") self.verticalLayout_2 = QtWidgets.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.verticalLayout = QtWidgets.QVBoxLayout() self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setContentsMargins(-1, -1, -1, 4) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QtWidgets.QLabel(self.frame) font = QtGui.QFont() font.setFamily("MS Shell Dlg 2") font.setPointSize(10) font.setBold(False) font.setItalic(False) font.setWeight(50) self.label.setFont(font) self.label.setStyleSheet( "font: 10pt \"MS Shell Dlg 2\";color: rgb(255, 255, 255);") self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.lineEdit = DragLineEdit(self.frame) self.lineEdit.setObjectName("lineEdit") self.horizontalLayout.addWidget(self.lineEdit) self.pushButton = QtWidgets.QPushButton(self.frame) self.pushButton.setStyleSheet("font: 10pt \"MS Shell Dlg 2\";") self.pushButton.setObjectName("pushButton") self.horizontalLayout.addWidget(self.pushButton) self.pushButton_5 = QtWidgets.QPushButton(self.frame) self.pushButton_5.setStyleSheet("font: 10pt \"MS Shell Dlg 2\";") self.pushButton_5.setObjectName("pushButton_5") self.horizontalLayout.addWidget(self.pushButton_5) self.verticalLayout.addLayout(self.horizontalLayout) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label_2 = QtWidgets.QLabel(self.frame) font = QtGui.QFont() font.setBold(False) font.setWeight(50) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.horizontalLayout_3.addWidget(self.label_2) spacerItem = QtWidgets.QSpacerItem(188, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem) self.label_3 = QtWidgets.QLabel(self.frame) font = QtGui.QFont() font.setBold(False) font.setWeight(50) self.label_3.setFont(font) self.label_3.setObjectName("label_3") self.horizontalLayout_3.addWidget(self.label_3) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem1) self.verticalLayout.addLayout(self.horizontalLayout_3) self.verticalLayout_2.addLayout(self.verticalLayout) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.plainTextEdit = CodeEditor(self.frame) self.plainTextEdit.setStyleSheet("font: 10pt \"Courier New\";") self.plainTextEdit.setObjectName("plainTextEdit") self.horizontalLayout_4.addWidget(self.plainTextEdit) self.plainTextEdit_2 = CodeEditor(self.frame) self.plainTextEdit_2.setStyleSheet("font: 10pt \"Courier New\";") self.plainTextEdit_2.setObjectName("plainTextEdit_2") self.horizontalLayout_4.addWidget(self.plainTextEdit_2) self.verticalLayout_2.addLayout(self.horizontalLayout_4) self.verticalLayout_3.addLayout(self.verticalLayout_2) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_4 = QtWidgets.QLabel(self.frame) self.label_4.setObjectName("label_4") self.horizontalLayout_2.addWidget(self.label_4) spacerItem2 = QtWidgets.QSpacerItem(173, 22, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem2) self.pushButton_3 = QtWidgets.QPushButton(self.frame) self.pushButton_3.setStyleSheet("font: 10pt \"MS Shell Dlg 2\";") self.pushButton_3.setObjectName("pushButton_3") self.horizontalLayout_2.addWidget(self.pushButton_3) self.pushButton_4 = QtWidgets.QPushButton(self.frame) self.pushButton_4.setStyleSheet("font: 10pt \"MS Shell Dlg 2\";") self.pushButton_4.setObjectName("pushButton_4") self.horizontalLayout_2.addWidget(self.pushButton_4) self.pushButton_2 = QtWidgets.QPushButton(self.frame) self.pushButton_2.setStyleSheet("font: 10pt \"MS Shell Dlg 2\";") self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout_2.addWidget(self.pushButton_2) self.verticalLayout_3.addLayout(self.horizontalLayout_2) self.gridLayout.addLayout(self.verticalLayout_3, 0, 0, 1, 1) self.plainTextEdit_3 = CodeEditor(self.splitter) self.splitter.setSizes([300, 100]) self.plainTextEdit_3.setStyleSheet("font: 10pt \"MS Shell Dlg 2\";") self.plainTextEdit_3.setObjectName("plainTextEdit_3") self.gridLayout_3.addWidget(self.splitter, 0, 0, 1, 1) self.gridLayout_4.addWidget(self.widget, 0, 0, 1, 1) self.plainTextEdit.setAcceptDrops(False) self.plainTextEdit_3.setAcceptDrops(False) self.preview_thread = PreviewThread() self.preview_thread.signal.connect(self.loadPreview) self.label.setText("File Name : ") self.label_2.setText("Tikz : ") self.label_3.setText("GraphML : ") self.label_4.setText("Debug Logs : ") self.label_2.setStyleSheet( "font: 10pt \"MS Shell Dlg 2\";color: rgb(255, 255, 255);") self.label_3.setStyleSheet( "font: 10pt \"MS Shell Dlg 2\";color: rgb(255, 255, 255);") self.label_4.setStyleSheet( "font: 10pt \"MS Shell Dlg 2\";color: rgb(255, 255, 255);") self.pushButton.setText("Browse") self.pushButton_3.setText("Simple-Tikz") self.pushButton_2.setText("Save") self.pushButton_4.setText("Refresh") self.pushButton_5.setIcon(QtGui.QIcon('../Images/refresh.png')) self.pushButton.clicked.connect(self.browseSlot) self.lineEdit.returnPressed.connect(self.returnedPressedSlot) self.pushButton_3.clicked.connect(self.convertSlot) self.pushButton_4.clicked.connect(self.reloadSlot) self.pushButton_2.clicked.connect(self.saveSlot) #self.lineEdit.textChanged.connect(self.draganddrop) self.pushButton_5.clicked.connect(self.refreshSlot) self.setLayout(self.gridLayout_4) def debugPrint(self, msg): '''Print the message in the text edit at the bottom of the horizontal splitter. ''' if self.prev != msg: self.prev = msg self.plainTextEdit_3.appendPlainText(str(msg)) @pyqtSlot() def returnedPressedSlot(self): ''' Called when the user enters a string in the line edit and presses the ENTER key. ''' fileName = self.lineEdit.text() extension = os.path.splitext(fileName)[1] self.debugPrint("Converting file : " + fileName) if self.model.isValid(fileName) and extension == '.graphml': self.model.setFileName(self.lineEdit.text()) if self.type == 'simple': self.refreshAll() elif self.type == 'advance': self.refreshAllSimple() else: m = QtWidgets.QMessageBox() m.setText("File not supported or invalid path!\n" + fileName) m.setIcon(QtWidgets.QMessageBox.Warning) m.setStandardButtons(QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.Cancel) m.setDefaultButton(QtWidgets.QMessageBox.Cancel) m.exec_() self.lineEdit.setText("") self.plainTextEdit.setPlainText("") self.plainTextEdit_2.setPlainText("") self.debugPrint("Invalid file specified: " + fileName) @pyqtSlot() def convertSlot(self): ''' Called when the user presses the convert button. ''' if self.model.getFileName(): if self.type == 'simple': self.refreshAllSimple() _translate = QtCore.QCoreApplication.translate self.pushButton_3.setText(_translate("MainWindow", "Adv-Tikz")) self.type = 'advance' self.debugPrint("Simple mode chosen.Output modified.") elif self.type == 'advance': self.refreshAll() _translate = QtCore.QCoreApplication.translate self.pushButton_3.setText( _translate("MainWindow", "Simple Tikz")) self.debugPrint("Advanced mode chosen.Output modified.") self.type = 'simple' else: self.debugPrint("No file specified.") @pyqtSlot() def browseSlot(self): ''' Called when the user presses the Browse button ''' options = QtWidgets.QFileDialog.Options() options |= QtWidgets.QFileDialog.DontUseNativeDialog fileName, _ = QtWidgets.QFileDialog.getOpenFileName( None, "Select GraphMl Files", "", filter="*.graphml", options=options) if fileName: self.debugPrint("Converting file : " + fileName) self.model.setFileName(fileName) try: self.window.close() except: pass self.refreshAll() @pyqtSlot() def saveSlot(self): ''' Called when the user presses the Save button ''' if self.model.getFileName(): options = QtWidgets.QFileDialog.Options() options |= QtWidgets.QFileDialog.DontUseNativeDialog fileName, _ = QtWidgets.QFileDialog.getSaveFileName( None, "QFileDialog.getSaveFileName()", "", ".tex", options=options) if fileName: content = self.plainTextEdit.toPlainText() with open(fileName + '.tex', 'w') as out: out.write(content) self.debugPrint("File " + fileName + '.tex saved.') else: self.debugPrint("No file specified to save.") @pyqtSlot() def reloadSlot(self): ''' Called when the user presses the Refresh button. ''' self.debugPrint('Refreshing preview....') if self.plainTextEdit.toPlainText() != '': fileName = self.model.getFileName() flin = os.path.splitext(fileName)[0] fileName = self.model.getFileName() flin = os.path.splitext(fileName)[0] fileout = flin + '.tex' tout = open(fileout, 'w') tout.write( '\\documentclass[11pt]{article}\n\\usepackage{tikz}\n\\thispagestyle{empty}\n\\usetikzlibrary{arrows,shapes}\n\\begin{document}\n' ) tout.write(self.plainTextEdit.toPlainText()) tout.write('\\end{document}') tout.close() self.preview(flin) @pyqtSlot() def refreshSlot(self): ''' Called when the user presses the Reload symbol. ''' self.debugPrint('Reloaded file.') self.returnedPressedSlot() @pyqtSlot() def draganddrop(self): ''' Called when the user drags and drops file on the line edit. ''' if self.lineEdit.text() != '': try: self.window.close() except: pass self.returnedPressedSlot() def loadPreview(self, flag): ''' This function loads the preview in a different window. ''' self.preview_thread.stop() fileName = self.model.getFileName() flin = os.path.splitext(fileName)[0] _, tail = os.path.split(flin) if flag: cwd = os.getcwd() img_path = cwd + '\\' + tail + '.jpg' img = QImage(img_path) self.window = PreviewWindow(cwd + '\\' + tail) pixmap = QPixmap(img_path) self.window.setPicSize(img.width(), img.height()) self.window.label.setPixmap( pixmap.scaled(self.window.label.size(), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)) icon = QIcon() icon.addFile('../Images/python.png', QSize(256, 256)) self.window.setWindowIcon(icon) self.window.show() self.debugPrint("Preview loaded.") try: os.remove(flin + '.tex') os.remove(tail + '.log') os.remove(tail + '.aux') os.remove(tail + '.pdf') os.remove(tail + '-crop.pdf') except: pass else: try: self.window.close() os.remove(flin + '.tex') os.remove(tail + '.log') os.remove(tail + '.aux') os.remove(tail + '.pdf') os.remove(tail + '-crop.pdf') except: pass self.debugPrint("Preview failed due to latex compilation error.") def refreshAllSimple(self): ''' Updates the widgets whenever an interaction happens. Typically some interaction takes place, the UI responds, and informs the model of the change. Then this method is called, pulling from the model information that is updated in the GUI. ''' self.lineEdit.setText(self.model.getFileName()) flag, exception, contents = self.model.convertSlot() if flag == True: self.debugPrint(exception + ' in ' + str(self.model.getFileName())) self.debugPrint('Conversion for file : ' + str(self.model.getFileName()) + ' failed.') self.plainTextEdit.setPlainText('') self.plainTextEdit_2.setPlainText('') else: fileName = self.model.getFileName() flin = os.path.splitext(fileName)[0] fileout = flin + '.tex' tout = open(fileout, 'w') tout.write( '\\documentclass[11pt]{article}\n\\usepackage{tikz}\n\\thispagestyle{empty}\n\\usetikzlibrary{arrows,shapes}\n\\begin{document}\n' ) tout.write(contents) tout.write('\\end{document}') tout.close() self.plainTextEdit.setPlainText(contents) self.plainTextEdit_2.setPlainText(self.model.getGraphML()) self.debugPrint('Conversion for file : ' + str(self.model.getFileName()) + ' successful.') self.debugPrint('Loading Preview....') self.preview(flin) def refreshAll(self): ''' Updates the widgets for simple mode. ''' self.lineEdit.setText(self.model.getFileName()) flag, exception, contents = self.model.getFileContents() if flag == True: self.debugPrint(exception + ' in ' + str(self.model.getFileName())) self.debugPrint('Conversion for file : ' + str(self.model.getFileName()) + ' failed.') self.plainTextEdit.setPlainText('') self.plainTextEdit_2.setPlainText('') else: fileName = self.model.getFileName() flin = os.path.splitext(fileName)[0] fileout = flin + '.tex' tout = open(fileout, 'w') tout.write( '\\documentclass[11pt]{article}\n\\usepackage{tikz}\n\\thispagestyle{empty}\n\\usetikzlibrary{arrows,shapes}\n\\begin{document}\n' ) tout.write(contents) tout.write('\\end{document}') tout.close() self.plainTextEdit.setPlainText(contents) self.plainTextEdit_2.setPlainText(self.model.getGraphML()) self.debugPrint('Conversion for file : ' + str(self.model.getFileName()) + ' successful.') self.debugPrint('Loading Preview....') self.preview(flin) def preview(self, flin): ''' This function is called before previewing which initialises threads. ''' self.preview_thread.set_file(flin) self.preview_thread.start()
class Ui_MainWindow(object): def setupUi(self, MainWindow): if MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(1345, 1429) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.gridLayout = QGridLayout(self.centralwidget) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setVerticalSpacing(6) self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(10) self.verticalLayout.setObjectName(u"verticalLayout") self.tabs = QTabWidget(self.centralwidget) self.tabs.setObjectName(u"tabs") font = QFont() font.setPointSize(10) self.tabs.setFont(font) self.tabs.setTabShape(QTabWidget.Rounded) self.tabs.setIconSize(QSize(16, 16)) self.tabs.setElideMode(Qt.ElideNone) self.editor_tab = QWidget() self.editor_tab.setObjectName(u"editor_tab") self.gridLayout_2 = QGridLayout(self.editor_tab) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout_2.setContentsMargins(0, 6, 0, 0) self.code_editor = CodeEditor(self.editor_tab) self.code_editor.setObjectName(u"code_editor") self.gridLayout_2.addWidget(self.code_editor, 1, 0, 1, 1) self.tabs.addTab(self.editor_tab, "") self.render_tab = QWidget() self.render_tab.setObjectName(u"render_tab") self.gridLayout_3 = QGridLayout(self.render_tab) self.gridLayout_3.setObjectName(u"gridLayout_3") self.gridLayout_3.setContentsMargins(0, 6, 0, 0) self.render_view = CodeEditor(self.render_tab) self.render_view.setObjectName(u"render_view") self.render_view.setReadOnly(True) self.gridLayout_3.addWidget(self.render_view, 0, 0, 1, 1) self.tabs.addTab(self.render_tab, "") self.verticalLayout.addWidget(self.tabs) self.compile = QPushButton(self.centralwidget) self.compile.setObjectName(u"compile") font1 = QFont() font1.setPointSize(14) self.compile.setFont(font1) self.verticalLayout.addWidget(self.compile) self.console_output = QPlainTextEdit(self.centralwidget) self.console_output.setObjectName(u"console_output") self.verticalLayout.addWidget(self.console_output) self.verticalLayout.setStretch(0, 4) self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) self.tabs.setCurrentIndex(0) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QCoreApplication.translate("MainWindow", u"MainWindow", None)) self.tabs.setTabText( self.tabs.indexOf(self.editor_tab), QCoreApplication.translate("MainWindow", u" Code Editor ", None)) self.tabs.setTabText( self.tabs.indexOf(self.render_tab), QCoreApplication.translate("MainWindow", u" View Generated Code ", None)) self.compile.setText( QCoreApplication.translate("MainWindow", u"COMPILE", None))
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(574, 601) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/icons/kaddressbook.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) self.centralWidget = QtGui.QWidget(MainWindow) self.centralWidget.setObjectName("centralWidget") self.horizontalLayout_3 = QtGui.QHBoxLayout(self.centralWidget) self.horizontalLayout_3.setMargin(3) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.tabs = QtGui.QTabWidget(self.centralWidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.tabs.sizePolicy().hasHeightForWidth()) self.tabs.setSizePolicy(sizePolicy) self.tabs.setObjectName("tabs") self.tab = QtGui.QWidget() self.tab.setObjectName("tab") self.horizontalLayout = QtGui.QHBoxLayout(self.tab) self.horizontalLayout.setMargin(0) self.horizontalLayout.setObjectName("horizontalLayout") self.text = CodeEditor(self.tab) font = QtGui.QFont() font.setFamily("DejaVu Sans Mono") self.text.setFont(font) self.text.setFrameShape(QtGui.QFrame.NoFrame) self.text.setFrameShadow(QtGui.QFrame.Plain) self.text.setLineWidth(0) self.text.setObjectName("text") self.horizontalLayout.addWidget(self.text) self.tabs.addTab(self.tab, "") self.tab_2 = QtGui.QWidget() self.tab_2.setObjectName("tab_2") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.tab_2) self.horizontalLayout_2.setMargin(0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.style = CodeEditor(self.tab_2) font = QtGui.QFont() font.setFamily("DejaVu Sans Mono") self.style.setFont(font) self.style.setFrameShape(QtGui.QFrame.NoFrame) self.style.setObjectName("style") self.horizontalLayout_2.addWidget(self.style) self.tabs.addTab(self.tab_2, "") self.horizontalLayout_3.addWidget(self.tabs) MainWindow.setCentralWidget(self.centralWidget) self.statusBar = QtGui.QStatusBar(MainWindow) self.statusBar.setObjectName("statusBar") MainWindow.setStatusBar(self.statusBar) self.menuBar = QtGui.QMenuBar(MainWindow) self.menuBar.setGeometry(QtCore.QRect(0, 0, 574, 32)) self.menuBar.setObjectName("menuBar") self.menuText = QtGui.QMenu(self.menuBar) self.menuText.setObjectName("menuText") self.menuView = QtGui.QMenu(self.menuBar) self.menuView.setObjectName("menuView") self.menuEdit = QtGui.QMenu(self.menuBar) self.menuEdit.setObjectName("menuEdit") self.menuHelp = QtGui.QMenu(self.menuBar) self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menuBar) self.toolBar = QtGui.QToolBar(MainWindow) self.toolBar.setObjectName("toolBar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) self.pdfbar = QtGui.QToolBar(MainWindow) self.pdfbar.setObjectName("pdfbar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.pdfbar) self.dock = QtGui.QDockWidget(MainWindow) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(":/icons/pdf.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.dock.setWindowIcon(icon1) self.dock.setObjectName("dock") self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName("dockWidgetContents") self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName("verticalLayout") self.dockLayout = QtGui.QVBoxLayout() self.dockLayout.setSpacing(0) self.dockLayout.setSizeConstraint(QtGui.QLayout.SetNoConstraint) self.dockLayout.setContentsMargins(-1, -1, -1, 0) self.dockLayout.setObjectName("dockLayout") self.verticalLayout.addLayout(self.dockLayout) self.dock.setWidget(self.dockWidgetContents) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.dock) self.editbar = QtGui.QToolBar(MainWindow) self.editbar.setObjectName("editbar") MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.editbar) self.searchbar = QtGui.QToolBar(MainWindow) self.searchbar.setMovable(False) self.searchbar.setAllowedAreas(QtCore.Qt.BottomToolBarArea) self.searchbar.setFloatable(False) self.searchbar.setObjectName("searchbar") MainWindow.addToolBar(QtCore.Qt.BottomToolBarArea, self.searchbar) self.structure = QtGui.QDockWidget(MainWindow) self.structure.setObjectName("structure") self.dockWidgetContents_2 = QtGui.QWidget() self.dockWidgetContents_2.setObjectName("dockWidgetContents_2") self.verticalLayout_3 = QtGui.QVBoxLayout(self.dockWidgetContents_2) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName("verticalLayout_3") self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.tree = QtGui.QTreeWidget(self.dockWidgetContents_2) self.tree.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.tree.setProperty("showDropIndicator", QtCore.QVariant(False)) self.tree.setAlternatingRowColors(True) self.tree.setHeaderHidden(False) self.tree.setObjectName("tree") self.tree.header().setVisible(True) self.tree.header().setStretchLastSection(False) self.verticalLayout_2.addWidget(self.tree) self.verticalLayout_3.addLayout(self.verticalLayout_2) self.structure.setWidget(self.dockWidgetContents_2) MainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.structure) self.actionLoad_Text = QtGui.QAction(MainWindow) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(":/icons/fileopen.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionLoad_Text.setIcon(icon2) self.actionLoad_Text.setObjectName("actionLoad_Text") self.actionLoad_Style = QtGui.QAction(MainWindow) self.actionLoad_Style.setIcon(icon2) self.actionLoad_Style.setObjectName("actionLoad_Style") self.actionRender = QtGui.QAction(MainWindow) self.actionRender.setIcon(icon1) self.actionRender.setObjectName("actionRender") self.actionSave_Text = QtGui.QAction(MainWindow) icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(":/icons/filesave.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSave_Text.setIcon(icon3) self.actionSave_Text.setObjectName("actionSave_Text") self.actionSave_Style = QtGui.QAction(MainWindow) self.actionSave_Style.setIcon(icon3) self.actionSave_Style.setObjectName("actionSave_Style") self.actionSave_PDF = QtGui.QAction(MainWindow) self.actionSave_PDF.setIcon(icon1) self.actionSave_PDF.setObjectName("actionSave_PDF") self.actionSaveAs_Text = QtGui.QAction(MainWindow) self.actionSaveAs_Text.setIcon(icon3) self.actionSaveAs_Text.setObjectName("actionSaveAs_Text") self.actionSaveAs_Style = QtGui.QAction(MainWindow) self.actionSaveAs_Style.setIcon(icon3) self.actionSaveAs_Style.setObjectName("actionSaveAs_Style") self.actionSaveAs_PDF = QtGui.QAction(MainWindow) self.actionSaveAs_PDF.setIcon(icon1) self.actionSaveAs_PDF.setObjectName("actionSaveAs_PDF") self.actionUndo1 = QtGui.QAction(MainWindow) self.actionUndo1.setEnabled(False) icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(":/icons/undo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionUndo1.setIcon(icon4) self.actionUndo1.setObjectName("actionUndo1") self.actionRedo1 = QtGui.QAction(MainWindow) self.actionRedo1.setEnabled(False) icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(":/icons/redo.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionRedo1.setIcon(icon5) self.actionRedo1.setObjectName("actionRedo1") self.actionCut1 = QtGui.QAction(MainWindow) self.actionCut1.setEnabled(False) icon6 = QtGui.QIcon() icon6.addPixmap(QtGui.QPixmap(":/icons/editcut.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionCut1.setIcon(icon6) self.actionCut1.setObjectName("actionCut1") self.actionCopy1 = QtGui.QAction(MainWindow) self.actionCopy1.setEnabled(False) icon7 = QtGui.QIcon() icon7.addPixmap(QtGui.QPixmap(":/icons/editcopy.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionCopy1.setIcon(icon7) self.actionCopy1.setObjectName("actionCopy1") self.actionPaste1 = QtGui.QAction(MainWindow) self.actionPaste1.setEnabled(False) icon8 = QtGui.QIcon() icon8.addPixmap(QtGui.QPixmap(":/icons/editpaste.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionPaste1.setIcon(icon8) self.actionPaste1.setObjectName("actionPaste1") self.actionUndo2 = QtGui.QAction(MainWindow) self.actionUndo2.setEnabled(False) self.actionUndo2.setIcon(icon4) self.actionUndo2.setObjectName("actionUndo2") self.actionRedo2 = QtGui.QAction(MainWindow) self.actionRedo2.setEnabled(False) self.actionRedo2.setIcon(icon5) self.actionRedo2.setObjectName("actionRedo2") self.actionCut2 = QtGui.QAction(MainWindow) self.actionCut2.setEnabled(False) self.actionCut2.setIcon(icon6) self.actionCut2.setObjectName("actionCut2") self.actionCopy2 = QtGui.QAction(MainWindow) self.actionCopy2.setEnabled(False) self.actionCopy2.setIcon(icon7) self.actionCopy2.setObjectName("actionCopy2") self.actionPaste2 = QtGui.QAction(MainWindow) self.actionPaste2.setEnabled(False) self.actionPaste2.setIcon(icon8) self.actionPaste2.setObjectName("actionPaste2") self.actionFind = QtGui.QAction(MainWindow) icon9 = QtGui.QIcon() icon9.addPixmap(QtGui.QPixmap(":/icons/find.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionFind.setIcon(icon9) self.actionFind.setObjectName("actionFind") self.actionAbout_Bookrest = QtGui.QAction(MainWindow) self.actionAbout_Bookrest.setObjectName("actionAbout_Bookrest") self.actionTest_Action = QtGui.QAction(MainWindow) self.actionTest_Action.setObjectName("actionTest_Action") self.actionSettings = QtGui.QAction(MainWindow) icon10 = QtGui.QIcon() icon10.addPixmap(QtGui.QPixmap(":/icons/configure.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.actionSettings.setIcon(icon10) self.actionSettings.setObjectName("actionSettings") self.menuText.addAction(self.actionLoad_Text) self.menuText.addAction(self.actionLoad_Style) self.menuText.addSeparator() self.menuText.addAction(self.actionSave_Text) self.menuText.addAction(self.actionSaveAs_Text) self.menuText.addAction(self.actionSave_Style) self.menuText.addAction(self.actionSaveAs_Style) self.menuText.addAction(self.actionSave_PDF) self.menuText.addAction(self.actionSaveAs_PDF) self.menuEdit.addAction(self.actionUndo1) self.menuEdit.addAction(self.actionUndo2) self.menuEdit.addAction(self.actionRedo1) self.menuEdit.addAction(self.actionRedo2) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionCut1) self.menuEdit.addAction(self.actionCut2) self.menuEdit.addAction(self.actionCopy1) self.menuEdit.addAction(self.actionCopy2) self.menuEdit.addAction(self.actionPaste1) self.menuEdit.addAction(self.actionPaste2) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionFind) self.menuEdit.addSeparator() self.menuEdit.addAction(self.actionSettings) self.menuHelp.addAction(self.actionAbout_Bookrest) self.menuBar.addAction(self.menuText.menuAction()) self.menuBar.addAction(self.menuEdit.menuAction()) self.menuBar.addAction(self.menuView.menuAction()) self.menuBar.addAction(self.menuHelp.menuAction()) self.toolBar.addAction(self.actionLoad_Text) self.toolBar.addAction(self.actionRender) self.toolBar.addAction(self.actionSettings) self.editbar.addAction(self.actionUndo1) self.editbar.addAction(self.actionUndo2) self.editbar.addAction(self.actionRedo1) self.editbar.addAction(self.actionRedo2) self.editbar.addAction(self.actionCut1) self.editbar.addAction(self.actionCut2) self.editbar.addAction(self.actionCopy1) self.editbar.addAction(self.actionCopy2) self.editbar.addAction(self.actionPaste1) self.editbar.addAction(self.actionPaste2) self.retranslateUi(MainWindow) self.tabs.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) MainWindow.setTabOrder(self.text, self.tabs) MainWindow.setTabOrder(self.tabs, self.style) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Bookrest", None, QtGui.QApplication.UnicodeUTF8)) self.tabs.setTabText(self.tabs.indexOf(self.tab), QtGui.QApplication.translate("MainWindow", "Text", None, QtGui.QApplication.UnicodeUTF8)) self.tabs.setTabText(self.tabs.indexOf(self.tab_2), QtGui.QApplication.translate("MainWindow", "StyleSheet", None, QtGui.QApplication.UnicodeUTF8)) self.menuText.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.menuView.setTitle(QtGui.QApplication.translate("MainWindow", "View", None, QtGui.QApplication.UnicodeUTF8)) self.menuEdit.setTitle(QtGui.QApplication.translate("MainWindow", "Edit", None, QtGui.QApplication.UnicodeUTF8)) self.menuHelp.setTitle(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.toolBar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar", None, QtGui.QApplication.UnicodeUTF8)) self.pdfbar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8)) self.dock.setWindowTitle(QtGui.QApplication.translate("MainWindow", "PDF Preview", None, QtGui.QApplication.UnicodeUTF8)) self.editbar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8)) self.searchbar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8)) self.structure.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Document Structure", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText(0, QtGui.QApplication.translate("MainWindow", "Section", None, QtGui.QApplication.UnicodeUTF8)) self.tree.headerItem().setText(1, QtGui.QApplication.translate("MainWindow", "Line", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Text.setText(QtGui.QApplication.translate("MainWindow", "Open Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Text.setToolTip(QtGui.QApplication.translate("MainWindow", "Open Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Text.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Style.setText(QtGui.QApplication.translate("MainWindow", "Open Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionLoad_Style.setToolTip(QtGui.QApplication.translate("MainWindow", "Open Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionRender.setText(QtGui.QApplication.translate("MainWindow", "Render", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Text.setText(QtGui.QApplication.translate("MainWindow", "Save Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Text.setToolTip(QtGui.QApplication.translate("MainWindow", "Save Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Text.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+S", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Style.setText(QtGui.QApplication.translate("MainWindow", "Save Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Style.setToolTip(QtGui.QApplication.translate("MainWindow", "Save Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_PDF.setText(QtGui.QApplication.translate("MainWindow", "Save PDF", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_PDF.setToolTip(QtGui.QApplication.translate("MainWindow", "Save PDF", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Text.setText(QtGui.QApplication.translate("MainWindow", "Save Text As", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Text.setToolTip(QtGui.QApplication.translate("MainWindow", "Save Text", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Style.setText(QtGui.QApplication.translate("MainWindow", "Save Style As", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_Style.setToolTip(QtGui.QApplication.translate("MainWindow", "Save Style", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_PDF.setText(QtGui.QApplication.translate("MainWindow", "Save PDF As", None, QtGui.QApplication.UnicodeUTF8)) self.actionSaveAs_PDF.setToolTip(QtGui.QApplication.translate("MainWindow", "Save PDF", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo1.setText(QtGui.QApplication.translate("MainWindow", "Undo", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo1.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo1.setText(QtGui.QApplication.translate("MainWindow", "Redo", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo1.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+Shift+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut1.setText(QtGui.QApplication.translate("MainWindow", "Cut", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut1.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+X", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy1.setText(QtGui.QApplication.translate("MainWindow", "Copy", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy1.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste1.setText(QtGui.QApplication.translate("MainWindow", "Paste", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste1.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+V", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo2.setText(QtGui.QApplication.translate("MainWindow", "Undo", None, QtGui.QApplication.UnicodeUTF8)) self.actionUndo2.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo2.setText(QtGui.QApplication.translate("MainWindow", "Redo", None, QtGui.QApplication.UnicodeUTF8)) self.actionRedo2.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+Shift+Z", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut2.setText(QtGui.QApplication.translate("MainWindow", "Cut", None, QtGui.QApplication.UnicodeUTF8)) self.actionCut2.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+X", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy2.setText(QtGui.QApplication.translate("MainWindow", "Copy", None, QtGui.QApplication.UnicodeUTF8)) self.actionCopy2.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste2.setText(QtGui.QApplication.translate("MainWindow", "Paste", None, QtGui.QApplication.UnicodeUTF8)) self.actionPaste2.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+V", None, QtGui.QApplication.UnicodeUTF8)) self.actionFind.setText(QtGui.QApplication.translate("MainWindow", "Find", None, QtGui.QApplication.UnicodeUTF8)) self.actionFind.setShortcut(QtGui.QApplication.translate("MainWindow", "Ctrl+F", None, QtGui.QApplication.UnicodeUTF8)) self.actionAbout_Bookrest.setText(QtGui.QApplication.translate("MainWindow", "About Bookrest", None, QtGui.QApplication.UnicodeUTF8)) self.actionTest_Action.setText(QtGui.QApplication.translate("MainWindow", "Test Action", None, QtGui.QApplication.UnicodeUTF8)) self.actionSettings.setText(QtGui.QApplication.translate("MainWindow", "Settings", None, QtGui.QApplication.UnicodeUTF8))