mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-28 15:32:50 -05:00
plugins: add PluginGlobalVar
- Allow syncing vars to all widget instances, like a singleton
This commit is contained in:
@@ -30,12 +30,14 @@ Singleton {
|
||||
property var knownManifests: ({})
|
||||
property var pathToPluginId: ({})
|
||||
property var pluginInstances: ({})
|
||||
property var globalVars: ({})
|
||||
|
||||
signal pluginLoaded(string pluginId)
|
||||
signal pluginUnloaded(string pluginId)
|
||||
signal pluginLoadFailed(string pluginId, string error)
|
||||
signal pluginDataChanged(string pluginId)
|
||||
signal pluginListUpdated()
|
||||
signal globalVarChanged(string pluginId, string varName)
|
||||
|
||||
Timer {
|
||||
id: resyncDebounce
|
||||
@@ -589,4 +591,22 @@ Singleton {
|
||||
}
|
||||
return plugins
|
||||
}
|
||||
|
||||
function getGlobalVar(pluginId, varName, defaultValue) {
|
||||
if (globalVars[pluginId] && varName in globalVars[pluginId]) {
|
||||
return globalVars[pluginId][varName]
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
function setGlobalVar(pluginId, varName, value) {
|
||||
const newGlobals = Object.assign({}, globalVars)
|
||||
if (!newGlobals[pluginId]) {
|
||||
newGlobals[pluginId] = {}
|
||||
}
|
||||
newGlobals[pluginId] = Object.assign({}, newGlobals[pluginId])
|
||||
newGlobals[pluginId][varName] = value
|
||||
globalVars = newGlobals
|
||||
globalVarChanged(pluginId, varName)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user