@@ -374,27 +374,38 @@ def display_processing_history(self, obj: SignalObj | ImageObj) -> bool:
374374 self .processing_history .setText (history_text )
375375 return bool (history_text )
376376
377- def update_properties_from (self , obj : SignalObj | ImageObj | None = None ) -> None :
378- """Update properties from signal/image dataset
377+ def __update_properties_dataset (self , obj : SignalObj | ImageObj ) -> None :
378+ """Update properties dataset from signal/image dataset
379379
380380 Args:
381381 obj: Signal or Image object
382382 """
383- self .properties .setDisabled (obj is None )
384- if obj is None :
385- obj = self .objclass ()
386383 dataset : SignalObj | ImageObj = self .properties .dataset
387384 dataset .set_defaults ()
388385 update_dataset (dataset , obj )
389386 self .properties .get ()
390- has_analysis_parameters = self .display_analysis_parameters (obj )
391- self .display_processing_history (obj )
392387 self .properties .apply_button .setEnabled (False )
393388
389+ def update_properties_from (self , obj : SignalObj | ImageObj | None = None ) -> None :
390+ """Update properties panel (properties, creation, processing) from object.
391+
392+ Args:
393+ obj: Signal or Image object
394+ """
395+ self .properties .setDisabled (obj is None )
396+ if obj is None :
397+ obj = self .objclass ()
398+
399+ # Update the properties dataset
400+ self .__update_properties_dataset (obj )
394401 # Store original values to detect which properties have changed
395- # Using restore_dataset to convert the dataset to a dictionary
402+ # (using ` restore_dataset` to convert the dataset to a dictionary)
396403 self .__original_values = {}
397- restore_dataset (dataset , self .__original_values )
404+ restore_dataset (self .properties .dataset , self .__original_values )
405+
406+ # Display analysis parameters and processing history
407+ has_analysis_parameters = self .display_analysis_parameters (obj )
408+ self .display_processing_history (obj )
398409
399410 # Remove only Creation and Processing tabs (dynamic tabs)
400411 # Use widget references instead of text labels for reliable identification
@@ -595,6 +606,10 @@ def apply_creation_parameters(self) -> None:
595606 # of the Properties tab and could cause recursion issues)
596607 self .panel .refresh_plot (obj_uuid , update_items = True , force = True )
597608
609+ # Update the Properties tab to reflect the new object properties
610+ # (e.g., data type, dimensions, etc.)
611+ self .__update_properties_dataset (self .current_creation_obj )
612+
598613 # Refresh the Creation tab with the new parameters
599614 # Use QTimer to defer this until after the current event is processed
600615 # Set the Creation tab as current to keep it visible after refresh
@@ -836,6 +851,10 @@ def apply_processing_parameters(
836851 self .panel .objview .update_item (obj_uuid )
837852 self .panel .refresh_plot (obj_uuid , update_items = True , force = True )
838853
854+ # Update the Properties tab to reflect the new object properties
855+ # (e.g., data type, dimensions, etc.)
856+ self .__update_properties_dataset (obj )
857+
839858 # Refresh the Processing tab with the new parameters
840859 # Don't reset parameters from source object - keep the user's values
841860 # Set the Processing tab as current to keep it visible after refresh
0 commit comments