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); }
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); } }