From 42c6e56803aeb1e8f904e66e14580ac7df808eb3 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Mon, 9 Feb 2015 22:25:37 +0000 Subject: [PATCH] Rename Contact to Person The rational for this is that the Contact class was sometime used for things that has nothing to do with contacts, such as user profile or network buddy presence. The Contact object also isn't enough to contact someone, the PhoneNumber concept (soon to be renamed ContactMethod) is used for this. Refs #65335 --- CMakeLists.txt | 12 +- src/bookmarkmodel.cpp | 5 +- src/bookmarkmodel.h | 4 +- src/call.cpp | 12 +- src/call.h | 2 +- src/callmodel.cpp | 10 +- src/collectioneditor.hpp | 2 +- src/collectioninterface.cpp | 2 +- src/collectioninterface.h | 4 +- src/collectionmanagerinterface.h | 6 +- src/collectionmodel.cpp | 10 +- src/collectionmodel.h | 4 +- src/contactproxymodel.cpp | 106 ++++++------ src/contactproxymodel.h | 6 +- .../presencecollectionextension.cpp | 6 +- src/historymodel.cpp | 8 +- src/instantmessagingmodel.cpp | 4 +- src/itembase.hpp | 1 + src/{contact.cpp => person.cpp} | 162 +++++++++--------- src/{contact.h => person.h} | 40 ++--- src/{contactmodel.cpp => personmodel.cpp} | 144 ++++++++-------- src/{contactmodel.h => personmodel.h} | 46 ++--- src/phonedirectorymodel.cpp | 24 +-- src/phonedirectorymodel.h | 4 +- src/phonenumber.cpp | 24 +-- src/phonenumber.h | 10 +- src/private/phonedirectorymodel_p.h | 2 +- src/profilemodel.cpp | 121 +++++++------ src/profilemodel.h | 4 +- ...kend.cpp => transitionalpersonbackend.cpp} | 76 ++++---- ...tbackend.h => transitionalpersonbackend.h} | 10 +- src/vcardutils.cpp | 2 +- src/vcardutils.h | 4 +- src/visitors/phonenumberselector.h | 6 +- src/visitors/pixmapmanipulationvisitor.cpp | 2 +- src/visitors/pixmapmanipulationvisitor.h | 4 +- src/visitors/profilepersistervisitor.cpp | 2 +- src/visitors/profilepersistervisitor.h | 4 +- 38 files changed, 445 insertions(+), 450 deletions(-) rename src/{contact.cpp => person.cpp} (72%) rename src/{contact.h => person.h} (88%) rename src/{contactmodel.cpp => personmodel.cpp} (61%) rename src/{contactmodel.h => personmodel.h} (79%) rename src/{transitionalcontactbackend.cpp => transitionalpersonbackend.cpp} (50%) rename src/{transitionalcontactbackend.h => transitionalpersonbackend.h} (90%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 937e8d30..5f8b2430 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,7 +167,7 @@ SET( libringclient_LIB_SRCS src/call.cpp src/uri.cpp src/account.cpp - src/contact.cpp + src/person.cpp src/phonenumber.cpp src/numbercategory.cpp src/collectionextensioninterface.cpp @@ -198,7 +198,7 @@ SET( libringclient_LIB_SRCS src/ringtonemodel.cpp src/lastusednumbermodel.cpp src/securityvalidationmodel.cpp - src/contactmodel.cpp + src/personmodel.cpp src/collectionmodel.cpp src/networkinterfacemodel.cpp src/certificatemodel.cpp @@ -220,7 +220,7 @@ SET( libringclient_LIB_SRCS #Data backends - src/transitionalcontactbackend.cpp + src/transitionalpersonbackend.cpp src/collectioninterface.cpp src/collectioneditor.cpp @@ -256,7 +256,7 @@ SET( libringclient_LIB_HDRS src/call.h src/callmodel.h src/historymodel.h - src/contact.h + src/person.h src/collectioninterface.h src/collectioninterface.hpp src/bookmarkmodel.h @@ -279,8 +279,8 @@ SET( libringclient_LIB_HDRS src/lastusednumbermodel.h src/securityvalidationmodel.h src/certificate.h - src/contactmodel.h - src/transitionalcontactbackend.h + src/personmodel.h + src/transitionalpersonbackend.h src/collectionmodel.h src/hookmanager.h src/uri.h diff --git a/src/bookmarkmodel.cpp b/src/bookmarkmodel.cpp index 681064e9..7d017274 100644 --- a/src/bookmarkmodel.cpp +++ b/src/bookmarkmodel.cpp @@ -28,7 +28,7 @@ #include "phonenumber.h" #include "callmodel.h" #include "call.h" -#include "contact.h" +#include "person.h" #include "uri.h" #include "mime.h" #include "collectioneditor.h" @@ -60,9 +60,6 @@ public: QHash<QString,BookmarkTopLevelItem*> m_hCategories ; QStringList m_lMimes ; - //Getters - QModelIndex getContactIndex(Contact* ct) const; - //Helpers QVariant commonCallInfo(NumberTreeBackend* call, int role = Qt::DisplayRole) const; QString category(NumberTreeBackend* number) const; diff --git a/src/bookmarkmodel.h b/src/bookmarkmodel.h index bd6d2327..10e1506e 100644 --- a/src/bookmarkmodel.h +++ b/src/bookmarkmodel.h @@ -28,9 +28,9 @@ #include "collectioninterface.h" #include "typedefs.h" #include "phonenumber.h" -// #include "contact.h" +// #include "person.h" // #include "call.h" -class ContactBackend; +class PersonBackend; class NumberTreeBackend; class BookmarkModelPrivate; diff --git a/src/call.cpp b/src/call.cpp index 8dc38882..6cc6131a 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -32,7 +32,7 @@ #include "dbus/callmanager.h" #include "collectioninterface.h" -#include "contact.h" +#include "person.h" #include "uri.h" #include "account.h" #include "accountmodel.h" @@ -47,7 +47,7 @@ #include "video/renderer.h" #include "tlsmethodmodel.h" #include "audio/settings.h" -#include "contactmodel.h" +#include "personmodel.h" #include "imconversationmanager.h" //Track where state changes are performed on finished (over, error, failed) calls @@ -407,9 +407,9 @@ Call* Call::buildHistoryCall(const QMap<QString,QString>& hc) // const QString& contactUsed = hc[ Call::HistoryMapFields::CONTACT_USED ]; //TODO const QString& contactUid = hc[ Call::HistoryMapFields::CONTACT_UID ]; - Contact* ct = nullptr; + Person* ct = nullptr; if (!hc[ Call::HistoryMapFields::CONTACT_UID].isEmpty()) - ct = ContactModel::instance()->getPlaceHolder(contactUid.toAscii()); + ct = PersonModel::instance()->getPlaceHolder(contactUid.toAscii()); Account* acc = AccountModel::instance()->getById(accId); PhoneNumber* nb = PhoneDirectoryModel::instance()->getNumber(number,ct,acc); @@ -1252,7 +1252,7 @@ void CallPrivate::call() //Warning: m_pDialNumber can become nullptr when linking directly callManager.placeCall(m_Account->id(), m_CallId, m_pDialNumber->uri()); - if (ContactModel::instance()->hasBackends()) { + if (PersonModel::instance()->hasBackends()) { if (q_ptr->peerPhoneNumber()->contact()) m_PeerName = q_ptr->peerPhoneNumber()->contact()->formattedName(); } @@ -1602,7 +1602,7 @@ void CallPrivate::initTimer() ///Common source for model data roles QVariant Call::roleData(int role) const { - const Contact* ct = peerPhoneNumber()?peerPhoneNumber()->contact():nullptr; + const Person* ct = peerPhoneNumber()?peerPhoneNumber()->contact():nullptr; switch (role) { case Call::Role::Name: case Qt::DisplayRole: diff --git a/src/call.h b/src/call.h index 32574d7b..83fa377d 100644 --- a/src/call.h +++ b/src/call.h @@ -72,7 +72,7 @@ public: ///Model roles enum Role { - Name = 100, /*!< The peer name from SIP or Contacts */ + Name = 100, /*!< The peer name from SIP or Persons */ Number = 101, /*!< The peer URI / phone number (as text) */ Direction2 = 102, /*!< */ Date = 103, /*!< The date when the call started */ diff --git a/src/callmodel.cpp b/src/callmodel.cpp index ece56a15..5ca120e3 100644 --- a/src/callmodel.cpp +++ b/src/callmodel.cpp @@ -39,7 +39,7 @@ #include "dbus/videomanager.h" #include "historymodel.h" #include "visitors/phonenumberselector.h" -#include "contactmodel.h" +#include "personmodel.h" //Other #include <unistd.h> @@ -930,12 +930,12 @@ bool CallModel::dropMimeData(const QMimeData* mimedata, Qt::DropAction action, i createConferenceFromCall(newCall,target); } else if (mimedata->hasFormat(RingMimes::CONTACT)) { - const QByteArray encodedContact = mimedata->data(RingMimes::CONTACT); + const QByteArray encodedPerson = mimedata->data(RingMimes::CONTACT); Call* target = getCall(targetIdx); - qDebug() << "Contact" << encodedContact << "on call" << target; + qDebug() << "Contact" << encodedPerson << "on call" << target; if (PhoneNumberSelector::defaultVisitor()) { const PhoneNumber* number = PhoneNumberSelector::defaultVisitor()->getNumber( - ContactModel::instance()->getContactByUid(encodedContact)); + PersonModel::instance()->getPersonByUid(encodedPerson)); if (!number->uri().isEmpty()) { Call* newCall = dialingCall(); newCall->setDialNumber(number); @@ -943,7 +943,7 @@ bool CallModel::dropMimeData(const QMimeData* mimedata, Qt::DropAction action, i createConferenceFromCall(newCall,target); } else { - qDebug() << "Contact not found"; + qDebug() << "Person not found"; } } else diff --git a/src/collectioneditor.hpp b/src/collectioneditor.hpp index 8516c96c..9c379bf1 100644 --- a/src/collectioneditor.hpp +++ b/src/collectioneditor.hpp @@ -22,7 +22,7 @@ template<typename T> CollectionEditor<T>::CollectionEditor(CollectionMediator<T>* m) : CollectionEditorBase(m->model()), m_pMediator(m) { - + Q_ASSERT(m); } template<typename T> diff --git a/src/collectioninterface.cpp b/src/collectioninterface.cpp index 931d72af..f6a8ba2e 100644 --- a/src/collectioninterface.cpp +++ b/src/collectioninterface.cpp @@ -21,7 +21,7 @@ #include "collectioninterface.h" //Ring library -#include "contact.h" +#include "person.h" #include "call.h" #include "phonenumber.h" #include "collectioneditor.h" diff --git a/src/collectioninterface.h b/src/collectioninterface.h index c18a3172..2c8af924 100644 --- a/src/collectioninterface.h +++ b/src/collectioninterface.h @@ -39,8 +39,8 @@ template<typename T> class ItemBase; * * The class need to be extended with a template constructor: * - * MyBackend::MyBackend<Contact>(CollectionMediator<Contact>* mediator, CollectionInterface* parent = nullptr) : - * CollectionMediator<Contact*>(mediator,parent) {} + * MyBackend::MyBackend<Person>(CollectionMediator<Person>* mediator, CollectionInterface* parent = nullptr) : + * CollectionMediator<Person>(mediator,parent) {} * * Each backends also need to implement that constructor or they wont load. */ diff --git a/src/collectionmanagerinterface.h b/src/collectionmanagerinterface.h index 53b9974a..8744b94e 100644 --- a/src/collectionmanagerinterface.h +++ b/src/collectionmanagerinterface.h @@ -51,13 +51,13 @@ class CollectionManagerInterfacePrivate; * All implementation should define their item backend type in the * class declaration like: * - * template <typename T > using CollectionMediator = CollectionMediator<Contact>; + * template <typename T > using CollectionMediator = CollectionMediator<Person>; * * And individual backends should extend that alias. For example: * - * class MyContactSourceBackend : public CollectionInterface { + * class MyPersonSourceBackend : public CollectionInterface { * public: - * MyContactSourceBackend(CollectionInterfaceMediator* mediator) + * MyPersonSourceBackend(CollectionInterfaceMediator* mediator) * }; * * The mediator is used to bridge the model and the item backends. The mediator diff --git a/src/collectionmodel.cpp b/src/collectionmodel.cpp index 54148867..dbaee48a 100644 --- a/src/collectionmodel.cpp +++ b/src/collectionmodel.cpp @@ -57,7 +57,7 @@ CollectionModelPrivate::CollectionModelPrivate(CollectionModel* parent) : QObjec CollectionModel::CollectionModel(QObject* parent) : QAbstractTableModel(parent), d_ptr(new CollectionModelPrivate(this)) { - connect(ContactModel::instance(),SIGNAL(newBackendAdded(CollectionInterface*)),d_ptr.data(),SLOT(slotUpdate())); + connect(PersonModel::instance(),SIGNAL(newBackendAdded(CollectionInterface*)),d_ptr.data(),SLOT(slotUpdate())); load(); } @@ -113,8 +113,8 @@ int CollectionModel::rowCount (const QModelIndex& parent) const static bool init = false; //FIXME this doesn't allow dynamic backends static int result = 0; if (!init) { - for(int i=0;i<ContactModel::instance()->backends().size();i++) - result += ContactModel::instance()->backends()[i]->parent()==nullptr?1:0; + for(int i=0;i<PersonModel::instance()->backends().size();i++) + result += PersonModel::instance()->backends()[i]->parent()==nullptr?1:0; init = true; } return result; @@ -205,11 +205,11 @@ QModelIndex CollectionModel::index( int row, int column, const QModelIndex& pare item = d_ptr->m_lTopLevelBackends[row]; else { - if (row >= ContactModel::instance()->backends().size()) + if (row >= PersonModel::instance()->backends().size()) return QModelIndex(); item = new CollectionModelPrivate::ProxyItem(); - item->backend = ContactModel::instance()->backends()[row]; + item->backend = PersonModel::instance()->backends()[row]; d_ptr->m_lTopLevelBackends << item; } item->row = row; diff --git a/src/collectionmodel.h b/src/collectionmodel.h index ca4c26dd..1c871ff6 100644 --- a/src/collectionmodel.h +++ b/src/collectionmodel.h @@ -19,12 +19,12 @@ #define COLLECTION_MODEL_H #include "typedefs.h" -#include "contact.h" +#include "person.h" #include <QtCore/QAbstractItemModel> #include "collectionmanagerinterface.h" -#include "contactmodel.h" +#include "personmodel.h" #include "collectioninterface.h" //Ring diff --git a/src/contactproxymodel.cpp b/src/contactproxymodel.cpp index b25dc5b1..51a08f5d 100644 --- a/src/contactproxymodel.cpp +++ b/src/contactproxymodel.cpp @@ -29,10 +29,10 @@ #include "phonenumber.h" #include "phonedirectorymodel.h" #include "historytimecategorymodel.h" -#include "contact.h" +#include "person.h" #include "uri.h" #include "mime.h" -#include "contactmodel.h" +#include "personmodel.h" class ContactTreeNode; @@ -69,9 +69,9 @@ class ContactTopLevelItem : public CategorizedCompositeNode { class ContactTreeNode : public CategorizedCompositeNode { public: - ContactTreeNode(Contact* ct, ContactProxyModel* parent); + ContactTreeNode(Person* ct, ContactProxyModel* parent); virtual ~ContactTreeNode(); - Contact* m_pContact; + Person* m_pContact; ContactTopLevelItem* m_pParent3; uint m_Index; virtual QObject* getSelf() const override; @@ -85,10 +85,10 @@ public: ContactProxyModelPrivate(ContactProxyModel* parent); //Helpers - QString category(const Contact* ct) const; + QString category(const Person* ct) const; //Attributes - QHash<Contact*, time_t> m_hContactByDate ; + QHash<Person*, time_t> m_hContactByDate ; QVector<ContactTopLevelItem*> m_lCategoryCounter ; QHash<QString,ContactTopLevelItem*> m_hCategories ; int m_Role ; @@ -103,7 +103,7 @@ private: public Q_SLOTS: void reloadCategories(); - void slotContactAdded(Contact* c); + void slotContactAdded(Person* c); }; ContactTopLevelItem::~ContactTopLevelItem() { @@ -119,7 +119,7 @@ QObject* ContactTopLevelItem::getSelf() const return nullptr; } -ContactTreeNode::ContactTreeNode(Contact* ct, ContactProxyModel* parent) : CategorizedCompositeNode(CategorizedCompositeNode::Type::CONTACT), +ContactTreeNode::ContactTreeNode(Person* ct, ContactProxyModel* parent) : CategorizedCompositeNode(CategorizedCompositeNode::Type::CONTACT), m_pContact(ct),m_pParent3(nullptr),m_Index(-1) { m_pBinder = new ContactTreeBinder(parent,this); @@ -193,18 +193,18 @@ ContactProxyModel::ContactProxyModel(int role, bool showAll) : QAbstractItemMode d_ptr->m_ShowAll = showAll; d_ptr->m_lCategoryCounter.reserve(32); d_ptr->m_lMimes << RingMimes::PLAIN_TEXT << RingMimes::PHONENUMBER; - connect(ContactModel::instance(),SIGNAL(reloaded()),d_ptr.data(),SLOT(reloadCategories())); - connect(ContactModel::instance(),SIGNAL(newContactAdded(Contact*)),d_ptr.data(),SLOT(slotContactAdded(Contact*))); + connect(PersonModel::instance(),SIGNAL(reloaded()),d_ptr.data(),SLOT(reloadCategories())); + connect(PersonModel::instance(),SIGNAL(newContactAdded(Person*)),d_ptr.data(),SLOT(slotContactAdded(Person*))); QHash<int, QByteArray> roles = roleNames(); - roles.insert(ContactModel::Role::Organization ,QByteArray("organization") ); - roles.insert(ContactModel::Role::Group ,QByteArray("group") ); - roles.insert(ContactModel::Role::Department ,QByteArray("department") ); - roles.insert(ContactModel::Role::PreferredEmail ,QByteArray("preferredEmail") ); - roles.insert(ContactModel::Role::FormattedLastUsed ,QByteArray("formattedLastUsed")); - roles.insert(ContactModel::Role::IndexedLastUsed ,QByteArray("indexedLastUsed") ); - roles.insert(ContactModel::Role::DatedLastUsed ,QByteArray("datedLastUsed") ); - roles.insert(ContactModel::Role::Filter ,QByteArray("filter") ); - roles.insert(ContactModel::Role::DropState ,QByteArray("dropState") ); + roles.insert(PersonModel::Role::Organization ,QByteArray("organization") ); + roles.insert(PersonModel::Role::Group ,QByteArray("group") ); + roles.insert(PersonModel::Role::Department ,QByteArray("department") ); + roles.insert(PersonModel::Role::PreferredEmail ,QByteArray("preferredEmail") ); + roles.insert(PersonModel::Role::FormattedLastUsed ,QByteArray("formattedLastUsed")); + roles.insert(PersonModel::Role::IndexedLastUsed ,QByteArray("indexedLastUsed") ); + roles.insert(PersonModel::Role::DatedLastUsed ,QByteArray("datedLastUsed") ); + roles.insert(PersonModel::Role::Filter ,QByteArray("filter") ); + roles.insert(PersonModel::Role::DropState ,QByteArray("dropState") ); setRoleNames(roles); } @@ -242,11 +242,11 @@ void ContactProxyModelPrivate::reloadCategories() } q_ptr->endRemoveRows(); m_lCategoryCounter.clear(); - foreach(const Contact* cont, ContactModel::instance()->contacts()) { + foreach(const Person* cont, PersonModel::instance()->contacts()) { if (cont) { const QString val = category(cont); ContactTopLevelItem* item = getContactTopLevelItem(val); - ContactTreeNode* contactNode = new ContactTreeNode(const_cast<Contact*>(cont),q_ptr); + ContactTreeNode* contactNode = new ContactTreeNode(const_cast<Person*>(cont),q_ptr); contactNode->m_pParent3 = item; contactNode->m_Index = item->m_lChildren.size(); item->m_lChildren << contactNode; @@ -256,7 +256,7 @@ void ContactProxyModelPrivate::reloadCategories() emit q_ptr->layoutChanged(); } -void ContactProxyModelPrivate::slotContactAdded(Contact* c) +void ContactProxyModelPrivate::slotContactAdded(Person* c) { if (!c) return; const QString val = category(c); @@ -275,7 +275,7 @@ bool ContactProxyModel::setData( const QModelIndex& index, const QVariant &value { if (index.isValid() && index.parent().isValid()) { CategorizedCompositeNode* modelItem = (CategorizedCompositeNode*)index.internalPointer(); - if (role == ContactModel::Role::DropState) { + if (role == PersonModel::Role::DropState) { modelItem->setDropState(value.toInt()); emit dataChanged(index, index); return true; @@ -295,38 +295,38 @@ QVariant ContactProxyModel::data( const QModelIndex& index, int role) const switch (role) { case Qt::DisplayRole: return static_cast<const ContactTopLevelItem*>(modelItem)->m_Name; - case ContactModel::Role::IndexedLastUsed: - return index.child(0,0).data(ContactModel::Role::IndexedLastUsed); - case ContactModel::Role::Active: + case PersonModel::Role::IndexedLastUsed: + return index.child(0,0).data(PersonModel::Role::IndexedLastUsed); + case PersonModel::Role::Active: return true; default: break; } break; case CategorizedCompositeNode::Type::CONTACT:{ - const Contact* c = static_cast<Contact*>(modelItem->getSelf()); + const Person* c = static_cast<Person*>(modelItem->getSelf()); switch (role) { case Qt::DisplayRole: return QVariant(c->formattedName()); - case ContactModel::Role::Organization: + case PersonModel::Role::Organization: return QVariant(c->organization()); - case ContactModel::Role::Group: + case PersonModel::Role::Group: return QVariant(c->group()); - case ContactModel::Role::Department: + case PersonModel::Role::Department: return QVariant(c->department()); - case ContactModel::Role::PreferredEmail: + case PersonModel::Role::PreferredEmail: return QVariant(c->preferredEmail()); - case ContactModel::Role::DropState: + case PersonModel::Role::DropState: return QVariant(modelItem->dropState()); - case ContactModel::Role::FormattedLastUsed: + case PersonModel::Role::FormattedLastUsed: return QVariant(HistoryTimeCategoryModel::timeToHistoryCategory(c->phoneNumbers().lastUsedTimeStamp())); - case ContactModel::Role::IndexedLastUsed: + case PersonModel::Role::IndexedLastUsed: return QVariant((int)HistoryTimeCategoryModel::timeToHistoryConst(c->phoneNumbers().lastUsedTimeStamp())); - case ContactModel::Role::Active: + case PersonModel::Role::Active: return c->isActive(); - case ContactModel::Role::DatedLastUsed: + case PersonModel::Role::DatedLastUsed: return QVariant(QDateTime::fromTime_t( c->phoneNumbers().lastUsedTimeStamp())); - case ContactModel::Role::Filter: + case PersonModel::Role::Filter: return c->filterString(); default: break; @@ -338,7 +338,7 @@ QVariant ContactProxyModel::data( const QModelIndex& index, int role) const case CategorizedCompositeNode::Type::BOOKMARK: default: switch (role) { - case ContactModel::Role::Active: + case PersonModel::Role::Active: return true; } break; @@ -366,7 +366,7 @@ bool ContactProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction actio CategorizedCompositeNode* modelItem = (CategorizedCompositeNode*)targetIdx.internalPointer(); switch (modelItem->type()) { case CategorizedCompositeNode::Type::CONTACT: { - const Contact* ct = static_cast<Contact*>(modelItem->getSelf()); + const Person* ct = static_cast<Person*>(modelItem->getSelf()); if (ct) { switch(ct->phoneNumbers().size()) { case 0: //Do nothing when there is no phone numbers @@ -381,7 +381,7 @@ bool ContactProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction actio } } break; case CategorizedCompositeNode::Type::NUMBER: { - const Contact::PhoneNumbers nbs = *static_cast<Contact::PhoneNumbers*>(modelItem); + const Person::PhoneNumbers nbs = *static_cast<Person::PhoneNumbers*>(modelItem); const PhoneNumber* nb = nbs[row]; if (nb) { call->setTransferNumber(nb->uri()); @@ -408,7 +408,7 @@ int ContactProxyModel::rowCount( const QModelIndex& parent ) const case CategorizedCompositeNode::Type::TOP_LEVEL: return static_cast<const ContactTopLevelItem*>(parentNode)->m_lChildren.size(); case CategorizedCompositeNode::Type::CONTACT: { - const Contact* ct = static_cast<Contact*>(parentNode->getSelf()); + const Person* ct = static_cast<Person*>(parentNode->getSelf()); const int size = ct->phoneNumbers().size(); //Do not return the number if there is only one, it will be drawn part of the contact return size==1?0:size; @@ -471,9 +471,9 @@ QModelIndex ContactProxyModel::index( int row, int column, const QModelIndex& pa break; case CategorizedCompositeNode::Type::CONTACT: { const ContactTreeNode* ctn = (ContactTreeNode*)parentNode; - const Contact* ct = (Contact*)ctn->getSelf() ; + const Person* ct = (Person*)ctn->getSelf() ; if (ct->phoneNumbers().size()>row) { - const_cast<Contact::PhoneNumbers*>(&ct->phoneNumbers())->setParentNode((CategorizedCompositeNode*)ctn); + const_cast<Person::PhoneNumbers*>(&ct->phoneNumbers())->setParentNode((CategorizedCompositeNode*)ctn); return createIndex(row,column,(void*)&ct->phoneNumbers()); } } @@ -505,7 +505,7 @@ QMimeData* ContactProxyModel::mimeData(const QModelIndexList &indexes) const switch(modelItem->type()) { case CategorizedCompositeNode::Type::CONTACT: { //Contact - const Contact* ct = static_cast<Contact*>(modelItem->getSelf()); + const Person* ct = static_cast<Person*>(modelItem->getSelf()); if (ct) { if (ct->phoneNumbers().size() == 1) { mimeData->setData(RingMimes::PHONENUMBER , ct->phoneNumbers()[0]->toHash().toUtf8()); @@ -517,7 +517,7 @@ QMimeData* ContactProxyModel::mimeData(const QModelIndexList &indexes) const case CategorizedCompositeNode::Type::NUMBER: { //Phone number const QString text = data(index, Qt::DisplayRole).toString(); - const Contact::PhoneNumbers nbs = *static_cast<Contact::PhoneNumbers*>(index.internalPointer()); + const Person::PhoneNumbers nbs = *static_cast<Person::PhoneNumbers*>(index.internalPointer()); const PhoneNumber* nb = nbs[index.row()]; mimeData->setData(RingMimes::PLAIN_TEXT , text.toUtf8()); mimeData->setData(RingMimes::PHONENUMBER, nb->toHash().toUtf8()); @@ -549,30 +549,30 @@ int ContactProxyModel::acceptedPayloadTypes() ****************************************************************************/ -QString ContactProxyModelPrivate::category(const Contact* ct) const { +QString ContactProxyModelPrivate::category(const Person* ct) const { if (!ct) return QString(); QString cat; switch (m_Role) { - case ContactModel::Role::Organization: + case PersonModel::Role::Organization: cat = ct->organization(); break; - case ContactModel::Role::Group: + case PersonModel::Role::Group: cat = ct->group(); break; - case ContactModel::Role::Department: + case PersonModel::Role::Department: cat = ct->department(); break; - case ContactModel::Role::PreferredEmail: + case PersonModel::Role::PreferredEmail: cat = ct->preferredEmail(); break; - case ContactModel::Role::FormattedLastUsed: + case PersonModel::Role::FormattedLastUsed: cat = HistoryTimeCategoryModel::timeToHistoryCategory(ct->phoneNumbers().lastUsedTimeStamp()); break; - case ContactModel::Role::IndexedLastUsed: + case PersonModel::Role::IndexedLastUsed: cat = QString::number((int)HistoryTimeCategoryModel::timeToHistoryConst(ct->phoneNumbers().lastUsedTimeStamp())); break; - case ContactModel::Role::DatedLastUsed: + case PersonModel::Role::DatedLastUsed: cat = QDateTime::fromTime_t(ct->phoneNumbers().lastUsedTimeStamp()).toString(); break; default: diff --git a/src/contactproxymodel.h b/src/contactproxymodel.h index 70af7d0c..a33bc18f 100644 --- a/src/contactproxymodel.h +++ b/src/contactproxymodel.h @@ -24,8 +24,8 @@ //Ring #include "typedefs.h" -#include "contact.h" -class ContactModel; +#include "person.h" +class PersonModel; class ContactTreeNode; class TopLevelItem; class ContactTreeBinder; @@ -38,7 +38,7 @@ class LIB_EXPORT ContactProxyModel : public QAbstractItemModel Q_OBJECT #pragma GCC diagnostic pop public: - friend class ContactModel; + friend class PersonModel; friend class ContactTreeNode; friend class ContactTreeBinder; explicit ContactProxyModel(int role = Qt::DisplayRole, bool showAll = false); diff --git a/src/extensions/presencecollectionextension.cpp b/src/extensions/presencecollectionextension.cpp index d529fe02..06659759 100644 --- a/src/extensions/presencecollectionextension.cpp +++ b/src/extensions/presencecollectionextension.cpp @@ -18,7 +18,7 @@ #include "presencecollectionextension.h" #include "collectioninterface.h" #include "phonenumber.h" -#include "contact.h" +#include "person.h" #include "presencestatusmodel.h" PresenceCollectionExtension::PresenceCollectionExtension(QObject* parent) : @@ -51,7 +51,7 @@ bool PresenceCollectionExtension::setData(CollectionInterface* backend, const QM if (index.isValid() && role == Qt::CheckStateRole) { switch(value.toInt()){ case Qt::Checked: - foreach(Contact* c, backend->items<Contact>()) { + foreach(Person* c, backend->items<Person>()) { foreach(PhoneNumber* n,c->phoneNumbers()) { n->setTracked(true); } @@ -60,7 +60,7 @@ bool PresenceCollectionExtension::setData(CollectionInterface* backend, const QM emit dataChanged(index); break; case Qt::Unchecked: - foreach(Contact* c, backend->items<Contact>()) { + foreach(Person* c, backend->items<Person>()) { foreach(PhoneNumber* n,c->phoneNumbers()) { n->setTracked(false); } diff --git a/src/historymodel.cpp b/src/historymodel.cpp index 5955d61d..aca3c2f9 100644 --- a/src/historymodel.cpp +++ b/src/historymodel.cpp @@ -29,7 +29,7 @@ #include "dbus/callmanager.h" #include "dbus/configurationmanager.h" #include "call.h" -#include "contact.h" +#include "person.h" #include "phonenumber.h" #include "callmodel.h" #include "collectioneditor.h" @@ -292,9 +292,9 @@ void HistoryModel::add(Call* call) return; } -// if (!m_HaveContactModel && call->contactBackend()) { +// if (!m_HavePersonModel && call->contactBackend()) { // connect(((QObject*)call->contactBackend()),SIGNAL(collectionChanged()),this,SLOT(reloadCategories())); -// m_HaveContactModel = true; +// m_HavePersonModel = true; // }//TODO implement reordering emit newHistoryCall(call); @@ -570,7 +570,7 @@ bool HistoryModel::dropMimeData(const QMimeData *mime, Qt::DropAction action, in Q_UNUSED(action) setData(parentIdx,-1,Call::Role::DropState); QByteArray encodedPhoneNumber = mime->data( RingMimes::PHONENUMBER ); - QByteArray encodedContact = mime->data( RingMimes::CONTACT ); + QByteArray encodedPerson = mime->data( RingMimes::CONTACT ); if (parentIdx.isValid() && mime->hasFormat( RingMimes::CALLID)) { QByteArray encodedCallId = mime->data( RingMimes::CALLID ); diff --git a/src/instantmessagingmodel.cpp b/src/instantmessagingmodel.cpp index fd8415ba..518dccc6 100644 --- a/src/instantmessagingmodel.cpp +++ b/src/instantmessagingmodel.cpp @@ -20,7 +20,7 @@ #include "callmodel.h" #include "dbus/callmanager.h" #include "call.h" -#include "contact.h" +#include "person.h" #include "phonenumber.h" #include "private/instantmessagingmodel_p.h" @@ -73,7 +73,7 @@ QVariant InstantMessagingModel::data( const QModelIndex& idx, int role) const case InstantMessagingModel::Role::IMAGE: { if (d_ptr->m_lImages.find(idx) != d_ptr->m_lImages.end()) return d_ptr->m_lImages[idx]; - const Contact* c = d_ptr->m_pCall->peerPhoneNumber()->contact(); + const Person* c = d_ptr->m_pCall->peerPhoneNumber()->contact(); if (c && c->photo().isValid()) { return c->photo(); } diff --git a/src/itembase.hpp b/src/itembase.hpp index 2acb06b8..e3fafe16 100644 --- a/src/itembase.hpp +++ b/src/itembase.hpp @@ -23,6 +23,7 @@ class ItemBasePrivate { public: + ItemBasePrivate() : m_pBackend(nullptr){} CollectionInterface* m_pBackend; }; diff --git a/src/contact.cpp b/src/person.cpp similarity index 72% rename from src/contact.cpp rename to src/person.cpp index e5718240..f7577090 100644 --- a/src/contact.cpp +++ b/src/person.cpp @@ -18,12 +18,12 @@ ***************************************************************************/ //Parent -#include "contact.h" +#include "person.h" //Ring library #include "phonenumber.h" #include "collectioninterface.h" -#include "transitionalcontactbackend.h" +#include "transitionalpersonbackend.h" #include "account.h" #include "vcardutils.h" #include "numbercategorymodel.h" @@ -42,75 +42,75 @@ public: QString type; }; -Contact::Address::Address() : d_ptr(new AddressPrivate()) +Person::Address::Address() : d_ptr(new AddressPrivate()) { } -QString Contact::Address::addressLine() const +QString Person::Address::addressLine() const { return d_ptr->addressLine; } -QString Contact::Address::city() const +QString Person::Address::city() const { return d_ptr->city; } -QString Contact::Address::zipCode() const +QString Person::Address::zipCode() const { return d_ptr->zipCode; } -QString Contact::Address::state() const +QString Person::Address::state() const { return d_ptr->state; } -QString Contact::Address::country() const +QString Person::Address::country() const { return d_ptr->country; } -QString Contact::Address::type() const +QString Person::Address::type() const { return d_ptr->type; } -void Contact::Address::setAddressLine(const QString& value) +void Person::Address::setAddressLine(const QString& value) { d_ptr->addressLine = value; } -void Contact::Address::setCity(const QString& value) +void Person::Address::setCity(const QString& value) { d_ptr->city = value; } -void Contact::Address::setZipCode(const QString& value) +void Person::Address::setZipCode(const QString& value) { d_ptr->zipCode = value; } -void Contact::Address::setState(const QString& value) +void Person::Address::setState(const QString& value) { d_ptr->state = value; } -void Contact::Address::setCountry(const QString& value) +void Person::Address::setCountry(const QString& value) { d_ptr->country = value; } -void Contact::Address::setType(const QString& value) +void Person::Address::setType(const QString& value) { d_ptr->type = value; } -class ContactPrivate { +class PersonPrivate { public: - ContactPrivate(Contact* contact); - ~ContactPrivate(); + PersonPrivate(Person* contact); + ~PersonPrivate(); QString m_FirstName ; QString m_SecondName ; QString m_NickName ; @@ -122,10 +122,10 @@ public: QString m_Group ; QString m_Department ; bool m_DisplayPhoto ; - Contact::PhoneNumbers m_Numbers ; + Person::PhoneNumbers m_Numbers ; bool m_Active ; bool m_isPlaceHolder ; - QList<Contact::Address*> m_lAddresses ; + QList<Person::Address*> m_lAddresses ; QHash<QString, QString> m_lCustomAttributes; //Cache @@ -134,7 +134,7 @@ public: QString filterString(); //Helper code to help handle multiple parents - QList<Contact*> m_lParents; + QList<Person*> m_lParents; //As a single D-Pointer can have multiple parent (when merged), all emit need //to use a proxy to make sure everybody is notified @@ -145,7 +145,7 @@ public: void phoneNumberCountAboutToChange(int,int); }; -QString ContactPrivate::filterString() +QString PersonPrivate::filterString() { if (m_CachedFilterString.size()) return m_CachedFilterString; @@ -165,77 +165,77 @@ QString ContactPrivate::filterString() return m_CachedFilterString; } -void ContactPrivate::changed() +void PersonPrivate::changed() { m_CachedFilterString.clear(); - foreach (Contact* c,m_lParents) { + foreach (Person* c,m_lParents) { emit c->changed(); } } -void ContactPrivate::presenceChanged( PhoneNumber* n ) +void PersonPrivate::presenceChanged( PhoneNumber* n ) { - foreach (Contact* c,m_lParents) { + foreach (Person* c,m_lParents) { emit c->presenceChanged(n); } } -void ContactPrivate::statusChanged ( bool s ) +void PersonPrivate::statusChanged ( bool s ) { - foreach (Contact* c,m_lParents) { + foreach (Person* c,m_lParents) { emit c->statusChanged(s); } } -void ContactPrivate::phoneNumberCountChanged(int n,int o) +void PersonPrivate::phoneNumberCountChanged(int n,int o) { - foreach (Contact* c,m_lParents) { + foreach (Person* c,m_lParents) { emit c->phoneNumberCountChanged(n,o); } } -void ContactPrivate::phoneNumberCountAboutToChange(int n,int o) +void PersonPrivate::phoneNumberCountAboutToChange(int n,int o) { - foreach (Contact* c,m_lParents) { + foreach (Person* c,m_lParents) { emit c->phoneNumberCountAboutToChange(n,o); } } -ContactPrivate::ContactPrivate(Contact* contact) : +PersonPrivate::PersonPrivate(Person* contact) : m_Numbers(contact),m_DisplayPhoto(false),m_Active(true) { } -ContactPrivate::~ContactPrivate() +PersonPrivate::~PersonPrivate() { } -Contact::PhoneNumbers::PhoneNumbers(Contact* parent) : QVector<PhoneNumber*>(),CategorizedCompositeNode(CategorizedCompositeNode::Type::NUMBER), +Person::PhoneNumbers::PhoneNumbers(Person* parent) : QVector<PhoneNumber*>(),CategorizedCompositeNode(CategorizedCompositeNode::Type::NUMBER), m_pParent2(parent) { } -Contact::PhoneNumbers::PhoneNumbers(Contact* parent, const QVector<PhoneNumber*>& list) +Person::PhoneNumbers::PhoneNumbers(Person* parent, const QVector<PhoneNumber*>& list) : QVector<PhoneNumber*>(list),CategorizedCompositeNode(CategorizedCompositeNode::Type::NUMBER),m_pParent2(parent) { } -Contact* Contact::PhoneNumbers::contact() const +Person* Person::PhoneNumbers::contact() const { return m_pParent2; } ///Constructor -Contact::Contact(CollectionInterface* parent): ItemBase<QObject>(parent!=nullptr?((QAbstractItemModel*)parent->model()):((QAbstractItemModel*)TransitionalContactBackend::instance())), - d_ptr(new ContactPrivate(this)) +Person::Person(CollectionInterface* parent): ItemBase<QObject>(parent?parent->model():TransitionalPersonBackend::instance()->model()), + d_ptr(new PersonPrivate(this)) { - setBackend(parent?parent:TransitionalContactBackend::instance()); + setBackend(parent?parent:TransitionalPersonBackend::instance()); d_ptr->m_isPlaceHolder = false; d_ptr->m_lParents << this; } ///Destructor -Contact::~Contact() +Person::~Person() { //Unregister itself from the D-Pointer list d_ptr->m_lParents.removeAll(this); @@ -246,72 +246,72 @@ Contact::~Contact() } ///Get the phone number list -const Contact::PhoneNumbers& Contact::phoneNumbers() const +const Person::PhoneNumbers& Person::phoneNumbers() const { return d_ptr->m_Numbers; } ///Get the nickname -const QString& Contact::nickName() const +const QString& Person::nickName() const { return d_ptr->m_NickName; } ///Get the firstname -const QString& Contact::firstName() const +const QString& Person::firstName() const { return d_ptr->m_FirstName; } ///Get the second/family name -const QString& Contact::secondName() const +const QString& Person::secondName() const { return d_ptr->m_SecondName; } ///Get the photo -const QVariant Contact::photo() const +const QVariant Person::photo() const { return d_ptr->m_vPhoto; } ///Get the formatted name -const QString& Contact::formattedName() const +const QString& Person::formattedName() const { return d_ptr->m_FormattedName; } ///Get the organisation -const QString& Contact::organization() const +const QString& Person::organization() const { return d_ptr->m_Organization; } ///Get the preferred email -const QString& Contact::preferredEmail() const +const QString& Person::preferredEmail() const { return d_ptr->m_PreferredEmail; } ///Get the unique identifier (used for drag and drop) -const QByteArray& Contact::uid() const +const QByteArray& Person::uid() const { return d_ptr->m_Uid; } ///Get the group -const QString& Contact::group() const +const QString& Person::group() const { return d_ptr->m_Group; } -const QString& Contact::department() const +const QString& Person::department() const { return d_ptr->m_Department; } ///Set the phone number (type and number) -void Contact::setPhoneNumbers(PhoneNumbers numbers) +void Person::setPhoneNumbers(PhoneNumbers numbers) { const int oldCount(d_ptr->m_Numbers.size()),newCount(numbers.size()); foreach(PhoneNumber* n, d_ptr->m_Numbers) @@ -327,14 +327,14 @@ void Contact::setPhoneNumbers(PhoneNumbers numbers) } ///Set the nickname -void Contact::setNickName(const QString& name) +void Person::setNickName(const QString& name) { d_ptr->m_NickName = name; d_ptr->changed(); } ///Set the first name -void Contact::setFirstName(const QString& name) +void Person::setFirstName(const QString& name) { d_ptr->m_FirstName = name; setObjectName(formattedName()); @@ -342,7 +342,7 @@ void Contact::setFirstName(const QString& name) } ///Set the family name -void Contact::setFamilyName(const QString& name) +void Person::setFamilyName(const QString& name) { d_ptr->m_SecondName = name; setObjectName(formattedName()); @@ -350,56 +350,56 @@ void Contact::setFamilyName(const QString& name) } ///Set the Photo/Avatar -void Contact::setPhoto(const QVariant& photo) +void Person::setPhoto(const QVariant& photo) { d_ptr->m_vPhoto = photo; d_ptr->changed(); } ///Set the formatted name (display name) -void Contact::setFormattedName(const QString& name) +void Person::setFormattedName(const QString& name) { d_ptr->m_FormattedName = name; d_ptr->changed(); } ///Set the organisation / business -void Contact::setOrganization(const QString& name) +void Person::setOrganization(const QString& name) { d_ptr->m_Organization = name; d_ptr->changed(); } ///Set the default email -void Contact::setPreferredEmail(const QString& name) +void Person::setPreferredEmail(const QString& name) { d_ptr->m_PreferredEmail = name; d_ptr->changed(); } ///Set UID -void Contact::setUid(const QByteArray& id) +void Person::setUid(const QByteArray& id) { d_ptr->m_Uid = id; d_ptr->changed(); } ///Set Group -void Contact::setGroup(const QString& name) +void Person::setGroup(const QString& name) { d_ptr->m_Group = name; d_ptr->changed(); } ///Set department -void Contact::setDepartment(const QString& name) +void Person::setDepartment(const QString& name) { d_ptr->m_Department = name; d_ptr->changed(); } ///If the contact have been deleted or not yet fully created -void Contact::setActive( bool active) +void Person::setActive( bool active) { d_ptr->m_Active = active; d_ptr->statusChanged(d_ptr->m_Active); @@ -407,7 +407,7 @@ void Contact::setActive( bool active) } ///Return if one of the PhoneNumber is present -bool Contact::isPresent() const +bool Person::isPresent() const { foreach(const PhoneNumber* n,d_ptr->m_Numbers) { if (n->isPresent()) @@ -417,7 +417,7 @@ bool Contact::isPresent() const } ///Return if one of the PhoneNumber is tracked -bool Contact::isTracked() const +bool Person::isTracked() const { foreach(const PhoneNumber* n,d_ptr->m_Numbers) { if (n->isTracked()) @@ -427,13 +427,13 @@ bool Contact::isTracked() const } ///Have this contact been deleted or doesn't exist yet -bool Contact::isActive() const +bool Person::isActive() const { return d_ptr->m_Active; } ///Return if one of the PhoneNumber support presence -bool Contact::supportPresence() const +bool Person::supportPresence() const { foreach(const PhoneNumber* n,d_ptr->m_Numbers) { if (n->supportPresence()) @@ -443,11 +443,11 @@ bool Contact::supportPresence() const } -QObject* Contact::PhoneNumbers::getSelf() const { +QObject* Person::PhoneNumbers::getSelf() const { return m_pParent2; } -time_t Contact::PhoneNumbers::lastUsedTimeStamp() const +time_t Person::PhoneNumbers::lastUsedTimeStamp() const { time_t t = 0; for (int i=0;i<size();i++) { @@ -458,19 +458,19 @@ time_t Contact::PhoneNumbers::lastUsedTimeStamp() const } ///Recomputing the filter string is heavy, cache it -QString Contact::filterString() const +QString Person::filterString() const { return d_ptr->filterString(); } ///Callback when one of the phone number presence change -void Contact::slotPresenceChanged() +void Person::slotPresenceChanged() { d_ptr->changed(); } ///Create a placeholder contact, it will eventually be replaced when the real one is loaded -ContactPlaceHolder::ContactPlaceHolder(const QByteArray& uid) +PersonPlaceHolder::PersonPlaceHolder(const QByteArray& uid) { setUid(uid); d_ptr->m_isPlaceHolder = true; @@ -481,12 +481,12 @@ ContactPlaceHolder::ContactPlaceHolder(const QByteArray& uid) * * Once loaded, those pointers need to be upgraded to the real contact. */ -bool ContactPlaceHolder::merge(Contact* contact) +bool PersonPlaceHolder::merge(Person* contact) { if ((!contact) || ((*contact) == this)) return false; - ContactPrivate* currentD = d_ptr; + PersonPrivate* currentD = d_ptr; replaceDPointer(contact); currentD->m_lParents.removeAll(this); if (!currentD->m_lParents.size()) @@ -494,7 +494,7 @@ bool ContactPlaceHolder::merge(Contact* contact) return true; } -void Contact::replaceDPointer(Contact* c) +void Person::replaceDPointer(Person* c) { this->d_ptr = c->d_ptr; d_ptr->m_lParents << this; @@ -502,29 +502,29 @@ void Contact::replaceDPointer(Contact* c) emit rebased(c); } -bool Contact::operator==(const Contact* other) const +bool Person::operator==(const Person* other) const { return other && this->d_ptr == other->d_ptr; } -bool Contact::operator==(const Contact& other) const +bool Person::operator==(const Person& other) const { return &other && this->d_ptr == other.d_ptr; } ///Add a new address to this contact -void Contact::addAddress(Contact::Address* addr) +void Person::addAddress(Person::Address* addr) { d_ptr->m_lAddresses << addr; } ///Add custom fields for contact profiles -void Contact::addCustomField(const QString& key, const QString& value) +void Person::addCustomField(const QString& key, const QString& value) { d_ptr->m_lCustomAttributes.insert(key, value); } -const QByteArray Contact::toVCard(QList<Account*> accounts) const +const QByteArray Person::toVCard(QList<Account*> accounts) const { //serializing here VCardUtils* maker = new VCardUtils(); diff --git a/src/contact.h b/src/person.h similarity index 88% rename from src/contact.h rename to src/person.h index c59ccefb..9136e61d 100644 --- a/src/contact.h +++ b/src/person.h @@ -27,7 +27,7 @@ //Ring class PhoneNumber; -class ContactPrivate; +class PersonPrivate; class AddressPrivate; class Account; class CollectionInterface; @@ -35,15 +35,15 @@ class CollectionInterface; #include "typedefs.h" #include "categorizedcompositenode.h" -///Contact: Abstract version of a contact -class LIB_EXPORT Contact : public ItemBase<QObject> +///Person: Abstract version of a contact +class LIB_EXPORT Person : public ItemBase<QObject> { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" Q_OBJECT #pragma GCC diagnostic pop public: - friend class ContactPrivate; + friend class PersonPrivate; ///Represent the physical address of a contact class Address { @@ -74,12 +74,12 @@ public: class PhoneNumbers : public QVector<PhoneNumber*>, public CategorizedCompositeNode { //TODO private public: virtual QObject* getSelf() const __attribute__ ((const)); - explicit PhoneNumbers(Contact* parent); - PhoneNumbers(Contact* parent, const QVector<PhoneNumber*>& list); - Contact* contact() const; + explicit PhoneNumbers(Person* parent); + PhoneNumbers(Person* parent, const QVector<PhoneNumber*>& list); + Person* contact() const; time_t lastUsedTimeStamp() const; private: - Contact* m_pParent2 ; + Person* m_pParent2 ; }; //Properties @@ -102,14 +102,14 @@ public: Q_INVOKABLE const QByteArray toVCard(QList<Account*> accounts) const; protected: - //The D-Pointer can be shared if a PlaceHolderContact is merged with a real one - ContactPrivate* d_ptr; - void replaceDPointer(Contact* other); + //The D-Pointer can be shared if a PlaceHolderPerson is merged with a real one + PersonPrivate* d_ptr; + void replaceDPointer(Person* other); public: //Constructors & Destructors - explicit Contact(CollectionInterface* parent = nullptr); - virtual ~Contact(); + explicit Person(CollectionInterface* parent = nullptr); + virtual ~Person(); //Getters const PhoneNumbers& phoneNumbers() const; @@ -148,8 +148,8 @@ public: void setActive ( bool active ); //Operator - bool operator==(const Contact* other) const; - bool operator==(const Contact& other) const; + bool operator==(const Person* other) const; + bool operator==(const Person& other) const; private Q_SLOTS: void slotPresenceChanged(); //TODO remove @@ -160,21 +160,21 @@ Q_SIGNALS: void changed ( ); void phoneNumberCountChanged(int,int); void phoneNumberCountAboutToChange(int,int); - void rebased ( Contact* ); + void rebased ( Person* ); protected: //Presence secret methods void updatePresenceInformations(const QString& uri, bool status, const QString& message); }; -class LIB_EXPORT ContactPlaceHolder : public Contact { +class LIB_EXPORT PersonPlaceHolder : public Person { Q_OBJECT public: - explicit ContactPlaceHolder(const QByteArray& uid); - bool merge(Contact* contact); + explicit PersonPlaceHolder(const QByteArray& uid); + bool merge(Person* contact); }; -Q_DECLARE_METATYPE(Contact*) +Q_DECLARE_METATYPE(Person*) #endif diff --git a/src/contactmodel.cpp b/src/personmodel.cpp similarity index 61% rename from src/contactmodel.cpp rename to src/personmodel.cpp index 4bac97fb..17d24d2f 100644 --- a/src/contactmodel.cpp +++ b/src/personmodel.cpp @@ -17,10 +17,10 @@ ***************************************************************************/ //Parent -#include "contactmodel.h" +#include "personmodel.h" //Ring library -#include "contact.h" +#include "person.h" #include "call.h" #include "uri.h" #include "phonenumber.h" @@ -34,57 +34,57 @@ #include <QtCore/QDebug> #include <QtCore/QCoreApplication> -ContactModel* ContactModel::m_spInstance = nullptr; +PersonModel* PersonModel::m_spInstance = nullptr; -class ContactModelPrivate : public QObject +class PersonModelPrivate : public QObject { Q_OBJECT public: - ContactModelPrivate(ContactModel* parent); + PersonModelPrivate(PersonModel* parent); //Attributes // QVector<CollectionInterface*> m_lBackends; CommonCollectionModel* m_pBackendModel; - QHash<QByteArray,ContactPlaceHolder*> m_hPlaceholders; + QHash<QByteArray,PersonPlaceHolder*> m_hPlaceholders; //Indexes - QHash<QByteArray,Contact*> m_hContactsByUid; - QVector<Contact*> m_lContacts; + QHash<QByteArray,Person*> m_hPersonsByUid; + QVector<Person*> m_lPersons; private: - ContactModel* q_ptr; + PersonModel* q_ptr; private Q_SLOTS: void slotReloaded(); -// void slotContactAdded(Contact* c); +// void slotPersonAdded(Person* c); }; -ContactModelPrivate::ContactModelPrivate(ContactModel* parent) : QObject(parent), q_ptr(parent), +PersonModelPrivate::PersonModelPrivate(PersonModel* parent) : QObject(parent), q_ptr(parent), m_pBackendModel(nullptr) { } ///Constructor -ContactModel::ContactModel(QObject* par) : QAbstractItemModel(par?par:QCoreApplication::instance()), d_ptr(new ContactModelPrivate(this)) +PersonModel::PersonModel(QObject* par) : QAbstractItemModel(par?par:QCoreApplication::instance()), d_ptr(new PersonModelPrivate(this)) { } ///Destructor -ContactModel::~ContactModel() +PersonModel::~PersonModel() { - d_ptr->m_hContactsByUid.clear(); - while (d_ptr->m_lContacts.size()) { - Contact* c = d_ptr->m_lContacts[0]; - d_ptr->m_lContacts.remove(0); + d_ptr->m_hPersonsByUid.clear(); + while (d_ptr->m_lPersons.size()) { + Person* c = d_ptr->m_lPersons[0]; + d_ptr->m_lPersons.remove(0); delete c; } } -ContactModel* ContactModel::instance() { +PersonModel* PersonModel::instance() { if (!m_spInstance) - m_spInstance = new ContactModel(QCoreApplication::instance()); + m_spInstance = new PersonModel(QCoreApplication::instance()); return m_spInstance; } @@ -95,7 +95,7 @@ ContactModel* ContactModel::instance() { ****************************************************************************/ -bool ContactModel::setData( const QModelIndex& idx, const QVariant &value, int role) +bool PersonModel::setData( const QModelIndex& idx, const QVariant &value, int role) { Q_UNUSED(idx) Q_UNUSED(value) @@ -103,38 +103,38 @@ bool ContactModel::setData( const QModelIndex& idx, const QVariant &value, int r return false; } -QVariant ContactModel::data( const QModelIndex& idx, int role) const +QVariant PersonModel::data( const QModelIndex& idx, int role) const { if (!idx.isValid()) return QVariant(); if (!idx.parent().isValid() && (role == Qt::DisplayRole || role == Qt::EditRole)) { - const Contact* c = d_ptr->m_lContacts[idx.row()]; + const Person* c = d_ptr->m_lPersons[idx.row()]; if (c) return QVariant(c->formattedName()); } else if (idx.parent().isValid() && (role == Qt::DisplayRole || role == Qt::EditRole)) { - const Contact* c = d_ptr->m_lContacts[idx.parent().row()]; + const Person* c = d_ptr->m_lPersons[idx.parent().row()]; if (c) return QVariant(c->phoneNumbers()[idx.row()]->uri()); } return QVariant(); } -QVariant ContactModel::headerData(int section, Qt::Orientation orientation, int role) const +QVariant PersonModel::headerData(int section, Qt::Orientation orientation, int role) const { Q_UNUSED(section) if (orientation == Qt::Horizontal && role == Qt::DisplayRole) - return QVariant(tr("Contacts")); + return QVariant(tr("Persons")); return QVariant(); } -int ContactModel::rowCount( const QModelIndex& par ) const +int PersonModel::rowCount( const QModelIndex& par ) const { if (!par.isValid()) { - return d_ptr->m_lContacts.size(); + return d_ptr->m_lPersons.size(); } - else if (!par.parent().isValid() && par.row() < d_ptr->m_lContacts.size()) { - const Contact* c = d_ptr->m_lContacts[par.row()]; + else if (!par.parent().isValid() && par.row() < d_ptr->m_lPersons.size()) { + const Person* c = d_ptr->m_lPersons[par.row()]; if (c) { const int size = c->phoneNumbers().size(); return size==1?0:size; @@ -143,40 +143,40 @@ int ContactModel::rowCount( const QModelIndex& par ) const return 0; } -Qt::ItemFlags ContactModel::flags( const QModelIndex& idx ) const +Qt::ItemFlags PersonModel::flags( const QModelIndex& idx ) const { if (!idx.isValid()) return Qt::NoItemFlags; return Qt::ItemIsEnabled | ((idx.parent().isValid())?Qt::ItemIsSelectable:Qt::ItemIsEnabled); } -int ContactModel::columnCount ( const QModelIndex& par) const +int PersonModel::columnCount ( const QModelIndex& par) const { Q_UNUSED(par) return 1; } -QModelIndex ContactModel::parent( const QModelIndex& idx) const +QModelIndex PersonModel::parent( const QModelIndex& idx) const { if (!idx.isValid()) return QModelIndex(); CategorizedCompositeNode* modelItem = (CategorizedCompositeNode*)idx.internalPointer(); if (modelItem && modelItem->type() == CategorizedCompositeNode::Type::NUMBER) { - int idx2 = d_ptr->m_lContacts.indexOf(((Contact::PhoneNumbers*)modelItem)->contact()); + int idx2 = d_ptr->m_lPersons.indexOf(((Person::PhoneNumbers*)modelItem)->contact()); if (idx2 != -1) { - return ContactModel::index(idx2,0,QModelIndex()); + return PersonModel::index(idx2,0,QModelIndex()); } } return QModelIndex(); } -QModelIndex ContactModel::index( int row, int column, const QModelIndex& par) const +QModelIndex PersonModel::index( int row, int column, const QModelIndex& par) const { - if (!par.isValid() && d_ptr->m_lContacts.size() > row) { - return createIndex(row,column,d_ptr->m_lContacts[row]); + if (!par.isValid() && d_ptr->m_lPersons.size() > row) { + return createIndex(row,column,d_ptr->m_lPersons[row]); } - else if (par.isValid() && d_ptr->m_lContacts[par.row()]->phoneNumbers().size() > row) { - return createIndex(row,column,(CategorizedCompositeNode*)(&(d_ptr->m_lContacts[par.row()]->phoneNumbers()))); + else if (par.isValid() && d_ptr->m_lPersons[par.row()]->phoneNumbers().size() > row) { + return createIndex(row,column,(CategorizedCompositeNode*)(&(d_ptr->m_lPersons[par.row()]->phoneNumbers()))); } return QModelIndex(); } @@ -189,18 +189,18 @@ QModelIndex ContactModel::index( int row, int column, const QModelIndex& par) co ///Find contact by UID -Contact* ContactModel::getContactByUid(const QByteArray& uid) +Person* PersonModel::getPersonByUid(const QByteArray& uid) { - return d_ptr->m_hContactsByUid[uid]; + return d_ptr->m_hPersonsByUid[uid]; } /** * Create a temporary contact or return the existing one for an UID * This temporary contact should eventually be merged into the real one */ -Contact* ContactModel::getPlaceHolder(const QByteArray& uid ) +Person* PersonModel::getPlaceHolder(const QByteArray& uid ) { - Contact* ct = d_ptr->m_hContactsByUid[uid]; + Person* ct = d_ptr->m_hPersonsByUid[uid]; //Do not create a placeholder if the real deal exist if (ct) { @@ -212,65 +212,65 @@ Contact* ContactModel::getPlaceHolder(const QByteArray& uid ) if (ct) return ct; - ContactPlaceHolder* ct2 = new ContactPlaceHolder(uid); + PersonPlaceHolder* ct2 = new PersonPlaceHolder(uid); d_ptr->m_hPlaceholders[ct2->uid()] = ct2; return ct2; } ///Return if there is backends -// bool ContactModel::hasBackends() const +// bool PersonModel::hasBackends() const // { // return d_ptr->m_lBackends.size(); // } -// const QVector<CollectionInterface*> ContactModel::enabledBackends() const +// const QVector<CollectionInterface*> PersonModel::enabledBackends() const // { // return d_ptr->m_lBackends; // } -// bool ContactModel::hasEnabledBackends() const +// bool PersonModel::hasEnabledBackends() const // { // return d_ptr->m_lBackends.size()>0; // } -// CommonCollectionModel* ContactModel::backendModel() const +// CommonCollectionModel* PersonModel::backendModel() const // { // if (!d_ptr->m_pBackendModel) { -// d_ptr->m_pBackendModel = new CommonCollectionModel(const_cast<ContactModel*>(this)); +// d_ptr->m_pBackendModel = new CommonCollectionModel(const_cast<PersonModel*>(this)); // } // return d_ptr->m_pBackendModel; //TODO // } -// QString ContactModel::backendCategoryName() const +// QString PersonModel::backendCategoryName() const // { -// return tr("Contacts"); +// return tr("Persons"); // } -void ContactModel::backendAddedCallback(CollectionInterface* backend) +void PersonModel::backendAddedCallback(CollectionInterface* backend) { Q_UNUSED(backend) } -// const QVector<CollectionInterface*> ContactModel::backends() const +// const QVector<CollectionInterface*> PersonModel::backends() const // { // return d_ptr->m_lBackends; // } -bool ContactModel::addItemCallback(Contact* item) +bool PersonModel::addItemCallback(Person* item) { - addContact(item); + addPerson(item); return true; } -bool ContactModel::removeItemCallback(Contact* item) +bool PersonModel::removeItemCallback(Person* item) { Q_UNUSED(item) return false; } -// bool ContactModel::enableBackend(CollectionInterface* backend, bool enabled) +// bool PersonModel::enableBackend(CollectionInterface* backend, bool enabled) // { // Q_UNUSED(backend) // Q_UNUSED(enabled) @@ -278,17 +278,17 @@ bool ContactModel::removeItemCallback(Contact* item) // return false; // } -bool ContactModel::addContact(Contact* c) +bool PersonModel::addPerson(Person* c) { if (!c) return false; - beginInsertRows(QModelIndex(),d_ptr->m_lContacts.size()-1,d_ptr->m_lContacts.size()); - d_ptr->m_lContacts << c; - d_ptr->m_hContactsByUid[c->uid()] = c; + beginInsertRows(QModelIndex(),d_ptr->m_lPersons.size()-1,d_ptr->m_lPersons.size()); + d_ptr->m_lPersons << c; + d_ptr->m_hPersonsByUid[c->uid()] = c; //Deprecate the placeholder if (d_ptr->m_hPlaceholders.contains(c->uid())) { - ContactPlaceHolder* c2 = d_ptr->m_hPlaceholders[c->uid()]; + PersonPlaceHolder* c2 = d_ptr->m_hPlaceholders[c->uid()]; if (c2) { c2->merge(c); d_ptr->m_hPlaceholders[c->uid()] = nullptr; @@ -296,36 +296,36 @@ bool ContactModel::addContact(Contact* c) } endInsertRows(); emit layoutChanged(); - emit newContactAdded(c); + emit newPersonAdded(c); return true; } -void ContactModel::disableContact(Contact* c) +void PersonModel::disablePerson(Person* c) { if (c) c->setActive(false); } -const ContactList ContactModel::contacts() const +const PersonList PersonModel::contacts() const { - return d_ptr->m_lContacts; + return d_ptr->m_lPersons; } -// void ContactModel::addBackend(CollectionInterface* backend, LoadOptions options) +// void PersonModel::addBackend(CollectionInterface* backend, LoadOptions options) // { // d_ptr->m_lBackends << backend; // connect(backend,SIGNAL(reloaded()),d_ptr.data(),SLOT(slotReloaded())); -// connect(backend,SIGNAL(newContactAdded(Contact*)),d_ptr.data(),SLOT(slotContactAdded(Contact*))); +// connect(backend,SIGNAL(newPersonAdded(Person*)),d_ptr.data(),SLOT(slotPersonAdded(Person*))); // if (options & LoadOptions::FORCE_ENABLED || ItemModelStateSerializationVisitor::instance()->isChecked(backend)) // backend->load(); // emit newBackendAdded(backend); // } -bool ContactModel::addNewContact(Contact* c, CollectionInterface* backend) +bool PersonModel::addNewPerson(Person* c, CollectionInterface* backend) { Q_UNUSED(backend); - return backends()[0]->editor<Contact>()->addNew(c); + return backends()[0]->editor<Person>()->addNew(c); } @@ -335,10 +335,10 @@ bool ContactModel::addNewContact(Contact* c, CollectionInterface* backend) * * ****************************************************************************/ -void ContactModelPrivate::slotReloaded() +void PersonModelPrivate::slotReloaded() { emit q_ptr->reloaded(); } -#include <contactmodel.moc> +#include <personmodel.moc> diff --git a/src/contactmodel.h b/src/personmodel.h similarity index 79% rename from src/contactmodel.h rename to src/personmodel.h index b846ad4e..91d55e1e 100644 --- a/src/contactmodel.h +++ b/src/personmodel.h @@ -25,21 +25,21 @@ #include <QtCore/QAbstractItemModel> #include "typedefs.h" -#include "contact.h" +#include "person.h" #include "collectionmanagerinterface.h" //Ring -class Contact; +class Person; class Account; class CollectionInterface; -class ContactModelPrivate; +class PersonModelPrivate; //Typedef -typedef QVector<Contact*> ContactList; +typedef QVector<Person*> PersonList; -///ContactModel: Allow different way to handle contact without poluting the library -class LIB_EXPORT ContactModel : - public QAbstractItemModel, public CollectionManagerInterface<Contact> { +///PersonModel: Allow different way to handle contact without poluting the library +class LIB_EXPORT PersonModel : + public QAbstractItemModel, public CollectionManagerInterface<Person> { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant" Q_OBJECT @@ -58,20 +58,20 @@ public: DropState = 300, //State for drag and drop }; - template <typename T > using ItemMediator = CollectionMediator<Contact>; + template <typename T > using ItemMediator = CollectionMediator<Person>; - explicit ContactModel(QObject* parent = nullptr); - virtual ~ContactModel(); + explicit PersonModel(QObject* parent = nullptr); + virtual ~PersonModel(); //Mutator - bool addContact(Contact* c); - void disableContact(Contact* c); + bool addPerson(Person* c); + void disablePerson(Person* c); //Getters - Contact* getContactByUid ( const QByteArray& uid ); - Contact* getPlaceHolder(const QByteArray& uid ); - const ContactList contacts() const; + Person* getPersonByUid ( const QByteArray& uid ); + Person* getPlaceHolder(const QByteArray& uid ); + const PersonList contacts() const; //Model implementation virtual bool setData ( const QModelIndex& index, const QVariant &value, int role ) override; @@ -84,26 +84,26 @@ public: virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; //Singleton - static ContactModel* instance(); + static PersonModel* instance(); private: - QScopedPointer<ContactModelPrivate> d_ptr; - Q_DECLARE_PRIVATE(ContactModel) + QScopedPointer<PersonModelPrivate> d_ptr; + Q_DECLARE_PRIVATE(PersonModel) //Singleton - static ContactModel* m_spInstance; + static PersonModel* m_spInstance; //Backend interface virtual void backendAddedCallback(CollectionInterface* backend) override; - virtual bool addItemCallback(Contact* item) override; - virtual bool removeItemCallback(Contact* item) override; + virtual bool addItemCallback(Person* item) override; + virtual bool removeItemCallback(Person* item) override; public Q_SLOTS: - bool addNewContact(Contact* c, CollectionInterface* backend = nullptr); + bool addNewPerson(Person* c, CollectionInterface* backend = nullptr); Q_SIGNALS: void reloaded(); - void newContactAdded(Contact* c); + void newPersonAdded(Person* c); void newBackendAdded(CollectionInterface* backend); }; diff --git a/src/phonedirectorymodel.cpp b/src/phonedirectorymodel.cpp index eab72037..71899632 100644 --- a/src/phonedirectorymodel.cpp +++ b/src/phonedirectorymodel.cpp @@ -25,14 +25,14 @@ #include "call.h" #include "uri.h" #include "account.h" -#include "contact.h" +#include "person.h" #include "accountmodel.h" #include "numbercategory.h" #include "numbercategorymodel.h" #include "collectioninterface.h" #include "dbus/presencemanager.h" #include "visitors/pixmapmanipulationvisitor.h" -#include "contactmodel.h" +#include "personmodel.h" //Private #include "private/phonedirectorymodel_p.h" @@ -286,7 +286,7 @@ QVariant PhoneDirectoryModel::headerData(int section, Qt::Orientation orientatio { Q_UNUSED(section) Q_UNUSED(orientation) - static const QString headers[] = {tr("URI"), tr("Type"), tr("Contact"), tr("Account"), tr("State"), tr("Call count"), tr("Week count"), + static const QString headers[] = {tr("URI"), tr("Type"), tr("Person"), tr("Account"), tr("State"), tr("Call count"), tr("Week count"), tr("Trimester count"), tr("Have Called"), tr("Last used"), tr("Name_count"),tr("Total (in seconds)"), tr("Popularity_index"), tr("Bookmarked"), tr("Tracked"), tr("Present"), tr("Presence message"), tr("Uid") }; if (role == Qt::DisplayRole) return headers[section]; @@ -339,7 +339,7 @@ PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, Account* account } ///Add new information to existing numbers and try to merge -PhoneNumber* PhoneDirectoryModelPrivate::fillDetails(NumberWrapper* wrap, const URI& strippedUri, Account* account, Contact* contact, const QString& type) +PhoneNumber* PhoneDirectoryModelPrivate::fillDetails(NumberWrapper* wrap, const URI& strippedUri, Account* account, Person* contact, const QString& type) { //TODO pick the best URI //TODO the account hostname change corner case @@ -350,7 +350,7 @@ PhoneNumber* PhoneDirectoryModelPrivate::fillDetails(NumberWrapper* wrap, const //BEGIN Check if contact can be set //Check if the contact is compatible - const bool hasCompatibleContact = contact && ( + const bool hasCompatiblePerson = contact && ( (!number->contact()) || ( (number->contact()->uid() == contact->uid()) @@ -359,7 +359,7 @@ PhoneNumber* PhoneDirectoryModelPrivate::fillDetails(NumberWrapper* wrap, const ); //Check if the URI match - const bool hasCompatibleURI = hasCompatibleContact && (number->uri().hasHostname()?( + const bool hasCompatibleURI = hasCompatiblePerson && (number->uri().hasHostname()?( /* Has hostname */ strippedUri == number->uri() /* Something with an hostname can be used with IP2IP */ //TODO support DHT here @@ -385,7 +385,7 @@ PhoneNumber* PhoneDirectoryModelPrivate::fillDetails(NumberWrapper* wrap, const //If everything match, set the contact if (hasCompatibleAccount) - number->setContact(contact); + number->setPerson(contact); //END Check if the contact can be set @@ -446,7 +446,7 @@ PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, const QString& t } ///Create a number when a more information is available duplicated ones -PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, Contact* contact, Account* account, const QString& type) +PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, Person* contact, Account* account, const QString& type) { //Remove extra data such as "<sip:" from the main URI const URI strippedUri(uri); @@ -489,7 +489,7 @@ PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, Contact* contact foreach(PhoneNumber* number, wrap3->numbers) { if (number->account() == account) { if (contact && ((!number->contact()) || (contact->uid() == number->contact()->uid()))) - number->setContact(contact); //TODO Check all cases from fillDetails() + number->setPerson(contact); //TODO Check all cases from fillDetails() //TODO add alternate URI confirmedCandidate3 = number; break; @@ -525,7 +525,7 @@ PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, Contact* contact //Assume this is valid until a smarter solution is implemented to merge both //For a short time, a placeholder contact and a contact can coexist, drop the placeholder if (contact && (!number->contact() || (contact->uid() == number->contact()->uid()))) - number->setContact(contact); + number->setPerson(contact); return number; } @@ -537,7 +537,7 @@ PhoneNumber* PhoneDirectoryModel::getNumber(const QString& uri, Contact* contact number->setAccount(account); number->setIndex( d_ptr->m_lNumbers.size()); if (contact) - number->setContact(contact); + number->setPerson(contact); d_ptr->m_lNumbers << number; connect(number,SIGNAL(callAdded(Call*)),d_ptr.data(),SLOT(slotCallAdded(Call*))); connect(number,SIGNAL(changed()),d_ptr.data(),SLOT(slotChanged())); @@ -576,7 +576,7 @@ PhoneNumber* PhoneDirectoryModel::fromHash(const QString& hash) if (fields.size() == 3) { const QString uri = fields[0]; Account* account = AccountModel::instance()->getById(fields[1].toAscii()); - Contact* contact = ContactModel::instance()->getContactByUid(fields[2].toUtf8()); + Person* contact = PersonModel::instance()->getPersonByUid(fields[2].toUtf8()); return getNumber(uri,contact,account); } else if (fields.size() == 1) { diff --git a/src/phonedirectorymodel.h b/src/phonedirectorymodel.h index ada0013b..7d80be0f 100644 --- a/src/phonedirectorymodel.h +++ b/src/phonedirectorymodel.h @@ -26,7 +26,7 @@ //Ring #include "uri.h" class PhoneNumber ; -class Contact ; +class Person ; class Account ; class Call ; class TemporaryPhoneNumber; @@ -70,7 +70,7 @@ public: //Factory Q_INVOKABLE PhoneNumber* getNumber(const QString& uri, const QString& type = QString()); Q_INVOKABLE PhoneNumber* getNumber(const QString& uri, Account* account, const QString& type = QString()); - Q_INVOKABLE PhoneNumber* getNumber(const QString& uri, Contact* contact, Account* account = nullptr, const QString& type = QString()); + Q_INVOKABLE PhoneNumber* getNumber(const QString& uri, Person* contact, Account* account = nullptr, const QString& type = QString()); Q_INVOKABLE PhoneNumber* fromHash (const QString& hash); Q_INVOKABLE PhoneNumber* fromTemporary(const TemporaryPhoneNumber* number); diff --git a/src/phonenumber.cpp b/src/phonenumber.cpp index 032901ed..d3d60ed8 100644 --- a/src/phonenumber.cpp +++ b/src/phonenumber.cpp @@ -17,7 +17,7 @@ ***************************************************************************/ #include "phonenumber.h" #include "phonedirectorymodel.h" -#include "contact.h" +#include "person.h" #include "account.h" #include "call.h" #include "dbus/presencemanager.h" @@ -38,7 +38,7 @@ public: bool m_Present ; QString m_PresentMessage ; bool m_Tracked ; - Contact* m_pContact ; + Person* m_pPerson ; Account* m_pAccount ; time_t m_LastUsed ; QList<Call*> m_lCalls ; @@ -125,7 +125,7 @@ const PhoneNumber* PhoneNumber::BLANK() PhoneNumberPrivate::PhoneNumberPrivate(const URI& uri, NumberCategory* cat, PhoneNumber::Type st) : m_Uri(uri),m_pCategory(cat),m_Tracked(false),m_Present(false),m_LastUsed(0), - m_Type(st),m_PopularityIndex(-1),m_pContact(nullptr),m_pAccount(nullptr), + m_Type(st),m_PopularityIndex(-1),m_pPerson(nullptr),m_pAccount(nullptr), m_LastWeekCount(0),m_LastTrimCount(0),m_HaveCalled(false),m_IsBookmark(false),m_TotalSeconds(0), m_Index(-1) {} @@ -197,9 +197,9 @@ Account* PhoneNumber::account() const } ///Return this number associated contact, if any -Contact* PhoneNumber::contact() const +Person* PhoneNumber::contact() const { - return d_ptr->m_pContact; + return d_ptr->m_pPerson; } ///Return when this number was last used @@ -218,14 +218,14 @@ void PhoneNumber::setAccount(Account* account) } ///Set this number contact -void PhoneNumber::setContact(Contact* contact) +void PhoneNumber::setPerson(Person* contact) { - d_ptr->m_pContact = contact; + d_ptr->m_pPerson = contact; if (contact && d_ptr->m_Type != PhoneNumber::Type::TEMPORARY) { PhoneDirectoryModel::instance()->d_ptr->indexNumber(this,d_ptr->m_hNames.keys()+QStringList(contact->formattedName())); d_ptr->m_PrimaryName_cache = contact->formattedName(); d_ptr->primaryNameChanged(d_ptr->m_PrimaryName_cache); - connect(contact,SIGNAL(rebased(Contact*)),this,SLOT(contactRebased(Contact*))); + connect(contact,SIGNAL(rebased(Person*)),this,SLOT(contactRebased(Person*))); } d_ptr->changed(); } @@ -467,9 +467,9 @@ void PhoneNumber::incrementAlternativeName(const QString& name) const bool needReIndexing = !d_ptr->m_hNames[name]; d_ptr->m_hNames[name]++; if (needReIndexing && d_ptr->m_Type != PhoneNumber::Type::TEMPORARY) { - PhoneDirectoryModel::instance()->d_ptr->indexNumber(this,d_ptr->m_hNames.keys()+(d_ptr->m_pContact?(QStringList(d_ptr->m_pContact->formattedName())):QStringList())); + PhoneDirectoryModel::instance()->d_ptr->indexNumber(this,d_ptr->m_hNames.keys()+(d_ptr->m_pPerson?(QStringList(d_ptr->m_pPerson->formattedName())):QStringList())); //Invalid m_PrimaryName_cache - if (!d_ptr->m_pContact) + if (!d_ptr->m_pPerson) d_ptr->m_PrimaryName_cache.clear(); } } @@ -484,7 +484,7 @@ void PhoneNumber::accountDestroyed(QObject* o) * When the PhoneNumber contact is merged with another one, the phone number * data might be replaced, like the preferred name. */ -void PhoneNumber::contactRebased(Contact* other) +void PhoneNumber::contactRebased(Person* other) { d_ptr->m_PrimaryName_cache = other->formattedName(); d_ptr->primaryNameChanged(d_ptr->m_PrimaryName_cache); @@ -577,7 +577,7 @@ TemporaryPhoneNumber::TemporaryPhoneNumber(const PhoneNumber* number) : PhoneNumber(QString(),NumberCategoryModel::other(),PhoneNumber::Type::TEMPORARY) { if (number) { - setContact(number->contact()); + setPerson(number->contact()); setAccount(number->account()); } } diff --git a/src/phonenumber.h b/src/phonenumber.h index ee65eab5..0c42567c 100644 --- a/src/phonenumber.h +++ b/src/phonenumber.h @@ -31,7 +31,7 @@ //Ring #include "uri.h" class Account; -class Contact; +class Person; class Call; class PhoneNumberPrivate; class TemporaryPhoneNumber; @@ -48,7 +48,7 @@ public: //Properties Q_PROPERTY(Account* account READ account WRITE setAccount ) - Q_PROPERTY(Contact* contact READ contact WRITE setContact ) + Q_PROPERTY(Person* contact READ contact WRITE setPerson ) Q_PROPERTY(int lastUsed READ lastUsed ) Q_PROPERTY(QString uri READ uri ) Q_PROPERTY(int callCount READ callCount ) @@ -87,7 +87,7 @@ public: bool isPresent () const; QString presenceMessage () const; Account* account () const; - Contact* contact () const; + Person* contact () const; time_t lastUsed () const; PhoneNumber::Type type () const; int callCount () const; @@ -106,7 +106,7 @@ public: //Setters Q_INVOKABLE void setAccount(Account* account); - Q_INVOKABLE void setContact(Contact* contact); + Q_INVOKABLE void setPerson(Person* contact); Q_INVOKABLE void setTracked(bool track ); void setCategory(NumberCategory* cat ); void setBookmarked(bool bookmarked ); @@ -162,7 +162,7 @@ private: private Q_SLOTS: void accountDestroyed(QObject* o); - void contactRebased(Contact* other); + void contactRebased(Person* other); Q_SIGNALS: ///A new call have used this PhoneNumber diff --git a/src/private/phonedirectorymodel_p.h b/src/private/phonedirectorymodel_p.h index 0435c930..c9764c9a 100644 --- a/src/private/phonedirectorymodel_p.h +++ b/src/private/phonedirectorymodel_p.h @@ -62,7 +62,7 @@ public: //Helpers void indexNumber(PhoneNumber* number, const QStringList& names ); void setAccount (PhoneNumber* number, Account* account ); - PhoneNumber* fillDetails(NumberWrapper* wrap, const URI& strippedUri, Account* account, Contact* contact, const QString& type); + PhoneNumber* fillDetails(NumberWrapper* wrap, const URI& strippedUri, Account* account, Person* contact, const QString& type); //Attributes QVector<PhoneNumber*> m_lNumbers ; diff --git a/src/profilemodel.cpp b/src/profilemodel.cpp index 4bc85b5b..6d5d6d10 100644 --- a/src/profilemodel.cpp +++ b/src/profilemodel.cpp @@ -28,9 +28,9 @@ #include "accountmodel.h" #include "collectioninterface.h" #include "collectioneditor.h" -#include "contactmodel.h" +#include "personmodel.h" #include "callmodel.h" -#include "contact.h" +#include "person.h" #include "visitors/profilepersistervisitor.h" #include "visitors/pixmapmanipulationvisitor.h" #include "vcardutils.h" @@ -40,11 +40,11 @@ class QObject; //SFLPhone -class Contact; +class Person; class Account; struct Node; -typedef void (VCardMapper:: *mapToProperty)(Contact*, const QByteArray&); +typedef void (VCardMapper:: *mapToProperty)(Person*, const QByteArray&); struct VCardMapper { @@ -58,42 +58,42 @@ struct VCardMapper { m_hHash[VCardUtils::Property::ORGANIZATION] = &VCardMapper::setOrganization; } - void setFormattedName(Contact* c, const QByteArray& fn) { + void setFormattedName(Person* c, const QByteArray& fn) { c->setFormattedName(QString::fromUtf8(fn)); } - void setNames(Contact* c, const QByteArray& fn) { + void setNames(Person* c, const QByteArray& fn) { QList<QByteArray> splitted = fn.split(';'); c->setFamilyName(splitted[0].trimmed()); c->setFirstName(splitted[1].trimmed()); } - void setUid(Contact* c, const QByteArray& fn) { + void setUid(Person* c, const QByteArray& fn) { c->setUid(fn); } - void setEmail(Contact* c, const QByteArray& fn) { + void setEmail(Person* c, const QByteArray& fn) { c->setPreferredEmail(fn); } - void setOrganization(Contact* c, const QByteArray& fn) { + void setOrganization(Person* c, const QByteArray& fn) { c->setOrganization(QString::fromUtf8(fn)); } - void setPhoto(Contact* c, const QByteArray& fn) { + void setPhoto(Person* c, const QByteArray& fn) { qDebug() << fn; QVariant photo = PixmapManipulationVisitor::instance()->profilePhoto(fn); c->setPhoto(photo); } - void addPhoneNumber(Contact* c, const QString& key, const QByteArray& fn) { + void addPhoneNumber(Person* c, const QString& key, const QByteArray& fn) { Q_UNUSED(c) Q_UNUSED(key) qDebug() << fn; } - void addAddress(Contact* c, const QString& key, const QByteArray& fn) { - Contact::Address* addr = new Contact::Address(); + void addAddress(Person* c, const QString& key, const QByteArray& fn) { + Person::Address* addr = new Person::Address(); QList<QByteArray> fields = fn.split(VCardUtils::Delimiter::SEPARATOR_TOKEN[0]); addr->setType (key.split(VCardUtils::Delimiter::SEPARATOR_TOKEN)[1] ); @@ -106,7 +106,7 @@ struct VCardMapper { c->addAddress(addr); } - bool metacall(Contact* c, const QByteArray& key, const QByteArray& value) { + bool metacall(Person* c, const QByteArray& key, const QByteArray& value) { if (!m_hHash[key]) { if(key.contains(VCardUtils::Property::PHOTO)) { //key must contain additionnal attributes, we don't need them right now (ENCODING, TYPE...) @@ -132,16 +132,16 @@ struct VCardMapper { }; static VCardMapper* vc_mapper = new VCardMapper; -class ProfileEditor : public CollectionEditor<Contact> +class ProfileEditor : public CollectionEditor<Person> { public: - ProfileEditor(CollectionMediator<Contact>* m) : CollectionEditor<Contact>(m) {}; + ProfileEditor(CollectionMediator<Person>* m) : CollectionEditor<Person>(m) {}; ~ProfileEditor(); - virtual bool save ( const Contact* item ) override; - virtual bool append ( const Contact* item ) override; - virtual bool remove ( Contact* item ) override; - virtual bool edit ( Contact* item ) override; - virtual bool addNew ( Contact* item ) override; + virtual bool save ( const Person* item ) override; + virtual bool append ( const Person* item ) override; + virtual bool remove ( Person* item ) override; + virtual bool edit ( Person* item ) override; + virtual bool addNew ( Person* item ) override; Node* getProfileById(const QByteArray& id); QList<Account*> getAccountsForProfile(const QString& id); @@ -149,7 +149,7 @@ public: QHash<QByteArray,Node*> m_hProfileByAccountId; private: - virtual QVector<Contact*> items() const override; + virtual QVector<Person*> items() const override; }; ///ProfileContentBackend: Implement a backend for Profiles @@ -174,7 +174,7 @@ public: //Attributes bool m_needSaving; - QList<Contact*> m_bSaveBuffer; + QList<Person*> m_bSaveBuffer; bool saveAll(); Node* m_pDefault; @@ -184,9 +184,6 @@ public: void setupDefaultProfile(); void addAccount(Node* parent, Account* acc); -private: - ProfileModel* m_pParent; - public Q_SLOTS: void contactChanged(); void save(); @@ -205,11 +202,11 @@ struct Node { QVector<Node*> children; Type type; Account* account; - Contact* contact; + Person* contact; int m_Index; }; -bool ProfileEditor::save(const Contact* contact) +bool ProfileEditor::save(const Person* contact) { QDir profilesDir = ProfilePersisterVisitor::instance()->getProfilesDir(); qDebug() << "Saving vcf in:" << profilesDir.absolutePath()+"/"+contact->uid()+".vcf"; @@ -231,25 +228,25 @@ ProfileEditor::~ProfileEditor() } } -bool ProfileEditor::append(const Contact* item) +bool ProfileEditor::append(const Person* item) { Q_UNUSED(item) return false; } -bool ProfileEditor::remove(Contact* item) +bool ProfileEditor::remove(Person* item) { Q_UNUSED(item) return false; } -bool ProfileEditor::edit( Contact* contact) +bool ProfileEditor::edit( Person* contact) { qDebug() << "Attempt to edit a profile contact" << contact->uid(); return false; } -bool ProfileEditor::addNew( Contact* contact) +bool ProfileEditor::addNew( Person* contact) { qDebug() << "Creating new profile" << contact->uid(); save(contact); @@ -257,9 +254,9 @@ bool ProfileEditor::addNew( Contact* contact) return true; } -QVector<Contact*> ProfileEditor::items() const +QVector<Person*> ProfileEditor::items() const { - return QVector<Contact*>(); + return QVector<Person*>(); } @@ -268,9 +265,9 @@ ProfileModel* ProfileModel::m_spInstance = nullptr; template<typename T> ProfileContentBackend::ProfileContentBackend(CollectionMediator<T>* mediator) : - CollectionInterface(new ProfileEditor(mediator),nullptr), m_pDefault(nullptr),m_pParent(ProfileModel::instance()) + CollectionInterface(new ProfileEditor(mediator),nullptr), m_pDefault(nullptr) { - m_pEditor = static_cast<ProfileEditor*>(editor<Contact>()); + m_pEditor = static_cast<ProfileEditor*>(editor<Person>()); } QString ProfileContentBackend::name () const @@ -309,13 +306,13 @@ QByteArray ProfileContentBackend::id() const return "Profile_backend"; } -// bool ProfileContentBackend::edit( Contact* contact ) +// bool ProfileContentBackend::edit( Person* contact ) // { // qDebug() << "Attempt to edit a profile contact" << contact->uid(); // return false; // } -// bool ProfileContentBackend::addNew( Contact* contact ) +// bool ProfileContentBackend::addNew( Person* contact ) // { // qDebug() << "Creating new profile" << contact->uid(); // save(contact); @@ -323,13 +320,13 @@ QByteArray ProfileContentBackend::id() const // return true; // } -// bool ProfileContentBackend::remove( Contact* c ) +// bool ProfileContentBackend::remove( Person* c ) // { // Q_UNUSED(c) // return false; // } -// bool ProfileContentBackend::append(const Contact* item) +// bool ProfileContentBackend::append(const Person* item) // { // Q_UNUSED(item) // return false; @@ -369,7 +366,7 @@ void ProfileContentBackend::setupDefaultProfile() if (orphans.size() && (!m_pDefault)) { qDebug() << "No profile found, creating one"; - Contact* profile = new Contact(this); + Person* profile = new Person(this); profile->setFormattedName(tr("Default")); m_pDefault = new Node ; @@ -377,10 +374,10 @@ void ProfileContentBackend::setupDefaultProfile() m_pDefault->contact = profile ; m_pDefault->m_Index = m_pEditor->m_lProfiles.size() ; - m_pParent->beginInsertRows(QModelIndex(), m_pEditor->m_lProfiles.size(), m_pEditor->m_lProfiles.size()); + ProfileModel::instance()->beginInsertRows(QModelIndex(), m_pEditor->m_lProfiles.size(), m_pEditor->m_lProfiles.size()); m_pEditor->m_lProfiles << m_pDefault; - m_pParent->endInsertRows(); - ContactModel::instance()->addContact(profile); + ProfileModel::instance()->endInsertRows(); + PersonModel::instance()->addPerson(profile); } foreach(Account* a, orphans) { @@ -398,9 +395,9 @@ void ProfileContentBackend::addAccount(Node* parent, Account* acc) account_pro->account = acc; account_pro->m_Index = parent->children.size(); - m_pParent->beginInsertRows(m_pParent->index(parent->m_Index,0), parent->children.size(), parent->children.size()); + ProfileModel::instance()->beginInsertRows(ProfileModel::instance()->index(parent->m_Index,0), parent->children.size(), parent->children.size()); parent->children << account_pro; - m_pParent->endInsertRows(); + ProfileModel::instance()->endInsertRows(); m_pEditor->m_hProfileByAccountId[acc->id()] = account_pro; } @@ -426,7 +423,7 @@ bool ProfileContentBackend::load() continue; } - Contact* profile = new Contact(this); + Person* profile = new Person(this); Node* pro = new Node ; pro->type = Node::Type::PROFILE; @@ -461,12 +458,12 @@ bool ProfileContentBackend::load() } } - m_pParent->beginInsertRows(QModelIndex(), m_pEditor->m_lProfiles.size(), m_pEditor->m_lProfiles.size()); + ProfileModel::instance()->beginInsertRows(QModelIndex(), m_pEditor->m_lProfiles.size(), m_pEditor->m_lProfiles.size()); m_pEditor->m_lProfiles << pro; - m_pParent->endInsertRows(); + ProfileModel::instance()->endInsertRows(); connect(profile, SIGNAL(changed()), this, SLOT(contactChanged())); - ContactModel::instance()->addContact(profile); + PersonModel::instance()->addPerson(profile); } //Ring need a profile for all account @@ -484,7 +481,7 @@ bool ProfileContentBackend::reload() return false; } -// bool ProfileContentBackend::save(const Contact* contact) +// bool ProfileContentBackend::save(const Person* contact) // { // QDir profilesDir = ProfilePersisterVisitor::instance()->getProfilesDir(); // qDebug() << "Saving vcf in:" << profilesDir.absolutePath()+"/"+contact->uid()+".vcf"; @@ -500,7 +497,7 @@ bool ProfileContentBackend::reload() bool ProfileContentBackend::saveAll() { for(Node* pro : m_pEditor->m_lProfiles) { - editor<Contact>()->save(pro->contact); + editor<Person>()->save(pro->contact); } return true; } @@ -518,16 +515,16 @@ ProfileContentBackend::SupportedFeatures ProfileContentBackend::supportedFeature //TODO ^^ Remove that one once debugging is done } -// bool ProfileContentBackend::addPhoneNumber( Contact* contact , PhoneNumber* number) +// bool ProfileContentBackend::addPhoneNumber( Person* contact , PhoneNumber* number) // { // Q_UNUSED(contact) // Q_UNUSED(number) // return false; // } -// QList<Contact*> ProfileContentBackend::items() const +// QList<Person*> ProfileContentBackend::items() const // { -// QList<Contact*> contacts; +// QList<Person*> contacts; // for (int var = 0; var < m_pEditor->m_lProfiles.size(); ++var) { // contacts << m_pEditor->m_lProfiles[var]->contact; // } @@ -558,7 +555,7 @@ Node* ProfileEditor::getProfileById(const QByteArray& id) void ProfileContentBackend::contactChanged() { - Contact* c = qobject_cast<Contact*>(sender()); + Person* c = qobject_cast<Person*>(sender()); qDebug() << c->formattedName(); qDebug() << "contactChanged!"; @@ -572,9 +569,9 @@ void ProfileContentBackend::contactChanged() void ProfileContentBackend::save() { - for (Contact* item : m_bSaveBuffer) { + for (Person* item : m_bSaveBuffer) { qDebug() << "saving:" << item->formattedName(); - editor<Contact>()->save(item); + editor<Person>()->save(item); } m_bSaveBuffer.clear(); @@ -627,7 +624,7 @@ ProfileModel::ProfileModel(QObject* parent) : QAbstractItemModel(parent), d_ptr( d_ptr->m_lMimes << RingMimes::PLAIN_TEXT << RingMimes::HTML_TEXT << RingMimes::ACCOUNT << RingMimes::PROFILE; //Creating the profile contact backend - d_ptr->m_pProfileBackend = static_cast<ProfileContentBackend*>(ContactModel::instance()->addBackend<ProfileContentBackend>(LoadOptions::FORCE_ENABLED)); + d_ptr->m_pProfileBackend = static_cast<ProfileContentBackend*>(PersonModel::instance()->addBackend<ProfileContentBackend>(LoadOptions::FORCE_ENABLED)); //Once LibRingClient is ready, start listening QTimer::singleShot(0,d_ptr,SLOT(slotDelayedInit())); @@ -681,7 +678,7 @@ QVariant ProfileModel::data(const QModelIndex& index, int role ) const else { switch (role) { case Qt::DisplayRole: - return d_ptr->m_pProfileBackend->items<Contact>()[index.row()]->formattedName(); + return d_ptr->m_pProfileBackend->items<Person>()[index.row()]->formattedName(); }; } return QVariant(); @@ -693,7 +690,7 @@ int ProfileModel::rowCount(const QModelIndex& parent ) const Node* account_node = static_cast<Node*>(parent.internalPointer()); return (account_node->account)?0:account_node->children.size(); } - return d_ptr->m_pProfileBackend->items<Contact>().size(); + return d_ptr->m_pProfileBackend->items<Person>().size(); } int ProfileModel::columnCount(const QModelIndex& parent ) const @@ -894,7 +891,7 @@ QVariant ProfileModel::headerData(int section, Qt::Orientation orientation, int return QVariant(); } -// bool ProfileModel::addNewProfile(Contact* c, CollectionInterface* backend) +// bool ProfileModel::addNewProfile(Person* c, CollectionInterface* backend) // { // Q_UNUSED(backend); // return d_ptr->m_pProfileBackend->addNew(c); diff --git a/src/profilemodel.h b/src/profilemodel.h index 09f22658..48fbc1ab 100644 --- a/src/profilemodel.h +++ b/src/profilemodel.h @@ -19,7 +19,7 @@ #define PROFILEMODEL_H #include "typedefs.h" -#include "contact.h" +#include "person.h" #include "account.h" #include <QStringList> #include <QSharedPointer> @@ -66,7 +66,7 @@ private: static ProfileModel* m_spInstance; public Q_SLOTS: -// bool addNewProfile(Contact* c, CollectionInterface* backend = nullptr); +// bool addNewProfile(Person* c, CollectionInterface* backend = nullptr); // bool createProfile(const QString& name); }; diff --git a/src/transitionalcontactbackend.cpp b/src/transitionalpersonbackend.cpp similarity index 50% rename from src/transitionalcontactbackend.cpp rename to src/transitionalpersonbackend.cpp index 21effa06..7f540eb2 100644 --- a/src/transitionalcontactbackend.cpp +++ b/src/transitionalpersonbackend.cpp @@ -15,152 +15,152 @@ * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/>. * ***************************************************************************/ -#include "transitionalcontactbackend.h" -#include <contactmodel.h> +#include "transitionalpersonbackend.h" +#include <personmodel.h> #include <collectioneditor.h> -class TransitionalContactBackendPrivate +class TransitionalPersonBackendPrivate { }; -class TransitionalContactEditor : public CollectionEditor<Contact> +class TransitionalPersonEditor : public CollectionEditor<Person> { public: - TransitionalContactEditor(CollectionMediator<Contact>* m) : CollectionEditor<Contact>(m) {} - virtual bool save ( const Contact* item ) override; - virtual bool append ( const Contact* item ) override; - virtual bool remove ( Contact* item ) override; - virtual bool edit ( Contact* item ) override; - virtual bool addNew ( Contact* item ) override; + TransitionalPersonEditor(CollectionMediator<Person>* m) : CollectionEditor<Person>(m) {} + virtual bool save ( const Person* item ) override; + virtual bool append ( const Person* item ) override; + virtual bool remove ( Person* item ) override; + virtual bool edit ( Person* item ) override; + virtual bool addNew ( Person* item ) override; private: - virtual QVector<Contact*> items() const override; + virtual QVector<Person*> items() const override; }; -bool TransitionalContactEditor::save(const Contact* item) +bool TransitionalPersonEditor::save(const Person* item) { Q_UNUSED(item) return false; } -bool TransitionalContactEditor::append(const Contact* item) +bool TransitionalPersonEditor::append(const Person* item) { Q_UNUSED(item) return false; } -bool TransitionalContactEditor::remove(Contact* item) +bool TransitionalPersonEditor::remove(Person* item) { Q_UNUSED(item) return false; } -bool TransitionalContactEditor::edit( Contact* item) +bool TransitionalPersonEditor::edit( Person* item) { Q_UNUSED(item) return false; } -bool TransitionalContactEditor::addNew( Contact* item) +bool TransitionalPersonEditor::addNew( Person* item) { Q_UNUSED(item) return false; } -QVector<Contact*> TransitionalContactEditor::items() const +QVector<Person*> TransitionalPersonEditor::items() const { - return QVector<Contact*>(); + return QVector<Person*>(); } -CollectionInterface* TransitionalContactBackend::m_spInstance = nullptr; +CollectionInterface* TransitionalPersonBackend::m_spInstance = nullptr; -CollectionInterface* TransitionalContactBackend::instance() +CollectionInterface* TransitionalPersonBackend::instance() { if (!m_spInstance) { - m_spInstance = ContactModel::instance()->addBackend<TransitionalContactBackend>(); + m_spInstance = PersonModel::instance()->addBackend<TransitionalPersonBackend>(); } return m_spInstance; } -TransitionalContactBackend::~TransitionalContactBackend() +TransitionalPersonBackend::~TransitionalPersonBackend() { } template<typename T> -TransitionalContactBackend::TransitionalContactBackend(CollectionMediator<T>* mediator) : -CollectionInterface(new TransitionalContactEditor(mediator), nullptr) +TransitionalPersonBackend::TransitionalPersonBackend(CollectionMediator<T>* mediator) : +CollectionInterface(new TransitionalPersonEditor(mediator), nullptr) { } -bool TransitionalContactBackend::load() +bool TransitionalPersonBackend::load() { return false; } -bool TransitionalContactBackend::reload() +bool TransitionalPersonBackend::reload() { return false; } -// bool TransitionalContactBackend::append(const Contact* item) +// bool TransitionalPersonBackend::append(const Person* item) // { // Q_UNUSED(item) // return false; // } -// bool TransitionalContactBackend::save(const Contact* contact) +// bool TransitionalPersonBackend::save(const Person* contact) // { // Q_UNUSED(contact) // return false; // } ///Edit 'contact', the implementation may be a GUI or somehting else -// bool TransitionalContactBackend::edit( Contact* contact) +// bool TransitionalPersonBackend::edit( Person* contact) // { // Q_UNUSED(contact) // return false; // } ///Add a new contact to the backend -// bool TransitionalContactBackend::addNew( Contact* contact) +// bool TransitionalPersonBackend::addNew( Person* contact) // { // Q_UNUSED(contact) // return false; // } -bool TransitionalContactBackend::isEnabled() const +bool TransitionalPersonBackend::isEnabled() const { return false; } -CollectionInterface::SupportedFeatures TransitionalContactBackend::supportedFeatures() const +CollectionInterface::SupportedFeatures TransitionalPersonBackend::supportedFeatures() const { return CollectionInterface::SupportedFeatures::NONE; } -QString TransitionalContactBackend::name () const +QString TransitionalPersonBackend::name () const { return QObject::tr("Transitional contact backend"); } -QString TransitionalContactBackend::category () const +QString TransitionalPersonBackend::category () const { return QObject::tr("Contact"); } -QVariant TransitionalContactBackend::icon() const +QVariant TransitionalPersonBackend::icon() const { return QVariant(); } -QByteArray TransitionalContactBackend::id() const +QByteArray TransitionalPersonBackend::id() const { return "trcb"; } -// QList<Contact*> TransitionalContactBackend::items() const +// QList<Person*> TransitionalPersonBackend::items() const // { -// return QList<Contact*>(); +// return QList<Person*>(); // } diff --git a/src/transitionalcontactbackend.h b/src/transitionalpersonbackend.h similarity index 90% rename from src/transitionalcontactbackend.h rename to src/transitionalpersonbackend.h index 46d9e856..3f854011 100644 --- a/src/transitionalcontactbackend.h +++ b/src/transitionalpersonbackend.h @@ -22,7 +22,7 @@ #include "typedefs.h" -class TransitionalContactBackendPrivate; +class TransitionalPersonBackendPrivate; /** * A temporary contact backend until concrete ones are loaded @@ -41,13 +41,13 @@ class TransitionalContactBackendPrivate; * be used when contacts are created locally, but a "real" backend have * yet to be selected. */ -class LIB_EXPORT TransitionalContactBackend : public CollectionInterface { +class LIB_EXPORT TransitionalPersonBackend : public CollectionInterface { public: template<typename T> - explicit TransitionalContactBackend(CollectionMediator<T>* mediator); + explicit TransitionalPersonBackend(CollectionMediator<T>* mediator); static CollectionInterface* m_spInstance; - virtual ~TransitionalContactBackend(); + virtual ~TransitionalPersonBackend(); //Getters virtual QByteArray id () const override; @@ -66,7 +66,7 @@ public: private: - const QScopedPointer<TransitionalContactBackendPrivate> d_ptr; + const QScopedPointer<TransitionalPersonBackendPrivate> d_ptr; }; #endif diff --git a/src/vcardutils.cpp b/src/vcardutils.cpp index a45b0759..a1c8743c 100644 --- a/src/vcardutils.cpp +++ b/src/vcardutils.cpp @@ -66,7 +66,7 @@ void VCardUtils::addEmail(const QString& type, const QString& email) addProperty(QString("%1%2%3%4").arg(Property::EMAIL).arg(Delimiter::SEPARATOR_TOKEN).arg("TYPE=").arg(type), email); } -void VCardUtils::addAddress(const Contact::Address* addr) +void VCardUtils::addAddress(const Person::Address* addr) { QString prop = QString("%1%2%3").arg(Property::ADDRESS) .arg(Delimiter::SEPARATOR_TOKEN) diff --git a/src/vcardutils.h b/src/vcardutils.h index 52d1b322..0612eef5 100644 --- a/src/vcardutils.h +++ b/src/vcardutils.h @@ -21,7 +21,7 @@ #include "typedefs.h" #include <QStringList> -#include "contact.h" +#include "person.h" class LIB_EXPORT VCardUtils { @@ -73,7 +73,7 @@ public: void addProperty(const char* prop, const QString& value); void addProperty(const QString& prop, const QString& value); void addEmail(const QString& type, const QString& num); - void addAddress(const Contact::Address* addr); + void addAddress(const Person::Address* addr); void addPhoneNumber(const QString& type, const QString& num); void addPhoto(const QByteArray img); const QByteArray endVCard(); diff --git a/src/visitors/phonenumberselector.h b/src/visitors/phonenumberselector.h index a580c45a..a9d5e4bc 100644 --- a/src/visitors/phonenumberselector.h +++ b/src/visitors/phonenumberselector.h @@ -20,16 +20,16 @@ #define PHONENUMBERSELECTOR_H #include "../typedefs.h" -#include "../contact.h" +#include "../person.h" class PhoneNumber; -class Contact; +class Person; ///Common point visitor for UI specific contact dialog class LIB_EXPORT PhoneNumberSelector { public: virtual ~PhoneNumberSelector() {} - virtual PhoneNumber* getNumber(const Contact* nb) = 0; + virtual PhoneNumber* getNumber(const Person* nb) = 0; static PhoneNumberSelector* defaultVisitor(); protected: static void setDefaultVisitor(PhoneNumberSelector* v); diff --git a/src/visitors/pixmapmanipulationvisitor.cpp b/src/visitors/pixmapmanipulationvisitor.cpp index 879d1ce1..98f64976 100644 --- a/src/visitors/pixmapmanipulationvisitor.cpp +++ b/src/visitors/pixmapmanipulationvisitor.cpp @@ -25,7 +25,7 @@ PixmapManipulationVisitor::PixmapManipulationVisitor() { m_spInstance = this; } -QVariant PixmapManipulationVisitor::contactPhoto(Contact* c, const QSize& size, bool displayPresence) +QVariant PixmapManipulationVisitor::contactPhoto(Person* c, const QSize& size, bool displayPresence) { Q_UNUSED(c) Q_UNUSED(size) diff --git a/src/visitors/pixmapmanipulationvisitor.h b/src/visitors/pixmapmanipulationvisitor.h index 5cb67e16..968bf422 100644 --- a/src/visitors/pixmapmanipulationvisitor.h +++ b/src/visitors/pixmapmanipulationvisitor.h @@ -24,7 +24,7 @@ #include <QtCore/QModelIndex> //Ring -class Contact ; +class Person ; class PhoneNumber; class Call ; @@ -42,7 +42,7 @@ class LIB_EXPORT PixmapManipulationVisitor { public: PixmapManipulationVisitor(); virtual ~PixmapManipulationVisitor() {} - virtual QVariant contactPhoto(Contact* c, const QSize& size, bool displayPresence = true); + virtual QVariant contactPhoto(Person* c, const QSize& size, bool displayPresence = true); virtual QVariant callPhoto(Call* c, const QSize& size, bool displayPresence = true); virtual QVariant callPhoto(const PhoneNumber* n, const QSize& size, bool displayPresence = true); virtual QVariant numberCategoryIcon(const QVariant& p, const QSize& size, bool displayPresence = false, bool isPresent = false); diff --git a/src/visitors/profilepersistervisitor.cpp b/src/visitors/profilepersistervisitor.cpp index 6221b13b..1fc9c18c 100644 --- a/src/visitors/profilepersistervisitor.cpp +++ b/src/visitors/profilepersistervisitor.cpp @@ -36,7 +36,7 @@ bool ProfilePersisterVisitor::load() return false; } -bool ProfilePersisterVisitor::save(const Contact* c) +bool ProfilePersisterVisitor::save(const Person* c) { Q_UNUSED(c) return false; diff --git a/src/visitors/profilepersistervisitor.h b/src/visitors/profilepersistervisitor.h index 6d38d9af..e9525831 100644 --- a/src/visitors/profilepersistervisitor.h +++ b/src/visitors/profilepersistervisitor.h @@ -27,13 +27,13 @@ #include <QDir> //SFLPhone -class Contact; +class Person; class LIB_EXPORT ProfilePersisterVisitor { public: virtual ~ProfilePersisterVisitor() {} virtual bool load(); - virtual bool save(const Contact* c); + virtual bool save(const Person* c); virtual QDir getProfilesDir(); //Singleton -- GitLab