Mercurial > hg > easyhg
comparison src/logparser.cpp @ 370:b9c153e00e84
Move source files to src/
author | Chris Cannam |
---|---|
date | Thu, 24 Mar 2011 10:27:51 +0000 |
parents | logparser.cpp@8fd71f570884 |
children | 005633eed862 |
comparison
equal
deleted
inserted
replaced
369:19cce6d2c470 | 370:b9c153e00e84 |
---|---|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ | |
2 | |
3 /* | |
4 EasyMercurial | |
5 | |
6 Based on HgExplorer by Jari Korhonen | |
7 Copyright (c) 2010 Jari Korhonen | |
8 Copyright (c) 2011 Chris Cannam | |
9 Copyright (c) 2011 Queen Mary, University of London | |
10 | |
11 This program is free software; you can redistribute it and/or | |
12 modify it under the terms of the GNU General Public License as | |
13 published by the Free Software Foundation; either version 2 of the | |
14 License, or (at your option) any later version. See the file | |
15 COPYING included with this distribution for more information. | |
16 */ | |
17 | |
18 #include "logparser.h" | |
19 | |
20 #include "debug.h" | |
21 | |
22 #include <QStringList> | |
23 #include <QRegExp> | |
24 | |
25 LogParser::LogParser(QString text, QString separator) : | |
26 m_text(text), m_sep(separator) | |
27 { | |
28 m_text.replace("\r\n", "\n"); | |
29 } | |
30 | |
31 QStringList LogParser::split() | |
32 { | |
33 return m_text.split("\n\n", QString::SkipEmptyParts); | |
34 } | |
35 | |
36 LogList LogParser::parse() | |
37 { | |
38 LogList results; | |
39 QRegExp re(QString("^(\\w+)\\s*%1\\s+([^\\s].*)$").arg(m_sep)); | |
40 QStringList entries = split(); | |
41 foreach (QString entry, entries) { | |
42 LogEntry dictionary; | |
43 QStringList lines = entry.split('\n'); | |
44 foreach (QString line, lines) { | |
45 if (re.indexIn(line) == 0) { | |
46 QString key = re.cap(1); | |
47 QString value = re.cap(2); | |
48 dictionary[key.trimmed()] = value; | |
49 } | |
50 } | |
51 results.push_back(dictionary); | |
52 } | |
53 return results; | |
54 } |