annotate statparser.cpp @ 86:89f793fbedda

* More on "Open" logic; fix to StatParser, and start introducing it
author Chris Cannam
date Mon, 22 Nov 2010 20:17:14 +0000
parents 10eb97683aa9
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 }