mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-18 17:24:01 -04:00
feat(island): add clipboard support & align launcher sizing options
This commit is contained in:
@@ -2704,6 +2704,8 @@ Singleton {
|
||||
return "islandRouteWeather";
|
||||
case "wallpaper":
|
||||
return "islandRouteWallpaper";
|
||||
case "clipboard":
|
||||
return "islandRouteClipboard";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ var ISLAND_DEFAULTS = {
|
||||
islandRouteLauncher: "follow",
|
||||
islandRouteControlCenter: "follow",
|
||||
islandRouteNotificationCenter: "follow",
|
||||
islandRouteClipboard: "follow",
|
||||
islandRouteDash: "island",
|
||||
islandRouteMedia: "island",
|
||||
islandRouteWeather: "island",
|
||||
|
||||
@@ -1466,7 +1466,7 @@ Item {
|
||||
if (!PopoutService.clipboardHistoryModal) {
|
||||
return "CLIPBOARD_NOT_AVAILABLE";
|
||||
}
|
||||
PopoutService.clipboardHistoryModal.show();
|
||||
PopoutService.openClipboardHistory();
|
||||
return "CLIPBOARD_OPEN_SUCCESS";
|
||||
}
|
||||
|
||||
@@ -1474,7 +1474,7 @@ Item {
|
||||
if (!PopoutService.clipboardHistoryModal) {
|
||||
return "CLIPBOARD_NOT_AVAILABLE";
|
||||
}
|
||||
PopoutService.clipboardHistoryModal.hide();
|
||||
PopoutService.closeClipboardHistory();
|
||||
return "CLIPBOARD_CLOSE_SUCCESS";
|
||||
}
|
||||
|
||||
@@ -1482,7 +1482,7 @@ Item {
|
||||
if (!PopoutService.clipboardHistoryModal) {
|
||||
return "CLIPBOARD_NOT_AVAILABLE";
|
||||
}
|
||||
PopoutService.clipboardHistoryModal.toggle();
|
||||
PopoutService.toggleClipboardHistory();
|
||||
return "CLIPBOARD_TOGGLE_SUCCESS";
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import qs.Common
|
||||
import qs.Modals.DankLauncherV2.Components
|
||||
import qs.Services
|
||||
|
||||
Item {
|
||||
@@ -24,8 +25,8 @@ Item {
|
||||
readonly property real screenWidth: usingFallback ? fallback.screenWidth : Theme.mediumBreakpoint * 2
|
||||
readonly property real screenHeight: usingFallback ? fallback.screenHeight : Theme.mediumBreakpoint
|
||||
readonly property real dpr: usingFallback ? fallback.dpr : 1
|
||||
readonly property int modalWidth: usingFallback ? fallback.modalWidth : Theme.launcherWidthWide
|
||||
readonly property int modalHeight: usingFallback ? fallback.modalHeight : Theme.launcherHeightDefault
|
||||
readonly property int modalWidth: usingFallback ? fallback.modalWidth : LauncherMetrics.sizeWidth(SettingsData.dankLauncherV2Size)
|
||||
readonly property int modalHeight: usingFallback ? fallback.modalHeight : LauncherMetrics.sizeHeight(SettingsData.dankLauncherV2Size)
|
||||
readonly property real modalX: usingFallback ? fallback.modalX : 0
|
||||
readonly property real modalY: usingFallback ? fallback.modalY : 0
|
||||
readonly property bool frameOwnsConnectedChrome: false
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import qs.Common
|
||||
import qs.Modals.Clipboard
|
||||
import qs.Modals.Common
|
||||
import qs.Services
|
||||
|
||||
FocusScope {
|
||||
id: root
|
||||
|
||||
required property var controller
|
||||
property var transientSurfaceTracker: null
|
||||
property var effectiveScreen: null
|
||||
property real alignedX: 0
|
||||
property real alignedY: 0
|
||||
|
||||
clip: true
|
||||
|
||||
function focusFace() {
|
||||
clipboardContent.searchField?.forceActiveFocus();
|
||||
return true;
|
||||
}
|
||||
|
||||
function beginSession() {
|
||||
clipboardContent.resetState();
|
||||
if (ClipboardService.clipboardAvailable)
|
||||
ClipboardService.refresh();
|
||||
clipboardContent.searchField.text = "";
|
||||
root.focusFace();
|
||||
}
|
||||
|
||||
QtObject {
|
||||
id: hostContract
|
||||
|
||||
readonly property var effectiveScreen: root.effectiveScreen
|
||||
readonly property real alignedX: root.alignedX
|
||||
readonly property real alignedY: root.alignedY
|
||||
}
|
||||
|
||||
Ref {
|
||||
service: ClipboardService
|
||||
}
|
||||
|
||||
ConfirmModal {
|
||||
id: clearConfirmDialog
|
||||
|
||||
confirmButtonText: I18n.tr("Clear All")
|
||||
confirmButtonColor: Theme.primary
|
||||
useOverlayLayer: true
|
||||
onShouldBeVisibleChanged: {
|
||||
root.controller.keyboardYielded = shouldBeVisible;
|
||||
if (shouldBeVisible) {
|
||||
selectedButton = 0;
|
||||
keyboardNavigation = true;
|
||||
return;
|
||||
}
|
||||
Qt.callLater(root.focusFace);
|
||||
}
|
||||
}
|
||||
|
||||
ClipboardHistoryContent {
|
||||
id: clipboardContent
|
||||
|
||||
anchors.fill: parent
|
||||
surfaceHost: hostContract
|
||||
transientSurfaceTracker: root.transientSurfaceTracker
|
||||
clearConfirmDialog: clearConfirmDialog
|
||||
onCloseRequested: root.controller.requestCollapse()
|
||||
onInstantCloseRequested: root.controller.requestCollapse()
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: root.controller
|
||||
|
||||
function onSessionStarted(activityId) {
|
||||
if (activityId === "clipboard")
|
||||
Qt.callLater(root.beginSession);
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: root.controller.markVisualsReady("clipboard")
|
||||
Component.onDestruction: {
|
||||
root.controller.keyboardYielded = false;
|
||||
root.controller.setVisualsReady("clipboard", false);
|
||||
}
|
||||
}
|
||||
@@ -120,6 +120,7 @@ Item {
|
||||
case "wallpaper":
|
||||
case "weather":
|
||||
case "notificationcenter":
|
||||
case "clipboard":
|
||||
return requested;
|
||||
case "control-center":
|
||||
case "cc":
|
||||
@@ -149,6 +150,8 @@ Item {
|
||||
return host.islandController.requestWeather(false);
|
||||
case "notificationcenter":
|
||||
return host.islandController.requestNotificationCenter(false);
|
||||
case "clipboard":
|
||||
return host.islandController.requestClipboard(false);
|
||||
}
|
||||
return host.islandController.requestActivity(activityId, true, true);
|
||||
}
|
||||
@@ -267,6 +270,7 @@ Item {
|
||||
"wallpaperAvailable": true,
|
||||
"weatherAvailable": true,
|
||||
"notificationCenterAvailable": true,
|
||||
"clipboardAvailable": true,
|
||||
"launcherInputFocused": host.islandController.launcherInputFocused,
|
||||
"launcherResultCount": host.launcherResultCount,
|
||||
"compactHeight": host.islandController.compactThickness,
|
||||
|
||||
@@ -427,6 +427,8 @@ Item {
|
||||
notificationExpandedComponent: expandedNotificationComponent
|
||||
notificationCenterCompactComponent: compactNotificationCenterComponent
|
||||
notificationCenterExpandedComponent: expandedNotificationCenterComponent
|
||||
clipboardCompactComponent: compactClipboardComponent
|
||||
clipboardExpandedComponent: expandedClipboardComponent
|
||||
}
|
||||
|
||||
HoverHandler {
|
||||
@@ -725,6 +727,29 @@ Item {
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: compactClipboardComponent
|
||||
|
||||
DestinationCompact {
|
||||
controller: root.controller
|
||||
activityId: "clipboard"
|
||||
iconName: "content_paste"
|
||||
label: I18n.tr("Clipboard")
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: expandedClipboardComponent
|
||||
|
||||
ClipboardExpanded {
|
||||
controller: root.controller
|
||||
transientSurfaceTracker: root.launcherTransientSurfaceTracker
|
||||
effectiveScreen: root.effectiveScreen
|
||||
alignedX: root.targetScreenX
|
||||
alignedY: root.targetScreenY
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: expandedNotificationComponent
|
||||
|
||||
|
||||
@@ -147,8 +147,8 @@ Item {
|
||||
readonly property var springDampingRange: [10, 100]
|
||||
readonly property var springMassRange: [0.25, 3]
|
||||
readonly property int destinationMaxHeight: Math.max(destinationMinHeight, Math.min(destinationMaxHeightLimit, (root.screen?.height ?? referenceScreenHeight) - screenMargin))
|
||||
readonly property int maxActivityHeight: Math.max(controller.dashboardHeight, controller.controlCenterHeight, destinationMaxHeight)
|
||||
readonly property int maxActivityWidth: Math.max(controller.dashboardMaxWidth, controller.controlCenterMaxWidth, Math.min(activityMaxWidth, Math.max(activityMinWidth, (root.screen?.width ?? referenceScreenWidth) - screenMargin)))
|
||||
readonly property int maxActivityHeight: Math.max(controller.dashboardHeight, controller.controlCenterHeight, controller.launcherExpandedTarget.height, controller.clipboardExpandedTarget.height, destinationMaxHeight)
|
||||
readonly property int maxActivityWidth: Math.max(controller.dashboardMaxWidth, controller.controlCenterMaxWidth, controller.launcherExpandedTarget.width, controller.clipboardExpandedTarget.width, Math.min(activityMaxWidth, Math.max(activityMinWidth, (root.screen?.width ?? referenceScreenWidth) - screenMargin)))
|
||||
readonly property int hostThickness: outerGap + nearInset + (root.isVertical ? maxActivityWidth : maxActivityHeight) + Theme.spacingS
|
||||
readonly property real maximumAlongOffset: root.isVertical ? Math.max(0, (height - maxActivityHeight) / 2 - Theme.spacingS) : Math.max(0, (width - maxActivityWidth) / 2 - Theme.spacingS)
|
||||
readonly property bool scrollEnabled: root.barConfig?.scrollEnabled ?? true
|
||||
|
||||
@@ -46,6 +46,8 @@ Item {
|
||||
required property Component notificationExpandedComponent
|
||||
required property Component notificationCenterCompactComponent
|
||||
required property Component notificationCenterExpandedComponent
|
||||
required property Component clipboardCompactComponent
|
||||
required property Component clipboardExpandedComponent
|
||||
|
||||
readonly property real compactFade: root.fadeCompact(root.morphProgress)
|
||||
readonly property real expandedFade: root.fadeExpanded(root.morphProgress)
|
||||
@@ -93,6 +95,7 @@ Item {
|
||||
"wallpaper": wallpaperExpandedLoader,
|
||||
"weather": weatherExpandedLoader,
|
||||
"notificationcenter": notificationCenterExpandedLoader,
|
||||
"clipboard": clipboardExpandedLoader,
|
||||
"controlcenter": controlCenterExpandedLoader
|
||||
})
|
||||
|
||||
@@ -318,6 +321,23 @@ Item {
|
||||
opacity: root.expandedOpacity("notificationcenter")
|
||||
}
|
||||
|
||||
CompactFace {
|
||||
active: root.surfaceActive("clipboard")
|
||||
activity: "clipboard"
|
||||
face: root.clipboardCompactComponent
|
||||
opacity: root.compactOpacity("clipboard")
|
||||
}
|
||||
|
||||
ExpandedFace {
|
||||
id: clipboardExpandedLoader
|
||||
|
||||
activity: "clipboard"
|
||||
active: root.controller.visualsRequested("clipboard")
|
||||
asynchronous: true
|
||||
sourceComponent: root.clipboardExpandedComponent
|
||||
opacity: root.expandedOpacity("clipboard")
|
||||
}
|
||||
|
||||
CompactFace {
|
||||
active: root.systemSurfaceActive
|
||||
activity: "volume"
|
||||
|
||||
@@ -2,6 +2,8 @@ pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import qs.Common
|
||||
import qs.Modals.Clipboard
|
||||
import qs.Modals.DankLauncherV2.Components
|
||||
import qs.Modules.ControlCenter
|
||||
import qs.Modules.DankBar
|
||||
import qs.Modules.DankDash
|
||||
@@ -152,8 +154,8 @@ QtObject {
|
||||
mediaContentLength = next;
|
||||
}
|
||||
|
||||
readonly property var destinations: ["launcher", "controlcenter", "wallpaper", "weather", "notificationcenter"]
|
||||
readonly property var blankClickOwners: ["launcher", "controlcenter", "wallpaper", "notificationcenter"]
|
||||
readonly property var destinations: ["launcher", "controlcenter", "wallpaper", "weather", "notificationcenter", "clipboard"]
|
||||
readonly property var blankClickOwners: ["launcher", "controlcenter", "wallpaper", "notificationcenter", "clipboard"]
|
||||
readonly property var destinationDefaults: ({
|
||||
"launcher": {
|
||||
"contentLength": 160,
|
||||
@@ -174,6 +176,10 @@ QtObject {
|
||||
"notificationcenter": {
|
||||
"contentLength": 170,
|
||||
"contentHeight": 320
|
||||
},
|
||||
"clipboard": {
|
||||
"contentLength": 150,
|
||||
"contentHeight": 0
|
||||
}
|
||||
})
|
||||
property var destinationState: root.freshDestinationState()
|
||||
@@ -330,6 +336,7 @@ QtObject {
|
||||
controlCenterPendingSection = "";
|
||||
return;
|
||||
case "wallpaper":
|
||||
case "clipboard":
|
||||
keyboardYielded = false;
|
||||
return;
|
||||
}
|
||||
@@ -423,13 +430,14 @@ QtObject {
|
||||
readonly property var mediaCompactTarget: pillTarget(mediaCompactLength, compactFaceThickness)
|
||||
readonly property var homeExpandedTarget: dashboardTargetFor("home")
|
||||
readonly property var mediaExpandedTarget: dashboardTargetFor("media")
|
||||
readonly property var launcherExpandedTarget: sheetTarget(680, 560)
|
||||
readonly property var launcherExpandedTarget: sheetTarget(Math.min(dashboardAvailableWidth, LauncherMetrics.sizeWidth(SettingsData.dankLauncherV2Size)), Math.min(dashboardAvailableHeight, LauncherMetrics.sizeHeight(SettingsData.dankLauncherV2Size)))
|
||||
readonly property var controlCenterExpandedTarget: sheetTarget(controlCenterSheetWidth + controlCenterSheetInset + editGutterFor("controlcenter") * 2, controlCenterHeight)
|
||||
readonly property var systemCompactTarget: pillTarget(root.isVertical ? 240 : (SettingsData.osdAlwaysShowValue ? 330 : 282), compactFaceThickness)
|
||||
readonly property var systemExpandedTarget: sheetTarget(460, 176)
|
||||
readonly property var notificationCompactTarget: pillTarget(Math.ceil(Math.max(notificationCompactMinLength, Math.min(notificationCompactMaxLength, notificationContentLength))), compactFaceThickness)
|
||||
readonly property var notificationExpandedTarget: sheetTarget(520, 220)
|
||||
readonly property var notificationCenterExpandedTarget: dashboardTargetFor("notificationcenter")
|
||||
readonly property var clipboardExpandedTarget: sheetTarget(Math.min(dashboardAvailableWidth, ClipboardConstants.sizeWidth(SettingsData.clipboardSize)), Math.min(dashboardAvailableHeight, ClipboardConstants.sizeHeight(SettingsData.clipboardSize)))
|
||||
|
||||
readonly property bool systemActivityActive: activeActivity === "volume" || activeActivity === "brightness"
|
||||
readonly property bool notificationActive: activeActivity === "notification"
|
||||
@@ -471,6 +479,8 @@ QtObject {
|
||||
return controlCenterExpandedTarget;
|
||||
case "notificationcenter":
|
||||
return notificationCenterExpandedTarget;
|
||||
case "clipboard":
|
||||
return clipboardExpandedTarget;
|
||||
case "media":
|
||||
return mediaExpandedTarget;
|
||||
}
|
||||
@@ -699,6 +709,12 @@ QtObject {
|
||||
return requestActivity("notificationcenter", true, true);
|
||||
}
|
||||
|
||||
function requestClipboard(shouldToggle) {
|
||||
if (shouldToggle === true && activeActivity === "clipboard" && expanded)
|
||||
return requestCollapse();
|
||||
return requestActivity("clipboard", true, true);
|
||||
}
|
||||
|
||||
function cycleActivity(direction, shouldExpand) {
|
||||
const activities = ["home"];
|
||||
if (mediaAvailable)
|
||||
|
||||
@@ -14,7 +14,7 @@ SettingsCard {
|
||||
|
||||
readonly property var routingValues: ["normal", "always", "last-used"]
|
||||
readonly property var interactionModeValues: ["click", "hybrid"]
|
||||
readonly property var routeActivities: ["launcher", "controlcenter", "notificationcenter", "home", "media", "weather", "wallpaper"]
|
||||
readonly property var routeActivities: ["launcher", "controlcenter", "notificationcenter", "clipboard", "home", "media", "weather", "wallpaper"]
|
||||
readonly property var routeKeys: routeActivities.map(activity => SettingsData.islandRouteKey(activity))
|
||||
readonly property string sharedRouting: SettingsData.islandSharedRoutingMode(root.store.config)
|
||||
|
||||
@@ -39,7 +39,7 @@ SettingsCard {
|
||||
|
||||
SettingsRow {
|
||||
settingKey: root.keyPrefix + "RouteActivities"
|
||||
tags: ["island", "routing", "shortcuts", "launcher", "control center", "notification center", "dashboard", "media", "weather", "wallpaper", "ipc"]
|
||||
tags: ["island", "routing", "shortcuts", "launcher", "control center", "notification center", "clipboard", "dashboard", "media", "weather", "wallpaper", "ipc"]
|
||||
visible: root.hosted || root.sharedRouting !== "always"
|
||||
resetStore: root.store
|
||||
resetKeys: root.routeKeys
|
||||
@@ -71,6 +71,14 @@ SettingsCard {
|
||||
text: I18n.tr("Notification Center")
|
||||
}
|
||||
|
||||
IslandRouteRow {
|
||||
settingKey: root.keyPrefix + "RouteClipboard"
|
||||
store: root.store
|
||||
hosted: root.hosted
|
||||
activity: "clipboard"
|
||||
text: I18n.tr("Clipboard")
|
||||
}
|
||||
|
||||
IslandRouteRow {
|
||||
settingKey: root.keyPrefix + "RouteDash"
|
||||
store: root.store
|
||||
|
||||
@@ -191,6 +191,7 @@ Item {
|
||||
widgetItem: clipboardWidget,
|
||||
section: root.getWidgetSection(parent) || "right",
|
||||
triggerSource: "clipboard",
|
||||
islandActivity: "clipboard",
|
||||
mode: mode || "click",
|
||||
prepare: popout => {
|
||||
if (initialTab)
|
||||
|
||||
@@ -723,13 +723,26 @@ Singleton {
|
||||
}
|
||||
|
||||
function openClipboardHistory() {
|
||||
if (routeToIsland("clipboard", null, false))
|
||||
return;
|
||||
clipboardHistoryModal?.show();
|
||||
}
|
||||
|
||||
function closeClipboardHistory() {
|
||||
closeIslandActivity("clipboard");
|
||||
clipboardHistoryModal?.hide();
|
||||
}
|
||||
|
||||
function toggleClipboardHistory() {
|
||||
if (clipboardHistoryModal?.shouldBeVisible) {
|
||||
clipboardHistoryModal.hide();
|
||||
return;
|
||||
}
|
||||
if (routeToIsland("clipboard", null, true))
|
||||
return;
|
||||
clipboardHistoryModal?.toggle();
|
||||
}
|
||||
|
||||
function unloadClipboardHistoryPopout() {
|
||||
_scheduleUnload("clipboardHistory");
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ ShellRoot {
|
||||
const entry = () => SettingsData.islandWidgetEntry(SettingsData.getBarConfig(root.barId));
|
||||
const shared = root.findRow(page, "islandWidgetSharedRouting");
|
||||
const routes = root.findRow(page, "islandWidgetRouteActivities");
|
||||
const routeSuffixes = ["Launcher", "ControlCenter", "NotificationCenter", "Dash", "Media", "Weather", "Wallpaper"];
|
||||
const routeSuffixes = ["Launcher", "ControlCenter", "NotificationCenter", "Clipboard", "Dash", "Media", "Weather", "Wallpaper"];
|
||||
const routeRows = routeSuffixes.map(suffix => root.findRow(page, "islandWidgetRoute" + suffix));
|
||||
const popups = root.findRow(page, "islandWidgetNotificationPopups");
|
||||
const mode = root.findRow(page, "islandWidgetInteractionMode");
|
||||
@@ -83,8 +83,8 @@ ShellRoot {
|
||||
throw new Error("rows never appeared: " + [shared, routes, popups, mode].map(row => !!row).join(","));
|
||||
}
|
||||
root.check(!shared.visible, "a hosted island has no shared rule to pick");
|
||||
root.check(routeRows.every(row => row.visible), "all seven destination rows are visible");
|
||||
root.check(routeRows.every((row, index) => row.checked === (index >= 3)), "legacy dashboard routing is reflected in every dashboard activity");
|
||||
root.check(routeRows.every(row => row.visible), "all eight destination rows are visible");
|
||||
root.check(routeRows.every((row, index) => row.checked === (index >= 4)), "legacy dashboard routing is reflected in every dashboard activity");
|
||||
root.check(popups.checked === false, "rows read the widget entry, not the defaults");
|
||||
root.check(mode.visible, "a hosted island is always docked, so expansion mode shows");
|
||||
popups.toggled(true);
|
||||
@@ -93,16 +93,16 @@ ShellRoot {
|
||||
root.check(entry().islandRouteControlCenter === "island", "a pick routes that activity to the island: " + JSON.stringify(entry()));
|
||||
routeRows[1].toggled(false);
|
||||
root.check(entry().islandRouteControlCenter === "bar", "an unpick hands it back to the bar's popout: " + JSON.stringify(entry()));
|
||||
routeRows[4].toggled(false);
|
||||
root.check(!routeRows[4].checked && routeRows[3].checked && routeRows[5].checked, "media changes independently and rows follow persisted values");
|
||||
routeRows[3].toggled(false);
|
||||
root.check(!routeRows[3].checked && !routeRows[4].checked && routeRows[5].checked && routeRows[6].checked, "editing dashboard preserves the other legacy destinations");
|
||||
routeRows[5].toggled(false);
|
||||
root.check(!routeRows[5].checked, "weather can override its island default");
|
||||
routeRows[5].resetRequested();
|
||||
root.check(entry().islandRouteWeather === "island" && routeRows[5].checked && !routeRows[3].checked && !routeRows[4].checked, "reset returns weather to the island without changing dashboard or media");
|
||||
root.check(!routeRows[5].checked && routeRows[4].checked && routeRows[6].checked, "media changes independently and rows follow persisted values");
|
||||
routeRows[4].toggled(false);
|
||||
root.check(!routeRows[4].checked && !routeRows[5].checked && routeRows[6].checked && routeRows[7].checked, "editing dashboard preserves the other legacy destinations");
|
||||
routeRows[6].toggled(false);
|
||||
root.check(!routeRows[6].checked, "weather can override its island default");
|
||||
routeRows[6].resetRequested();
|
||||
root.check(entry().islandRouteWeather === "island" && routeRows[6].checked && !routeRows[4].checked && !routeRows[5].checked, "reset returns weather to the island without changing dashboard or media");
|
||||
routes.resetRequested();
|
||||
root.check(routeRows.every((row, index) => row.checked === (index >= 3)), "group reset restores dashboard activities to the island and other destinations to standard surfaces");
|
||||
root.check(routeRows.every((row, index) => row.checked === (index >= 4)), "group reset restores dashboard activities to the island and other destinations to standard surfaces");
|
||||
root.check(SettingsData.islandWidgetEntry(SettingsData.getBarConfig(root.barId)).islandSharedRouting === undefined, "the shared rule is never written for a hosted island");
|
||||
console.log("FIXTURE_PASS");
|
||||
} catch (error) {
|
||||
|
||||
@@ -3015,6 +3015,31 @@
|
||||
"parentLabel": "Bar",
|
||||
"description": "Clicks on empty bar space reach the windows below"
|
||||
},
|
||||
{
|
||||
"section": "islandRouteClipboard",
|
||||
"label": "Clipboard",
|
||||
"tabIndex": 3,
|
||||
"category": "General",
|
||||
"keywords": [
|
||||
"bar",
|
||||
"clipboard",
|
||||
"cliphist",
|
||||
"copy",
|
||||
"general",
|
||||
"history",
|
||||
"ipc",
|
||||
"island",
|
||||
"panel",
|
||||
"paste",
|
||||
"routing",
|
||||
"shortcuts",
|
||||
"statusbar",
|
||||
"taskbar",
|
||||
"topbar"
|
||||
],
|
||||
"parentLabel": "Bar",
|
||||
"conditionKey": "islandEnabled"
|
||||
},
|
||||
{
|
||||
"section": "islandRouteControlCenter",
|
||||
"label": "Control Center",
|
||||
@@ -3594,6 +3619,7 @@
|
||||
"category": "General",
|
||||
"keywords": [
|
||||
"bar",
|
||||
"clipboard",
|
||||
"control center",
|
||||
"dashboard",
|
||||
"general",
|
||||
@@ -9530,13 +9556,21 @@
|
||||
"optionFile": "PrivacyOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:25",
|
||||
"section": "barWidgetOption:IslandOptions.qml:26",
|
||||
"label": "Clear badge on open",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
"runtimeType": "barWidgetOption",
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:12",
|
||||
"label": "Clipboard",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
"runtimeType": "barWidgetOption",
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:2",
|
||||
"label": "Clock style",
|
||||
@@ -9690,7 +9724,7 @@
|
||||
"optionFile": "AppsDockOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:12",
|
||||
"section": "barWidgetOption:IslandOptions.qml:13",
|
||||
"label": "Dashboard",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -9730,7 +9764,7 @@
|
||||
"optionFile": "AppsDockOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:24",
|
||||
"section": "barWidgetOption:IslandOptions.qml:25",
|
||||
"label": "Expand by default",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -9738,7 +9772,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:16",
|
||||
"section": "barWidgetOption:IslandOptions.qml:17",
|
||||
"label": "Expansion mode",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -9810,7 +9844,7 @@
|
||||
"optionFile": "WorkspaceSwitcherOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:19",
|
||||
"section": "barWidgetOption:IslandOptions.qml:20",
|
||||
"label": "Hide delay",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -9842,7 +9876,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:17",
|
||||
"section": "barWidgetOption:IslandOptions.qml:18",
|
||||
"label": "Hybrid peeks the current compact face on hover. Click pins a destination so it stays open",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -9922,7 +9956,7 @@
|
||||
"optionFile": "ControlCenterOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:20",
|
||||
"section": "barWidgetOption:IslandOptions.qml:21",
|
||||
"label": "Keep clock with media",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -9986,7 +10020,7 @@
|
||||
"optionFile": "SystemTrayOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:13",
|
||||
"section": "barWidgetOption:IslandOptions.qml:14",
|
||||
"label": "Media",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10018,7 +10052,7 @@
|
||||
"optionFile": "WorkspaceSwitcherOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:26",
|
||||
"section": "barWidgetOption:IslandOptions.qml:27",
|
||||
"label": "Motion",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10066,7 +10100,7 @@
|
||||
"optionFile": "ClockOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:21",
|
||||
"section": "barWidgetOption:IslandOptions.qml:22",
|
||||
"label": "Notifications",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10082,7 +10116,7 @@
|
||||
"optionFile": "BatteryOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:18",
|
||||
"section": "barWidgetOption:IslandOptions.qml:19",
|
||||
"label": "Open delay",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10114,7 +10148,7 @@
|
||||
"optionFile": "AppsDockOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:27",
|
||||
"section": "barWidgetOption:IslandOptions.qml:28",
|
||||
"label": "Reduce motion",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10330,7 +10364,7 @@
|
||||
"optionFile": "AppsDockOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:29",
|
||||
"section": "barWidgetOption:IslandOptions.qml:30",
|
||||
"label": "Spring damping",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10338,7 +10372,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:30",
|
||||
"section": "barWidgetOption:IslandOptions.qml:31",
|
||||
"label": "Spring mass",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10346,7 +10380,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:28",
|
||||
"section": "barWidgetOption:IslandOptions.qml:29",
|
||||
"label": "Spring stiffness",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10410,7 +10444,7 @@
|
||||
"optionFile": "SystemTrayOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:23",
|
||||
"section": "barWidgetOption:IslandOptions.qml:24",
|
||||
"label": "Use standard OSDs",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10418,7 +10452,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:22",
|
||||
"section": "barWidgetOption:IslandOptions.qml:23",
|
||||
"label": "Use standard popups",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10442,7 +10476,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:15",
|
||||
"section": "barWidgetOption:IslandOptions.qml:16",
|
||||
"label": "Wallpapers",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -10450,7 +10484,7 @@
|
||||
"optionFile": "IslandOptions.qml"
|
||||
},
|
||||
{
|
||||
"section": "barWidgetOption:IslandOptions.qml:14",
|
||||
"section": "barWidgetOption:IslandOptions.qml:15",
|
||||
"label": "Weather",
|
||||
"tabIndex": 22,
|
||||
"keywords": [],
|
||||
@@ -16413,6 +16447,31 @@
|
||||
"parentLabel": "Bar",
|
||||
"conditionKey": "dotEnabled"
|
||||
},
|
||||
{
|
||||
"section": "dotRouteClipboard",
|
||||
"label": "Clipboard",
|
||||
"tabIndex": 65,
|
||||
"category": "Dot",
|
||||
"keywords": [
|
||||
"bar",
|
||||
"clipboard",
|
||||
"cliphist",
|
||||
"copy",
|
||||
"dot",
|
||||
"history",
|
||||
"ipc",
|
||||
"island",
|
||||
"panel",
|
||||
"paste",
|
||||
"routing",
|
||||
"shortcuts",
|
||||
"statusbar",
|
||||
"taskbar",
|
||||
"topbar"
|
||||
],
|
||||
"parentLabel": "Bar",
|
||||
"conditionKey": "dotEnabled"
|
||||
},
|
||||
{
|
||||
"section": "dotRouteControlCenter",
|
||||
"label": "Control Center",
|
||||
@@ -16787,6 +16846,7 @@
|
||||
"category": "Dot",
|
||||
"keywords": [
|
||||
"bar",
|
||||
"clipboard",
|
||||
"control center",
|
||||
"dashboard",
|
||||
"dot",
|
||||
|
||||
Reference in New Issue
Block a user