Friends search optimization, remove Qt conversion on strings and feedback on chat room selection

This commit is contained in:
Julien Wadel 2021-08-05 11:56:02 +02:00
parent 09ac6e45d7
commit 0db46dd918
19 changed files with 82 additions and 204 deletions

View file

@ -231,13 +231,13 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) {
}
// Sip Address.
shared_ptr<linphone::Address> address = factory->createAddress(sipAddress.toStdString());
shared_ptr<linphone::Address> address = factory->createAddress(Utils::appStringToCoreString(sipAddress));
if (!address) {
qWarning() << QStringLiteral("Unable to create sip address object from: `%1`.").arg(sipAddress);
return false;
}
address->setDisplayName(map["displayName"].toString().toStdString());
address->setDisplayName(Utils::appStringToCoreString(map["displayName"].toString()));
proxyConfig->setIdentityAddress(address);
// AuthInfo.
@ -364,7 +364,7 @@ void AssistantModel::setPhoneNumber (const QString &phoneNumber) {
// -----------------------------------------------------------------------------
QString AssistantModel::getUsername () const {
return QString::fromStdString(mAccountCreator->getUsername());
return Utils::coreStringToAppString(mAccountCreator->getUsername());
}
void AssistantModel::setUsername (const QString &username) {
@ -379,14 +379,14 @@ void AssistantModel::setUsername (const QString &username) {
// -----------------------------------------------------------------------------
QString AssistantModel::getDisplayName () const {
return QString::fromStdString(mAccountCreator->getDisplayName());
return Utils::coreStringToAppString(mAccountCreator->getDisplayName());
}
void AssistantModel::setDisplayName (const QString &displayName) {
emit displayNameChanged(
displayName,
mapAccountCreatorUsernameStatusToString(
mAccountCreator->setDisplayName(displayName.toStdString())
mAccountCreator->setDisplayName(Utils::appStringToCoreString(displayName))
)
);
}

View file

@ -90,7 +90,6 @@ CallModel::CallModel (shared_ptr<linphone::Call> call){
mRemoteAddress = mCall->getRemoteAddress()->clone();
mMagicSearch->getContactListFromFilterAsync(mRemoteAddress->getUsername(),mRemoteAddress->getDomain());
qWarning() << getFullPeerAddress();
}
CallModel::~CallModel () {
@ -108,16 +107,16 @@ QString CallModel::getLocalAddress () const {
return Utils::coreStringToAppString(mCall->getCallLog()->getLocalAddress()->asStringUriOnly());
}
QString CallModel::getFullPeerAddress () const {
return QString::fromStdString(mRemoteAddress->asString());
return Utils::coreStringToAppString(mRemoteAddress->asString());
}
QString CallModel::getFullLocalAddress () const {
return QString::fromStdString(mCall->getCallLog()->getLocalAddress()->asString());
return Utils::coreStringToAppString(mCall->getCallLog()->getLocalAddress()->asString());
}
// -----------------------------------------------------------------------------
ContactModel *CallModel::getContactModel() const{
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(QString::fromStdString(mCall->getRemoteAddress()->asString()));
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(Utils::coreStringToAppString(mCall->getRemoteAddress()->asString()));
return contact;
}
@ -139,7 +138,7 @@ void CallModel::setRecordFile (const shared_ptr<linphone::CallParams> &callParam
void CallModel::setRecordFile (const shared_ptr<linphone::CallParams> &callParams, const QString &to) {
const QString from(
QString::fromStdString(
Utils::coreStringToAppString(
CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress()->getUsername()
)
);
@ -831,8 +830,8 @@ QString CallModel::iceStateToString (linphone::IceState state) const {
QString CallModel::generateSavedFilename () const {
const shared_ptr<linphone::CallLog> callLog(mCall->getCallLog());
return generateSavedFilename(
QString::fromStdString(callLog->getFromAddress()->getUsername()),
QString::fromStdString(callLog->getToAddress()->getUsername())
Utils::coreStringToAppString(callLog->getFromAddress()->getUsername()),
Utils::coreStringToAppString(callLog->getToAddress()->getUsername())
);
}

View file

@ -117,7 +117,7 @@ void CallsListModel::launchAudioCall (const QString &sipAddress, const QHash<QSt
params->addCustomHeader(Utils::appStringToCoreString(iterator.key()), Utils::appStringToCoreString(iterator.value()));
}
params->setProxyConfig(core->getDefaultProxyConfig());
CallModel::setRecordFile(params, QString::fromStdString(address->getUsername()));
CallModel::setRecordFile(params, Utils::coreStringToAppString(address->getUsername()));
shared_ptr<linphone::ProxyConfig> currentProxyConfig = core->getDefaultProxyConfig();
if(currentProxyConfig){
if(currentProxyConfig->getState() == linphone::RegistrationState::Ok)
@ -153,7 +153,7 @@ void CallsListModel::launchSecureAudioCall (const QString &sipAddress, LinphoneE
params->addCustomHeader(Utils::appStringToCoreString(iterator.key()), Utils::appStringToCoreString(iterator.value()));
}
params->setProxyConfig(core->getDefaultProxyConfig());
CallModel::setRecordFile(params, QString::fromStdString(address->getUsername()));
CallModel::setRecordFile(params, Utils::coreStringToAppString(address->getUsername()));
shared_ptr<linphone::ProxyConfig> currentProxyConfig = core->getDefaultProxyConfig();
params->setMediaEncryption(LinphoneEnums::toLinphone(encryption));
if(currentProxyConfig){
@ -189,7 +189,7 @@ void CallsListModel::launchVideoCall (const QString &sipAddress) const {
shared_ptr<linphone::CallParams> params = core->createCallParams(nullptr);
params->enableVideo(true);
params->setProxyConfig(core->getDefaultProxyConfig());
CallModel::setRecordFile(params, QString::fromStdString(address->getUsername()));
CallModel::setRecordFile(params, Utils::coreStringToAppString(address->getUsername()));
core->inviteAddressWithParams(address, params);
}
@ -240,23 +240,11 @@ ChatRoomModel* CallsListModel::createChat (const QString &participantAddress) co
std::list <shared_ptr<linphone::Address> > participants;
std::shared_ptr<const linphone::Address> localAddress;
participants.push_back(address);
auto proxy = core->getDefaultProxyConfig();
params->setBackend(linphone::ChatRoomBackend::Basic);
std::shared_ptr<linphone::ChatRoom> chatRoom = core->createChatRoom(params, localAddress, participants);
/*
if( chatRoom!=nullptr){
auto search = core->searchChatRoom(params, localAddress
, address
, participants);
if(search != chatRoom)
qWarning("toto");
}
return chatRoom!=nullptr;
*/
if( chatRoom != nullptr){
auto timelineList = CoreManager::getInstance()->getTimelineListModel();
auto timeline = timelineList->getTimeline(chatRoom, true);
@ -286,7 +274,7 @@ bool CallsListModel::createSecureChat (const QString& subject, const QString &pa
auto proxy = core->getDefaultProxyConfig();
params->enableEncryption(true);
params->setSubject(subject.toStdString());
params->setSubject(Utils::appStringToCoreString(subject));
params->setBackend(linphone::ChatRoomBackend::FlexisipChat);
params->setEncryptionBackend(linphone::ChatRoomEncryptionBackend::Lime);
params->enableGroup(true);
@ -336,13 +324,13 @@ QVariantMap CallsListModel::createChatRoom(const QString& subject, const int& se
chatRoom = core->searchChatRoom(params, localAddress
, localAddress
, chatRoomParticipants);
params->setSubject(subject != ""?subject.toStdString():"Dummy Subject");
params->setSubject(subject != ""?Utils::appStringToCoreString(subject):"Dummy Subject");
if(!chatRoom)
chatRoom = core->searchChatRoom(params, localAddress
, localAddress
, chatRoomParticipants);
}else
params->setSubject(subject != ""?subject.toStdString():"Dummy Subject");
params->setSubject(subject != ""?Utils::appStringToCoreString(subject):"Dummy Subject");
if( !chatRoom) {
chatRoom = core->createChatRoom(params, localAddress, chatRoomParticipants);
if(chatRoom != nullptr && admins.size() > 0)

View file

@ -99,7 +99,7 @@ quint64 ContentModel::getFileSize() const{
}
QString ContentModel::getName() const{
return QString::fromStdString(mContent->getName());
return Utils::coreStringToAppString(mContent->getName());
}
QString ContentModel::getThumbnail() const{
@ -329,7 +329,7 @@ ChatMessageModel::ChatMessageModel ( std::shared_ptr<linphone::ChatMessage> chat
QString txt;
for(auto content : contents){
if(content->isText())
txt += QString::fromStdString(content->getUtf8Text());
txt += Utils::coreStringToAppString(content->getUtf8Text());
}
mContent = txt;
//mIsOutgoing = chatMessage->isOutgoing() || chatMessage->getState() == linphone::ChatMessage::State::Idle;

View file

@ -223,7 +223,7 @@ ChatRoomModel::ChatRoomModel (std::shared_ptr<linphone::ChatRoom> chatRoom, QObj
connect(mParticipantListModel.get(), &ParticipantListModel::participantsChanged, this, &ChatRoomModel::usernameChanged);
auto participants = mChatRoom->getParticipants();
for(auto participant : participants){
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(QString::fromStdString((participant)->getAddress()->asString()));
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(Utils::coreStringToAppString((participant)->getAddress()->asString()));
if(contact) {
connect(contact, &ContactModel::contactUpdated, this, &ChatRoomModel::fullPeerAddressChanged);
connect(contact, &ContactModel::contactUpdated, this, &ChatRoomModel::usernameChanged);
@ -368,7 +368,7 @@ QString ChatRoomModel::getFullPeerAddress () const {
}
QString ChatRoomModel::getFullLocalAddress () const {
return mChatRoom ? QString::fromStdString(mChatRoom->getLocalAddress()->asString()) : "";
return mChatRoom ? Utils::coreStringToAppString(mChatRoom->getLocalAddress()->asString()) : "";
}
QString ChatRoomModel::getConferenceAddress () const {
@ -376,12 +376,12 @@ QString ChatRoomModel::getConferenceAddress () const {
return "";
else {
auto address = mChatRoom->getConferenceAddress();
return address?QString::fromStdString(address->asString()):"";
return address?Utils::coreStringToAppString(address->asString()):"";
}
}
QString ChatRoomModel::getSubject () const {
return mChatRoom ? QString::fromStdString(mChatRoom->getSubject()) : "";
return mChatRoom ? Utils::coreStringToAppString(mChatRoom->getSubject()) : "";
}
QString ChatRoomModel::getUsername () const {
@ -389,7 +389,7 @@ QString ChatRoomModel::getUsername () const {
if( !mChatRoom)
return "";
if( isGroupEnabled())
username = QString::fromStdString(mChatRoom->getSubject());
username = Utils::coreStringToAppString(mChatRoom->getSubject());
if(username != "")
return username;
@ -402,13 +402,13 @@ QString ChatRoomModel::getUsername () const {
username = Utils::getDisplayName(mChatRoom->getPeerAddress());
if(username != "")
return username;
return QString::fromStdString(mChatRoom->getPeerAddress()->asStringUriOnly());
return Utils::coreStringToAppString(mChatRoom->getPeerAddress()->asStringUriOnly());
}
QString ChatRoomModel::getAvatar () const {
if( mChatRoom && mChatRoom->getNbParticipants() == 1){
auto participants = mChatRoom->getParticipants();
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(QString::fromStdString((*participants.begin())->getAddress()->asString()));
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(Utils::coreStringToAppString((*participants.begin())->getAddress()->asString()));
if(contact)
return contact->getVcardModel()->getAvatar();
}
@ -418,7 +418,7 @@ QString ChatRoomModel::getAvatar () const {
int ChatRoomModel::getPresenceStatus() const {
if( mChatRoom && mChatRoom->getNbParticipants() == 1 && !isGroupEnabled()){
auto participants = mChatRoom->getParticipants();
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(QString::fromStdString((*participants.begin())->getAddress()->asString()));
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(Utils::coreStringToAppString((*participants.begin())->getAddress()->asString()));
if(contact) {
int p = contact->getPresenceLevel();
return p;
@ -747,7 +747,7 @@ void ChatRoomModel::handlePresenceStatusReceived(std::shared_ptr<linphone::Frien
canUpdatePresence = mChatRoom->getLocalAddress()->weakEqual(*itContactAddress);
if(!canUpdatePresence && !isGroupEnabled() && mChatRoom->getNbParticipants() == 1){
auto participants = mChatRoom->getParticipants();
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(QString::fromStdString((*participants.begin())->getAddress()->asString()));
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(Utils::coreStringToAppString((*participants.begin())->getAddress()->asString()));
if(contact){
auto friendsAddresses = contact->getVcardModel()->getSipAddresses();
for(auto friendAddress = friendsAddresses.begin() ; !canUpdatePresence && friendAddress != friendsAddresses.end() ; ++friendAddress){
@ -948,6 +948,5 @@ void ChatRoomModel::onChatMessageShouldBeStored(const std::shared_ptr<linphone::
}
void ChatRoomModel::onChatMessageParticipantImdnStateChanged(const std::shared_ptr<linphone::ChatRoom> & chatRoom, const std::shared_ptr<linphone::ChatMessage> & message, const std::shared_ptr<const linphone::ParticipantImdnState> & state){
qWarning() << "ChatRoom Imdn received :" << (state->getParticipant() != nullptr);
}

View file

@ -261,13 +261,9 @@ void ChatRoomProxyModel::reload (ChatRoomModel *chatRoomModel) {
QObject::disconnect(ChatRoomModel, &ChatRoomModel::messageSent, this, &ChatRoomProxyModel::handleMessageSent);
}
//mChatRoomModel = CoreManager::getInstance()->getChatRoomModel(mPeerAddress, mLocalAddress, mIsSecure);
//if(mChatRoom)
mChatRoomModel = CoreManager::getInstance()->getTimelineListModel()->getChatRoomModel(chatRoomModel);
if(!mChatRoomModel)
qWarning() << "mChatRoomModel is null!";
if (mChatRoomModel) {
ChatRoomModel *ChatRoomModel = mChatRoomModel.get();

View file

@ -196,7 +196,7 @@ void VcardModel::setUsername (const QString &username) {
if (username.length() == 0 || username == getUsername())
return;
mVcard->setFullName(encode(username).toStdString());
mVcard->setFullName(Utils::appStringToCoreString(encode(username)));
emit vcardUpdated();
}

View file

@ -96,6 +96,9 @@ bool ContactsListModel::removeRows (int row, int count, const QModelIndex &paren
for (int i = 0; i < count; ++i) {
ContactModel *contact = mList.takeAt(row);
for(auto address : contact->getVcardModel()->getSipAddresses()){
mOptimizedSearch.remove(address.toString());
}
mLinphoneFriends->removeFriend(contact->mLinphoneFriend);
@ -111,10 +114,16 @@ bool ContactsListModel::removeRows (int row, int count, const QModelIndex &paren
// -----------------------------------------------------------------------------
ContactModel *ContactsListModel::findContactModelFromSipAddress (const QString &sipAddress) const {
if(mOptimizedSearch.contains(sipAddress))
return mOptimizedSearch[sipAddress];
else
return nullptr;
/*
auto it = find_if(mList.begin(), mList.end(), [&sipAddress](ContactModel *contactModel) {
return contactModel->getVcardModel()->getSipAddresses().contains(sipAddress);
});
return it != mList.end() ? *it : nullptr;
*/
}
ContactModel *ContactsListModel::findContactModelFromUsername (const QString &username) const {
@ -186,11 +195,16 @@ void ContactsListModel::addContact (ContactModel *contact) {
emit contactUpdated(contact);
});
QObject::connect(contact, &ContactModel::sipAddressAdded, this, [this, contact](const QString &sipAddress) {
mOptimizedSearch[sipAddress] = contact;
emit sipAddressAdded(contact, sipAddress);
});
QObject::connect(contact, &ContactModel::sipAddressRemoved, this, [this, contact](const QString &sipAddress) {
mOptimizedSearch.remove(sipAddress);
emit sipAddressRemoved(contact, sipAddress);
});
mList << contact;
for(auto address : contact->getVcardModel()->getSipAddresses()){
mOptimizedSearch[address.toString()] = contact;
}
}

View file

@ -70,6 +70,7 @@ private:
void addContact (ContactModel *contact);
QList<ContactModel *> mList;
QMap<QString, ContactModel*> mOptimizedSearch;
std::shared_ptr<linphone::FriendList> mLinphoneFriends;
};

View file

@ -122,129 +122,6 @@ CoreManager *CoreManager::getInstance (){
return mInstance;
}
/*
shared_ptr<ChatRoomModel> CoreManager::getChatRoomModel (const QString &peerAddress, const QString &localAddress, const bool& isSecure) {
if (peerAddress.isEmpty() || localAddress.isEmpty())
return nullptr;
// Create a new chat model.
QPair<bool, QPair<QString, QString>> chatRoomModelId{isSecure,{ peerAddress, localAddress }};
if (!mChatRoomModels.contains(chatRoomModelId)) {
if (
!mCore->createAddress(peerAddress.toStdString()) ||
!mCore->createAddress(localAddress.toStdString())
) {
qWarning() << QStringLiteral("Unable to get chat model from invalid chat model id: (%1, %2).")
.arg(peerAddress).arg(localAddress);
return nullptr;
}
auto deleter = [this, chatRoomModelId](ChatRoomModel *chatRoomModel) {
bool removed = mChatRoomModels.remove(chatRoomModelId);
Q_ASSERT(removed);
delete chatRoomModel;
};
shared_ptr<ChatRoomModel> chatRoomModel(new ChatRoomModel(peerAddress, localAddress, isSecure), deleter);
mChatRoomModels[chatRoomModelId] = chatRoomModel;
emit chatRoomModelCreated(chatRoomModel);
return chatRoomModel;
}
// Returns an existing chat model.
shared_ptr<ChatRoomModel> chatRoomModel = mChatRoomModels[chatRoomModelId].lock();
Q_CHECK_PTR(chatRoomModel);
return chatRoomModel;
}
*/
/*
shared_ptr<ChatRoomModel> CoreManager::getChatRoomModel (ChatRoomModel * data) {
if(data){
return getChatRoomListModel()->getChatRoomModel(data);
//for(auto it = mChatRoomModels.begin() ; it != mChatRoomModels.end() ; ++it){
// auto a = it->second.lock();
// if(a.get() == data)
// return a;
//}
}
return nullptr;
}*/
/*
shared_ptr<ChatRoomModel> CoreManager::getChatRoomModel (std::shared_ptr<linphone::ChatRoom> chatRoom, const bool& create) {
if (!chatRoom)
return nullptr;
auto pc = chatRoom->getCurrentParams();
for(auto it = mChatRoomModels.begin() ; it != mChatRoomModels.end() ; ++it) {
auto a = it->second.lock();
auto pa = a->getChatRoom()->getCurrentParams();
if( a->getChatRoom()->getConferenceAddress() == chatRoom->getConferenceAddress()
&& a->getChatRoom()->getLocalAddress() == chatRoom->getLocalAddress()
&& a->getChatRoom()->getPeerAddress() == chatRoom->getPeerAddress()
&& pa->encryptionEnabled() == pc->encryptionEnabled()
){
// Returns an existing chat model.
if(a->mDeleteChatRoom)
return nullptr;
shared_ptr<ChatRoomModel> chatRoomModel = a;
Q_CHECK_PTR(chatRoomModel);
return chatRoomModel;
}
}
if(!create){
return nullptr;
}else{
//auto deleter = [this, chatRoomModelId](ChatRoomModel *chatRoomModel) {
shared_ptr<ChatRoomModel> chatRoomModel = ChatRoomModel::create(chatRoom);
auto deleter = [this](QObject * obj) {
//bool removed = mChatRoomModels.remove(chatRoomModelId);
ChatRoomModel * chatRoomModel = (ChatRoomModel*)obj;
auto c = chatRoomModel->getChatRoom();
auto iterator = mChatRoomModels.begin();
qWarning() << c.use_count();
while(iterator != mChatRoomModels.end()) {
if(iterator->first != chatRoomModel->getChatRoom())
++iterator;
else{
//iterator->first->removeListener(iterator->second.lock());
auto i = *iterator;
qWarning() << c.use_count();
mChatRoomModels.erase(iterator);
qWarning() << c.use_count();
iterator = mChatRoomModels.end();
}
}
qWarning() << c.use_count();
if(chatRoomModel->mDeleteChatRoom){
CoreManager::getInstance()->getCore()->deleteChatRoom(c);
}
qWarning() << c.use_count();
};
// shared_ptr<ChatRoomModel> chatRoomModel = ChatRoomModel::create(chatRoom);
connect(chatRoomModel.get(), &QObject::destroyed, deleter);
mChatRoomModels.append({chatRoom, chatRoomModel});
qWarning() << chatRoom.use_count();
//shared_ptr<ChatRoomModel> chatRoomModel = ChatRoomModel::create(chatRoom);
//(new ChatRoomModel(chatRoom), deleter);
//chatRoom->addListener(chatRoomModel);
//mChatRoomModels.append({chatRoom, chatRoomModel});
emit chatRoomModelCreated(chatRoomModel);
return chatRoomModel;
}
}
*/
/*
//bool CoreManager::chatRoomModelExists (const QString &peerAddress, const QString &localAddress, const bool &isSecure) {
bool CoreManager::chatRoomModelExists (std::shared_ptr<linphone::ChatRoom> chatRoom) {
//return mChatRoomModels.contains({isSecure, { peerAddress, localAddress}});
return mChatRoomModels.contains(chatRoom);
}*/
HistoryModel* CoreManager::getHistoryModel(){
if(!mHistoryModel){

View file

@ -53,7 +53,7 @@ static inline void fillCallStartEntry (QVariantMap &dest, const shared_ptr<linph
dest["isOutgoing"] = callLog->getDir() == linphone::Call::Dir::Outgoing;
dest["status"] = static_cast<HistoryModel::CallStatus>(callLog->getStatus());
dest["isStart"] = true;
dest["sipAddress"] = QString::fromStdString(callLog->getRemoteAddress()->asString());
dest["sipAddress"] = Utils::coreStringToAppString(callLog->getRemoteAddress()->asString());
}
static inline void fillCallEndEntry (QVariantMap &dest, const shared_ptr<linphone::CallLog> &callLog) {
@ -62,7 +62,7 @@ static inline void fillCallEndEntry (QVariantMap &dest, const shared_ptr<linphon
dest["isOutgoing"] = callLog->getDir() == linphone::Call::Dir::Outgoing;
dest["status"] = static_cast<HistoryModel::CallStatus>(callLog->getStatus());
dest["isStart"] = false;
dest["sipAddress"] = QString::fromStdString(callLog->getRemoteAddress()->asString());
dest["sipAddress"] = Utils::coreStringToAppString(callLog->getRemoteAddress()->asString());
}
// -----------------------------------------------------------------------------

View file

@ -278,8 +278,8 @@ void Notifier::notifyReceivedMessage (const shared_ptr<linphone::ChatMessage> &m
map["timelineModel"].setValue(CoreManager::getInstance()->getTimelineListModel()->getTimeline(chatRoom, true).get());
map["peerAddress"] = Utils::coreStringToAppString(chatRoom->getPeerAddress()->asStringUriOnly());
map["localAddress"] = Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly());
map["fullPeerAddress"] = QString::fromStdString(chatRoom->getPeerAddress()->asString());
map["fullLocalAddress"] = QString::fromStdString(chatRoom->getLocalAddress()->asString());
map["fullPeerAddress"] = Utils::coreStringToAppString(chatRoom->getPeerAddress()->asString());
map["fullLocalAddress"] = Utils::coreStringToAppString(chatRoom->getLocalAddress()->asString());
map["window"].setValue(App::getInstance()->getMainWindow());
CREATE_NOTIFICATION(Notifier::ReceivedMessage, map)
}

View file

@ -107,7 +107,6 @@ void ColorListModel::useConfig (const std::shared_ptr<linphone::Config> &config)
QString ColorListModel::getNames(){
QStringList names;
qWarning() << "A";
const QMetaObject *info = metaObject();
for (int i = info->propertyOffset(); i < info->propertyCount(); ++i) {

View file

@ -317,8 +317,6 @@ void ParticipantListModel::onParticipantDeviceRemoved(const std::shared_ptr<linp
}
}
void ParticipantListModel::onParticipantRegistrationSubscriptionRequested(const std::shared_ptr<linphone::ChatRoom> & chatRoom, const std::shared_ptr<const linphone::Address> & participantAddress){
qWarning() << "Toto";
}
void ParticipantListModel::onParticipantRegistrationUnsubscriptionRequested(const std::shared_ptr<linphone::ChatRoom> & chatRoom, const std::shared_ptr<const linphone::Address> & participantAddress){
qWarning() << "Toto";
}

View file

@ -23,6 +23,8 @@
#include "components/contact/ContactModel.hpp"
#include "components/contacts/ContactsListModel.hpp"
#include "utils/Utils.hpp"
// =============================================================================
SearchResultModel::SearchResultModel(std::shared_ptr<const linphone::Friend> linphoneFriend, std::shared_ptr<const linphone::Address> address, QObject * parent) : QObject(parent){
@ -34,11 +36,11 @@ SearchResultModel::SearchResultModel(std::shared_ptr<const linphone::Friend> lin
}
QString SearchResultModel::getAddressString() const{
return QString::fromStdString(mAddress->asString());
return Utils::coreStringToAppString(mAddress->asString());
}
QString SearchResultModel::getAddressStringUriOnly() const{
return QString::fromStdString(mAddress->asStringUriOnly());
return Utils::coreStringToAppString(mAddress->asStringUriOnly());
}
std::shared_ptr<linphone::Address> SearchResultModel::getAddress() const{

View file

@ -106,8 +106,8 @@ bool SearchSipAddressesModel::removeRows (int row, int count, const QModelIndex
}
void SearchSipAddressesModel::setFilter(const QString& filter){
mMagicSearch->getContactListFromFilterAsync(filter.toStdString(),"");
//searchReceived(mMagicSearch->getContactListFromFilter(filter.toStdString(),"")); // Just to show how to use sync method
mMagicSearch->getContactListFromFilterAsync(Utils::appStringToCoreString(filter),"");
//searchReceived(mMagicSearch->getContactListFromFilter(Utils::appStringToCoreString(filter),"")); // Just to show how to use sync method
}
void SearchSipAddressesModel::searchReceived(std::list<std::shared_ptr<linphone::SearchResult>> results){

View file

@ -84,7 +84,7 @@ QString AccountSettingsModel::getUsedSipAddressAsStringUriOnly () const {
}
QString AccountSettingsModel::getUsedSipAddressAsString () const {
return QString::fromStdString(getUsedSipAddress()->asString());
return Utils::coreStringToAppString(getUsedSipAddress()->asString());
}
// -----------------------------------------------------------------------------
@ -123,7 +123,7 @@ QVariantMap AccountSettingsModel::getProxyConfigDescription (const shared_ptr<li
{
const shared_ptr<const linphone::Address> address = proxyConfig->getIdentityAddress();
map["sipAddress"] = address
? QString::fromStdString(proxyConfig->getIdentityAddress()->asString())
? Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asString())
: QString("");
}
map["serverAddress"] = Utils::coreStringToAppString(proxyConfig->getServerAddr());
@ -223,7 +223,7 @@ bool AccountSettingsModel::addOrUpdateProxyConfig (
// Sip address.
{
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(literal.toStdString());
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(literal));
if (!address) {
qWarning() << QStringLiteral("Unable to create sip address object from: `%1`.").arg(literal);
return false;
@ -331,7 +331,7 @@ QString AccountSettingsModel::getUsername () const {
shared_ptr<const linphone::Address> address = getUsedSipAddress();
const string displayName = address->getDisplayName();
return QString::fromStdString(
return Utils::coreStringToAppString(
displayName.empty() ? address->getUsername() : displayName
);
}
@ -341,7 +341,7 @@ void AccountSettingsModel::setUsername (const QString &username) {
shared_ptr<linphone::Address> newAddress = address->clone();
QString oldUsername = Utils::coreStringToAppString(newAddress->getUsername());
if( oldUsername != username) {
if (newAddress->setDisplayName(username.toStdString())) {
if (newAddress->setDisplayName(Utils::appStringToCoreString(username))) {
qWarning() << QStringLiteral("Unable to set displayName on sip address: `%1`.")
.arg(Utils::coreStringToAppString(newAddress->asStringUriOnly()));
} else {
@ -359,7 +359,7 @@ AccountSettingsModel::RegistrationState AccountSettingsModel::getRegistrationSta
// -----------------------------------------------------------------------------
QString AccountSettingsModel::getPrimaryUsername () const {
return QString::fromStdString(
return Utils::coreStringToAppString(
CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->getUsername()
);
}
@ -379,7 +379,7 @@ void AccountSettingsModel::setPrimaryUsername (const QString &username) {
}
QString AccountSettingsModel::getPrimaryDisplayName () const {
return QString::fromStdString(CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->getDisplayName());
return Utils::coreStringToAppString(CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->getDisplayName());
}
void AccountSettingsModel::setPrimaryDisplayName (const QString &displayName) {
@ -388,14 +388,14 @@ void AccountSettingsModel::setPrimaryDisplayName (const QString &displayName) {
QString oldDisplayName = Utils::coreStringToAppString(primary->getDisplayName());
if(oldDisplayName != displayName){
primary->setDisplayName(displayName.toStdString());
primary->setDisplayName(Utils::appStringToCoreString(displayName));
core->setPrimaryContact(primary->asString());
emit accountSettingsUpdated();
}
}
QString AccountSettingsModel::getPrimarySipAddress () const {
return QString::fromStdString(
return Utils::coreStringToAppString(
CoreManager::getInstance()->getCore()->createPrimaryContactParsed()->asString()
);
}
@ -409,7 +409,7 @@ QVariantList AccountSettingsModel::getAccounts () const {
if(CoreManager::getInstance()->getSettingsModel()->getShowLocalSipAccount()) {
QVariantMap account;
account["sipAddress"] = Utils::coreStringToAppString(core->createPrimaryContactParsed()->asStringUriOnly());
account["fullSipAddress"] = QString::fromStdString(core->createPrimaryContactParsed()->asString());
account["fullSipAddress"] = Utils::coreStringToAppString(core->createPrimaryContactParsed()->asString());
account["unreadMessageCount"] = core->getUnreadChatMessageCountFromLocal(core->createPrimaryContactParsed());
account["missedCallCount"] = CoreManager::getInstance()->getMissedCallCountFromLocal(account["sipAddress"].toString());
account["proxyConfig"].setValue(nullptr);
@ -419,7 +419,7 @@ QVariantList AccountSettingsModel::getAccounts () const {
for (const auto &proxyConfig : core->getProxyConfigList()) {
QVariantMap account;
account["sipAddress"] = Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asStringUriOnly());
account["fullSipAddress"] = QString::fromStdString(proxyConfig->getIdentityAddress()->asString());
account["fullSipAddress"] = Utils::coreStringToAppString(proxyConfig->getIdentityAddress()->asString());
account["proxyConfig"].setValue(proxyConfig);
account["unreadMessageCount"] = proxyConfig->getUnreadChatMessageCount();
account["missedCallCount"] = CoreManager::getInstance()->getMissedCallCountFromLocal(account["sipAddress"].toString());

View file

@ -154,7 +154,7 @@ SipAddressObserver *SipAddressesModel::getSipAddressObserver (const QString &pee
QString SipAddressesModel::getTransportFromSipAddress (const QString &sipAddress) {
if( sipAddress.toUpper().contains("TRANSPORT="))
{// Transport has been specified : check for it
const shared_ptr<const linphone::Address> address = linphone::Factory::get()->createAddress(sipAddress.toStdString());
const shared_ptr<const linphone::Address> address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(sipAddress));
if (!address)
return QString("TLS"); // Return TLS by default
@ -174,14 +174,14 @@ QString SipAddressesModel::getTransportFromSipAddress (const QString &sipAddress
}
QString SipAddressesModel::addTransportToSipAddress (const QString &sipAddress, const QString &transport) {
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(sipAddress.toStdString());
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(sipAddress));
if (!address)
return QString("");
address->setTransport(Utils::stringToTransportType(transport.toUpper()));
return QString::fromStdString(address->asString());
return Utils::coreStringToAppString(address->asString());
}
// -----------------------------------------------------------------------------
@ -227,11 +227,11 @@ QString SipAddressesModel::interpretSipAddress (const QUrl &sipAddress) {
}
bool SipAddressesModel::addressIsValid (const QString &address) {
return !!linphone::Factory::get()->createAddress(address.toStdString());
return !!linphone::Factory::get()->createAddress(Utils::appStringToCoreString(address));
}
bool SipAddressesModel::sipAddressIsValid (const QString &sipAddress) {
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(sipAddress.toStdString());
shared_ptr<linphone::Address> address = linphone::Factory::get()->createAddress(Utils::appStringToCoreString(sipAddress));
return address && !address->getUsername().empty();
}
// Return at most : sip:username@domain
@ -286,7 +286,6 @@ void SipAddressesModel::handleHistoryModelCreated (HistoryModel *historyModel) {
}
void SipAddressesModel::handleContactAdded (ContactModel *contact) {
for (const auto &sipAddress : contact->getVcardModel()->getSipAddresses()) {
qWarning() << "handleContactAdded " << sipAddress.toString();
addOrUpdateSipAddress(sipAddress.toString(), contact);
}
}
@ -302,7 +301,6 @@ void SipAddressesModel::handleSipAddressAdded (ContactModel *contact, const QStr
qWarning() << "Unable to map sip address" << sipAddress << "to" << contact << "- already used by" << mappedContact;
return;
}
qWarning() << "handleSipAddressAdded " << sipAddress;
addOrUpdateSipAddress(sipAddress, contact);
}
@ -317,7 +315,6 @@ void SipAddressesModel::handleSipAddressRemoved (ContactModel *contact, const QS
}
void SipAddressesModel::handleMessageReceived (const shared_ptr<linphone::ChatMessage> &message) {
qInfo() << "Handle message received.";
const QString peerAddress(Utils::coreStringToAppString(message->getChatRoom()->getPeerAddress()->asStringUriOnly()));
addOrUpdateSipAddress(peerAddress, message);
}
@ -442,7 +439,6 @@ void SipAddressesModel::handleMessageCountReset (ChatRoomModel *chatRoomModel) {
}
void SipAddressesModel::handleMessageSent (const shared_ptr<linphone::ChatMessage> &message) {
qInfo() << "Handle message sent.";
const QString peerAddress(Utils::coreStringToAppString(message->getChatRoom()->getPeerAddress()->asStringUriOnly()));
addOrUpdateSipAddress(peerAddress, message);
}

View file

@ -92,8 +92,17 @@ ChatRoomModel *TimelineModel::getChatRoomModel() const{
void TimelineModel::setSelected(const bool& selected){
if(selected != mSelected){
mSelected = selected;
if(mSelected)
if(mSelected){
qInfo() << "Chat room selected : Subject :" << mChatRoomModel->getSubject()
<< ", Username:" << mChatRoomModel->getUsername()
<< ", GroupEnabled:"<< mChatRoomModel->isGroupEnabled()
<< ", Encrypted:"<< mChatRoomModel->haveEncryption()
<< ", ephemeralEnabled:" << mChatRoomModel->haveEncryption()
<< ", isAdmin:"<< mChatRoomModel->isMeAdmin()
<< ", canHandleParticipants:"<< mChatRoomModel->canHandleParticipants()
<< ", hasBeenLeft:" << mChatRoomModel->hasBeenLeft();
mChatRoomModel->initEntries();
}
emit selectedChanged(mSelected);
}
}