VCS: Make dark color schemes work with annotation highlighter

Task-number: QTCREATORBUG-6257

Change-Id: Ied01cf6773b5114100afccbac33f359cc72c0889
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
Tobias Hunger
2012-03-06 14:32:32 +01:00
parent 5e36568628
commit 4b366303e6
28 changed files with 81 additions and 39 deletions

View File

@@ -37,8 +37,9 @@ using namespace Bazaar::Internal;
using namespace Bazaar; using namespace Bazaar;
BazaarAnnotationHighlighter::BazaarAnnotationHighlighter(const ChangeNumbers &changeNumbers, BazaarAnnotationHighlighter::BazaarAnnotationHighlighter(const ChangeNumbers &changeNumbers,
const QColor &bg,
QTextDocument *document) QTextDocument *document)
: VcsBase::BaseAnnotationHighlighter(changeNumbers, document), : VcsBase::BaseAnnotationHighlighter(changeNumbers, bg, document),
m_changeset(QLatin1String(Constants::CHANGESET_ID)) m_changeset(QLatin1String(Constants::CHANGESET_ID))
{ {
} }

View File

@@ -42,7 +42,7 @@ namespace Internal {
class BazaarAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter class BazaarAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter
{ {
public: public:
explicit BazaarAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit BazaarAnnotationHighlighter(const ChangeNumbers &changeNumbers, const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
private: private:

View File

@@ -101,9 +101,10 @@ VcsBase::DiffHighlighter *BazaarEditor::createDiffHighlighter() const
return new VcsBase::DiffHighlighter(m_diffFileId); return new VcsBase::DiffHighlighter(m_diffFileId);
} }
VcsBase::BaseAnnotationHighlighter *BazaarEditor::createAnnotationHighlighter(const QSet<QString> &changes) const VcsBase::BaseAnnotationHighlighter *BazaarEditor::createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const
{ {
return new BazaarAnnotationHighlighter(changes); return new BazaarAnnotationHighlighter(changes, bg);
} }
QString BazaarEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString BazaarEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const

View File

@@ -51,7 +51,7 @@ private:
virtual QSet<QString> annotationChanges() const; virtual QSet<QString> annotationChanges() const;
virtual QString changeUnderCursor(const QTextCursor &cursor) const; virtual QString changeUnderCursor(const QTextCursor &cursor) const;
virtual VcsBase::DiffHighlighter *createDiffHighlighter() const; virtual VcsBase::DiffHighlighter *createDiffHighlighter() const;
virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const; virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const; virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const;
const QRegExp m_exactChangesetId; const QRegExp m_exactChangesetId;

View File

@@ -36,8 +36,9 @@ using namespace Cvs;
using namespace Cvs::Internal; using namespace Cvs::Internal;
CvsAnnotationHighlighter::CvsAnnotationHighlighter(const ChangeNumbers &changeNumbers, CvsAnnotationHighlighter::CvsAnnotationHighlighter(const ChangeNumbers &changeNumbers,
const QColor &bg,
QTextDocument *document) : QTextDocument *document) :
VcsBase::BaseAnnotationHighlighter(changeNumbers, document), VcsBase::BaseAnnotationHighlighter(changeNumbers, bg, document),
m_blank(QLatin1Char(' ')) m_blank(QLatin1Char(' '))
{ {
} }

View File

@@ -44,7 +44,7 @@ class CvsAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter
Q_OBJECT Q_OBJECT
public: public:
explicit CvsAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit CvsAnnotationHighlighter(const ChangeNumbers &changeNumbers, const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
private: private:

View File

@@ -131,9 +131,10 @@ VcsBase::DiffHighlighter *CvsEditor::createDiffHighlighter() const
return new VcsBase::DiffHighlighter(filePattern); return new VcsBase::DiffHighlighter(filePattern);
} }
VcsBase::BaseAnnotationHighlighter *CvsEditor::createAnnotationHighlighter(const QSet<QString> &changes) const VcsBase::BaseAnnotationHighlighter *CvsEditor::createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const
{ {
return new CvsAnnotationHighlighter(changes); return new CvsAnnotationHighlighter(changes, bg);
} }
QString CvsEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString CvsEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const

View File

@@ -52,7 +52,7 @@ private:
QSet<QString> annotationChanges() const; QSet<QString> annotationChanges() const;
QString changeUnderCursor(const QTextCursor &) const; QString changeUnderCursor(const QTextCursor &) const;
VcsBase::DiffHighlighter *createDiffHighlighter() const; VcsBase::DiffHighlighter *createDiffHighlighter() const;
VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const; VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const; QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
QStringList annotationPreviousVersions(const QString &revision) const; QStringList annotationPreviousVersions(const QString &revision) const;

View File

@@ -38,8 +38,9 @@ namespace Git {
namespace Internal { namespace Internal {
GitAnnotationHighlighter::GitAnnotationHighlighter(const ChangeNumbers &changeNumbers, GitAnnotationHighlighter::GitAnnotationHighlighter(const ChangeNumbers &changeNumbers,
QTextDocument *document) : const QColor &bg,
VcsBase::BaseAnnotationHighlighter(changeNumbers, document), QTextDocument *document) :
VcsBase::BaseAnnotationHighlighter(changeNumbers, bg, document),
m_blank(QLatin1Char(' ')) m_blank(QLatin1Char(' '))
{ {
} }

View File

@@ -43,7 +43,7 @@ class GitAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit GitAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit GitAnnotationHighlighter(const ChangeNumbers &changeNumbers, const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
private: private:

View File

@@ -116,9 +116,10 @@ VcsBase::DiffHighlighter *GitEditor::createDiffHighlighter() const
return new VcsBase::DiffHighlighter(filePattern); return new VcsBase::DiffHighlighter(filePattern);
} }
VcsBase::BaseAnnotationHighlighter *GitEditor::createAnnotationHighlighter(const QSet<QString> &changes) const VcsBase::BaseAnnotationHighlighter *GitEditor::createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const
{ {
return new GitAnnotationHighlighter(changes); return new GitAnnotationHighlighter(changes, bg);
} }
QString GitEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString GitEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const

View File

@@ -61,7 +61,7 @@ private:
virtual QSet<QString> annotationChanges() const; virtual QSet<QString> annotationChanges() const;
virtual QString changeUnderCursor(const QTextCursor &) const; virtual QString changeUnderCursor(const QTextCursor &) const;
virtual VcsBase::DiffHighlighter *createDiffHighlighter() const; virtual VcsBase::DiffHighlighter *createDiffHighlighter() const;
virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const; virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const; virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
virtual QStringList annotationPreviousVersions(const QString &revision) const; virtual QStringList annotationPreviousVersions(const QString &revision) const;

View File

@@ -37,8 +37,9 @@ using namespace Mercurial::Internal;
using namespace Mercurial; using namespace Mercurial;
MercurialAnnotationHighlighter::MercurialAnnotationHighlighter(const ChangeNumbers &changeNumbers, MercurialAnnotationHighlighter::MercurialAnnotationHighlighter(const ChangeNumbers &changeNumbers,
const QColor &bg,
QTextDocument *document) QTextDocument *document)
: VcsBase::BaseAnnotationHighlighter(changeNumbers, document), : VcsBase::BaseAnnotationHighlighter(changeNumbers, bg, document),
changeset(QLatin1String(Constants::CHANGESETID12)) changeset(QLatin1String(Constants::CHANGESETID12))
{ {
} }

View File

@@ -42,7 +42,7 @@ namespace Internal {
class MercurialAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter class MercurialAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter
{ {
public: public:
explicit MercurialAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit MercurialAnnotationHighlighter(const ChangeNumbers &changeNumbers, const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
private: private:

View File

@@ -96,9 +96,10 @@ VcsBase::DiffHighlighter *MercurialEditor::createDiffHighlighter() const
return new VcsBase::DiffHighlighter(diffIdentifier); return new VcsBase::DiffHighlighter(diffIdentifier);
} }
VcsBase::BaseAnnotationHighlighter *MercurialEditor::createAnnotationHighlighter(const QSet<QString> &changes) const VcsBase::BaseAnnotationHighlighter *MercurialEditor::createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const
{ {
return new MercurialAnnotationHighlighter(changes); return new MercurialAnnotationHighlighter(changes, bg);
} }
QString MercurialEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString MercurialEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const

View File

@@ -50,7 +50,7 @@ private:
virtual QSet<QString> annotationChanges() const; virtual QSet<QString> annotationChanges() const;
virtual QString changeUnderCursor(const QTextCursor &cursor) const; virtual QString changeUnderCursor(const QTextCursor &cursor) const;
virtual VcsBase::DiffHighlighter *createDiffHighlighter() const; virtual VcsBase::DiffHighlighter *createDiffHighlighter() const;
virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const; virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const; virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const;
virtual QStringList annotationPreviousVersions(const QString &revision) const; virtual QStringList annotationPreviousVersions(const QString &revision) const;

View File

@@ -36,8 +36,9 @@ namespace Perforce {
namespace Internal { namespace Internal {
PerforceAnnotationHighlighter::PerforceAnnotationHighlighter(const ChangeNumbers &changeNumbers, PerforceAnnotationHighlighter::PerforceAnnotationHighlighter(const ChangeNumbers &changeNumbers,
const QColor &bg,
QTextDocument *document) : QTextDocument *document) :
VcsBase::BaseAnnotationHighlighter(changeNumbers, document), VcsBase::BaseAnnotationHighlighter(changeNumbers, bg, document),
m_colon(QLatin1Char(':')) m_colon(QLatin1Char(':'))
{ {
} }

View File

@@ -44,6 +44,7 @@ class PerforceAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighter
Q_OBJECT Q_OBJECT
public: public:
explicit PerforceAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit PerforceAnnotationHighlighter(const ChangeNumbers &changeNumbers,
const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
private: private:

View File

@@ -112,9 +112,10 @@ VcsBase::DiffHighlighter *PerforceEditor::createDiffHighlighter() const
return new VcsBase::DiffHighlighter(filePattern); return new VcsBase::DiffHighlighter(filePattern);
} }
VcsBase::BaseAnnotationHighlighter *PerforceEditor::createAnnotationHighlighter(const QSet<QString> &changes) const VcsBase::BaseAnnotationHighlighter *PerforceEditor::createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const
{ {
return new PerforceAnnotationHighlighter(changes); return new PerforceAnnotationHighlighter(changes, bg);
} }
QString PerforceEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString PerforceEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const

View File

@@ -54,7 +54,7 @@ private:
virtual QSet<QString> annotationChanges() const; virtual QSet<QString> annotationChanges() const;
virtual QString changeUnderCursor(const QTextCursor &) const; virtual QString changeUnderCursor(const QTextCursor &) const;
virtual VcsBase::DiffHighlighter *createDiffHighlighter() const; virtual VcsBase::DiffHighlighter *createDiffHighlighter() const;
virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const; virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const; virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
virtual QStringList annotationPreviousVersions(const QString &v) const; virtual QStringList annotationPreviousVersions(const QString &v) const;

View File

@@ -36,8 +36,9 @@ using namespace Subversion;
using namespace Subversion::Internal; using namespace Subversion::Internal;
SubversionAnnotationHighlighter::SubversionAnnotationHighlighter(const ChangeNumbers &changeNumbers, SubversionAnnotationHighlighter::SubversionAnnotationHighlighter(const ChangeNumbers &changeNumbers,
QTextDocument *document) : const QColor &bg,
VcsBase::BaseAnnotationHighlighter(changeNumbers, document), QTextDocument *document) :
VcsBase::BaseAnnotationHighlighter(changeNumbers, bg, document),
m_blank(QLatin1Char(' ')) m_blank(QLatin1Char(' '))
{ {
} }

View File

@@ -43,7 +43,7 @@ class SubversionAnnotationHighlighter : public VcsBase::BaseAnnotationHighlighte
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SubversionAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit SubversionAnnotationHighlighter(const ChangeNumbers &changeNumbers, const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
private: private:

View File

@@ -117,9 +117,10 @@ VcsBase::DiffHighlighter *SubversionEditor::createDiffHighlighter() const
return new VcsBase::DiffHighlighter(filePattern); return new VcsBase::DiffHighlighter(filePattern);
} }
VcsBase::BaseAnnotationHighlighter *SubversionEditor::createAnnotationHighlighter(const QSet<QString> &changes) const VcsBase::BaseAnnotationHighlighter *SubversionEditor::createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const
{ {
return new SubversionAnnotationHighlighter(changes); return new SubversionAnnotationHighlighter(changes, bg);
} }
QString SubversionEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const QString SubversionEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const

View File

@@ -52,7 +52,7 @@ private:
virtual QSet<QString> annotationChanges() const; virtual QSet<QString> annotationChanges() const;
virtual QString changeUnderCursor(const QTextCursor &) const; virtual QString changeUnderCursor(const QTextCursor &) const;
virtual VcsBase::DiffHighlighter *createDiffHighlighter() const; virtual VcsBase::DiffHighlighter *createDiffHighlighter() const;
virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const; virtual VcsBase::BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes, const QColor &bg) const;
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const; virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
virtual QStringList annotationPreviousVersions(const QString &) const; virtual QStringList annotationPreviousVersions(const QString &) const;

View File

@@ -62,15 +62,18 @@ class BaseAnnotationHighlighterPrivate
{ {
public: public:
ChangeNumberFormatMap m_changeNumberMap; ChangeNumberFormatMap m_changeNumberMap;
QColor m_background;
}; };
} // namespace Internal } // namespace Internal
BaseAnnotationHighlighter::BaseAnnotationHighlighter(const ChangeNumbers &changeNumbers, BaseAnnotationHighlighter::BaseAnnotationHighlighter(const ChangeNumbers &changeNumbers,
QTextDocument *document) : const QColor &bg,
QTextDocument *document) :
TextEditor::SyntaxHighlighter(document), TextEditor::SyntaxHighlighter(document),
d(new Internal::BaseAnnotationHighlighterPrivate) d(new Internal::BaseAnnotationHighlighterPrivate)
{ {
d->m_background = bg;
setChangeNumbers(changeNumbers); setChangeNumbers(changeNumbers);
} }
@@ -81,6 +84,7 @@ BaseAnnotationHighlighter::~BaseAnnotationHighlighter()
void BaseAnnotationHighlighter::setChangeNumbers(const ChangeNumbers &changeNumbers) void BaseAnnotationHighlighter::setChangeNumbers(const ChangeNumbers &changeNumbers)
{ {
QColor bg = d->m_background;
d->m_changeNumberMap.clear(); d->m_changeNumberMap.clear();
if (!changeNumbers.isEmpty()) { if (!changeNumbers.isEmpty()) {
// Assign a color gradient to annotation change numbers. Give // Assign a color gradient to annotation change numbers. Give
@@ -89,10 +93,16 @@ void BaseAnnotationHighlighter::setChangeNumbers(const ChangeNumbers &changeNumb
const int step = qRound(ceil(pow(double(changeNumbers.count()), oneThird))); const int step = qRound(ceil(pow(double(changeNumbers.count()), oneThird)));
QList<QColor> colors; QList<QColor> colors;
const int factor = 255 / step; const int factor = 255 / step;
for (int i=0; i<step; ++i) int half = factor / 2;
for (int j=0; j<step; ++j) for (int i=0; i<=step; ++i)
for (int k=0; k<step; ++k) for (int j=0; j<=step; ++j)
colors.append(QColor(i*factor, j*factor, k*factor)); for (int k=0; k<=step; ++k) {
QColor c(i*factor, j*factor, k*factor);
if ((bg.red() - half > c.red() ||bg.red() + half <= c.red())
&& (bg.green() - half > c.green() || bg.green() + half <= c.green())
&& (bg.blue() - half > c.blue() || bg.blue() + half <= c.blue()))
colors.prepend(c);
}
int m = 0; int m = 0;
const int cstep = colors.count() / changeNumbers.count(); const int cstep = colors.count() / changeNumbers.count();
@@ -116,4 +126,10 @@ void BaseAnnotationHighlighter::highlightBlock(const QString &text)
setFormat(0, text.length(), it.value()); setFormat(0, text.length(), it.value());
} }
void BaseAnnotationHighlighter::setBackgroundColor(const QColor &color)
{
d->m_background = color;
setChangeNumbers(d->m_changeNumberMap.keys().toSet());
}
} // namespace VcsBase } // namespace VcsBase

View File

@@ -48,7 +48,7 @@ class VCSBASE_EXPORT BaseAnnotationHighlighter : public TextEditor::SyntaxHighli
public: public:
typedef QSet<QString> ChangeNumbers; typedef QSet<QString> ChangeNumbers;
explicit BaseAnnotationHighlighter(const ChangeNumbers &changeNumbers, explicit BaseAnnotationHighlighter(const ChangeNumbers &changeNumbers, const QColor &bg,
QTextDocument *document = 0); QTextDocument *document = 0);
virtual ~BaseAnnotationHighlighter(); virtual ~BaseAnnotationHighlighter();
@@ -56,6 +56,8 @@ public:
virtual void highlightBlock(const QString &text); virtual void highlightBlock(const QString &text);
void setBackgroundColor(const QColor &color);
private: private:
// Implement this to return the change number of a line // Implement this to return the change number of a line
virtual QString changeNumber(const QString &block) const = 0; virtual QString changeNumber(const QString &block) const = 0;

View File

@@ -605,6 +605,8 @@ public:
bool m_revertChunkEnabled; bool m_revertChunkEnabled;
bool m_mouseDragging; bool m_mouseDragging;
QList<AbstractTextCursorHandler *> m_textCursorHandlers; QList<AbstractTextCursorHandler *> m_textCursorHandlers;
QColor m_backgroundColor;
}; };
VcsBaseEditorWidgetPrivate::VcsBaseEditorWidgetPrivate(VcsBaseEditorWidget *editorWidget, VcsBaseEditorWidgetPrivate::VcsBaseEditorWidgetPrivate(VcsBaseEditorWidget *editorWidget,
@@ -1017,7 +1019,7 @@ void VcsBaseEditorWidget::slotActivateAnnotation()
ah->setChangeNumbers(changes); ah->setChangeNumbers(changes);
ah->rehighlight(); ah->rehighlight();
} else { } else {
baseTextDocument()->setSyntaxHighlighter(createAnnotationHighlighter(changes)); baseTextDocument()->setSyntaxHighlighter(createAnnotationHighlighter(changes, d->m_backgroundColor));
} }
} }
@@ -1149,6 +1151,9 @@ void VcsBaseEditorWidget::setPlainTextData(const QByteArray &data)
void VcsBaseEditorWidget::setFontSettings(const TextEditor::FontSettings &fs) void VcsBaseEditorWidget::setFontSettings(const TextEditor::FontSettings &fs)
{ {
TextEditor::BaseTextEditorWidget::setFontSettings(fs); TextEditor::BaseTextEditorWidget::setFontSettings(fs);
d->m_backgroundColor = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_TEXT))
.brushProperty(QTextFormat::BackgroundBrush).color();
if (d->m_parameters->type == DiffOutput) { if (d->m_parameters->type == DiffOutput) {
if (DiffHighlighter *highlighter = qobject_cast<DiffHighlighter*>(baseTextDocument()->syntaxHighlighter())) { if (DiffHighlighter *highlighter = qobject_cast<DiffHighlighter*>(baseTextDocument()->syntaxHighlighter())) {
static QVector<QString> categories; static QVector<QString> categories;
@@ -1162,6 +1167,11 @@ void VcsBaseEditorWidget::setFontSettings(const TextEditor::FontSettings &fs)
highlighter->setFormats(fs.toTextCharFormats(categories)); highlighter->setFormats(fs.toTextCharFormats(categories));
highlighter->rehighlight(); highlighter->rehighlight();
} }
} else if (d->m_parameters->type == AnnotateOutput) {
if (BaseAnnotationHighlighter *highlighter = qobject_cast<BaseAnnotationHighlighter *>(baseTextDocument()->syntaxHighlighter())) {
highlighter->setBackgroundColor(d->m_backgroundColor);
highlighter->rehighlight();
}
} }
} }

View File

@@ -249,7 +249,8 @@ private:
virtual QString changeUnderCursor(const QTextCursor &) const = 0; virtual QString changeUnderCursor(const QTextCursor &) const = 0;
// Factory functions for highlighters // Factory functions for highlighters
virtual DiffHighlighter *createDiffHighlighter() const = 0; virtual DiffHighlighter *createDiffHighlighter() const = 0;
virtual BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes) const = 0; virtual BaseAnnotationHighlighter *createAnnotationHighlighter(const QSet<QString> &changes,
const QColor &bg) const = 0;
// Implement to return a local file name from the diff file specification // Implement to return a local file name from the diff file specification
// (text cursor at position above change hunk) // (text cursor at position above change hunk)
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const = 0; virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileSpec) const = 0;