forked from IPKM/nmreval
		
	save fit parameter does not confirm overwrite; export graphics with try-catch around get_data_opts;
This commit is contained in:
		| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| import sys | ||||
| import pathlib | ||||
| sys.path.append(str(pathlib.Path(__file__).parent.parent / 'src')) | ||||
| sys.path.append(str(pathlib.Path(__file__).absolute().parent.parent / 'src')) | ||||
|  | ||||
| from nmreval.configs import check_for_config | ||||
|  | ||||
|   | ||||
| @@ -596,7 +596,12 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow): | ||||
|                     legend_shown = True | ||||
|                     break | ||||
|             in_legend.append(legend_shown) | ||||
|             item_dic = plot_item.get_data_opts() | ||||
|             try: | ||||
|                 item_dic = plot_item.get_data_opts() | ||||
|             except Exception as e: | ||||
|                 print(f'{item} could not exported because {e.args}') | ||||
|                 continue | ||||
|  | ||||
|             if len(item) == 2: | ||||
|                 # plot can show errorbars | ||||
|                 item_dic['yerr'] = item[1].opts['topData'] | ||||
| @@ -607,9 +612,10 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow): | ||||
|         for item in self._external_items: | ||||
|             try: | ||||
|                 dic['items'].append(item.get_data_opts()) | ||||
|             except AttributeError: | ||||
|                 print(f'{item} is missing "get_data_opts()"') | ||||
|             except Exception as e: | ||||
|                 print(f'{item} could not be exported because {e.args}') | ||||
|                 continue | ||||
|  | ||||
|             in_legend.append(False) | ||||
|  | ||||
|         dic['in_legend'] = in_legend | ||||
|   | ||||
| @@ -22,9 +22,10 @@ pyqtgraph looks for function "setLogMode" for logarithmic axes, so needs to be i | ||||
|  | ||||
| class LogInfiniteLine(InfiniteLine): | ||||
|     def __init__(self, **kwargs): | ||||
|         super().__init__(**kwargs) | ||||
|         self.logmode = [False, False] | ||||
|  | ||||
|         super().__init__(**kwargs) | ||||
|  | ||||
|     def setLogMode(self, xmode, ymode): | ||||
|         """ | ||||
|         Does only work for vertical and horizontal lines | ||||
| @@ -33,13 +34,13 @@ class LogInfiniteLine(InfiniteLine): | ||||
|             return | ||||
|  | ||||
|         new_p = list(self.p[:]) | ||||
|         if (self.angle == 90) and (self.logmode[0] != xmode): | ||||
|         if self.logmode[0] != xmode: | ||||
|             if xmode: | ||||
|                 new_p[0] = np.log10(new_p[0]+np.finfo(float).eps) | ||||
|             else: | ||||
|                 new_p[0] = 10**new_p[0] | ||||
|  | ||||
|         if (self.angle == 0) and (self.logmode[1] != ymode): | ||||
|         if self.logmode[1] != ymode: | ||||
|             if ymode: | ||||
|                 new_p[1] = np.log10(new_p[1]+np.finfo(float).eps) | ||||
|             else: | ||||
|   | ||||
| @@ -111,6 +111,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow): | ||||
|  | ||||
|         self.datawidget.management = self.management | ||||
|         self.integralwidget.management = self.management | ||||
|         # self.drawingswidget.graphs = self.management.graphs | ||||
|  | ||||
|         self.ac_group = QtWidgets.QActionGroup(self) | ||||
|         self.ac_group.addAction(self.action_lm_fit) | ||||
| @@ -276,7 +277,8 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow): | ||||
|     @QtCore.pyqtSlot(list) | ||||
|     def save_fit_parameter(self, fit_sets: list[str] = None): | ||||
|         fname, _ = QtWidgets.QFileDialog.getSaveFileName(self, 'Save fit parameter', directory=str(self.path), | ||||
|                                                          filter='All files(*, *);;Text files(*.dat *.txt)') | ||||
|                                                          filter='All files(*, *);;Text files(*.dat *.txt)', | ||||
|                                                          options=QtWidgets.QFileDialog.DontConfirmOverwrite) | ||||
|  | ||||
|         if fname: | ||||
|             self.management.save_fit_parameter(fname, fit_sets=fit_sets) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user