def addRun(self, font, run, label, num, tooltip = "", highlight = False, collision = False) : if num >= len(self.runViews) : v = RunView(font, run, self, collision = collision) self.runViews.append(v) self.setCellWidget(num, 1, v.gview) self.setCellWidget(num, 2, v.tview) l = QtGui.QTableWidgetItem(label) l.setFlags(QtCore.Qt.ItemIsEnabled) self.setItem(num, 0, l) try : v.slotSelected.connect(self.changeSlot) v.glyphSelected.connect(self.changeGlyph) except : print "Passes connection failed" else : v = self.runViews[num] v.loadRun(run, font) l = self.item(num, 0) if tooltip : l.setToolTip(tooltip) if highlight == "active" : l.setBackground(Layout.activePassColour) elif highlight == "semi-active" : l.setBackground(Layout.semiActivePassColour) else : l.setBackground(QtGui.QColor(255, 255, 255)) l.highlight = highlight self.verticalHeader().setDefaultSectionSize(v.gview.size().height()) return (v.gview.width(), v.tview.width())
def initializeLayout(self, xmlFile): vsplitter = QtGui.QSplitter() # allows sizing of results view vsplitter.setOrientation(QtCore.Qt.Vertical) vsplitter.setContentsMargins(0, 0, 0, 0) vsplitter.setHandleWidth(4) self.layout.addWidget(vsplitter) self.widget = QtGui.QWidget(vsplitter) vbox = QtGui.QVBoxLayout(self.widget) # MatchList + input control vbox.setContentsMargins(*Layout.buttonMargins) vbox.setSpacing(Layout.buttonSpacing) hbox = QtGui.QHBoxLayout( ) # just in case we want to add more buttons here vbox.addLayout(hbox) plabel = QtGui.QLabel("Search pattern:") hbox.addWidget(plabel) hbox.addStretch() hbox.setContentsMargins(*Layout.buttonMargins) hbox.setSpacing(Layout.buttonSpacing) searchGo = QtGui.QToolButton(self.widget) searchGo.setDefaultAction(self.aSearchGo) hbox.addWidget(searchGo) self.patternEdit = TextEditReturn(self.widget, self) self.patternEdit.setMaximumHeight(Layout.runEditHeight) vbox.addWidget(self.patternEdit) vbox.addSpacing(5) self.matchList = MatchList(self.app, self.font, xmlFile, self) #self.matchList.itemClicked.connect(self.itemClicked) vbox.addWidget(self.matchList) # line below MatchList line = QtGui.QFrame(self.widget) line.setFrameStyle(QtGui.QFrame.HLine | QtGui.QFrame.Raised) line.setLineWidth(2) vbox.addWidget(line) vbox.addSpacing(2) # input control self.runEdit = QtGui.QPlainTextEdit(self.widget) self.runEdit.setMaximumHeight(Layout.runEditHeight) vbox.addWidget(self.runEdit) # control buttons hbox = QtGui.QHBoxLayout() vbox.addLayout(hbox) hbox.setContentsMargins(*Layout.buttonMargins) hbox.setSpacing(Layout.buttonSpacing) runGo = QtGui.QToolButton(self.widget) runGo.setDefaultAction(self.aRunGo) hbox.addWidget(runGo) hbox.addStretch() self.runRtl = QtGui.QCheckBox("RTL", self.widget) self.runRtl.setChecked(True if configintval(self.app.config, 'main', 'defaultrtl') else False) self.runRtl.setToolTip("Process text right to left") hbox.addWidget(self.runRtl) self.runFeats = QtGui.QToolButton(self.widget) #self.runFeats.setDefaultAction(self.aRunFeats) hbox.addWidget(self.runFeats) #runAdd = QtGui.QToolButton(self.widget) #runAdd.setDefaultAction(self.aRunAdd) #hbox.addWidget(runAdd) # test output self.run = Run(self.font, self.runRtl.isChecked()) self.runView = RunView(self.font) self.runView.gview.resize(self.runView.gview.width(), self.font.pixrect.height() + 5) vsplitter.addWidget(self.runView.gview)