X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=EventParsers%2FVMGParser.cpp;fp=EventParsers%2FVMGParser.cpp;h=f8306a02e5cd7f5aec486f8157de05f4910bd4fc;hb=43c287cf53b85a8a347ae12ce8d938b256357ce3;hp=0cfda71bd4d9102d5688b52d509f30ccb27dc636;hpb=1672d85141d3ee1ac7f2996c122f3f9ed974b702;p=qwerkisync diff --git a/EventParsers/VMGParser.cpp b/EventParsers/VMGParser.cpp index 0cfda71..f8306a0 100644 --- a/EventParsers/VMGParser.cpp +++ b/EventParsers/VMGParser.cpp @@ -74,24 +74,29 @@ VMGParser::VMGParser(const Settings &settings, const QString &filename) : m_Sett EventTypes::EventFromFileList VMGParser::ParseFile(QFile &eventFile, const QList &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(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(event), 0)); + } + return retList; }