From 0988bb934b24bfd399b64c461d5492f723589793 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 11 Jan 2017 16:43:45 +0100 Subject: [PATCH] feat(src/components/sip-addresses/SipAddressesModel): better code (SipAddressesModel::addOrUpdateSipAddress) --- tests/src/app/App.hpp | 1 - .../sip-addresses/SipAddressesModel.cpp | 36 ++++++++++--------- .../sip-addresses/SipAddressesModel.hpp | 7 ++++ 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/tests/src/app/App.hpp b/tests/src/app/App.hpp index f63dee2ad..82648c53f 100644 --- a/tests/src/app/App.hpp +++ b/tests/src/app/App.hpp @@ -16,7 +16,6 @@ class App : public QApplication { Q_OBJECT; public: - QQmlEngine *getEngine () { return &m_engine; } diff --git a/tests/src/components/sip-addresses/SipAddressesModel.cpp b/tests/src/components/sip-addresses/SipAddressesModel.cpp index a5117c50a..d9cdd87de 100644 --- a/tests/src/components/sip-addresses/SipAddressesModel.cpp +++ b/tests/src/components/sip-addresses/SipAddressesModel.cpp @@ -188,20 +188,30 @@ void SipAddressesModel::handleContactRemoved (const ContactModel *contact) { removeContactOfSipAddress(sip_address.toString()); } +void SipAddressesModel::addOrUpdateSipAddress ( + QVariantMap &map, + ContactModel *contact, + const shared_ptr &message +) { + if (contact) { + map["contact"] = QVariant::fromValue(contact); + updateObservers(map["sipAddress"].toString(), contact); + } + + if (message) { + map["timestamp"] = QDateTime::fromMSecsSinceEpoch(message->getTime() * 1000); + map["unreadMessagesCount"] = message->getChatRoom()->getUnreadMessagesCount(); + } +} + void SipAddressesModel::addOrUpdateSipAddress ( const QString &sip_address, ContactModel *contact, - const std::shared_ptr &message + const shared_ptr &message ) { auto it = m_sip_addresses.find(sip_address); if (it != m_sip_addresses.end()) { - if (contact) { - (*it)["contact"] = QVariant::fromValue(contact); - updateObservers(sip_address, contact); - } - - if (message) - (*it)["timestamp"] = QDateTime::fromMSecsSinceEpoch(message->getTime() * 1000); + addOrUpdateSipAddress(*it, contact, message); int row = m_refs.indexOf(&(*it)); Q_ASSERT(row != -1); @@ -212,14 +222,7 @@ void SipAddressesModel::addOrUpdateSipAddress ( QVariantMap map; map["sipAddress"] = sip_address; - - if (contact) { - map["contact"] = QVariant::fromValue(contact); - updateObservers(sip_address, contact); - } - - if (message) - map["timestamp"] = QDateTime::fromMSecsSinceEpoch(message->getTime() * 1000); + addOrUpdateSipAddress(map, contact, message); int row = m_refs.count(); @@ -273,6 +276,7 @@ void SipAddressesModel::initSipAddresses () { QVariantMap map; map["sipAddress"] = sip_address; map["timestamp"] = QDateTime::fromMSecsSinceEpoch(history.back()->getTime() * 1000); + map["unreadMessagesCount"] = chat_room->getUnreadMessagesCount(); m_sip_addresses[sip_address] = map; } diff --git a/tests/src/components/sip-addresses/SipAddressesModel.hpp b/tests/src/components/sip-addresses/SipAddressesModel.hpp index cd8eeb95f..d1f2716aa 100644 --- a/tests/src/components/sip-addresses/SipAddressesModel.hpp +++ b/tests/src/components/sip-addresses/SipAddressesModel.hpp @@ -37,11 +37,18 @@ private: void handleContactAdded (ContactModel *contact); void handleContactRemoved (const ContactModel *contact); + void addOrUpdateSipAddress ( + QVariantMap &map, + ContactModel *contact, + const std::shared_ptr &message + ); + void addOrUpdateSipAddress ( const QString &sip_address, ContactModel *contact = nullptr, const std::shared_ptr &message = std::shared_ptr() ); + void removeContactOfSipAddress (const QString &sip_address); void initSipAddresses ();