Updated packaging for new 0.0.2 release.
[qwerkisync] / EventParsers / VMGParser.cpp
index 0cfda71..32bc596 100644 (file)
@@ -68,30 +68,35 @@ iEventParser *VMGParser::IsValid(const Settings &settings, QFile &eventFile)
        return false;
 }
 
-VMGParser::VMGParser(const Settings &settings, const QString &filename) : m_Settings(settings)
+VMGParser::VMGParser(const Settings &settings, const QString &/*filename*/) : m_Settings(settings)
 {
 }
 
 EventTypes::EventFromFileList VMGParser::ParseFile(QFile &eventFile, const QList<uint> &recordsToReturn)
 {
-       // VMG files are stored in Little-Endian UTF16, with no BOM.
-       QTextStream eventStream(&eventFile);
-       eventStream.setCodec("UTF-16LE");
-
-       // Parse the event
-       EventTypes::SMS *event(new EventTypes::SMS(CurrentSettings()));
-       QString lineData = eventStream.readLine();
-       EventParsers::VMGEntities::iReader* reader = EventParsers::VMGEntities::Factory::Instantiate(CurrentSettings(), lineData, NULL);
-       bool valid(NULL != reader && reader->Read(QString(""), eventStream, *event));
-       delete reader;
-       if (!valid)
-               throw std::runtime_error(QString("Unsupported format. Unable to open: %1").arg(eventFile.fileName()).toStdString());
-
-       qDebug() << "\nParsed event:";
-       qDebug() << event;
-
-       // VMGs only support single events per file, so just create the list
        EventTypes::EventFromFileList retList;
-       retList.append(EventTypes::EventFromFile(QSharedPointer<EventTypes::iEvent>(event), 0));
+
+       // VMGs only support single events per file
+       if(recordsToReturn.count() == 0 || recordsToReturn.contains(0))
+       {
+               // VMG files are stored in Little-Endian UTF16, with no BOM.
+               QTextStream eventStream(&eventFile);
+               eventStream.setCodec("UTF-16LE");
+
+               // Parse the event
+               EventTypes::SMS *event(new EventTypes::SMS(CurrentSettings()));
+               QString lineData = eventStream.readLine();
+               EventParsers::VMGEntities::iReader* reader = EventParsers::VMGEntities::Factory::Instantiate(CurrentSettings(), lineData, NULL);
+               bool valid(NULL != reader && reader->Read(QString(""), eventStream, *event));
+               delete reader;
+               if (!valid)
+                       throw std::runtime_error(QString("Unsupported format. Unable to open: %1").arg(eventFile.fileName()).toStdString());
+
+               qDebug() << "\nParsed event:";
+               qDebug() << event;
+
+               retList.append(EventTypes::EventFromFile(QSharedPointer<EventTypes::iEvent>(event), 0));
+       }
+
        return retList;
 }