vcsbase: refactor status parsing in VCSBaseClient

This impacts Bazaar and Mercurial plugins

Change-Id: Ife1e83083b268e597928fbae30378e488e31ee96
Merge-request: 358
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/3335
This commit is contained in:
cerf
2011-08-22 15:33:03 +00:00
committed by Tobias Hunger
parent 96819ddb7a
commit 3907824b4d
14 changed files with 82 additions and 63 deletions

View File

@@ -55,7 +55,7 @@ MercurialCommitWidget *CommitEditor::commitWidget()
void CommitEditor::setFields(const QFileInfo &repositoryRoot, const QString &branch,
const QString &userName, const QString &email,
const QList<QPair<QString, QString> > &repoStatus)
const QList<VCSBase::VCSBaseClient::StatusItem> &repoStatus)
{
MercurialCommitWidget *mercurialWidget = commitWidget();
if (!mercurialWidget)
@@ -66,23 +66,22 @@ void CommitEditor::setFields(const QFileInfo &repositoryRoot, const QString &bra
fileModel = new VCSBase::SubmitFileModel(this);
//TODO Messy tidy this up
typedef QPair<QString, QString> StringStringPair;
QStringList shouldTrack;
foreach (const StringStringPair &status, repoStatus) {
if (status.first == QLatin1String("Untracked"))
shouldTrack.append(status.second);
foreach (const VCSBase::VCSBaseClient::StatusItem &item, repoStatus) {
if (item.flags == QLatin1String("Untracked"))
shouldTrack.append(item.file);
else
fileModel->addFile(status.second, status.first, false);
fileModel->addFile(item.file, item.flags, false);
}
VCSBase::VCSBaseSubmitEditor::filterUntrackedFilesOfProject(repositoryRoot.absoluteFilePath(),
&shouldTrack);
foreach (const QString &track, shouldTrack) {
foreach (const StringStringPair &status, repoStatus) {
if (status.second == track)
fileModel->addFile(status.second, status.first, false);
foreach (const VCSBase::VCSBaseClient::StatusItem &item, repoStatus) {
if (item.file == track)
fileModel->addFile(item.file, item.flags, false);
}
}