From 481f623cf8772e9c990ee3a3eb322238ffa62d6e Mon Sep 17 00:00:00 2001
From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com>
Date: Thu, 18 Sep 2014 20:11:12 +0200
Subject: [PATCH] Keep alternative URI in memory

---
 src/phonenumber.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/phonenumber.cpp b/src/phonenumber.cpp
index 0b47ef5c..59a141c5 100644
--- a/src/phonenumber.cpp
+++ b/src/phonenumber.cpp
@@ -53,6 +53,7 @@ public:
    QString            m_PrimaryName_cache;
    URI                m_Uri              ;
    PhoneNumber::Type  m_Type             ;
+   QList<URI>         m_lOtherURIs       ;
 
    //Parents
    QList<PhoneNumber*> m_lParents;
@@ -517,6 +518,16 @@ bool PhoneNumber::merge(PhoneNumber* other)
    //Replace the D-Pointer
    this->d = other->d;
    d->m_lParents << this;
+
+   //In case the URI is different, take the longest and most precise
+   //TODO keep a log of all URI used
+   if (currentD->m_Uri.size() > other->d->m_Uri.size()) {
+      other->d->m_lOtherURIs << other->d->m_Uri;
+      other->d->m_Uri = currentD->m_Uri;
+   }
+   else
+      other->d->m_lOtherURIs << currentD->m_Uri;
+
    emit changed();
    emit rebased(other);
 
-- 
GitLab