From: Jamie Thompson Date: Sun, 2 Oct 2011 21:56:24 +0000 (+0100) Subject: Added passing through name to number lookup for resolving numbers in exported events. X-Git-Url: http://git.maemo.org/git/?p=qwerkisync;a=commitdiff_plain;h=6e8e3d1a87a2b784abd818caeacb713f0cc2b582 Added passing through name to number lookup for resolving numbers in exported events. --- diff --git a/EventParsers/VMGEntities/VBody.cpp b/EventParsers/VMGEntities/VBody.cpp index 667b5ef..923fe07 100644 --- a/EventParsers/VMGEntities/VBody.cpp +++ b/EventParsers/VMGEntities/VBody.cpp @@ -43,7 +43,7 @@ VBody::~VBody() { } -void VBody::Write(QTextStream &stream, const EventTypes::SMS &event) +void VBody::Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup) { stream << "BEGIN:" << getTagName() << endl; diff --git a/EventParsers/VMGEntities/VBody.h b/EventParsers/VMGEntities/VBody.h index 8eb84c0..9eda87e 100644 --- a/EventParsers/VMGEntities/VBody.h +++ b/EventParsers/VMGEntities/VBody.h @@ -43,7 +43,7 @@ namespace EventParsers ~VBody(); virtual bool Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event); - virtual void Write(QTextStream &stream, const EventTypes::SMS &event); + virtual void Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup); protected: virtual const char *getTagName() const { return "VBODY"; } diff --git a/EventParsers/VMGEntities/VCalendar.cpp b/EventParsers/VMGEntities/VCalendar.cpp index db7a1b0..91062cf 100644 --- a/EventParsers/VMGEntities/VCalendar.cpp +++ b/EventParsers/VMGEntities/VCalendar.cpp @@ -56,7 +56,7 @@ VCalendar::~VCalendar() { } -void VCalendar::Write(QTextStream &stream, const EventTypes::SMS &event) +void VCalendar::Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup) { //stream << "BEGIN:" << getTagName() << "\n"; diff --git a/EventParsers/VMGEntities/VCalendar.h b/EventParsers/VMGEntities/VCalendar.h index de6a323..488f92f 100644 --- a/EventParsers/VMGEntities/VCalendar.h +++ b/EventParsers/VMGEntities/VCalendar.h @@ -40,7 +40,7 @@ namespace EventParsers ~VCalendar (); virtual bool Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event); - virtual void Write(QTextStream &stream, const EventTypes::SMS &event); + virtual void Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup); protected: virtual const char *getTagName() const { return "VCALENDAR"; } diff --git a/EventParsers/VMGEntities/VCard.cpp b/EventParsers/VMGEntities/VCard.cpp index c043eb9..f3ddedf 100644 --- a/EventParsers/VMGEntities/VCard.cpp +++ b/EventParsers/VMGEntities/VCard.cpp @@ -21,6 +21,7 @@ #include "Attachment.h" #include "Factory.h" #include "EventTypes/SMS.h" +#include "NumberToNameLookup.h" #include "VBody.h" #include "VEnvelope.h" #include "VMessage.h" @@ -56,12 +57,20 @@ VCard::~VCard() { } -void VCard::Write(QTextStream &stream, const EventTypes::SMS &event) +void VCard::Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup) { stream << "BEGIN:" << getTagName() << "\n"; stream << "VERSION:" << m_Version << "\n"; - //stream << "N:" << (m_Target == VCARD_LOCAL ? "" : event.Name()) << "\n"; + stream << "N:"; + if (m_Target != VCARD_LOCAL) + { + qDebug() << event.Tel(); + qDebug() << numberToNameLookup.ContactDetails().count(); + if(numberToNameLookup.ContactDetails().contains(event.Tel())) + stream << numberToNameLookup.ContactDetails().value(event.Tel()).second; + } + stream << "\n"; stream << "TEL:" << (m_Target == VCARD_LOCAL ? "" : event.Tel()) << "\n"; stream << "END:" << getTagName() << "\n"; diff --git a/EventParsers/VMGEntities/VCard.h b/EventParsers/VMGEntities/VCard.h index 0386c97..0b4e051 100644 --- a/EventParsers/VMGEntities/VCard.h +++ b/EventParsers/VMGEntities/VCard.h @@ -46,7 +46,7 @@ namespace EventParsers ~VCard(); virtual bool Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event); - virtual void Write(QTextStream &stream, const EventTypes::SMS &event); + virtual void Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup); protected: virtual const char *getTagName() const { return "VCARD"; } diff --git a/EventParsers/VMGEntities/VEnvelope.cpp b/EventParsers/VMGEntities/VEnvelope.cpp index aa8c10c..cf6b89e 100644 --- a/EventParsers/VMGEntities/VEnvelope.cpp +++ b/EventParsers/VMGEntities/VEnvelope.cpp @@ -44,12 +44,12 @@ VEnvelope::~VEnvelope() m_ContentWriters.empty(); } -void VEnvelope::Write(QTextStream &stream, const EventTypes::SMS &event) +void VEnvelope::Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup) { stream << "BEGIN:" << getTagName() << "\n"; foreach(iWriter *contentWriter, m_ContentWriters) - contentWriter->Write(stream, event); + contentWriter->Write(stream, event, numberToNameLookup); stream << "END:" << getTagName() << "\n"; } diff --git a/EventParsers/VMGEntities/VEnvelope.h b/EventParsers/VMGEntities/VEnvelope.h index cff710f..ebef831 100644 --- a/EventParsers/VMGEntities/VEnvelope.h +++ b/EventParsers/VMGEntities/VEnvelope.h @@ -43,7 +43,7 @@ namespace EventParsers ~VEnvelope(); virtual bool Read(const QString & initialLine, QTextStream & stream, EventTypes::SMS & event); - virtual void Write(QTextStream & stream, const EventTypes::SMS & event); + virtual void Write(QTextStream & stream, const EventTypes::SMS & event, const NumberToNameLookup &numberToNameLookup); QList & getContentWriters() { return m_ContentWriters; } diff --git a/EventParsers/VMGEntities/VMessage.cpp b/EventParsers/VMGEntities/VMessage.cpp index 9e80739..6e1141a 100644 --- a/EventParsers/VMGEntities/VMessage.cpp +++ b/EventParsers/VMGEntities/VMessage.cpp @@ -142,7 +142,7 @@ bool VMessage::Read(const QString &initialLine, QTextStream &stream, EventTypes: return true; } -void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event) +void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event, const NumberToNameLookup &numberToNameLookup) { stream << "BEGIN:VMSG\n"; stream << "VERSION:" << m_Version << "\n"; @@ -155,7 +155,7 @@ void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event) // Add in the empty vcard for outgoing messages if(event.Destination() == EventTypes::SMS::SENT) { - VCard(CurrentSettings(), this, 2.1, VCard::VCARD_LOCAL).Write(stream, event); + VCard(CurrentSettings(), this, 2.1, VCard::VCARD_LOCAL).Write(stream, event, numberToNameLookup); msgEnvelope.getContentWriters().append(new VCard(CurrentSettings(), &msgEnvelope, 2.1, VCard::VCARD_REMOTE)); @@ -165,12 +165,12 @@ void VMessage::Write(QTextStream &stream, const EventTypes::SMS &event) } else { - VCard(CurrentSettings(), this, 2.1, VCard::VCARD_REMOTE).Write(stream, event); + VCard(CurrentSettings(), this, 2.1, VCard::VCARD_REMOTE).Write(stream, event, numberToNameLookup); msgEnvelope.getContentWriters().append(new VBody(CurrentSettings(), &msgEnvelope)); } - msgEnvelope.Write(stream, event); + msgEnvelope.Write(stream, event, numberToNameLookup); stream << "END:VMSG\n"; } diff --git a/EventParsers/VMGEntities/VMessage.h b/EventParsers/VMGEntities/VMessage.h index b302c5d..600fca9 100644 --- a/EventParsers/VMGEntities/VMessage.h +++ b/EventParsers/VMGEntities/VMessage.h @@ -46,7 +46,7 @@ namespace EventParsers ~VMessage(); virtual bool Read(const QString & initialLine, QTextStream& stream, EventTypes::SMS & event); - virtual void Write(QTextStream & stream, const EventTypes::SMS & event); + virtual void Write(QTextStream & stream, const EventTypes::SMS & event, const NumberToNameLookup &numberToNameLookup); protected: virtual const char * getTagName() const { return "VMSG"; } diff --git a/EventParsers/VMGEntities/iWriter.h b/EventParsers/VMGEntities/iWriter.h index 45184a5..d735df5 100644 --- a/EventParsers/VMGEntities/iWriter.h +++ b/EventParsers/VMGEntities/iWriter.h @@ -20,6 +20,7 @@ #define EVENTPARSERS_VMGEntities_IWRITER_H namespace EventTypes { class SMS; } +class NumberToNameLookup; class QTextStream; @@ -31,7 +32,7 @@ namespace EventParsers { public: virtual ~iWriter() {}; - virtual void Write(QTextStream& stream, const EventTypes::SMS& event) = 0; + virtual void Write(QTextStream& stream, const EventTypes::SMS& event, const NumberToNameLookup &numberToNameLookup) = 0; }; } } diff --git a/EventProcessors/Writer.cpp b/EventProcessors/Writer.cpp index 4f3f4ba..90dc1aa 100644 --- a/EventProcessors/Writer.cpp +++ b/EventProcessors/Writer.cpp @@ -23,9 +23,14 @@ using namespace EventProcessors; +Writer::Writer(Settings &settings, const NumberToNameLookup &numberToNamelookup) + : m_Settings(settings), m_NumberToNameLookup(numberToNameLookup) +{ +} + void Writer::Process(EventTypes::iEvent &event) { - event.Export(CurrentSettings().Directory()); + event.Export(CurrentSettings().Directory(), NumberToNameLookup()); } void Writer::EmitEventProcessed(int eventsProcessed, int totalEvents) diff --git a/EventProcessors/Writer.h b/EventProcessors/Writer.h index eb78417..56d5332 100644 --- a/EventProcessors/Writer.h +++ b/EventProcessors/Writer.h @@ -21,6 +21,7 @@ #include "iEventProcessor.h" +class NumberToNameLookup; class Settings; #include @@ -32,17 +33,17 @@ namespace EventProcessors Q_OBJECT public: - Writer(Settings &settings) - : m_Settings(settings) - {} + Writer(Settings &settings, const NumberToNameLookup &numberToNamelookup); - const Settings & CurrentSettings() { return m_Settings; } + const Settings & CurrentSettings() const { return m_Settings; } + const NumberToNameLookup & NumberToNameLookup() const { return m_NumberToNameLookup; } virtual void Process(EventTypes::iEvent &event); virtual void EmitEventProcessed(int eventsProcessed, int totalEvents); private: const Settings & m_Settings; + const NumberToNameLookup &numberToNameLookup; signals: void EventProcessed(int current, int total); diff --git a/EventTypes/PhoneCall.cpp b/EventTypes/PhoneCall.cpp index 2575247..be07b32 100644 --- a/EventTypes/PhoneCall.cpp +++ b/EventTypes/PhoneCall.cpp @@ -141,7 +141,7 @@ RTComElEvent * PhoneCall::toRTComEvent(const NumberToNameLookup &numberToNameLoo return event; } -void PhoneCall::Export(const QString &baseDirectory) const +void PhoneCall::Export(const QString &baseDirectory, const NumberToNameLookup &numberToNameLookup) const { // // Build the path and ensure it exists... // QString eventFilename(baseDirectory); diff --git a/EventTypes/PhoneCall.h b/EventTypes/PhoneCall.h index 223f30d..e805927 100644 --- a/EventTypes/PhoneCall.h +++ b/EventTypes/PhoneCall.h @@ -61,7 +61,7 @@ namespace EventTypes virtual AttachmentCollection & Attachments() { return m_Attachments; } public: - virtual void Export(const QString &baseDirectory) const; + virtual void Export(const QString &baseDirectory, const NumberToNameLookup &numberToNameLookup) const; PhoneCall(const Settings &settings, const RTComElEvent& event, const QList attachments = QList()); virtual RTComElEvent * toRTComEvent(const NumberToNameLookup &numberToNameLookup) const; diff --git a/EventTypes/SMS.cpp b/EventTypes/SMS.cpp index d325a56..e147c8d 100644 --- a/EventTypes/SMS.cpp +++ b/EventTypes/SMS.cpp @@ -127,7 +127,7 @@ RTComElEvent * SMS::toRTComEvent(const NumberToNameLookup &numberToNameLookup) c return event; } -void SMS::Export(const QString &baseDirectory) const +void SMS::Export(const QString &baseDirectory, const NumberToNameLookup &numberToNameLookup) const { // Build the path and ensure it exists... QString eventFilename(baseDirectory); @@ -147,7 +147,7 @@ void SMS::Export(const QString &baseDirectory) const stream.setCodec("UTF-16LE"); EventParsers::VMGEntities::VMessage writer(CurrentSettings(), NULL, 1.1); - writer.Write(stream, *this); + writer.Write(stream, *this, numberToNameLookup); //stream << "Test"; //stream.setCodec(oldCodec); stream.flush(); diff --git a/EventTypes/SMS.h b/EventTypes/SMS.h index ce79556..403a820 100644 --- a/EventTypes/SMS.h +++ b/EventTypes/SMS.h @@ -73,7 +73,7 @@ namespace EventTypes virtual AttachmentCollection & Attachments() { return m_Attachments; } public: - virtual void Export(const QString &baseDirectory) const; + virtual void Export(const QString &baseDirectory, const NumberToNameLookup &numberToNameLookup) const; SMS(const Settings &settings, const RTComElEvent& event, const QList attachments = QList()); virtual RTComElEvent * toRTComEvent(const NumberToNameLookup &numberToNameLookup) const; diff --git a/EventTypes/iEvent.h b/EventTypes/iEvent.h index 0891e81..36aebdb 100644 --- a/EventTypes/iEvent.h +++ b/EventTypes/iEvent.h @@ -24,6 +24,7 @@ namespace DBBackends { class iDBBackend; } class AttachmentCollection; +class NumberToNameLookup; class QDateTime; class QString; @@ -37,7 +38,7 @@ namespace EventTypes virtual const DBBackends::iDBBackend &DB() const =0; - virtual void Export(const QString &baseDirectory) const =0; + virtual void Export(const QString &baseDirectory, const NumberToNameLookup &numberToNameLookup) const =0; virtual const QDateTime Timestamp() const =0; virtual const AttachmentCollection & Attachments() const =0; diff --git a/SyncerThread.cpp b/SyncerThread.cpp index 754123b..07858e8 100644 --- a/SyncerThread.cpp +++ b/SyncerThread.cpp @@ -92,7 +92,8 @@ void SyncerThread::run() QDir().rmpath(CurrentSettings().Directory()); DBBackends::AllBackends allBackends(CurrentSettings()); - EventProcessors::Writer eventWriter(CurrentSettings()); + NumberToNameLookup lookup; // Prepare the telephone-address book ID lookup. + EventProcessors::Writer eventWriter(CurrentSettings(), lookup); QObject::connect(&eventWriter, SIGNAL(EventProcessed(int,int)), this, SIGNAL(EventProcessed(int,int))); allBackends.Process(eventWriter); }