use tree colors in fit result for sub-funcs (#253)
All checks were successful
Build AppImage / Explore-Gitea-Actions (push) Successful in 1m32s
All checks were successful
Build AppImage / Explore-Gitea-Actions (push) Successful in 1m32s
closes #201 Co-authored-by: Dominik Demuth <dominik.demuth@physik.tu-darmstadt.de> Reviewed-on: #253
This commit is contained in:
@ -952,19 +952,19 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
for item in self.fit_dialog.preview_lines:
|
||||
g.add_external(item)
|
||||
|
||||
@QtCore.pyqtSlot(list)
|
||||
def show_fit_results(self, results: list):
|
||||
@QtCore.pyqtSlot(list, dict)
|
||||
def show_fit_results(self, results: list, sub_colors: dict[str, tuple[float, float, float]]):
|
||||
self.fit_dialog.fit_button.setEnabled(True)
|
||||
self.fit_timer.stop()
|
||||
self.status.setText('')
|
||||
if results:
|
||||
if self.fitresult_dialog is None:
|
||||
self.fitresult_dialog = QFitResult(results, self.management, parent=self)
|
||||
self.fitresult_dialog = QFitResult(results, sub_colors, self.management, parent=self)
|
||||
self.fitresult_dialog.add_graphs(self.management.graphs.list())
|
||||
self.fitresult_dialog.closed.connect(self.accepts_fit)
|
||||
self.fitresult_dialog.redoFit.connect(self.management.redo_fits)
|
||||
else:
|
||||
self.fitresult_dialog(results)
|
||||
self.fitresult_dialog(results, sub_colors)
|
||||
self.fitresult_dialog.add_graphs(self.management.graphs.list())
|
||||
self.fitresult_dialog.show()
|
||||
|
||||
|
@ -85,7 +85,7 @@ class UpperManagement(QtCore.QObject):
|
||||
newData = QtCore.pyqtSignal([list, str], [list, str, bool])
|
||||
deleteData = QtCore.pyqtSignal(list)
|
||||
dataChanged = QtCore.pyqtSignal(str)
|
||||
fitFinished = QtCore.pyqtSignal(list)
|
||||
fitFinished = QtCore.pyqtSignal(list, dict)
|
||||
stopFit = QtCore.pyqtSignal()
|
||||
properties_collected = QtCore.pyqtSignal(dict)
|
||||
unset_state = QtCore.pyqtSignal(list)
|
||||
@ -586,13 +586,23 @@ class UpperManagement(QtCore.QObject):
|
||||
def end_fit(self, result: list, success: bool):
|
||||
if success:
|
||||
logger.info('Successful fit')
|
||||
self.fitFinished.emit(result)
|
||||
|
||||
sub_colors = {}
|
||||
for k, v in self.__fit_options[0].items():
|
||||
sub_colors.update({set_id: v['color'] for set_id in v['data_parameter']})
|
||||
|
||||
self.fitFinished.emit(result, sub_colors)
|
||||
|
||||
else:
|
||||
e = result[0]
|
||||
logger.exception(e, exc_info=True)
|
||||
QtWidgets.QMessageBox.warning(QtWidgets.QWidget(), 'Fit failed',
|
||||
f'Fit kaput with exception: \n\n{e!r}')
|
||||
self.fitFinished.emit([])
|
||||
QtWidgets.QMessageBox.warning(
|
||||
QtWidgets.QWidget(),
|
||||
'Fit failed',
|
||||
f'Fit kaput with exception: \n\n{e!r}'
|
||||
)
|
||||
self.fitFinished.emit([], {})
|
||||
|
||||
self._fit_active = False
|
||||
|
||||
@QtCore.pyqtSlot(dict)
|
||||
|
Reference in New Issue
Block a user