示例#1
0
    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())
示例#2
0
    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!")
示例#3
0
    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
示例#4
0
    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
示例#5
0
    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!")