forked from qt-creator/qt-creator
Bazaar: fix incomplete list of files in the diff editor
BazaarEditor::fileNameFromDiffSpecification() was not seeing all lines starting with "+++ file". Searching for "=== modified file 'file'" instead solves the problem Change-Id: Ib1d4c839543f0f8cc00ecbfaa177b369a4c20ee1 Merge-request: 330 Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> Reviewed-on: http://codereview.qt.nokia.com/78
This commit is contained in:
@@ -56,7 +56,7 @@ using namespace Bazaar;
|
|||||||
BazaarEditor::BazaarEditor(const VCSBase::VCSBaseEditorParameters *type, QWidget *parent)
|
BazaarEditor::BazaarEditor(const VCSBase::VCSBaseEditorParameters *type, QWidget *parent)
|
||||||
: VCSBase::VCSBaseEditorWidget(type, parent),
|
: VCSBase::VCSBaseEditorWidget(type, parent),
|
||||||
m_exactChangesetId(QLatin1String(Constants::CHANGESET_ID_EXACT)),
|
m_exactChangesetId(QLatin1String(Constants::CHANGESET_ID_EXACT)),
|
||||||
m_diffFileId(QLatin1String("^(=== modified file '.*'$)"))
|
m_diffFileId(QLatin1String("^=== modified file '(.*)'\\s*$"))
|
||||||
{
|
{
|
||||||
setAnnotateRevisionTextFormat(tr("Annotate %1"));
|
setAnnotateRevisionTextFormat(tr("Annotate %1"));
|
||||||
setAnnotatePreviousRevisionTextFormat(tr("Annotate parent revision %1"));
|
setAnnotatePreviousRevisionTextFormat(tr("Annotate parent revision %1"));
|
||||||
@@ -110,20 +110,10 @@ QString BazaarEditor::fileNameFromDiffSpecification(const QTextBlock &inBlock) c
|
|||||||
{
|
{
|
||||||
// Check for:
|
// Check for:
|
||||||
// === modified file 'mainwindow.cpp'
|
// === modified file 'mainwindow.cpp'
|
||||||
// --- mainwindow.cpp<tab>2011-03-28 08:12:28 +0000
|
|
||||||
// +++ mainwindow.cpp<tab>2011-03-28 08:53:55 +0000
|
|
||||||
const QString newFileIndicator = QLatin1String("+++ ");
|
|
||||||
const QChar tab = QLatin1Char('\t');
|
|
||||||
for (QTextBlock block = inBlock; block.isValid(); block = block.previous()) {
|
for (QTextBlock block = inBlock; block.isValid(); block = block.previous()) {
|
||||||
const QString line = block.text();
|
const QString line = block.text();
|
||||||
if (line.startsWith(newFileIndicator)) {
|
if (m_diffFileId.indexIn(line) != -1)
|
||||||
const int tabIndex = line.indexOf(tab);
|
return findDiffFile(m_diffFileId.cap(1), BazaarPlugin::instance()->versionControl());
|
||||||
if (tabIndex != -1) {
|
|
||||||
const QString diffFileName = line.mid(newFileIndicator.size(),
|
|
||||||
tabIndex - newFileIndicator.size());
|
|
||||||
return findDiffFile(diffFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user