Exemple #1
0
    def open(self):
        dialog = QFileDialog(self)
        dialog.setViewMode(QFileDialog.List)
        dialog.setDirectory(os.getcwd())

        filename = dialog.getOpenFileName(self, "Save")
        
        if filename[0]:
            filePath = filename[0]
            
            try:
                with open(filePath, 'r') as f:
                    text = f.read()
                
                editor = CodeEditor(self)
                editor.setText(text) 
                editor.filename = filePath
                
                self.notebook.newTab(editor)
                x = self.notebook.count()   # number of tabs
                index = x - 1
                self.notebook.setCurrentIndex(index)
                
                tabName = os.path.basename(editor.filename)    
                self.notebook.setTabText(x, tabName)
                self.textPad = editor    
            
            except Exception as e:
                self.statusBar.showMessage(str(e), 3000)
Exemple #2
0
 def test_backspace_RemoveIndent_on_LineBegin(self):
     editor = CodeEditor()
     editor.setPlainText("    if x == 1:")
     editor.moveCursor(QTextCursor.StartOfLine)
     editor.moveCursor(QTextCursor.Right)
     editor.moveCursor(QTextCursor.Right)
     editor.moveCursor(QTextCursor.Right)
     editor.moveCursor(QTextCursor.Right)
     QTest.keyClick(editor, Qt.Key_Backspace)
     self.assertEqual(editor.toPlainText(), "if x == 1:")
Exemple #3
0
 def new(self):
     editor = CodeEditor(parent=self)
     editor.filename = None
     
     self.notebook.newTab(editor)
     
     x = self.notebook.count()
     index = x - 1
     
     self.notebook.setCurrentIndex(index)
     self.textPad = editor
     self.notebook.textPad = editor
     self.mainWindow = self.textPad.mainWindow
Exemple #4
0
    def newTab(self, editor=None, codeView=None):
        
        if not editor:
            editor = CodeEditor(parent=self.mainWindow)
            self.addTab(editor, "noname")
            editor.filename = None
           
            if self.mainWindow:
                self.codeView = self.mainWindow.codeView

            
        else:
            if editor.filename == None:
                self.addTab(editor, "noname")
            
            else:
                self.addTab(editor, os.path.basename(editor.filename))
                x = self.count() - 1
                self.setTabToolTip(x, editor.filename)
                self.codeView = self.mainWindow.codeView
Exemple #5
0
def main():
    app = QApplication(sys.argv)
    codeeditor = CodeEditor()
    codeeditor.setWindowTitle(app.tr("Code editor example"))
    codeeditor.show()

    return app.exec_()
Exemple #6
0
    def __init__(self):
        QtGui.QWidget.__init__(self)
        
        self.filename = ''
        self.annotation = {}
        self.encoding = 'utf8'
        
        mainLayout = QtGui.QVBoxLayout()
        
        self.editor = CodeEditor()
        self.editor.cursorPositionChanged.connect(self.onChangeCursor)
        mainLayout.addWidget(self.editor)
        
        hbox = QtGui.QHBoxLayout()
        mainLayout.addLayout(hbox)
        
#         groupBox = QtGui.QGroupBox('category')
#         groupBox.setCheckable(False)
#         groupBox.setChecked(False)
#         
#         grid = QtGui.QGridLayout()
#         radio1 = QtGui.QRadioButton(u"风格")
#         radio2 = QtGui.QRadioButton(u"维护")
#         radio3 = QtGui.QRadioButton(u"性能")
#         radio4 = QtGui.QRadioButton(u"缺陷")
#         radio1.setChecked(True)
#         grid.addWidget(radio1, 0, 0)
#         grid.addWidget(radio2, 1, 0)
#         grid.addWidget(radio3, 0, 1)
#         grid.addWidget(radio4, 1, 1)
#         groupBox.setLayout(grid)
#         
#         hbox.addWidget(groupBox)
        
        
        self.review = QtGui.QTextEdit()
        self.review.setMaximumHeight(60)
        hbox.addWidget(self.review)
        
        self.sendBtn = QtGui.QPushButton('commit')
        self.sendBtn.clicked.connect(self.onSendPressed)
        hbox.addWidget(self.sendBtn)
        
        self.setLayout(mainLayout)
        self.show()
