szeli1
69f7c3243d
Fix knob linking / refactor linking ( #7883 )
...
Closes #7869
This PR aims to fix linking bugs and it aims to make linking code faster. In the future I would like to replace controller and automation code with linked models, so it is essential for this feature to work as efficiently as possible.
Before this PR:
- AutomatableModels store a list of AutomatableModels that they are linked to.
- setValue() and other functions make recursive calls to themself resulting in the #7869 crash.
- Each AutomatableModel can unlink from other AutomatableModels, unlinking is the inverse operation to linking.
After this PR:
- AutomatableModels store a pointer to an other AutomatableModel making a linked list. The end is connected to the first element resulting in a "ring".
- setValue() and others are now recursion free, the code runs for every linked model, more efficiently than before.
- Each AutomatableModel can NOT unlink form other AutomatableModels, unlinking is NOT the inverse operation to linking. AutomatableModels can unlink themself from the linked list, they can not unlink themself from single models.
---------
Co-authored-by: allejok96 <allejok96@gmail.com >
2025-12-22 17:37:40 -05:00
..
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-07-10 02:08:42 -04:00
2023-08-31 07:12:00 -04:00
2024-04-27 07:59:02 -04:00
2023-07-25 18:03:18 +02:00
2025-10-20 22:20:01 -04:00
2025-02-28 23:44:58 +01:00
2025-10-20 22:20:01 -04:00
2023-07-25 18:03:18 +02:00
2024-06-30 20:21:19 +02:00
2025-10-22 08:34:07 -04:00
2025-03-24 19:07:46 +05:30
2024-07-21 22:34:34 +01:00
2023-01-05 17:58:49 -05:00
2024-06-30 20:21:19 +02:00
2024-06-30 20:21:19 +02:00
2025-03-07 10:23:30 -05:00
2024-06-30 20:21:19 +02:00
2025-07-16 22:31:01 +02:00
2024-04-27 07:59:02 -04:00
2025-07-21 23:39:17 +02:00
2024-04-27 07:59:02 -04:00
2025-10-22 08:34:07 -04:00
2024-06-30 20:21:19 +02:00
2024-08-11 12:20:02 +02:00
2024-04-27 07:59:02 -04:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2025-12-22 17:37:40 -05:00
2025-12-22 17:37:40 -05:00
2023-01-05 17:58:49 -05:00
2025-11-11 12:57:14 -05:00
2025-04-29 17:56:13 -04:00
2025-12-17 06:31:36 -05:00
2023-10-06 18:37:46 -04:00
2024-08-20 19:50:39 +02:00
2023-01-05 17:58:49 -05:00
2025-03-24 19:07:46 +05:30
2023-10-29 11:16:39 +01:00
2025-11-03 11:58:15 -06:00
2025-10-20 22:20:01 -04:00
2025-03-24 19:07:46 +05:30
2023-01-05 17:58:49 -05:00
2025-07-21 23:39:17 +02:00
2023-11-11 18:09:38 -05:00
2025-10-28 13:14:46 -06:00
2025-11-03 11:58:15 -06:00
2025-11-03 11:58:15 -06:00
2023-11-19 00:44:15 -05:00
2025-06-15 14:41:23 -04:00
2025-07-21 23:39:17 +02:00
2025-11-03 11:58:15 -06:00
2023-08-24 19:16:02 +01:00
2023-08-22 12:08:56 +09:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-07-21 23:39:17 +02:00
2024-05-23 17:38:47 +05:30
2025-07-21 23:39:17 +02:00
2025-03-24 19:07:46 +05:30
2025-05-29 19:35:48 +02:00
2025-02-22 14:24:29 +05:30
2025-03-24 19:07:46 +05:30
2023-01-05 17:58:49 -05:00
2025-11-11 12:57:14 -05:00
2025-04-29 17:56:13 -04:00
2025-10-13 12:18:34 -07:00
2025-10-23 13:58:32 -06:00
2025-03-24 19:07:46 +05:30
2024-09-20 20:00:36 -04:00
2024-06-30 20:21:19 +02:00
2023-01-05 17:58:49 -05:00
2025-08-14 10:08:04 -04:00
2025-10-22 08:34:07 -04:00
2024-06-30 20:21:19 +02:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-07-21 23:39:17 +02:00
2025-11-11 12:57:14 -05:00
2025-07-22 17:01:48 -04:00
2025-11-03 11:58:15 -06:00
2025-10-20 22:20:01 -04:00
2025-03-24 19:07:46 +05:30
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2024-11-30 19:24:45 +05:30
2023-01-05 17:58:49 -05:00
2023-08-24 19:16:02 +01:00
2023-01-05 17:58:49 -05:00
2025-03-20 01:30:29 -04:00
2023-01-05 17:58:49 -05:00
2024-07-21 22:34:34 +01:00
2023-01-05 17:58:49 -05:00
2025-11-11 12:57:14 -05:00
2023-01-05 17:58:49 -05:00
2025-11-03 11:58:15 -06:00
2025-11-03 11:58:15 -06:00
2023-09-28 20:23:35 -04:00
2025-11-03 11:58:15 -06:00
2025-06-01 12:19:34 -04:00
2025-03-24 19:07:46 +05:30
2024-02-10 14:27:50 +01:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2025-05-28 19:28:13 -04:00
2025-03-24 19:07:46 +05:30
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2024-06-30 20:21:19 +02:00
2025-03-09 11:25:00 +01:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2023-08-31 19:21:26 +02:00
2023-01-05 17:58:49 -05:00
2025-02-13 13:15:08 -05:00
2025-07-10 02:08:42 -04:00
2025-03-24 19:07:46 +05:30
2025-02-09 02:50:38 -05:00
2023-01-05 17:58:49 -05:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2008-07-22 11:36:50 +00:00
2024-03-16 14:34:01 +09:00
2023-10-29 11:16:39 +01:00
2023-01-05 17:58:49 -05:00
2025-03-24 19:07:46 +05:30
2023-10-07 21:01:30 -07:00
2023-01-05 17:58:49 -05:00
2023-11-19 00:44:15 -05:00
2025-07-21 23:39:17 +02:00
2025-11-21 01:26:00 -05:00
2025-07-21 23:39:17 +02:00
2024-11-30 19:24:45 +05:30
2025-10-20 22:20:01 -04:00
2025-07-21 23:39:17 +02:00
2025-10-20 22:20:01 -04:00
2025-10-13 12:18:34 -07:00
2025-03-24 19:07:46 +05:30
2023-01-05 17:58:49 -05:00
2025-10-20 22:20:01 -04:00
2025-02-08 23:33:44 -05:00
2025-06-08 20:15:16 -04:00
2025-07-10 02:08:42 -04:00
2024-07-21 22:34:34 +01:00
2023-01-05 17:58:49 -05:00
2025-03-24 19:07:46 +05:30
2024-07-28 15:55:41 +02:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2025-07-21 23:39:17 +02:00
2024-07-08 23:02:49 +02:00
2024-05-19 14:39:20 +01:00
2025-03-24 19:07:46 +05:30
2025-07-21 23:39:17 +02:00
2023-08-24 19:16:02 +01:00
2023-01-05 17:58:49 -05:00
2024-05-19 14:39:20 +01:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2025-11-03 11:58:15 -06:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2025-10-20 22:20:01 -04:00
2024-09-04 12:58:36 -04:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-03-24 19:07:46 +05:30
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2023-08-22 12:08:56 +09:00
2025-07-06 08:42:54 +02:00
2025-07-02 18:04:16 -04:00
2023-09-22 20:07:25 +01:00
2023-01-05 17:58:49 -05:00
2025-02-03 11:52:13 -05:00
2024-02-25 13:49:56 -05:00
2023-01-05 17:58:49 -05:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2023-08-24 19:16:02 +01:00
2023-08-24 19:16:02 +01:00
2023-07-22 23:03:31 +02:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-02-28 09:52:41 -05:00
2024-08-11 11:14:43 -04:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2025-03-24 19:07:46 +05:30
2023-06-02 22:17:03 +02:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2023-11-12 02:20:53 +01:00
2025-10-20 22:20:01 -04:00
2024-06-30 20:21:19 +02:00
2023-12-16 14:19:36 +00:00
2025-03-24 19:07:46 +05:30
2025-03-24 19:07:46 +05:30
2025-03-24 19:07:46 +05:30
2025-03-24 19:07:46 +05:30
2025-10-13 12:18:34 -07:00
2025-03-24 19:07:46 +05:30
2025-10-31 12:06:34 -04:00
2025-04-29 17:56:13 -04:00
2025-12-02 17:34:50 -05:00
2025-07-02 18:04:16 -04:00
2025-07-15 09:17:51 +02:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2025-05-02 11:04:47 -04:00
2024-06-01 12:09:47 +02:00
2023-01-05 17:58:49 -05:00
2024-07-09 06:27:33 -04:00
2025-12-17 06:31:36 -05:00
2023-11-19 00:44:15 -05:00
2023-01-05 17:58:49 -05:00
2024-10-12 10:02:56 +02:00
2025-03-24 19:07:46 +05:30
2024-02-25 13:49:56 -05:00
2025-11-03 11:58:15 -06:00
2025-07-21 23:39:17 +02:00
2024-07-08 23:02:49 +02:00
2024-10-12 10:39:42 +02:00
2025-12-12 10:02:25 -05:00
2024-06-30 20:21:19 +02:00
2025-03-24 19:07:46 +05:30
2023-01-05 17:58:49 -05:00
2025-10-22 08:34:07 -04:00
2023-08-24 19:16:02 +01:00
2025-10-20 22:20:01 -04:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-11-11 12:57:14 -05:00
2025-10-29 16:32:29 -07:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2025-10-22 08:34:07 -04:00
2025-03-24 19:07:46 +05:30
2025-02-08 23:50:02 -05:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-10-22 08:34:07 -04:00
2025-07-21 23:39:17 +02:00
2025-06-02 00:42:02 -04:00
2025-04-29 17:56:13 -04:00
2025-07-21 23:39:17 +02:00
2025-03-24 19:07:46 +05:30
2024-05-05 04:37:43 -04:00
2025-07-21 23:39:17 +02:00
2024-06-30 20:21:19 +02:00
2025-07-21 23:39:17 +02:00
2025-02-28 23:44:58 +01:00
2025-07-21 23:39:17 +02:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2023-12-30 17:55:28 +01:00
2023-01-05 17:58:49 -05:00
2025-11-30 15:11:57 -05:00
2025-02-03 14:18:02 -05:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-06-10 19:04:45 -04:00
2025-12-17 06:31:36 -05:00
2025-12-17 06:31:36 -05:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-10-20 22:20:01 -04:00
2024-04-20 23:21:29 +01:00
2023-07-16 14:11:24 +02:00
2023-01-05 17:58:49 -05:00
2025-11-03 11:58:15 -06:00
2023-01-05 17:58:49 -05:00
2023-10-29 11:16:39 +01:00
2025-05-29 19:35:48 +02:00
2023-10-29 11:16:39 +01:00
2023-04-29 16:53:58 +02:00
2025-03-24 19:07:46 +05:30
2024-06-30 15:49:06 -04:00
2023-08-24 19:16:02 +01:00
2025-12-17 06:31:36 -05:00
2025-12-17 06:31:36 -05:00
2025-04-19 15:08:15 -04:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2023-01-05 17:58:49 -05:00
2025-03-24 19:07:46 +05:30
2025-12-03 16:29:12 -05:00
2024-08-16 22:20:39 +05:30
2025-07-21 23:39:17 +02:00
2024-10-12 10:02:56 +02:00
2024-05-12 17:38:14 +01:00
2025-07-21 23:39:17 +02:00
2023-01-05 17:58:49 -05:00
2025-03-11 14:30:04 -04:00
2024-02-25 13:49:56 -05:00
2023-01-05 17:58:49 -05:00
2025-12-08 16:07:33 -07:00
2025-03-24 19:07:46 +05:30
2025-07-21 23:39:17 +02:00
2025-07-10 02:08:42 -04:00