mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-25 05:52:50 -05:00
68 lines
1.8 KiB
QML
68 lines
1.8 KiB
QML
import QtQuick
|
|
import qs.Common
|
|
|
|
Item {
|
|
id: root
|
|
|
|
property var pluginService: null
|
|
property string pluginId: ""
|
|
property string instanceId: ""
|
|
property var instanceData: null
|
|
|
|
property real widgetWidth: 200
|
|
property real widgetHeight: 200
|
|
property real minWidth: 100
|
|
property real minHeight: 100
|
|
|
|
readonly property bool isInstance: instanceId !== "" && instanceData !== null
|
|
readonly property var instanceConfig: instanceData?.config ?? {}
|
|
|
|
property var pluginData: isInstance ? instanceConfig : _globalPluginData
|
|
property var _globalPluginData: ({})
|
|
|
|
Component.onCompleted: loadPluginData()
|
|
onPluginServiceChanged: loadPluginData()
|
|
onPluginIdChanged: loadPluginData()
|
|
onInstanceDataChanged: {
|
|
if (isInstance)
|
|
Qt.callLater(() => {
|
|
pluginData = instanceConfig;
|
|
});
|
|
}
|
|
|
|
Connections {
|
|
target: pluginService
|
|
enabled: pluginService !== null
|
|
|
|
function onPluginDataChanged(changedPluginId) {
|
|
if (changedPluginId !== pluginId)
|
|
return;
|
|
loadPluginData();
|
|
}
|
|
}
|
|
|
|
function loadPluginData() {
|
|
if (!pluginService || !pluginId) {
|
|
_globalPluginData = {};
|
|
return;
|
|
}
|
|
if (isInstance) {
|
|
pluginData = instanceConfig;
|
|
return;
|
|
}
|
|
_globalPluginData = SettingsData.getPluginSettingsForPlugin(pluginId);
|
|
}
|
|
|
|
function getData(key, defaultValue) {
|
|
if (!pluginService || !pluginId)
|
|
return defaultValue;
|
|
return pluginService.loadPluginData(pluginId, key, defaultValue);
|
|
}
|
|
|
|
function setData(key, value) {
|
|
if (!pluginService || !pluginId)
|
|
return;
|
|
pluginService.savePluginData(pluginId, key, value);
|
|
}
|
|
}
|