1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-28 15:32:50 -05:00

desktop widgets: centralize config in desktop widgets tab, variants

always available
This commit is contained in:
bbedward
2025-12-22 10:39:19 -05:00
parent c548255bfc
commit a7494971fd
21 changed files with 2151 additions and 854 deletions

View File

@@ -19,17 +19,16 @@ Item {
height: implicitHeight
readonly property bool isDesktopPlugin: {
if (!pluginService || !pluginId)
if (!pluginService?.availablePlugins || !pluginId)
return false;
const plugin = pluginService.availablePlugins[pluginId];
return plugin?.type === "desktop";
}
readonly property bool hasPermission: {
if (!pluginService || !pluginId)
if (!pluginService?.availablePlugins || !pluginId)
return true;
const allPlugins = pluginService.availablePlugins;
const plugin = allPlugins[pluginId];
const plugin = pluginService.availablePlugins[pluginId];
if (!plugin)
return true;
const permissions = Array.isArray(plugin.permissions) ? plugin.permissions : [];
@@ -63,15 +62,27 @@ Item {
Connections {
target: pluginService
enabled: pluginService !== null
function onPluginDataChanged(changedPluginId) {
if (changedPluginId === pluginId) {
loadVariants();
reloadChildValues();
}
}
}
function reloadChildValues() {
for (let i = 0; i < content.length; i++) {
const child = content[i];
if (child.loadValue) {
child.loadValue();
}
}
}
function loadVariants() {
if (!pluginService || !pluginId) {
if (!pluginService?.getPluginVariants || !pluginId) {
variants = [];
return;
}
@@ -95,21 +106,21 @@ Item {
}
function createVariant(variantName, variantConfig) {
if (!pluginService || !pluginId) {
if (!pluginService?.createPluginVariant || !pluginId) {
return null;
}
return pluginService.createPluginVariant(pluginId, variantName, variantConfig);
}
function removeVariant(variantId) {
if (!pluginService || !pluginId) {
if (!pluginService?.removePluginVariant || !pluginId) {
return;
}
pluginService.removePluginVariant(pluginId, variantId);
}
function updateVariant(variantId, variantConfig) {
if (!pluginService || !pluginId) {
if (!pluginService?.updatePluginVariant || !pluginId) {
return;
}
pluginService.updatePluginVariant(pluginId, variantId, variantConfig);