Esempio n. 1
0
void toSqlText::setFont (const QFont & font)
{
    // Only sets font lexer - one for all styles
    // this may (or may not) need to be changed in a future
    QsciLexer *lexer = super::lexer();
    if (lexer)
    {
        lexer->setDefaultFont(font);
        lexer->setFont(font);

        /* this is workaround against qscintilla 1.6 setFont(font) bug */
        if ( qobject_cast<QsciLexerSQL*>(lexer))
        {
            lexer->setFont(font, QsciLexerSQL::Default);
            lexer->setFont(font, QsciLexerSQL::Comment);
            lexer->setFont(font, QsciLexerSQL::CommentLine);
            lexer->setFont(font, QsciLexerSQL::PlusComment);
            lexer->setFont(font, QsciLexerSQL::CommentLineHash);
            lexer->setFont(font, QsciLexerSQL::CommentDocKeyword);
            lexer->setFont(font, QsciLexerSQL::CommentDocKeywordError);
            lexer->setFont(font, QsciLexerSQL::DoubleQuotedString);
            lexer->setFont(font, QsciLexerSQL::SingleQuotedString);
            lexer->setFont(font, QsciLexerSQL::PlusPrompt);
        }
        update();
    }
    super::setFont(font);
}
Esempio n. 2
0
void TextView::onLexerChanged(int index)
{
    QsciLexer *prevLexer = scintEditor->lexer();
    QsciLexer *newLexer = nullptr;
    switch (index) { // do nothing by default
        case 0:
            break;
        case 1:
            newLexer = new(std::nothrow) QsciLexerHTML();
            break;
        case 2:
            newLexer = new(std::nothrow) QsciLexerJavaScript();
            break;
        case 3:
            newLexer = new(std::nothrow) QsciLexerYAML();
            break;
        case 4:
            newLexer = new(std::nothrow) QsciLexerXML();
            break;
        case 5:
            newLexer = new(std::nothrow) QsciLexerProperties();
            break;
        default:
            logger->logError(tr("Unknown Lexer index: %1 T_T").arg(index));

    }
    if (newLexer != nullptr) {
        newLexer->setDefaultFont(GlobalsValues::GLOBAL_REGULAR_FONT);
        newLexer->setDefaultColor(QApplication::palette().text().color());
    }
    scintEditor->setLexer(newLexer);
    scintEditor->setBackgroundRole(QPalette::Base);
    delete prevLexer;

    if (newLexer == nullptr) {
        scintEditor->setFont(GlobalsValues::GLOBAL_REGULAR_FONT);
    }
}