Skip to content
Snippets Groups Projects
Unverified Commit a28c88be authored by Sébastien Blin's avatar Sébastien Blin
Browse files

conversationlistmodel: use removeConversation for swarm

Also, dataForItem MUST return a QVariant to be able to show the
context menu

Change-Id: Ia02a087e0eb3d55000cb2026d41c8fb53e8ae46c
parent 0621cf5b
No related branches found
No related tags found
No related merge requests found
...@@ -163,12 +163,12 @@ ConversationListModelBase::dataForItem(item_t item, int role) const ...@@ -163,12 +163,12 @@ ConversationListModelBase::dataForItem(item_t item, int role) const
auto peerUri = peerUriList.at(0); auto peerUri = peerUriList.at(0);
ContactModel* contactModel; ContactModel* contactModel;
contact::Info contact {}; contact::Info contact {};
try {
contactModel = lrcInstance_->getCurrentAccountInfo().contactModel.get(); contactModel = lrcInstance_->getCurrentAccountInfo().contactModel.get();
try {
contact = contactModel->getContact(peerUri); contact = contactModel->getContact(peerUri);
} catch (const std::exception&) { } catch (const std::exception&) {
qWarning() << Q_FUNC_INFO << "Can't find contact" << peerUri; qWarning() << Q_FUNC_INFO << "Can't find contact" << peerUri
return {}; << " this is a bug, please report";
} }
switch (role) { switch (role) {
......
...@@ -133,12 +133,14 @@ ListView { ...@@ -133,12 +133,14 @@ ListView {
"title": model.dataForRow(row, ConversationList.Title), "title": model.dataForRow(row, ConversationList.Title),
"uri": model.dataForRow(row, ConversationList.URI), "uri": model.dataForRow(row, ConversationList.URI),
"isSwarm": model.dataForRow(row, ConversationList.IsSwarm), "isSwarm": model.dataForRow(row, ConversationList.IsSwarm),
"mode": model.dataForRow(row, ConversationList.Mode),
"readOnly": model.dataForRow(row, ConversationList.ReadOnly) "readOnly": model.dataForRow(row, ConversationList.ReadOnly)
} }
responsibleAccountId = LRCInstance.currentAccountId responsibleAccountId = LRCInstance.currentAccountId
responsibleConvUid = item.convId responsibleConvUid = item.convId
isSwarm = item.isSwarm isSwarm = item.isSwarm
mode = item.mode
contactType = LRCInstance.currentAccountType contactType = LRCInstance.currentAccountType
readOnly = item.readOnly readOnly = item.readOnly
......
...@@ -31,6 +31,7 @@ ContextMenuAutoLoader { ...@@ -31,6 +31,7 @@ ContextMenuAutoLoader {
property string responsibleAccountId: "" property string responsibleAccountId: ""
property string responsibleConvUid: "" property string responsibleConvUid: ""
property bool isSwarm: false property bool isSwarm: false
property var mode: undefined
property int contactType: Profile.Type.INVALID property int contactType: Profile.Type.INVALID
property bool hasCall: { property bool hasCall: {
if (responsibleAccountId && responsibleConvUid) if (responsibleAccountId && responsibleConvUid)
...@@ -79,11 +80,20 @@ ContextMenuAutoLoader { ...@@ -79,11 +80,20 @@ ContextMenuAutoLoader {
GeneralMenuItem { GeneralMenuItem {
id: removeContact id: removeContact
canTrigger: !hasCall && (contactType === Profile.Type.JAMI canTrigger: !hasCall
|| contactType === Profile.Type.SIP) itemName: {
itemName: JamiStrings.removeContact if (mode !== Conversation.Mode.ONE_TO_ONE && mode !== Conversation.Mode.NON_SWARM)
return JamiStrings.removeConversation
else
return JamiStrings.removeContact
}
iconSource: JamiResources.ic_hangup_participant_24dp_svg iconSource: JamiResources.ic_hangup_participant_24dp_svg
onClicked: MessagesAdapter.removeContact(responsibleConvUid) onClicked: {
if (isSwarm)
MessagesAdapter.removeConversation(responsibleConvUid)
else
MessagesAdapter.removeContact(responsibleConvUid)
}
}, },
GeneralMenuItem { GeneralMenuItem {
id: hangup id: hangup
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment