diff --git a/nion/swift/ExportDialog.py b/nion/swift/ExportDialog.py index 3c55584b..e4a3ebfc 100644 --- a/nion/swift/ExportDialog.py +++ b/nion/swift/ExportDialog.py @@ -261,15 +261,18 @@ class UnitType(enum.Enum): class ExportSizeModel(Observable.Observable): - def __init__(self, display_item: DisplayItem.DisplayItem) -> None: + def __init__(self, display_item: DisplayItem.DisplayItem, units_persistent_model: UserInterface.StringPersistentModel) -> None: super().__init__() + self.__units_persistent_model = units_persistent_model display_size = self.__calculate_display_size_in_pixels(display_item) self.__width = display_size.width self.__height = display_size.height self.__aspect_ratio = self.__width / self.__height - self.__units = UnitType.PIXELS self.__float_to_string_converter = Converter.FloatToStringConverter() - self.__primary_field = 'width' # Primary field to determine which text is calculated + self.__primary_field = 'width' # Primary field to determine which text is calculater + # Load the persisted units value, default to PIXELS if not found + persisted_units = self.__units_persistent_model.value + self.__units = UnitType[str(persisted_units)] def __calculate_display_size_in_pixels(self, display_item: DisplayItem.DisplayItem) -> Geometry.IntSize: if display_item.display_data_shape and len(display_item.display_data_shape) == 2: @@ -327,6 +330,7 @@ def units(self, new_units: int) -> None: new_enum = UnitType(new_units) if self.__units != new_enum: self.__units = new_enum + self.__units_persistent_model.value = self.__units.name self.notify_property_changed("width") self.notify_property_changed("height") self.notify_property_changed("width_text") @@ -391,7 +395,12 @@ def __init__(self, document_controller: DocumentController.DocumentController, super().__init__() self.__document_controller = document_controller self.__display_item = display_item - self.__model = ExportSizeModel(display_item) + self.__units_persistent_model = UserInterface.StringPersistentModel( + ui=document_controller.ui, + storage_key="export_units", + value=UnitType.PIXELS.name # Default value if not found + ) + self.__model = ExportSizeModel(display_item, self.__units_persistent_model) self.__handler = ExportSVGHandler(self.__model) self.__init_ui()