summaryrefslogtreecommitdiff
path: root/modules/utilities
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-15 15:59:24 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-15 15:59:24 +1000
commit4f54763e02dab4e33764cdd57c204368da57dd1c (patch)
tree3f0626f2ba67b1c95b352061ab090f441c7cb694 /modules/utilities
parentutilities/record: app2unit (diff)
downloadcaelestia-shell-4f54763e02dab4e33764cdd57c204368da57dd1c.tar.gz
caelestia-shell-4f54763e02dab4e33764cdd57c204368da57dd1c.tar.bz2
caelestia-shell-4f54763e02dab4e33764cdd57c204368da57dd1c.zip
utilities/record: select mode
Diffstat (limited to 'modules/utilities')
-rw-r--r--modules/utilities/Content.qml1
-rw-r--r--modules/utilities/Wrapper.qml1
-rw-r--r--modules/utilities/cards/Record.qml40
3 files changed, 33 insertions, 9 deletions
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
+ SplitButton {
+ active: menuItems.find(m => root.props.recordingMode === m.icon + m.text) ?? menuItems[0]
+ menu.onItemSelected: item => root.props.recordingMode = item.icon + item.text
- function onClicked(): void {
- Recorder.toggle();
- }
+ 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"])
+ }
+ ]
}
}