simvx.editor.save_dialog¶
Save Preview Dialog – Modal code preview for CST ambiguity resolution.
When the CST codegen cannot fully automate a scene-to-Python save (e.g., procedural code, complex expressions), this dialog shows the generated source for the user to review, edit, and accept before writing to disk.
Module Contents¶
Classes¶
Modal dialog showing generated Python code before saving. |
Data¶
API¶
- simvx.editor.save_dialog.log¶
‘getLogger(…)’
- simvx.editor.save_dialog.__all__¶
[‘SavePreviewDialog’]
- class simvx.editor.save_dialog.SavePreviewDialog(original_source: str, generated_source: str, **kwargs)[source]¶
Bases:
simvx.core.PanelModal dialog showing generated Python code before saving.
Shows a diff-style preview of changes. User can:
Accept (save as-is)
Edit (modify the code in an inline editor)
Cancel (don’t save)
Signals: accepted: emits (final_source: str,) when user accepts the code. cancelled: emitted when user cancels the save.
Initialization
- DIALOG_WIDTH¶
700.0
- DIALOG_HEIGHT¶
500.0
- HEADER_HEIGHT¶
36.0
- BUTTON_HEIGHT¶
32.0
- BUTTON_GAP¶
8.0
- MARGIN¶
16.0
- show(parent_size: simvx.core.Vec2 | None = None)[source]¶
Show the dialog, centering within parent_size if given.
- style¶
‘ThemeStyleBox(…)’
- property bg_colour¶
- property border_colour¶
- property border_width¶
- get_minimum_size() simvx.core.math.types.Vec2¶
- draw(renderer)¶
- size_x¶
‘Property(…)’
- size_y¶
‘Property(…)’
- anchor_left¶
‘Property(…)’
- anchor_top¶
‘Property(…)’
- anchor_right¶
‘Property(…)’
- anchor_bottom¶
‘Property(…)’
- margin_left¶
‘Property(…)’
- margin_top¶
‘Property(…)’
- margin_right¶
‘Property(…)’
- margin_bottom¶
‘Property(…)’
- property size: simvx.core.math.types.Vec2¶
- touch_mode: str¶
‘mouse’
- property theme: simvx.core.ui.types.Theme | None¶
- property mouse_over: bool¶
- property focused: bool¶
- property disabled: bool¶
- get_theme() simvx.core.ui.types.Theme¶
- queue_redraw()¶
- get_rect() tuple[float, float, float, float]¶
- get_global_rect() tuple[float, float, float, float]¶
- is_point_inside(point) bool¶
- set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
- set_focus()¶
- grab_focus()¶
- release_focus()¶
- has_focus() bool¶
- focus_next_control()¶
- focus_previous_control()¶
- grab_mouse()¶
- release_mouse()¶
- set_drag_preview(control: simvx.core.ui.core.Control)¶
- draw_popup(renderer)¶
- is_popup_point_inside(point) bool¶
- popup_input(event)¶
- dismiss_popup()¶
- z_index¶
‘Property(…)’
- z_as_relative¶
‘Property(…)’
- render_layer¶
‘Property(…)’
- set_render_layer(index: int, enabled: bool = True) None¶
- is_on_render_layer(index: int) bool¶
- property absolute_z_index: int¶
- property position: simvx.core.math.types.Vec2¶
- property rotation: float¶
- property rotation_degrees: float¶
- property scale: simvx.core.math.types.Vec2¶
- property world_position: simvx.core.math.types.Vec2¶
- property world_rotation: float¶
- property world_scale: simvx.core.math.types.Vec2¶
- property forward: simvx.core.math.types.Vec2¶
- property right: simvx.core.math.types.Vec2¶
- translate(offset: tuple[float, float] | numpy.ndarray)¶
- rotate(radians: float)¶
- rotate_deg(degrees: float)¶
- look_at(target: tuple[float, float] | numpy.ndarray)¶
- transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
- draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
- wrap_screen(margin: float = 20)¶
- strict_errors: ClassVar[bool]¶
True
- script_error_raised¶
‘Signal(…)’
- classmethod __init_subclass__(**kwargs)¶
- property name: str¶
- property process_mode: simvx.core.descriptors.ProcessMode¶
- property visible: bool¶
- reset_error() None¶
- add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
- remove_child(node: simvx.core.node.Node)¶
- reparent(new_parent: simvx.core.node.Node)¶
- get_node(path: str) simvx.core.node.Node¶
- find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
- find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
- walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
- property path: str¶
- add_to_group(group: str)¶
- remove_from_group(group: str)¶
- is_in_group(group: str) bool¶
- ready() None¶
- enter_tree() None¶
- exit_tree() None¶
- process(dt: float) None¶
- physics_process(dt: float) None¶
- picked(event: simvx.core.events.InputEvent) None¶
- handle_input(event: simvx.core.events.TreeInputEvent) None¶
- unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
- start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
- stop_coroutine(gen_or_handle)¶
- clear_children()¶
- destroy()¶
- property app¶
- property tree: simvx.core.scene_tree.SceneTree¶
- __getitem__(key: str)¶
- classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
- __repr__()¶