1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#include "./diffhighlighter.h"
#include <syncthingmodel/colors.h>
#include <QFont>
#include <QFontDatabase>
#include <QTextDocument>
using namespace std;
using namespace Data;
namespace QtGui {
DiffHighlighter::DiffHighlighter(QTextDocument *parent)
: QSyntaxHighlighter(parent)
, m_enabled(true)
{
auto font = QFontDatabase::systemFont(QFontDatabase::FixedFont);
m_baseFormat.setFont(font);
font.setBold(true);
m_addedFormat.setFont(font);
m_addedFormat.setForeground(Colors::green(true));
m_deletedFormat.setFont(font);
m_deletedFormat.setForeground(Colors::red(true));
}
void DiffHighlighter::highlightBlock(const QString &text)
{
if (text.startsWith(QChar('-'))) {
setFormat(0, static_cast<int>(text.size()), QColor(Qt::red));
} else if (text.startsWith(QChar('+'))) {
setFormat(0, static_cast<int>(text.size()), QColor(Qt::green));
}
}
} // namespace QtGui
|