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
@@ -55,6 +55,15 @@ CvsEditor::CvsEditor(const VcsBase::VcsBaseEditorParameters *type,
|
||||
{
|
||||
QTC_ASSERT(m_revisionAnnotationPattern.isValid(), return);
|
||||
QTC_ASSERT(m_revisionLogPattern.isValid(), return);
|
||||
/* Diff format:
|
||||
\code
|
||||
cvs diff -d -u -r1.1 -r1.2:
|
||||
--- mainwindow.cpp<\t>13 Jul 2009 13:50:15 -0000<tab>1.1
|
||||
+++ mainwindow.cpp<\t>14 Jul 2009 07:09:24 -0000<tab>1.2
|
||||
@@ -6,6 +6,5 @@
|
||||
\endcode
|
||||
*/
|
||||
setDiffFilePattern(QRegExp(QLatin1String("^[-+]{3} ([^\\t]+)")));
|
||||
setAnnotateRevisionTextFormat(tr("Annotate revision \"%1\""));
|
||||
}
|
||||
|
||||
@@ -113,42 +122,12 @@ QString CvsEditor::changeUnderCursor(const QTextCursor &c) const
|
||||
return QString();
|
||||
}
|
||||
|
||||
/* \code
|
||||
cvs diff -d -u -r1.1 -r1.2:
|
||||
--- mainwindow.cpp<\t>13 Jul 2009 13:50:15 -0000 <\t>1.1
|
||||
+++ mainwindow.cpp<\t>14 Jul 2009 07:09:24 -0000<\t>1.2
|
||||
@@ -6,6 +6,5 @@
|
||||
\endcode
|
||||
*/
|
||||
QRegExp CvsEditor::diffFilePattern() const
|
||||
{
|
||||
return QRegExp(QLatin1String("^[-+][-+][-+] .*1\\.[\\d\\.]+$"));
|
||||
}
|
||||
|
||||
VcsBase::BaseAnnotationHighlighter *CvsEditor::createAnnotationHighlighter(const QSet<QString> &changes,
|
||||
const QColor &bg) const
|
||||
{
|
||||
return new CvsAnnotationHighlighter(changes, bg);
|
||||
}
|
||||
|
||||
QString CvsEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) const
|
||||
{
|
||||
// "+++ mainwindow.cpp<\t>13 Jul 2009 13:50:15 -0000 1.1"
|
||||
// Go back chunks
|
||||
const QString diffIndicator = QLatin1String("+++ ");
|
||||
for (QTextBlock block = inBlock; block.isValid() ; block = block.previous()) {
|
||||
QString diffFileName = block.text();
|
||||
if (diffFileName.startsWith(diffIndicator)) {
|
||||
diffFileName.remove(0, diffIndicator.size());
|
||||
const int tabIndex = diffFileName.indexOf(QLatin1Char('\t'));
|
||||
if (tabIndex != -1)
|
||||
diffFileName.truncate(tabIndex);
|
||||
return findDiffFile(diffFileName);
|
||||
}
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
QStringList CvsEditor::annotationPreviousVersions(const QString &revision) const
|
||||
{
|
||||
if (isFirstRevision(revision))
|
||||
|
||||
Reference in New Issue
Block a user