def __init__(self, helptopicpage, helpbrowser, parent): super(HelpTopicPageWidget, self).__init__(parent) self.lyt = QVBoxLayout(self) self.lyt.setContentsMargins(0,0,0,0) self.lyt.setSpacing(5) self.searchwidget = searchwidget.SearchWidget(self) self.lyt.addWidget(self.searchwidget) self.tb = QTextBrowser(self) self.lyt.addWidget(self.tb) self.setLayout(self.lyt) self.searchmgr = searchwidget.SearchTextEditManager(self.searchwidget, self.tb) font = self.tb.font() font.setPointSize(QFontInfo(font).pointSize()+1) self.tb.setFont(font) self.tb.setOpenLinks(False) self.tb.anchorClicked.connect(helpbrowser.openHelpTopicUrl) dark_mode = uiutils.is_dark_mode(self) htmlfragment = helptopicpage.contentAsHtmlFragment() logger.longdebug("Help page html fragment = \n%s", htmlfragment) html = wrapInHtmlContentContainer(htmlfragment, dark_mode=dark_mode) self.tb.setHtml(html) self.setProperty("HelpTabTitle", helptopicpage.title()) if helptopicpage.desc: self.setProperty("HelpTabToolTip", helptopicpage.desc())
def __init__(self): super(OpenBibFile, self).__init__() self.ui = Ui_OpenBibFile() self.ui.setupUi(self) self.resize(QSize(1200,800)) self.ui.splitEditConfig.setSizes([100,1]) self.ui.txtConfig.setWordWrapMode(QTextOption.WrapAnywhere) self.ui.txtLog.setWordWrapMode(QTextOption.WrapAnywhere) self.ui.txtBibEntries.setWordWrapMode(QTextOption.WrapAnywhere) font = settingswidget.get_typewriter_font(self.ui.txtConfig) self.ui.txtConfig.setFont(font) self.ui.txtLog.setFont(font) self.ui.txtBibEntries.setFont(font) self.syntHighlighter = BibolamaziConfigSyntaxHighlighter(self.ui.txtConfig) self._favorites_overbtn = FavoritesOverBtns(self.ui.treeFavorites) self._favorites_overbtn.insertCommand.connect(self._insert_new_cmd) self.ui.filterInstanceEditor.requestAddToFavorites.connect(self.add_favorite_cmd) self.ui.sourceListEditor.requestAddToFavorites.connect(self.add_favorite_cmd) self.ui.sourceListEditor.requestAddSourceList.connect(self.on_btnAddSourceList_clicked) self.bibolamaziFileName = None self.bibolamaziFile = None self.updateTimer = QTimer(self) self.updateTimer.setInterval(500) self.updateTimer.setSingleShot(True) QObject.connect(self.updateTimer, SIGNAL('timeout()'), self.reloadFile) self._flag_modified_externally = False self.fwatcher = QFileSystemWatcher(self) QObject.connect(self.fwatcher, SIGNAL('fileChanged(QString)'), self.fileModifiedExternally) #self.delayedUpdateFileContents) self.shortcuts = [ QShortcut(QKeySequence('Ctrl+W'), self, self.close, self.close), QShortcut(QKeySequence('Ctrl+S'), self, self.saveToFile, self.saveToFile), QShortcut(QKeySequence(Qt.CTRL|Qt.Key_Return), self, self.runBibolamazi, self.runBibolamazi), ]; self._ignore_change_for_edittools = False self._needs_update_txtbibentries = False self._set_modified(False) logger.longdebug("finished OpenBibFile constructor!")
def _get_current_bibolamazi_cmd(self): if (not self.bibolamaziFile): logger.warning("No bibolamazi file open") return cmds = self.bibolamaziFile.configCmds(); if (cmds is None): # file is not yet parsed return None cur = self.ui.txtConfig.textCursor() block = cur.block() thisline = cur.block().blockNumber()+1 thisline = self.bibolamaziFile.fileLineNo(thisline) logger.longdebug("searching for cmd... at file line=%d", thisline) for cmd in cmds: logger.longdebug("\t -- testing cmd %r", cmd) if cmd.lineno <= thisline and cmd.linenoend >= thisline: # got the current cmd logger.longdebug("\tGot cmd: %r", cmd) return cmd return None
def _get_current_bibolamazi_cmdlist(self): if not self.bibolamaziFile: logger.warning("No bibolamazi file open") return cmds = self.bibolamaziFile.configCmds() if cmds is None: # file is not yet parsed return None cur = self.ui.txtConfig.textCursor() block = cur.block() thisline = cur.block().blockNumber()+1 thisline = self.bibolamaziFile.fileLineNo(thisline) if cur.hasSelection(): cur2 = QTextCursor(cur) cur2.setPosition(cur.anchor()) otherline = cur2.block().blockNumber()+1 otherline = self.bibolamaziFile.fileLineNo(otherline) else: otherline = thisline minline = min(thisline, otherline) maxline = max(thisline, otherline) logger.longdebug("searching for cmds between lines %d and %d", minline, maxline) cmdlist = [] for cmd in cmds: logger.longdebug("\t -- testing cmd %r", cmd) if cmd.lineno <= maxline and cmd.linenoend >= minline: # got the current cmd logger.longdebug("\tGot cmd: %r", cmd) cmdlist.append(cmd) return cmdlist
def __init__(self): super(OpenBibFile, self).__init__() self.ui = Ui_OpenBibFile() self.ui.setupUi(self) self.bibolamazi_thread = global_run_bibolamazi_thread_instance() self.run_bibolamazi = self.bibolamazi_thread.getOwnRunBibolamazi() self.run_bibolamazi.busy.connect(self._run_busy) self.run_bibolamazi.bibolamaziDone.connect(self._run_bibolamaziDone) self.run_bibolamazi.bibolamaziDoneError.connect(self._run_bibolamaziDoneError) self.run_bibolamazi.clearLog.connect(self._run_clearLog) self.run_bibolamazi.logHtml.connect(self._run_logHtml) self.requestRunBibolamazi.connect(self.run_bibolamazi.runBibolamazi) self.resize(QSize(1200,800)) self.ui.splitEditConfig.setSizes([700,500]) # connect buttons as "tabs" self.btabs = buttontabsmanager.ButtonTabsManager(self.ui.tabs, self) self.btabs.registerButton(self.ui.btnPageEditConfig, self.ui.tabPageEditFilters) self.btabs.registerButton(self.ui.btnPageFileInfo, self.ui.tabPageFileInfo) self.btabs.registerButton(self.ui.btnPageRunMessages, self.ui.tabPageRunMessages) # also in info page self.btabsinfo = buttontabsmanager.ButtonTabsManager(self.ui.stkInfo, self) self.btabsinfo.registerButton(self.ui.btnInfoPageHeader, self.ui.pageInfoHeader) self.btabsinfo.registerButton(self.ui.btnInfoPageEntries, self.ui.pageInfoEntries) self.ui.txtConfig.setWordWrapMode(QTextOption.WrapAnywhere) self.ui.txtLog.setWordWrapMode(QTextOption.WrapAnywhere) self.ui.txtBibEntries.setWordWrapMode(QTextOption.WrapAnywhere) p = QPalette(self.ui.stackEditTools.palette()) c = p.color(QPalette.Active, QPalette.Window) p.setColor(QPalette.Window, QColor(int(c.red()*0.9), int(c.green()*0.9), int(c.blue()*0.9))) self.ui.stackEditTools.setPalette(p) self.ui.stackEditTools.setAutoFillBackground(True) font = settingswidget.get_typewriter_font(self.ui.txtConfig) self.ui.txtConfig.setFont(font) self.ui.txtLog.setFont(font) self.ui.txtBibEntries.setFont(font) self.searchConfigManager = searchwidget.SearchTextEditManager( self.ui.searchConfigWidget, self.ui.txtConfig ) self.searchPrevBibEntriesManager = searchwidget.SearchTextEditManager( self.ui.searchPrevBibEntries, self.ui.txtBibEntries ) self.syntHighlighter = BibolamaziConfigSyntaxHighlighter(self.ui.txtConfig) self._favorites_overbtn = FavoritesOverBtns(self.ui.treeFavorites) self._favorites_overbtn.insertCommand.connect(self._insert_new_cmd) self.ui.filterInstanceEditor.requestAddToFavorites.connect(self.add_favorite_cmd) self.ui.sourceListEditor.requestAddToFavorites.connect(self.add_favorite_cmd) self.ui.sourceListEditor.requestAddSourceList.connect(self.on_btnAddSourceList_clicked) self.ui.btnSelectedMultipleAddFavorite.clicked.connect(self.add_favorite_selection) self.bibolamaziFileName = None self.bibolamaziFile = None # to implement delayed reparsing of the current textedit contents self.reparseTimer = QTimer(self) self.reparseTimer.timeout.connect(self._reparse_textedit) # to implement delayed full reload of the file self.updateTimer = QTimer(self) self.updateTimer.timeout.connect(self.reloadFile) self._flag_modified_externally = False self.fwatcher = QFileSystemWatcher(self) self.fwatcher.fileChanged.connect(self.fileModifiedExternally) #self.delayedUpdateFileContents) self.shortcuts = [ QShortcut(QKeySequence('Ctrl+W'), self, self.close, self.close), QShortcut(QKeySequence('Ctrl+S'), self, self.saveToFile, self.saveToFile), QShortcut(QKeySequence(Qt.CTRL|Qt.Key_Return), self, self.runBibolamazi, self.runBibolamazi), ] self._ignore_change_for_edittools = False self._needs_update_txtbibentries = False self._set_modified(False) logger.longdebug("finished OpenBibFile constructor!")