Exemple #7
0
## Go up one directory and then import the codeeditor package

os.chdir("..")
sys.path.insert(0, ".")
from codeeditor import CodeEditor

if __name__ == "__main__":

    app = QtWidgets.QApplication([])

    # Create editor instance
    e = CodeEditor(
        highlightCurrentLine=True,
        longLineIndicatorPosition=20,
        showIndentationGuides=True,
        showWhitespace=True,
        showLineEndings=True,
        wrap=True,
        showLineNumbers=True,
    )

    QtWidgets.QShortcut(QtGui.QKeySequence("F1"),
                        e).activated.connect(e.autocompleteShow)
    QtWidgets.QShortcut(QtGui.QKeySequence("F2"),
                        e).activated.connect(e.autocompleteCancel)
    QtWidgets.QShortcut(
        QtGui.QKeySequence("F3"),
        e).activated.connect(lambda: e.calltipShow(0, "test(foo, bar)"))
    QtWidgets.QShortcut(QtGui.QKeySequence("Shift+Tab"),
                        e).activated.connect(e.dedentSelection)  # Shift + Tab
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)
Exemple #9
0
    def onDoubleClicked(self, index):
        self.index = index  #.... wie oben ... def onClicked(...):
        indexItem = self.model.index(index.row(), 0, index.parent())

        fileName, filePath, fileDir, fileInfo = self.getFileInformation()

        if fileDir:
            filePath = self.checkPath(filePath)
            try:
                os.chdir(filePath)
            except Exception as e:
                self.mainWindow.statusBar.showMessage(str(e), 3000)
            self.path = self.checkPath(os.getcwd())

            self.model.setRootPath(filePath)

            if self.rootIsDecorated:
                self.setRootIsDecorated(False)

        else:
            self.filename = filePath

            try:
                with open(self.filename, 'r') as f:
                    self.text = f.read()
            except Exception as e:
                self.mainWindow.statusBar.showMessage(str(e), 3000)

                self.filename = None
                return

            # debug
            if self.textPad:

                if not self.textPad.filename:
                    editor = CodeEditor(self.mainWindow)
                    editor.setText(self.text)
                    editor.filename = filePath
                    self.notebook.newTab(editor)
                    self.textPad = editor

                    x = self.notebook.count()  # number of tabs
                    index = x - 1
                    self.notebook.setCurrentIndex(index)
                    tabName = os.path.basename(editor.filename)

                    self.notebook.setTabText(x, tabName)
                    self.textPad = editor
                    #self.textPad.filename = filePath

                else:
                    editor = CodeEditor(self.mainWindow)
                    editor.setText(self.text)
                    editor.filename = filePath
                    tabName = os.path.basename(editor.filename)
                    self.notebook.newTab(editor)
                    x = self.notebook.count()  # number of tabs
                    index = x - 1
                    self.notebook.setCurrentIndex(index)
                    self.textPad = editor
                    #self.textPad.filename = filePath

            if not self.textPad:
                editor = CodeEditor(self.mainWindow)
                editor.filename = None
                self.notebook.newTab(editor)
                x = self.notebook.count()
                index = x - 1
                self.notebook.setCurrentIndex(index)
                self.textPad = editor
                #self.textPad.filename = filePath

            # make codeView
            codeViewList = self.codeView.makeDictForCodeView(self.text)
            self.codeView.updateCodeView(codeViewList)

            # update textPad Autocomplete
            autocomplete = Qsci.QsciAPIs(self.textPad.lexer)
            self.textPad.autocomplete = autocomplete
            self.textPad.setPythonAutocomplete()

        self.clearSelection()
Exemple #10
0
    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)
Exemple #11
0
 def test_beginOfLine_indented(self):
     editor = CodeEditor()
     editor.setPlainText("    Hello !")
     self.assertEqual(editor.getBeginOfCurrentLine(), 4)
