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

@@ -102,17 +102,17 @@ VCSBaseClientPrivate::VCSBaseClientPrivate(VCSBaseClient *client, VCSBaseClientS
void VCSBaseClientPrivate::statusParser(QByteArray data)
{
QList<QPair<QString, QString> > statusList;
QList<VCSBaseClient::StatusItem> lineInfoList;
QStringList rawStatusList = QTextCodec::codecForLocale()->toUnicode(data).split(QLatin1Char('\n'));
foreach (const QString &string, rawStatusList) {
QPair<QString, QString> status = m_client->parseStatusLine(string);
if (!status.first.isEmpty() && !status.second.isEmpty())
statusList.append(status);
const VCSBaseClient::StatusItem lineInfo = m_client->parseStatusLine(string);
if (!lineInfo.flags.isEmpty() && !lineInfo.file.isEmpty())
lineInfoList.append(lineInfo);
}
emit m_client->parsedStatus(statusList);
emit m_client->parsedStatus(lineInfoList);
}
void VCSBaseClientPrivate::annotateRevision(QString source, QString change, int lineNumber)
@@ -131,6 +131,15 @@ void VCSBaseClientPrivate::saveSettings()
m_clientSettings->writeSettings(m_core->settings());
}
VCSBaseClient::StatusItem::StatusItem()
{
}
VCSBaseClient::StatusItem::StatusItem(const QString &s, const QString &f) :
flags(s), file(f)
{
}
VCSBaseClient::VCSBaseClient(VCSBaseClientSettings *settings) :
d(new VCSBaseClientPrivate(this, settings))
{