Early out parsing if we're only processing incoming OR outgoing.
[qwerkisync] / EventParsers / CSVSymbianEventLogParser.cpp
index b73d7df..43142f1 100644 (file)
@@ -29,6 +29,7 @@
 #include <stdexcept>
 
 using namespace EventParsers;
+using EventTypes::PhoneCall;
 
 class SortByValueDesc
 {
@@ -175,27 +176,38 @@ EventTypes::EventFromFileList CSVSymbianEventLogParser::ParseFile(QFile &eventFi
                        {
                                qDebug() << "Parsing event from line #" << lineNumber << ". Values: " << lineValues;
 
-                               QDateTime eTime(QDateTime::fromString(lineValues.at(m_HeadingIndices.value("etime")), "dd/MM/yyyy hh:mm:ss"));
-                               int duration(lineValues.at(m_HeadingIndices.value("duration")).toInt(&bOK));
-                               if(!bOK)
+                               QDateTime eTime(QDateTime::fromString(lineValues.at(m_HeadingIndices.value("etime")), "dd/MM/yyyy h:mm:ss ap"));
                                Settings::eDirection direction(lineValues.at(m_HeadingIndices.value("direction")) == "0"
                                        ? Settings::INCOMING
                                        : Settings::OUTGOING);
+
+                               // We only care about the requested directions...
+                               if(CurrentSettings().ShouldProcess(direction, EventTypes::EVENT_TYPE_CALL))
                                {
-                                       qDebug() << QString("Unable to parse '%1' as a duration. Skipping record.")
-                                                                       .arg(lineValues.at(m_HeadingIndices.value("duration")));
-                                       continue;
+                                       int duration(lineValues.at(m_HeadingIndices.value("duration")).toInt(&bOK));
+                                       if(!bOK)
+                                       {
+                                               qDebug() << QString("Unable to parse '%1' as a duration. Skipping record.")
+                                                                               .arg(lineValues.at(m_HeadingIndices.value("duration")));
+                                               continue;
+                                       }
+                                       QString number(ExtractString(lineValues.at(m_HeadingIndices.value("number"))));
+                                       // TODO: Not currently used...but almost certainly contains SIP call data
+                                       QString data(ExtractString(lineValues.at(m_HeadingIndices.value("data"))));
+
+                                       if(number.trimmed().length() == 0)
+                                       {
+                                               qDebug() << "Empty tel!";
+                                       }
+
+                                       QSharedPointer<EventTypes::iEvent> newEvent(new PhoneCall(
+                                               CurrentSettings(),
+                                               direction,
+                                               eTime,
+                                               number,
+                                               duration));
+                                       fileEvents.append(EventTypes::EventFromFile(newEvent, recordNumber));
                                }
-                               QString number(ExtractString(lineValues.at(m_HeadingIndices.value("number"))));
-                               QString data(ExtractString(lineValues.at(m_HeadingIndices.value("data"))));
-
-                               QSharedPointer<EventTypes::iEvent> newEvent(new EventTypes::PhoneCall(
-                                       CurrentSettings(),
-                                       direction,
-                                       eTime,
-                                       number,
-                                       duration));
-                               fileEvents.append(EventTypes::EventFromFile(newEvent, recordNumber));
                        }
                }