diff --git a/src/mainview/components/CallActionBar.qml b/src/mainview/components/CallActionBar.qml index 600a653293550b25d3a60ff1789539959b366065..fa1824717b5bd683f595fce426bcf77f3996f4e2 100644 --- a/src/mainview/components/CallActionBar.qml +++ b/src/mainview/components/CallActionBar.qml @@ -38,7 +38,6 @@ Control { property bool subMenuOpen: false property real itemSpacing: 2 - property bool localIsRecording: false signal chatClicked signal addToConferenceClicked @@ -50,6 +49,7 @@ Control { signal shareScreenAreaClicked signal shareFileClicked signal pluginsClicked + signal recordCallClicked Component { id: buttonDelegate @@ -275,7 +275,7 @@ Control { }, Action { id: recordAction - onTriggered: CallAdapter.recordThisCallToggle() + onTriggered: root.recordCallClicked() checkable: true icon.source: JamiResources.record_black_24dp_svg icon.color: checked ? "red" : "white" diff --git a/src/mainview/components/CallOverlay.qml b/src/mainview/components/CallOverlay.qml index fce06a3c1292dcce1c1cc132f87ebf062a6a0fba..e2e2ee4c49bffd2125997b0c4c125c67490c104a 100644 --- a/src/mainview/components/CallOverlay.qml +++ b/src/mainview/components/CallOverlay.qml @@ -41,6 +41,7 @@ Item { property bool isAudioMuted property bool isVideoMuted property bool isRecording + property bool remoteRecording property bool isSIP property bool isModerator property bool isConferenceCall @@ -55,12 +56,6 @@ Item { anchors.fill: parent } - function setRecording(localIsRecording) { - callViewContextMenu.localIsRecording = localIsRecording - mainOverlay.recordingVisible = localIsRecording - || callViewContextMenu.peerIsRecording - } - function updateUI(isPaused, isAudioOnly, isAudioMuted, isVideoMuted, isSIP, isConferenceCall, isGrid) { @@ -73,7 +68,6 @@ Item { root.isSIP = isSIP root.isConferenceCall = isConferenceCall root.isGrid = isGrid - mainOverlay.recordingVisible = isRecording root.localHandRaised = CallAdapter.isHandRaised() } root.isRecording = CallAdapter.isRecordingThisCall() @@ -113,16 +107,13 @@ Item { } mainOverlay.remoteRecordingLabel = state ? label : JamiStrings.peerStoppedRecording - callViewContextMenu.peerIsRecording = state - mainOverlay.recordingVisible = callViewContextMenu.localIsRecording - || callViewContextMenu.peerIsRecording + root.remoteRecording = state callOverlayRectMouseArea.entered() } function resetRemoteRecording() { mainOverlay.remoteRecordingLabel = "" - callViewContextMenu.peerIsRecording = false - mainOverlay.recordingVisible = callViewContextMenu.localIsRecording + root.remoteRecording = false } SipInputPanel { @@ -194,10 +185,17 @@ Item { PluginHandlerPickerCreation.openPluginHandlerPicker() } + function recordClicked() { + CallAdapter.recordThisCallToggle() + updateUI() + } + MainOverlay { id: mainOverlay anchors.fill: parent + isRecording: root.isRecording + remoteRecording: root.remoteRecording Connections { target: mainOverlay.callActionBar @@ -209,6 +207,7 @@ Item { function onShareScreenClicked() { openShareScreen() } function onStopSharingClicked() { AvAdapter.stopSharing() } function onShareScreenAreaClicked() { openShareScreenArea() } + function onRecordCallClicked() { recordClicked() } function onShareFileClicked() { jamiFileDialog.open() } function onPluginsClicked() { openPluginsMenu() } } @@ -219,9 +218,10 @@ Item { isSIP: root.isSIP isPaused: root.isPaused - localIsRecording: root.isRecording + isRecording: root.isRecording onTransferCallButtonClicked: openContactPicker(ContactList.TRANSFER) onPluginItemClicked: openPluginsMenu() + onRecordCallClicked: root.recordClicked() } } diff --git a/src/mainview/components/CallViewContextMenu.qml b/src/mainview/components/CallViewContextMenu.qml index 866be5e203d24ea4cb440b1b3d0cc1f1a65c405e..e7b4951e6d7d3a100871b15fcf6d619f3b31007d 100644 --- a/src/mainview/components/CallViewContextMenu.qml +++ b/src/mainview/components/CallViewContextMenu.qml @@ -35,11 +35,11 @@ ContextMenuAutoLoader { property bool isSIP: false property bool isPaused: false property bool isVideoMuted: false - property bool localIsRecording: false - property bool peerIsRecording: false + property bool isRecording: false signal pluginItemClicked signal transferCallButtonClicked + signal recordCallClicked property list<GeneralMenuItem> menuItems: [ GeneralMenuItem { @@ -78,12 +78,11 @@ ContextMenuAutoLoader { GeneralMenuItem { id: localRecord - itemName: localIsRecording ? JamiStrings.stopRec : JamiStrings.startRec + itemName: root.isRecording ? JamiStrings.stopRec : JamiStrings.startRec iconSource: JamiResources.fiber_manual_record_24dp_svg iconColor: JamiTheme.recordIconColor onClicked: { - CallAdapter.recordThisCallToggle() - localIsRecording = CallAdapter.isRecordingThisCall() + root.recordCallClicked() } }, GeneralMenuItem { diff --git a/src/mainview/components/MainOverlay.qml b/src/mainview/components/MainOverlay.qml index fd428dacd830e2d1574689e17fa2152261390520..6dbe93eb5fedc12231f954c2e7b311fc8533ebc9 100644 --- a/src/mainview/components/MainOverlay.qml +++ b/src/mainview/components/MainOverlay.qml @@ -34,7 +34,6 @@ Item { property string timeText: "00:00" property string remoteRecordingLabel: "" - property alias recordingVisible: recordingRect.visible property alias callActionBar: __callActionBar property bool frozen: callActionBar.overflowOpen || @@ -44,6 +43,8 @@ Item { property string muteAlertMessage: "" property bool muteAlertActive: false + property bool remoteRecording: false + property bool isRecording: false onMuteAlertActiveChanged: { if (muteAlertActive) { @@ -93,7 +94,7 @@ Item { root.timeText = CallAdapter.getCallDurationTime( LRCInstance.currentAccountId, LRCInstance.selectedConvUid) - if (root.opacity === 0 && !callViewContextMenu.peerIsRecording) + if (root.opacity === 0 && !root.remoteRecording) root.remoteRecordingLabel = "" } } @@ -199,6 +200,7 @@ Item { Rectangle { id: recordingRect + visible: root.isRecording || root.remoteRecording Layout.alignment: Qt.AlignVCenter | Qt.AlignRight Layout.rightMargin: JamiTheme.preferredMarginSize