Mercurial > hg > easyhg
annotate statparser.cpp @ 88:c5e34ed5b791
* Start work on new file-status widget
author | Chris Cannam |
---|---|
date | Tue, 23 Nov 2010 11:33:15 +0000 |
parents | 89f793fbedda |
children |
rev | line source |
---|---|
Chris@74 | 1 #include "statparser.h" |
Chris@74 | 2 |
Chris@86 | 3 #include "debug.h" |
Chris@86 | 4 |
Chris@74 | 5 #include <QMap> |
Chris@74 | 6 |
Chris@74 | 7 StatParser::StatParser(QString text) |
Chris@74 | 8 { |
Chris@74 | 9 text.replace("\r\n", "\n"); |
Chris@74 | 10 |
Chris@74 | 11 QMap<QChar, QStringList *> buckets; |
Chris@74 | 12 buckets['M'] = &modified; |
Chris@74 | 13 buckets['A'] = &added; |
Chris@74 | 14 buckets['R'] = &removed; |
Chris@74 | 15 buckets['!'] = &missing; |
Chris@74 | 16 buckets['?'] = &unknown; |
Chris@74 | 17 |
Chris@74 | 18 QStringList lines = text.split("\n", QString::SkipEmptyParts); |
Chris@74 | 19 foreach (QString line, lines) { |
Chris@86 | 20 if (line.length() < 3 || line[1] != ' ') { |
Chris@86 | 21 continue; |
Chris@86 | 22 } |
Chris@74 | 23 QChar tag = line[0]; |
Chris@74 | 24 QString file = line.right(line.length() - 2); |
Chris@74 | 25 if (buckets.contains(tag)) { |
Chris@74 | 26 buckets[tag]->push_back(file); |
Chris@74 | 27 } |
Chris@74 | 28 } |
Chris@86 | 29 |
Chris@86 | 30 DEBUG << "StatParser: " << modified.size() << " modified, " << added.size() |
Chris@86 | 31 << " added, " << removed.size() << " removed, " << missing.size() |
Chris@86 | 32 << " missing, " << unknown.size() << " unknown" << endl; |
Chris@74 | 33 } |