shift-shell/quicksettings/record/package/contents/ui/main.qml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

50 lines
1.4 KiB
QML
Raw Normal View History

// SPDX-FileCopyrightText: 2022-2025 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
import QtQuick
import QtQuick.Window
import org.kde.plasma.private.mobileshell.state as MobileShellState
import org.kde.taskmanager as TaskManager
import org.kde.plasma.quicksetting.record
import org.kde.plasma.private.mobileshell.quicksettingsplugin as QS
QS.QuickSetting {
id: root
text: RecordUtil.quickSettingText
status: RecordUtil.quickSettingStatus
icon: "camera-video-symbolic"
enabled: RecordUtil.isRecording
available: true
function toggle() {
if (RecordUtil.isRecording) {
RecordUtil.stopRecording();
waylandItem.outputName = '';
} else {
// Start recording only when waylandItem's nodeId updates
waylandItem.startRecordingRequest = true;
waylandItem.outputName = Screen.name;
}
}
TaskManager.ScreencastingRequest {
id: waylandItem
property bool startRecordingRequest: false
onNodeIdChanged: {
if (startRecordingRequest) {
let status = RecordUtil.startRecording(waylandItem.nodeId);
if (status) {
MobileShellState.ShellDBusClient.closeActionDrawer();
} else {
waylandItem.outputName = '';
}
startRecordingRequest = false;
}
}
}
}