1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-26 22:42:50 -05:00

plugins: support control center plugins

This commit is contained in:
bbedward
2025-10-05 21:09:29 -04:00
parent 2b14ef76c9
commit c092cd2921
11 changed files with 593 additions and 34 deletions

View File

@@ -21,6 +21,18 @@ Item {
property real popoutHeight: 400
property var pillClickAction: null
property Component controlCenterWidget: null
property string ccWidgetIcon: ""
property string ccWidgetPrimaryText: ""
property string ccWidgetSecondaryText: ""
property bool ccWidgetIsActive: false
property bool ccWidgetIsToggle: true
property Component ccDetailContent: null
property real ccDetailHeight: 250
signal ccWidgetToggled()
signal ccWidgetExpanded()
property var pluginData: ({})
readonly property bool isVertical: axis?.isVertical ?? false

View File

@@ -0,0 +1,51 @@
import QtQuick
import qs.Common
import qs.Services
import qs.Widgets
Item {
id: root
property string pluginId: ""
property var pluginInstance: null
property bool isCompoundPill: false
property bool isSmallToggle: false
readonly property bool hasDetail: pluginInstance?.ccDetailContent !== null
readonly property string iconName: pluginInstance?.ccWidgetIcon || "extension"
readonly property string primaryText: pluginInstance?.ccWidgetPrimaryText || "Plugin"
readonly property string secondaryText: pluginInstance?.ccWidgetSecondaryText || ""
readonly property bool isActive: pluginInstance?.ccWidgetIsActive || false
readonly property Component detailContent: pluginInstance?.ccDetailContent || null
readonly property real detailHeight: pluginInstance?.ccDetailHeight || 250
signal toggled()
signal expanded()
Component.onCompleted: {
if (pluginInstance) {
pluginInstance.ccWidgetToggled.connect(handleToggled)
pluginInstance.ccWidgetExpanded.connect(handleExpanded)
}
}
function handleToggled() {
toggled()
}
function handleExpanded() {
expanded()
}
function invokeToggle() {
if (pluginInstance) {
pluginInstance.ccWidgetToggled()
}
}
function invokeExpand() {
if (pluginInstance) {
pluginInstance.ccWidgetExpanded()
}
}
}