diff --git a/src/contactadapter.cpp b/src/contactadapter.cpp index e9aafdf8f615a87e5be8a1f85a4c61e52215c666..49ad99911560ae95049e3158f31c26c55aba25a1 100644 --- a/src/contactadapter.cpp +++ b/src/contactadapter.cpp @@ -91,7 +91,8 @@ ContactAdapter::getContactSelectableModel(int type) if (!conv.participants.isEmpty()) { QString calleeDisplayId = lrcInstance_ ->getAccountInfo(lrcInstance_->get_currentAccountId()) - .contactModel->bestIdForContact(conv.participants[0]); + .contactModel->bestIdForContact( + conv.participants[0].uri); QRegularExpression matchExcept = QRegularExpression( QString("\\b(?!" + calleeDisplayId + "\\b)\\w+")); diff --git a/src/currentconversation.cpp b/src/currentconversation.cpp index 53f98f4c8f1c5f4be254c79c066c2c47dd99ad04..be6008ea88a1d992ed4563886cf6127a5408023e 100644 --- a/src/currentconversation.cpp +++ b/src/currentconversation.cpp @@ -52,7 +52,7 @@ CurrentConversation::updateData() auto& convInfo = optConv->get(); set_title(accInfo.conversationModel->title(convId)); set_description(accInfo.conversationModel->description(convId)); - set_uris(convInfo.participants.toList()); + set_uris(convInfo.participantsUris()); set_isSwarm(convInfo.isSwarm()); set_isLegacy(convInfo.isLegacy()); set_isCoreDialog(convInfo.isCoreDialog()); diff --git a/src/mainview/components/SwarmDetailsPanel.qml b/src/mainview/components/SwarmDetailsPanel.qml index 8cac190c883cf262e88b83c6c7e7580b7643b290..c92e9a917d16720ac87a282ea4611a1ad8a4502f 100644 --- a/src/mainview/components/SwarmDetailsPanel.qml +++ b/src/mainview/components/SwarmDetailsPanel.qml @@ -214,7 +214,6 @@ Rectangle { ElidedTextLabel { id: bestName - Layout.preferredWidth: JamiTheme.preferredFieldWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight eText: UtilsAdapter.getContactBestName(CurrentAccount.id, modelData) diff --git a/src/mainview/components/SwarmParticipantContextMenu.qml b/src/mainview/components/SwarmParticipantContextMenu.qml index 17f0df985f6ca07f9034d9a2c78f812ef8820faf..4dcc5ce57100f516895fb297a37843dbdf507573 100644 --- a/src/mainview/components/SwarmParticipantContextMenu.qml +++ b/src/mainview/components/SwarmParticipantContextMenu.qml @@ -54,6 +54,7 @@ ContextMenuAutoLoader { }, GeneralMenuItem { id: promoteAdministrator + canTrigger: false // No API yet itemName: JamiStrings.promoteAdministrator }, GeneralMenuItem { diff --git a/src/qmlregister.cpp b/src/qmlregister.cpp index 527d7ccd2a66b32d9088769ae08b574949613a33..a181ecfbabaa0a357034d545f02b40a5a2e61e6e 100644 --- a/src/qmlregister.cpp +++ b/src/qmlregister.cpp @@ -192,6 +192,7 @@ registerTypes(QQmlEngine* engine, QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::call::staticMetaObject, "Call"); QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::datatransfer::staticMetaObject, "Datatransfer"); QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::interaction::staticMetaObject, "Interaction"); + QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::member::staticMetaObject, "Member"); QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::video::staticMetaObject, "Video"); QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::profile::staticMetaObject, "Profile"); QML_REGISTERNAMESPACE(NS_MODELS, lrc::api::conversation::staticMetaObject, "Conversation"); diff --git a/src/utils.cpp b/src/utils.cpp index 819e9863aa9915dfec935acd26585aa68a670baa..0d7d2b4dfec1ffb84dc03ec13a4f0201d762dc08 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -570,7 +570,7 @@ Utils::profileType(const lrc::api::conversation::Info& conv, const lrc::api::ConversationModel& model) { try { - auto contact = model.owner.contactModel->getContact(conv.participants[0]); + auto contact = model.owner.contactModel->getContact(conv.participants[0].uri); return contact.profileInfo.type; } catch (const std::out_of_range& e) { qDebug() << e.what(); diff --git a/src/utilsadapter.cpp b/src/utilsadapter.cpp index 7d493a7fa177ce99e89af444fbfa7824d7a92f78..300dc6297ed40591af00f3154157eaec2d929d37 100644 --- a/src/utilsadapter.cpp +++ b/src/utilsadapter.cpp @@ -131,7 +131,7 @@ UtilsAdapter::getBestName(const QString& accountId, const QString& uid) const auto& conv = lrcInstance_->getConversationFromConvUid(uid); if (!conv.participants.isEmpty()) return lrcInstance_->getAccountInfo(accountId).contactModel->bestNameForContact( - conv.participants[0]); + conv.participants[0].uri); return QString(); } @@ -141,7 +141,7 @@ UtilsAdapter::getPeerUri(const QString& accountId, const QString& uid) try { auto* convModel = lrcInstance_->getAccountInfo(accountId).conversationModel.get(); const auto& convInfo = convModel->getConversationForUid(uid).value(); - return convInfo.get().participants.front(); + return convInfo.get().participants.front().uri; } catch (const std::out_of_range& e) { qDebug() << e.what(); return ""; @@ -162,7 +162,7 @@ UtilsAdapter::getBestId(const QString& accountId, const QString& uid) const auto& conv = lrcInstance_->getConversationFromConvUid(uid); if (!conv.participants.isEmpty()) return lrcInstance_->getAccountInfo(accountId).contactModel->bestIdForContact( - conv.participants[0]); + conv.participants[0].uri); return QString(); } @@ -498,9 +498,12 @@ UtilsAdapter::getContactBestName(const QString& accountId, const QString& uri) return {}; } -QString +lrc::api::member::Role UtilsAdapter::getParticipantRole(const QString& accountId, const QString& convId, const QString& uri) { - // TODO get role - return {}; + try { + return lrcInstance_->getAccountInfo(accountId).conversationModel->memberRole(convId, uri); + } catch (...) { + } + return lrc::api::member::Role::MEMBER; } diff --git a/src/utilsadapter.h b/src/utilsadapter.h index eef62ed429a75dabcf96f1ff738cc647057677ac..cf1164fcf379770d91ae3aee60ab7a3c709a8232 100644 --- a/src/utilsadapter.h +++ b/src/utilsadapter.h @@ -95,9 +95,9 @@ public: // For Swarm details page Q_INVOKABLE bool getContactPresence(const QString& accountId, const QString& uri); Q_INVOKABLE QString getContactBestName(const QString& accountId, const QString& uri); - Q_INVOKABLE QString getParticipantRole(const QString& accountId, - const QString& convId, - const QString& uri); + Q_INVOKABLE lrc::api::member::Role getParticipantRole(const QString& accountId, + const QString& convId, + const QString& uri); Q_SIGNALS: void debugMessageReceived(const QString& message);