Exemple #12
0
    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)
Exemple #13
0
 def test_beginOfLine_blank(self):
     editor = CodeEditor()
     editor.setPlainText("        ")
     self.assertEqual(editor.getBeginOfCurrentLine(), 0)
Exemple #14
0
 def test_simpleTyping(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "hello world")
     self.assertEqual(editor.toPlainText(), "hello world")
Exemple #15
0
 def test_return_to_indentedPlusOne_onNewBlock(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "if x > 10:")
     QTest.keyClick(editor, Qt.Key_Return)
     QTest.keyClicks(editor, "pass")
     self.assertEqual(editor.toPlainText(), "if x > 10:\n    pass")
Exemple #16
0
class MainWindow(QtGui.QWidget):
    
    def __init__(self):
        QtGui.QWidget.__init__(self)
        
        self.filename = ''
        self.annotation = {}
        self.encoding = 'utf8'
        
        mainLayout = QtGui.QVBoxLayout()
        
        self.editor = CodeEditor()
        self.editor.cursorPositionChanged.connect(self.onChangeCursor)
        mainLayout.addWidget(self.editor)
        
        hbox = QtGui.QHBoxLayout()
        mainLayout.addLayout(hbox)
        
#         groupBox = QtGui.QGroupBox('category')
#         groupBox.setCheckable(False)
#         groupBox.setChecked(False)
#         
#         grid = QtGui.QGridLayout()
#         radio1 = QtGui.QRadioButton(u"风格")
#         radio2 = QtGui.QRadioButton(u"维护")
#         radio3 = QtGui.QRadioButton(u"性能")
#         radio4 = QtGui.QRadioButton(u"缺陷")
#         radio1.setChecked(True)
#         grid.addWidget(radio1, 0, 0)
#         grid.addWidget(radio2, 1, 0)
#         grid.addWidget(radio3, 0, 1)
#         grid.addWidget(radio4, 1, 1)
#         groupBox.setLayout(grid)
#         
#         hbox.addWidget(groupBox)
        
        
        self.review = QtGui.QTextEdit()
        self.review.setMaximumHeight(60)
        hbox.addWidget(self.review)
        
        self.sendBtn = QtGui.QPushButton('commit')
        self.sendBtn.clicked.connect(self.onSendPressed)
        hbox.addWidget(self.sendBtn)
        
        self.setLayout(mainLayout)
        self.show()
        
    def reload(self):
        self.loadFile(self.filename)
        
    def loadFile(self, fileName):
        if not os.path.exists(unicode(fileName)):
            self.editor.clear()
            return
        
        self.filename = unicode(fileName)
        
        f = open(self.filename, 'r')
        t = f.read()
        
        try:
            self.editor.setText(t.decode(self.encoding))
            
            lexer = QsciLexerBash()
            if self.filename.endswith('.py'):
                lexer = QsciLexerPython()
            elif self.filename.endswith('.cpp') or self.filename.endswith('.h'):
                lexer = QsciLexerCPP()
            elif self.filename.endswith('.java'):
                lexer = QsciLexerJava()
            elif self.filename.endswith('.js'):
                lexer = QsciLexerJavaScript()
                
            lexer.setFont(self.editor.font())
            self.editor.setLexer(lexer)
            
            self.loadAnnotation()
            
        except UnicodeDecodeError as e:
            QtGui.QMessageBox.question(self, 'Error', 
                                       'info: ' + str(e)
                                       )
            
        f.close()
        
    def onChangeCursor(self, line, pos):
        prevAnno = unicode(self.editor.annotation(line))
        self.review.clear()
        self.review.append(prevAnno)
            
    def onSendPressed(self):
        anno = unicode(self.review.toPlainText())
        self.addAnnotation((anno))
        
        
    def loadAnnotation(self):
        self.annotation.clear()
        if not os.path.exists((self.filename + '.info')):
            return
        
        f = open((self.filename + '.info'), 'r')
        try:
            self.annotation = json.load(f, encoding='utf8')
        except ValueError as e:
            print(e) 
            
        f.close()
        
        for p in self.annotation:
            i = (self.annotation[p])
            self.editor.annotate(int(p), (i), 0)
            self.editor.markerAdd(int(p), 1)
            
    def saveAnnotation(self):
        f = codecs.open((self.filename + '.info'), 'w', 'utf8')
        json.dump(self.annotation, 
                  f,
                  ensure_ascii=False,
                  indent=4)
        f.close()
        
    def addAnnotation(self, text):
        p = self.editor.getCursorPosition()[0]
        self.annotation[p] = text
        
        self.editor.annotate(p, text, 0)
        self.editor.markerAdd(p, 1)
        self.review.clear()
        
        self.saveAnnotation()
        
        
        
