aboutsummaryrefslogtreecommitdiffstats
path: root/config/quickshell/modules/common/functions/object_utils.js
diff options
context:
space:
mode:
authorKiran George <kirangeorge1995@gmail.com>2025-06-09 11:30:08 +0530
committerKiran George <kirangeorge1995@gmail.com>2025-06-09 11:30:08 +0530
commit952aa63147c9fb28f6ace6f0bc7ccf45ced1299a (patch)
tree306e6d86603a162c00bc5113b56baac0fe7bec7c /config/quickshell/modules/common/functions/object_utils.js
parent4cf0d0bd5930da76e60f6770de3ee97c10ca7024 (diff)
Overview v2
Diffstat (limited to 'config/quickshell/modules/common/functions/object_utils.js')
-rw-r--r--config/quickshell/modules/common/functions/object_utils.js45
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;
+ }
+ }
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage