From ef776637ad6f2f8315d311136f0fc466da4bd03b Mon Sep 17 00:00:00 2001 From: ababi <albert.babi@savoirfairelinux.com> Date: Thu, 24 Sep 2020 14:15:33 +0200 Subject: [PATCH] callview: add hangup to context menu and icon change - during a call context menu shows "hangup" and hides "clear", "remove", "block" and "start call" - change start call and record call (context menu) icons Gitlab: #104 Change-Id: I6c213b525fa6cd9d8063aae0065614c94d9e2209 --- images/icons/keyboard_voice-24px.svg | 1 + resources.qrc | 4 +- .../components/CallViewContextMenu.qml | 2 +- .../ConversationSmartListContextMenu.qml | 89 +++++++++++-------- .../components/MessageWebViewHeader.qml | 2 +- 5 files changed, 58 insertions(+), 40 deletions(-) create mode 100644 images/icons/keyboard_voice-24px.svg diff --git a/images/icons/keyboard_voice-24px.svg b/images/icons/keyboard_voice-24px.svg new file mode 100644 index 000000000..28f520385 --- /dev/null +++ b/images/icons/keyboard_voice-24px.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm6.08-3c-.42 0-.77.3-.83.71-.37 2.61-2.72 4.39-5.25 4.39s-4.88-1.77-5.25-4.39c-.06-.41-.42-.71-.83-.71-.52 0-.92.46-.85.97.46 2.97 2.96 5.3 5.93 5.75V21c0 .55.45 1 1 1s1-.45 1-1v-2.28c2.96-.43 5.47-2.78 5.93-5.75.07-.51-.33-.97-.85-.97z"/></svg> \ No newline at end of file diff --git a/resources.qrc b/resources.qrc index 0ea0cf0b8..07c63cf87 100644 --- a/resources.qrc +++ b/resources.qrc @@ -119,6 +119,8 @@ <file>images/icons/person_add-24px.svg</file> <file>images/icons/router-24px.svg</file> <file>images/icons/insert_drive_file-24dp.svg</file> - <file>images/icons/arrow_back-white-24dp.svg</file> + <file>images/icons/arrow_back-white-24dp.svg</file> + <file>images/icons/keyboard_voice-24px.svg</file> + <file>images/icons/videocam-24px.svg</file> </qresource> </RCC> diff --git a/src/mainview/components/CallViewContextMenu.qml b/src/mainview/components/CallViewContextMenu.qml index 9cb217c1e..bdd619226 100644 --- a/src/mainview/components/CallViewContextMenu.qml +++ b/src/mainview/components/CallViewContextMenu.qml @@ -67,7 +67,7 @@ Item { if (!isAudioOnly && !isPaused) { ContextMenuGenerator.addMenuItem(isRecording ? JamiStrings.stopRec : JamiStrings.startRec, - "qrc:/images/icons/ic_video_call_24px.svg", + "qrc:/images/icons/keyboard_voice-24px.svg", function (){ CallAdapter.recordThisCallToggle() }) diff --git a/src/mainview/components/ConversationSmartListContextMenu.qml b/src/mainview/components/ConversationSmartListContextMenu.qml index 1b26cf1bd..b9b8def96 100644 --- a/src/mainview/components/ConversationSmartListContextMenu.qml +++ b/src/mainview/components/ConversationSmartListContextMenu.qml @@ -33,43 +33,57 @@ Item { property string responsibleConvUid: "" property int contactType: Profile.Type.INVALID - function openMenu(){ - ContextMenuGenerator.addMenuItem(qsTr("Start video call"), - "qrc:/images/icons/ic_video_call_24px.svg", - function (){ - ConversationsAdapter.selectConversation( - responsibleAccountId, - responsibleConvUid, false) - CallAdapter.placeCall() - }) - ContextMenuGenerator.addMenuItem(qsTr("Start audio call"), - "qrc:/images/icons/ic_phone_24px.svg", - function (){ - ConversationsAdapter.selectConversation( - responsibleAccountId, - responsibleConvUid, false) - CallAdapter.placeAudioOnlyCall() - }) - ContextMenuGenerator.addMenuItem(qsTr("Clear conversation"), - "qrc:/images/icons/ic_clear_24px.svg", - function (){ - UtilsAdapter.clearConversationHistory( - responsibleAccountId, - responsibleConvUid) - }) + function openMenu() { + var hasCall = UtilsAdapter.getCallId(responsibleAccountId, responsibleConvUid) !== "" + if (!hasCall) { + ContextMenuGenerator.addMenuItem(qsTr("Start video call"), + "qrc:/images/icons/videocam-24px.svg", + function (){ + ConversationsAdapter.selectConversation( + responsibleAccountId, + responsibleConvUid, false) + CallAdapter.placeCall() + }) + ContextMenuGenerator.addMenuItem(qsTr("Start audio call"), + "qrc:/images/icons/ic_phone_24px.svg", + function (){ + ConversationsAdapter.selectConversation( + responsibleAccountId, + responsibleConvUid, false) + CallAdapter.placeAudioOnlyCall() + }) - if (contactType === Profile.Type.RING || contactType === Profile.Type.SIP) { - ContextMenuGenerator.addMenuItem(qsTr("Remove contact"), - "qrc:/images/icons/round-remove_circle-24px.svg", + ContextMenuGenerator.addMenuItem(qsTr("Clear conversation"), + "qrc:/images/icons/ic_clear_24px.svg", function (){ - UtilsAdapter.removeConversation( + UtilsAdapter.clearConversationHistory( responsibleAccountId, responsibleConvUid) }) + + if (contactType === Profile.Type.RING || contactType === Profile.Type.SIP) { + ContextMenuGenerator.addMenuItem(qsTr("Remove contact"), + "qrc:/images/icons/round-remove_circle-24px.svg", + function (){ + UtilsAdapter.removeConversation( + responsibleAccountId, + responsibleConvUid) + }) + } + + } else { + ContextMenuGenerator.addMenuItem(qsTr("Hang up call"), + "qrc:/images/icons/ic_call_end_white_24px.svg", + function (){ + CallAdapter.hangUpACall(responsibleAccountId, + responsibleConvUid) + }) } - if (contactType === Profile.Type.RING || contactType === Profile.Type.PENDING) { - ContextMenuGenerator.addMenuSeparator() + if ((contactType === Profile.Type.RING || contactType === Profile.Type.PENDING)) { + if (contactType === Profile.Type.PENDING || !hasCall) { + ContextMenuGenerator.addMenuSeparator() + } if (contactType === Profile.Type.PENDING) { ContextMenuGenerator.addMenuItem(JamiStrings.acceptContactRequest, @@ -85,13 +99,14 @@ Item { responsibleConvUid) }) } - ContextMenuGenerator.addMenuItem(qsTr("Block contact"), - "qrc:/images/icons/ic_block_24px.svg", - function (){ - MessagesAdapter.blockConversation( - responsibleConvUid) - }) - + if (!hasCall) { + ContextMenuGenerator.addMenuItem(qsTr("Block contact"), + "qrc:/images/icons/ic_block_24px.svg", + function (){ + MessagesAdapter.blockConversation( + responsibleConvUid) + }) + } ContextMenuGenerator.addMenuSeparator() ContextMenuGenerator.addMenuItem(qsTr("Profile"), "qrc:/images/icons/person-24px.svg", diff --git a/src/mainview/components/MessageWebViewHeader.qml b/src/mainview/components/MessageWebViewHeader.qml index a54f10c9a..9f19a369e 100644 --- a/src/mainview/components/MessageWebViewHeader.qml +++ b/src/mainview/components/MessageWebViewHeader.qml @@ -165,7 +165,7 @@ Rectangle { width: buttonPreferredSize radius: 30 - source: "qrc:/images/icons/ic_video_call_24px.svg" + source: "qrc:/images/icons/videocam-24px.svg" backgroundColor: "white" onExitColor: "white" -- GitLab