X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=EventParsers%2FVMGParser.cpp;h=32bc5967dc7e0e9b79df89bfb65c10412ae85e41;hb=refs%2Fheads%2Fmaster;hp=0cfda71bd4d9102d5688b52d509f30ccb27dc636;hpb=c0bfd6ab49e36b1f96a500fced976b9eef2aec4b;p=qwerkisync diff --git a/EventParsers/VMGParser.cpp b/EventParsers/VMGParser.cpp index 0cfda71..32bc596 100644 --- a/EventParsers/VMGParser.cpp +++ b/EventParsers/VMGParser.cpp @@ -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 &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; }