import Quickshell import Quickshell.Io import QtQuick import qs.modules.quicksettings import qs.services // Component-only diagnostic surface. The contract replaces the two services in // its copied configuration with fixture singletons before this file is run. ShellRoot { PhoneActions { id: phoneActions } IpcHandler { target: "phone-controls-test" function fixture(name: string): void { KdeConnect.available = false; KdeConnect.transferActive = false; KdeConnect.lastError = ""; if (name === "offline") { KdeConnect.devices = [{ id: "fixture-phone", name: "Fixture iPhone", type: "phone", paired: true, reachable: false, actions: [] }]; } else if (name === "unsupported") { KdeConnect.available = true; KdeConnect.devices = [{ id: "fixture-phone", name: "Fixture iPhone", type: "phone", paired: true, reachable: true, actions: ["share"] }]; } else if (name === "transfer") { KdeConnect.available = true; KdeConnect.transferActive = true; KdeConnect.devices = [{ id: "fixture-phone", name: "Fixture iPhone", type: "phone", paired: true, reachable: true, actions: ["share", "clipboard", "ring"] }]; } } function status(): string { return JSON.stringify({ actions: phoneActions.actionModels.map(action => ({ id: action.id, enabled: phoneActions.actionEnabled(action.id) })), bluebubblesAvailable: SystemSettings.bluebubblesAvailable, appLaunches: SystemSettings.launchCount, phoneActions: KdeConnect.actionCount }); } } }