Use manifest defaults when adding components and refresh properties from device
- Populate prop elements with manifest default values when adding components in both offline and live mode - Send config values from manifest in SOX add command for live devices - Refresh button in properties panel now fetches fresh values from the connected device before re-reading the DOM - Properties panel fetches device values on open in live mode Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ import app_state
|
||||
import connect_dialog
|
||||
import device_session
|
||||
import link_view
|
||||
import live_hooks
|
||||
import manage_kits
|
||||
import palette
|
||||
import properties
|
||||
@@ -191,7 +192,15 @@ def refresh_all_views():
|
||||
|
||||
def _component_in_document(comp):
|
||||
root = app_state.xml_root_element
|
||||
return root is not None and any(element is comp for element in root.iter())
|
||||
if root is None:
|
||||
return False
|
||||
if any(element is comp for element in root.iter()):
|
||||
return True
|
||||
if app_state.live_mode:
|
||||
comp_id = comp.get("id")
|
||||
if comp_id is not None:
|
||||
return any(e.get("id") == comp_id for e in root.iter())
|
||||
return False
|
||||
|
||||
|
||||
def delete_component(comp):
|
||||
@@ -1329,10 +1338,16 @@ def on_canvas_release(event):
|
||||
if orig_x != raw_x or orig_y != raw_y:
|
||||
meta_before = app_state.drag_data.get("meta_before", meta_str)
|
||||
update_meta_property(comp_element, meta_str, raw_x, raw_y)
|
||||
undo.push(undo.MetaMoveCommand(
|
||||
[(comp_element, meta_before, raw_x, raw_y)],
|
||||
label=f"move {comp_element.get('name', 'component')}"
|
||||
))
|
||||
if live_hooks.is_live():
|
||||
new_meta = comp_element.find("prop[@name='meta']")
|
||||
if new_meta is not None:
|
||||
live_hooks.live_set_prop_value(
|
||||
comp_element, "meta", new_meta.get("val", "0"))
|
||||
if not app_state.live_mode:
|
||||
undo.push(undo.MetaMoveCommand(
|
||||
[(comp_element, meta_before, raw_x, raw_y)],
|
||||
label=f"move {comp_element.get('name', 'component')}"
|
||||
))
|
||||
app_state.mark_dirty()
|
||||
|
||||
app_state.drag_data["tag"] = None
|
||||
|
||||
Reference in New Issue
Block a user