diff options
| author | Kiran George <kirangeorge1995@gmail.com> | 2025-06-09 11:30:08 +0530 |
|---|---|---|
| committer | Kiran George <kirangeorge1995@gmail.com> | 2025-06-09 11:30:08 +0530 |
| commit | 952aa63147c9fb28f6ace6f0bc7ccf45ced1299a (patch) | |
| tree | 306e6d86603a162c00bc5113b56baac0fe7bec7c /config/quickshell/modules/common/functions/object_utils.js | |
| parent | 4cf0d0bd5930da76e60f6770de3ee97c10ca7024 (diff) | |
Overview v2
Diffstat (limited to 'config/quickshell/modules/common/functions/object_utils.js')
| -rw-r--r-- | config/quickshell/modules/common/functions/object_utils.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/config/quickshell/modules/common/functions/object_utils.js b/config/quickshell/modules/common/functions/object_utils.js new file mode 100644 index 00000000..96c632fd --- /dev/null +++ b/config/quickshell/modules/common/functions/object_utils.js @@ -0,0 +1,45 @@ +function toPlainObject(qtObj) { + if (qtObj === null || typeof qtObj !== "object") return qtObj; + + // Handle arrays + if (Array.isArray(qtObj)) { + return qtObj.map(toPlainObject); + } + + const result = ({}); + for (let key in qtObj) { + if ( + typeof qtObj[key] !== "function" && + !key.startsWith("objectName") && + !key.startsWith("children") && + !key.startsWith("object") && + !key.startsWith("parent") && + !key.startsWith("metaObject") && + !key.startsWith("destroyed") && + !key.startsWith("reloadableId") + ) { + result[key] = toPlainObject(qtObj[key]); + } + } + return result; +} + +function applyToQtObject(qtObj, jsonObj) { + if (!qtObj || typeof jsonObj !== "object" || jsonObj === null) return; + + for (let key in jsonObj) { + if (!qtObj.hasOwnProperty(key)) continue; + + // Check if the property is a QtObject (not a value) + const value = qtObj[key]; + const jsonValue = jsonObj[key]; + + // If it's an object and not an array, recurse + if (value && typeof value === "object" && !Array.isArray(value)) { + applyToQtObject(value, jsonValue); + } else { + // Otherwise, assign the value + qtObj[key] = jsonValue; + } + } +} |
