Added passing through name to number lookup for resolving numbers in exported events.
authorJamie Thompson <jamie@.(none)>
Sun, 2 Oct 2011 21:56:24 +0000 (22:56 +0100)
committerJamie Thompson <jamie@.(none)>
Sun, 2 Oct 2011 21:56:24 +0000 (22:56 +0100)
19 files changed:
EventParsers/VMGEntities/VBody.cpp
EventParsers/VMGEntities/VBody.h
EventParsers/VMGEntities/VCalendar.cpp
EventParsers/VMGEntities/VCalendar.h
EventParsers/VMGEntities/VCard.cpp
EventParsers/VMGEntities/VCard.h
EventParsers/VMGEntities/VEnvelope.cpp
EventParsers/VMGEntities/VEnvelope.h
EventParsers/VMGEntities/VMessage.cpp
EventParsers/VMGEntities/VMessage.h
EventParsers/VMGEntities/iWriter.h
EventProcessors/Writer.cpp
EventProcessors/Writer.h
EventTypes/PhoneCall.cpp
EventTypes/PhoneCall.h
EventTypes/SMS.cpp
EventTypes/SMS.h
EventTypes/iEvent.h
SyncerThread.cpp

index 667b5ef..923fe07 100644 (file)
@@ -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;
 
index 8eb84c0..9eda87e 100644 (file)
@@ -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"; }
index db7a1b0..91062cf 100644 (file)
@@ -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";
 
index de6a323..488f92f 100644 (file)
@@ -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"; }
index c043eb9..f3ddedf 100644 (file)
@@ -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";
index 0386c97..0b4e051 100644 (file)
@@ -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"; }
index aa8c10c..cf6b89e 100644 (file)
@@ -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";
 }
index cff710f..ebef831 100644 (file)
@@ -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<iWriter*> & getContentWriters() { return m_ContentWriters; }
 
index 9e80739..6e1141a 100644 (file)
@@ -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";
 }
index b302c5d..600fca9 100644 (file)
@@ -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"; }
index 45184a5..d735df5 100644 (file)
@@ -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;
                };
        }
 }
index 4f3f4ba..90dc1aa 100644 (file)
 
 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)
index eb78417..56d5332 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "iEventProcessor.h"
 
+class NumberToNameLookup;
 class Settings;
 
 #include <QObject>
@@ -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);
index 2575247..be07b32 100644 (file)
@@ -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);
index 223f30d..e805927 100644 (file)
@@ -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<RTComElAttachment*> attachments = QList<RTComElAttachment*>());
                virtual RTComElEvent * toRTComEvent(const NumberToNameLookup &numberToNameLookup) const;
 
index d325a56..e147c8d 100644 (file)
@@ -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();
index ce79556..403a820 100644 (file)
@@ -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<RTComElAttachment*> attachments = QList<RTComElAttachment*>());
                virtual RTComElEvent * toRTComEvent(const NumberToNameLookup &numberToNameLookup) const;
 
index 0891e81..36aebdb 100644 (file)
@@ -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;
index 754123b..07858e8 100644 (file)
@@ -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);
                }