VCS[Bazaar, Mercurial]: Add diff formatting, revert chunk.

Add toolbar controls for ignore-whitespace to editors
and wire 'Revert Chunk' context menus.

Fix Bazaar diff interaction (find the file on doubleclick).

Introduce initializeDiffEditor to BaseClient and wire the editors
there.
This commit is contained in:
Friedemann Kleint
2011-03-28 11:59:26 +02:00
parent 82ce382ffc
commit d7cddd4e17
10 changed files with 246 additions and 34 deletions

View File

@@ -262,11 +262,12 @@ void VCSBaseClient::annotate(const QString &workingDir, const QString &file,
enqueueJob(job);
}
void VCSBaseClient::diff(const QString &workingDir, const QStringList &files)
void VCSBaseClient::diff(const QString &workingDir, const QStringList &files,
const ExtraCommandOptions &extraOptions)
{
const QString vcsCmdString = vcsCommandString(DiffCommand);
QStringList args;
args << vcsCmdString << diffArguments(files);
args << vcsCmdString << diffArguments(files, extraOptions);
const QString kind = vcsEditorKind(DiffCommand);
const QString id = VCSBase::VCSBaseEditorWidget::getTitleId(workingDir, files);
const QString title = vcsEditorTitle(vcsCmdString, id);
@@ -274,6 +275,7 @@ void VCSBaseClient::diff(const QString &workingDir, const QStringList &files)
VCSBase::VCSBaseEditorWidget *editor = createVCSEditor(kind, title, source, true,
vcsCmdString.toLatin1().constData(), id);
editor->setDiffBaseDirectory(workingDir);
initializeDiffEditor(workingDir, files, extraOptions, editor);
QSharedPointer<VCSJob> job(new VCSJob(workingDir, args, editor));
enqueueJob(job);
@@ -444,6 +446,12 @@ void VCSBaseClient::settingsChanged()
}
}
void VCSBaseClient::initializeDiffEditor(const QString & /* workingDir */, const QStringList & /* files */,
const ExtraCommandOptions & /* extraOptions */,
VCSBaseEditorWidget *)
{
}
QString VCSBaseClient::vcsEditorTitle(const QString &vcsCmd, const QString &sourceId) const
{
return QFileInfo(d->m_clientSettings.binary()).baseName() +