diff --git a/news/fix-qmax-update.rst b/news/fix-qmax-update.rst new file mode 100644 index 00000000..958a4dbe --- /dev/null +++ b/news/fix-qmax-update.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* Fixed load new parsed data with updated `Qmax` attribute + +**Security:** + +* diff --git a/src/diffpy/srfit/fitbase/profilegenerator.py b/src/diffpy/srfit/fitbase/profilegenerator.py index c6adabbc..3007e8de 100644 --- a/src/diffpy/srfit/fitbase/profilegenerator.py +++ b/src/diffpy/srfit/fitbase/profilegenerator.py @@ -163,15 +163,18 @@ def set_profile(self, profile): will store the calculated signal. """ if self.profile is not None: - self.profile.removeObserver(self._flush) + self.profile.removeObserver(self._on_profile_update) self.profile = profile - self.profile.addObserver(self._flush) - self._flush(other=(self,)) + self.profile.addObserver(self._on_profile_update) + self._on_profile_update(other=(self,)) + return - # Merge the profiles metadata with our own - self.meta.update(self.profile.meta) - self.processMetaData() + def _on_profile_update(self, other=()): + if self.profile is not None: + self.meta.update(self.profile.meta) + self.processMetaData() + self._flush(other=other) return def processMetaData(self):