forked from qt-creator/qt-creator
VCS: Refactor fileNameFromDiffSpecification
Use diff file pattern to match file name. Avoid duplication. Include unit tests for Git Change-Id: Ib68a08368270a27976a3e16bdd1cb219a52b8889 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
57ee50d52f
commit
7b39f41c05
@@ -52,11 +52,13 @@ using namespace Bazaar;
|
||||
BazaarEditor::BazaarEditor(const VcsBase::VcsBaseEditorParameters *type, QWidget *parent)
|
||||
: VcsBase::VcsBaseEditorWidget(type, parent),
|
||||
m_changesetId(QLatin1String(Constants::CHANGESET_ID)),
|
||||
m_exactChangesetId(QLatin1String(Constants::CHANGESET_ID_EXACT)),
|
||||
m_diffFileId(QLatin1String("^=== [a-z]+ [a-z]+ '(.*)'\\s*"))
|
||||
m_exactChangesetId(QLatin1String(Constants::CHANGESET_ID_EXACT))
|
||||
{
|
||||
setAnnotateRevisionTextFormat(tr("Annotate %1"));
|
||||
setAnnotatePreviousRevisionTextFormat(tr("Annotate parent revision %1"));
|
||||
// Diff format:
|
||||
// === <change> <file|dir> 'mainwindow.cpp'
|
||||
setDiffFilePattern(QRegExp(QLatin1String("^=== [a-z]+ [a-z]+ '(.+)'\\s*")));
|
||||
}
|
||||
|
||||
QSet<QString> BazaarEditor::annotationChanges() const
|
||||
@@ -111,25 +113,8 @@ QString BazaarEditor::changeUnderCursor(const QTextCursor &cursorIn) const
|
||||
return QString();
|
||||
}
|
||||
|
||||
QRegExp BazaarEditor::diffFilePattern() const
|
||||
{
|
||||
return m_diffFileId;
|
||||
}
|
||||
|
||||
VcsBase::BaseAnnotationHighlighter *BazaarEditor::createAnnotationHighlighter(const QSet<QString> &changes,
|
||||
const QColor &bg) const
|
||||
{
|
||||
return new BazaarAnnotationHighlighter(changes, bg);
|
||||
}
|
||||
|
||||
QString BazaarEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const
|
||||
{
|
||||
// Check for:
|
||||
// === <change> <file|dir> 'mainwindow.cpp'
|
||||
for (QTextBlock block = inBlock; block.isValid(); block = block.previous()) {
|
||||
const QString line = block.text();
|
||||
if (m_diffFileId.indexIn(line) != -1)
|
||||
return findDiffFile(m_diffFileId.cap(1));
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user