From 4f54763e02dab4e33764cdd57c204368da57dd1c Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Mon, 15 Sep 2025 15:59:24 +1000 Subject: utilities/record: select mode --- modules/utilities/Content.qml | 1 + modules/utilities/Wrapper.qml | 1 + modules/utilities/cards/Record.qml | 42 +++++++++++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 10 deletions(-) (limited to 'modules/utilities') diff --git a/modules/utilities/Content.qml b/modules/utilities/Content.qml index ea8f93f..d5be824 100644 --- a/modules/utilities/Content.qml +++ b/modules/utilities/Content.qml @@ -23,6 +23,7 @@ Item { Record { props: root.props visibilities: root.visibilities + z: 1 } Toggles { diff --git a/modules/utilities/Wrapper.qml b/modules/utilities/Wrapper.qml index 137f0ce..3f84319 100644 --- a/modules/utilities/Wrapper.qml +++ b/modules/utilities/Wrapper.qml @@ -12,6 +12,7 @@ Item { readonly property PersistentProperties props: PersistentProperties { property bool recordingListExpanded: false property string recordingConfirmDelete + property string recordingMode reloadableId: "utilities" } diff --git a/modules/utilities/cards/Record.qml b/modules/utilities/cards/Record.qml index 001dda3..fa45cf7 100644 --- a/modules/utilities/cards/Record.qml +++ b/modules/utilities/cards/Record.qml @@ -18,6 +18,7 @@ StyledRect { required property var props required property var visibilities + property bool modePickerExpanded Layout.fillWidth: true implicitHeight: layout.implicitHeight + layout.anchors.margins * 2 @@ -34,6 +35,7 @@ StyledRect { RowLayout { spacing: Appearance.spacing.normal + z: 1 StyledRect { implicitWidth: implicitHeight @@ -77,16 +79,36 @@ StyledRect { } } - IconButton { - icon: "not_started" - checked: Recorder.running - type: IconButton.Filled - inactiveColour: Colours.palette.m3surfaceContainerHighest - toggle: true - - function onClicked(): void { - Recorder.toggle(); - } + SplitButton { + active: menuItems.find(m => root.props.recordingMode === m.icon + m.text) ?? menuItems[0] + menu.onItemSelected: item => root.props.recordingMode = item.icon + item.text + + menuItems: [ + MenuItem { + icon: "fullscreen" + text: qsTr("Record fullscreen") + activeText: qsTr("Fullscreen") + onClicked: Recorder.toggle() + }, + MenuItem { + icon: "screenshot_region" + text: qsTr("Record region") + activeText: qsTr("Region") + onClicked: Recorder.toggle(["-r"]) + }, + MenuItem { + icon: "select_to_speak" + text: qsTr("Record fullscreen with sound") + activeText: qsTr("Fullscreen") + onClicked: Recorder.toggle(["-s"]) + }, + MenuItem { + icon: "volume_up" + text: qsTr("Record region with sound") + activeText: qsTr("Region") + onClicked: Recorder.toggle(["-sr"]) + } + ] } } -- cgit v1.2.3-freya