Exemple #17
0
 def test_next_line_need_indent(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "if x > 10:")
     assert(editor.nextNeedIndent())
Exemple #18
0
 def test_return_to_indented(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "    hello world")
     QTest.keyClick(editor, Qt.Key_Return)
     QTest.keyClicks(editor, "I'm indented")
     self.assertEqual(editor.toPlainText(), "    hello world\n    I'm indented")
Exemple #19
0
 def test_backspace_beginToPreviousLine(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "hello world")
     QTest.keyClick(editor, Qt.Key_Return)
     QTest.keyClick(editor, Qt.Key_Backspace)
     self.assertEqual(editor.toPlainText(), "hello world")
    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)
Exemple #21
0
 def test_tabkey_middle_twospaces(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "he")
     QTest.keyClick(editor, Qt.Key_Tab)
     QTest.keyClicks(editor, "llo")
     self.assertEqual(editor.toPlainText(), "he  llo")
Exemple #22
0
os.chdir('..')
sys.path.insert(0,'.')
from codeeditor import CodeEditor


    

if __name__=='__main__':
    
    app = QtWidgets.QApplication([])
  
            
    # Create editor instance
    e = CodeEditor(highlightCurrentLine = True, longLineIndicatorPosition = 20,
        showIndentationGuides = True, showWhitespace = True,
        showLineEndings = True, wrap = True, showLineNumbers = True)

    QtWidgets.QShortcut(QtGui.QKeySequence("F1"), e).activated.connect(e.autocompleteShow)
    QtWidgets.QShortcut(QtGui.QKeySequence("F2"), e).activated.connect(e.autocompleteCancel)
    QtWidgets.QShortcut(QtGui.QKeySequence("F3"), e).activated.connect(lambda: e.calltipShow(0, 'test(foo, bar)'))
    QtWidgets.QShortcut(QtGui.QKeySequence("Shift+Tab"), e).activated.connect(e.dedentSelection) # Shift + Tab
   
    #TODO: somehow these shortcuts don't work in this test-app, but they do in
    # pyzo. May have something to do with overriding slots of Qt-native objects?
    QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+C"), e).activated.connect(e.copy)
    QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+X"), e).activated.connect(e.cut)
    QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+V"), e).activated.connect(e.paste)
    QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+Shift+V"), e).activated.connect(e.pasteAndSelect)
    QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+Z"), e).activated.connect(e.undo)
    QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+Y"), e).activated.connect(e.redo)
Exemple #23
0
##
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
##
## $QT_END_LICENSE$
##
#############################################################################

import sys
from PySide6.QtWidgets import QApplication
from codeeditor import CodeEditor

"""PySide6 port of the widgets/codeeditor example from Qt5"""

if __name__ == "__main__":
    app = QApplication([])
    editor = CodeEditor()
    editor.setWindowTitle("Code Editor Example")
    editor.show()
    sys.exit(app.exec_())
Exemple #24
0
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()
Exemple #25
0
 def test_backspace_RemovePrevious(self):
     editor = CodeEditor()
     QTest.keyClicks(editor, "hello worlde")
     QTest.keyClick(editor, Qt.Key_Backspace)
     self.assertEqual(editor.toPlainText(), "hello world")
Exemple #26
0
    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)
Exemple #27
0
    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)