Commit 25e4655d authored by Leandro Melo's avatar Leandro Melo
Browse files

Generic highlighter: Apply format only if it's a configured one; Remove hard-coded colors.

Reviewed-by: con
parent 88ba37f8
......@@ -382,29 +382,32 @@ void Highlighter::applyFormat(int offset,
TextFormatId formatId = m_kateFormats.m_ids.value(itemData->style());
if (formatId != Normal) {
QTextCharFormat format = m_creatorFormats.value(formatId);
if (itemData->isCustomized()) {
// Please notice that the following are applied every time for item datas which have
// customizations. The configureFormats method could be used to provide a "one time"
// configuration, but it would probably require to traverse all item datas from all
// definitions available/loaded (either to set the values or for some "notifying"
// strategy). This is because the highlighter does not really know on which
// definition(s) it is working. Since not many item datas specify customizations I
// think this approach would fit better. If there are other ideas...
if (itemData->color().isValid())
format.setForeground(itemData->color());
if (itemData->isItalicSpecified())
format.setFontItalic(itemData->isItalic());
if (itemData->isBoldSpecified())
format.setFontWeight(toFontWeight(itemData->isBold()));
if (itemData->isUnderlinedSpecified())
format.setFontUnderline(itemData->isUnderlined());
if (itemData->isStrikedOutSpecified())
format.setFontStrikeOut(itemData->isStrikedOut());
}
QHash<TextFormatId, QTextCharFormat>::const_iterator cit =
m_creatorFormats.constFind(formatId);
if (cit != m_creatorFormats.constEnd()) {
QTextCharFormat format = cit.value();
if (itemData->isCustomized()) {
// Please notice that the following are applied every time for item datas which have
// customizations. The configureFormats method could be used to provide a "one time"
// configuration, but it would probably require to traverse all item datas from all
// definitions available/loaded (either to set the values or for some "notifying"
// strategy). This is because the highlighter does not really know on which
// definition(s) it is working. Since not many item datas specify customizations I
// think this approach would fit better. If there are other ideas...
if (itemData->color().isValid())
format.setForeground(itemData->color());
if (itemData->isItalicSpecified())
format.setFontItalic(itemData->isItalic());
if (itemData->isBoldSpecified())
format.setFontWeight(toFontWeight(itemData->isBold()));
if (itemData->isUnderlinedSpecified())
format.setFontUnderline(itemData->isUnderlined());
if (itemData->isStrikedOutSpecified())
format.setFontStrikeOut(itemData->isStrikedOut());
}
setFormat(offset, count, format);
setFormat(offset, count, format);
}
}
}
......
......@@ -134,20 +134,6 @@ void PlainTextEditor::setFontSettings(const FontSettings &fs)
highlighter->configureFormat(Highlighter::String, fs.toTextCharFormat(
QLatin1String(Constants::C_STRING)));
// Creator does not have corresponding formats for the following ones. Implement them?
// For now I will leave hardcoded values.
QTextCharFormat format;
format.setForeground(Qt::blue);
highlighter->configureFormat(Highlighter::Others, format);
format.setForeground(Qt::red);
highlighter->configureFormat(Highlighter::Alert, format);
format.setForeground(Qt::darkBlue);
highlighter->configureFormat(Highlighter::Function, format);
format.setForeground(Qt::darkGray);
highlighter->configureFormat(Highlighter::RegionMarker, format);
format.setForeground(Qt::darkRed);
highlighter->configureFormat(Highlighter::Error, format);
highlighter->rehighlight();
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment