Ultimaker / Uranium

A Python framework for building Desktop applications.
GNU Lesser General Public License v3.0
326 stars 185 forks source link

[CURA-12050] For cross-stack relations, signal changed properties globally. #959

Closed rburema closed 3 months ago

rburema commented 3 months ago

If a setting depends on a setting that is somehow in another stack (or another part of the global tree), as signalled by 'force_depends_on_settings' (renamed from 'depends_on_settings', as that'd imply you should always add it), use the global container stack instead of the 'local' one (which'd only contain the setting-instances for that stack, not the actual relation should it reside in another part of the currently active machine containers).

This can happen for instance in a dependee like Cura, which has machines with different extruders, and if a setting is locked to an extruder with 'limit_to_extruder', a setting using a formula using such a setting should be updated from what may potentially be the an other extruders' stack.

Also see Cura PR: https://github.com/Ultimaker/Cura/pull/19450