save previews in graphics
This commit is contained in:
@ -413,7 +413,15 @@ class QFitDialog(QtWidgets.QWidget, Ui_FitDialog):
|
||||
parameters = model['parameter']
|
||||
color = model['color']
|
||||
|
||||
seen_parameter = []
|
||||
|
||||
for p, kwargs in parameters.values():
|
||||
if (p, kwargs) in seen_parameter:
|
||||
# plot only previews with different parameter
|
||||
continue
|
||||
|
||||
seen_parameter.append((p, kwargs))
|
||||
|
||||
if is_complex is not None:
|
||||
y = f.func(x, *p, complex_mode=is_complex, **kwargs)
|
||||
if np.iscomplexobj(y):
|
||||
|
@ -48,6 +48,7 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
self.error_plots = {}
|
||||
|
||||
self._special_needs = []
|
||||
self._external_items = []
|
||||
self.closable = True
|
||||
|
||||
self.log = [False, False]
|
||||
@ -109,7 +110,7 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
def __len__(self):
|
||||
return len(self.active)
|
||||
|
||||
def curves(self):
|
||||
def curves(self) -> tuple:
|
||||
for a in self.active:
|
||||
if self.real_button.isChecked():
|
||||
if self.error_plots[a] is not None:
|
||||
@ -318,6 +319,7 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
if not hasattr(item, 'setLogMode'):
|
||||
self._special_needs.append(item)
|
||||
|
||||
self._external_items.append(item)
|
||||
self.graphic.addItem(item)
|
||||
item.setZValue(1000)
|
||||
|
||||
@ -325,12 +327,15 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
|
||||
@QtCore.pyqtSlot(GraphicsObject)
|
||||
def remove_external(self, item):
|
||||
if item not in self.graphic.items():
|
||||
return False
|
||||
if item in self._external_items:
|
||||
self._external_items.remove(item)
|
||||
|
||||
if item in self._special_needs:
|
||||
self._special_needs.remove(item)
|
||||
|
||||
if item not in self.graphic.items():
|
||||
return False
|
||||
|
||||
self.graphic.removeItem(item)
|
||||
|
||||
return True
|
||||
@ -599,6 +604,10 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
if item_dic:
|
||||
dic['items'].append(item_dic)
|
||||
|
||||
for item in self._external_items:
|
||||
dic['items'].append(item.get_data_opts())
|
||||
in_legend.append(False)
|
||||
|
||||
dic['in_legend'] = in_legend
|
||||
|
||||
return dic
|
||||
|
@ -336,8 +336,8 @@ class PlotItem(PlotDataItem):
|
||||
opts = self.opts
|
||||
item_dic = {
|
||||
'x': x, 'y': y,
|
||||
'name': opts['name'],
|
||||
'symbolsize': opts['symbolSize']
|
||||
'name': opts.get('name', ''),
|
||||
'symbolsize': opts['symbolSize'],
|
||||
}
|
||||
|
||||
if opts['symbol'] is None:
|
||||
|
@ -144,6 +144,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
self.actionPick_position.triggered.connect(lambda: self._show_tab('pick'))
|
||||
self.actionIntegrate.triggered.connect(lambda: self._show_tab('integrate'))
|
||||
self.action_FitWidget.triggered.connect(lambda: self._show_tab('fit'))
|
||||
self.action_draw_object.triggered.connect(lambda: self._show_tab('drawing'))
|
||||
|
||||
self.action_new_set.triggered.connect(self.management.create_empty)
|
||||
|
||||
@ -455,6 +456,31 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
self.current_graph_widget.enable_picking(pick)
|
||||
self.current_graph_widget.closable = not block
|
||||
|
||||
def _show_tab(self, mode: str):
|
||||
widget, name = {
|
||||
't1_temp': (self.t1tauwidget, 'T1 mininmon'),
|
||||
'signal': (self.editsignalwidget, 'Signals'),
|
||||
'pick': (self.ptsselectwidget, 'Pick points'),
|
||||
'fit': (self.fit_dialog, 'Fit'),
|
||||
'drawing': (self.drawingswidget, 'Draw'),
|
||||
}[mode]
|
||||
|
||||
for idx in range(self.tabWidget.count()):
|
||||
if self.tabWidget.widget(idx) == widget:
|
||||
self.tabWidget.setCurrentIndex(idx)
|
||||
return
|
||||
|
||||
self.tabWidget.addTab(widget, name)
|
||||
self.tabWidget.setCurrentIndex(self.tabWidget.count()-1)
|
||||
|
||||
@QtCore.pyqtSlot(int, name='on_tabWidget_tabCloseRequested')
|
||||
def close_tab(self, idx: int):
|
||||
if idx == 0:
|
||||
pass
|
||||
else:
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
self.tabWidget.removeTab(idx)
|
||||
|
||||
@QtCore.pyqtSlot(int, name='on_tabWidget_currentChanged')
|
||||
def toggle_tabs(self, idx: int):
|
||||
widget = self.tabWidget.widget(idx)
|
||||
@ -493,30 +519,6 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
|
||||
return pick_required, block_window
|
||||
|
||||
@QtCore.pyqtSlot(int, name='on_tabWidget_tabCloseRequested')
|
||||
def close_tab(self, idx: int):
|
||||
if idx == 0:
|
||||
pass
|
||||
else:
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
self.tabWidget.removeTab(idx)
|
||||
|
||||
def _show_tab(self, mode: str):
|
||||
widget, name = {
|
||||
't1_temp': (self.t1tauwidget, 'T1 mininmon'),
|
||||
'signal': (self.editsignalwidget, 'Signals'),
|
||||
'pick': (self.ptsselectwidget, 'Pick points'),
|
||||
'fit': (self.fit_dialog, 'Fit')
|
||||
}[mode]
|
||||
|
||||
for idx in range(self.tabWidget.count()):
|
||||
if self.tabWidget.widget(idx) == widget:
|
||||
self.tabWidget.setCurrentIndex(idx)
|
||||
return
|
||||
|
||||
self.tabWidget.addTab(widget, name)
|
||||
self.tabWidget.setCurrentIndex(self.tabWidget.count()-1)
|
||||
|
||||
def _select_valuewidget(self, onoff: bool):
|
||||
if onoff: # Values
|
||||
self.valuewidget(self.management.graphs.tree())
|
||||
|
Reference in New Issue
Block a user