diff --git a/src/app/constant/JamiStrings.qml b/src/app/constant/JamiStrings.qml index 3cb0057e..b7004296 100644 --- a/src/app/constant/JamiStrings.qml +++ b/src/app/constant/JamiStrings.qml @@ -254,7 +254,7 @@ Item { property string removeContact: qsTr("Remove contact") property string blockContact: qsTr("Block contact") property string blockSwarm: qsTr("Block swarm") - property string contactDetails: qsTr("Contact details") + property string convDetails: qsTr("Conversation details") // CallViewContextMenu property string hold: qsTr("Hold") diff --git a/src/app/currentconversation.cpp b/src/app/currentconversation.cpp index f5485850..b27f9797 100644 --- a/src/app/currentconversation.cpp +++ b/src/app/currentconversation.cpp @@ -144,3 +144,9 @@ CurrentConversation::connectModel() &CurrentConversation::onProfileUpdated, Qt::UniqueConnection); } + +void +CurrentConversation::showSwarmDetails() const +{ + Q_EMIT showDetails(); +} diff --git a/src/app/currentconversation.h b/src/app/currentconversation.h index 7483c107..99731795 100644 --- a/src/app/currentconversation.h +++ b/src/app/currentconversation.h @@ -54,6 +54,11 @@ public: explicit CurrentConversation(LRCInstance* lrcInstance, QObject* parent = nullptr); ~CurrentConversation() = default; + Q_INVOKABLE void showSwarmDetails() const; + +Q_SIGNALS: + void showDetails() const; + private Q_SLOTS: void updateData(); void onConversationUpdated(const QString& convId); diff --git a/src/app/mainview/components/ChatViewHeader.qml b/src/app/mainview/components/ChatViewHeader.qml index 502d5b6b..c63d39bb 100644 --- a/src/app/mainview/components/ChatViewHeader.qml +++ b/src/app/mainview/components/ChatViewHeader.qml @@ -40,6 +40,7 @@ Rectangle { enabled: true function onTitleChanged() { title.eText = CurrentConversation.title } function onDescriptionChanged() { description.eText = CurrentConversation.description } + function onShowDetails() { root.showDetailsClicked() } } property bool interactionButtonsVisibility: { diff --git a/src/app/mainview/components/ConversationListView.qml b/src/app/mainview/components/ConversationListView.qml index 931205b2..b2eeac5c 100644 --- a/src/app/mainview/components/ConversationListView.qml +++ b/src/app/mainview/components/ConversationListView.qml @@ -113,6 +113,8 @@ JamiListView { ConversationSmartListContextMenu { id: contextMenu + property var index: -1 + function openMenuAt(x, y) { contextMenu.x = x contextMenu.y = y @@ -122,6 +124,7 @@ JamiListView { // - userProfile dialog should use a loader/popup var row = root.indexAt(x, y + root.contentY) + index = row var item = { "convId": model.dataForRow(row, ConversationList.UID), "displayId": model.dataForRow(row, ConversationList.BestId), @@ -151,6 +154,11 @@ JamiListView { openMenu() } + + onShowSwarmDetails: { + model.select(index) + CurrentConversation.showSwarmDetails() + } } Shortcut { diff --git a/src/app/mainview/components/ConversationSmartListContextMenu.qml b/src/app/mainview/components/ConversationSmartListContextMenu.qml index 2e917320..d73b3fe6 100644 --- a/src/app/mainview/components/ConversationSmartListContextMenu.qml +++ b/src/app/mainview/components/ConversationSmartListContextMenu.qml @@ -28,6 +28,8 @@ import "../../commoncomponents/contextmenu" ContextMenuAutoLoader { id: root + signal showSwarmDetails + ConfirmDialog { id: rmDialog @@ -164,10 +166,14 @@ ContextMenuAutoLoader { id: contactDetails canTrigger: contactType !== Profile.Type.SIP - && !(mode && mode !== Conversation.Mode.ONE_TO_ONE && mode !== Conversation.Mode.NON_SWARM) - itemName: JamiStrings.contactDetails + itemName: JamiStrings.convDetails iconSource: JamiResources.person_24dp_svg - onClicked: userProfile.open() + onClicked: { + if (!(mode && mode !== Conversation.Mode.ONE_TO_ONE && mode !== Conversation.Mode.NON_SWARM)) + userProfile.open() + else + root.showSwarmDetails() + } } ] diff --git a/src/app/mainview/components/SwarmDetailsPanel.qml b/src/app/mainview/components/SwarmDetailsPanel.qml index a74879d9..314758ca 100644 --- a/src/app/mainview/components/SwarmDetailsPanel.qml +++ b/src/app/mainview/components/SwarmDetailsPanel.qml @@ -325,9 +325,9 @@ Rectangle { } } - RowLayout { Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.preferredHeight: JamiTheme.settingsFontSize + 2 * JamiTheme.preferredMarginSize + 4 Text { Layout.fillWidth: true @@ -349,11 +349,45 @@ Rectangle { Layout.alignment: Qt.AlignRight - color: JamiTheme.buttonTintedBlack + color: JamiTheme.textColor text: CurrentConversation.modeString } } + + RowLayout { + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.preferredHeight: JamiTheme.settingsFontSize + 2 * JamiTheme.preferredMarginSize + 4 + Layout.maximumWidth: parent.width + + Text { + id: idLabel + Layout.preferredHeight: 30 + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.maximumWidth: parent.width / 2 + + text: JamiStrings.identifier + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + elide: Text.ElideRight + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + + color: JamiTheme.textColor + } + + Text { + Layout.alignment: Qt.AlignRight + Layout.maximumWidth: parent.width / 2 + + color: JamiTheme.textColor + + + text: CurrentConversation.id + elide: Text.ElideRight + + } + } } JamiListView {