1
0
forked from IPKM/nmreval

value tab plots complex selection; graphwindows shows last path for export; filedialog uses call not init

This commit is contained in:
dominik
2022-11-19 17:59:35 +01:00
parent a61dc40343
commit 4ca8f434aa
11 changed files with 206 additions and 157 deletions

View File

@ -101,9 +101,6 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
self.statusBar.addWidget(self.mousepos)
self.fitregion = RegionItem()
self._values_plot = PlotDataItem(x=[], y=[], symbolSize=30, symbol='x',
pen=None, symbolPen='#d526b5', symbolBrush='#d526b5')
self._fit_plot_id = None
self.setGeometry(QtWidgets.QStyle.alignedRect(QtCore.Qt.LeftToRight, QtCore.Qt.AlignCenter,
@ -530,12 +527,14 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
def _select_valuewidget(self, onoff: bool):
if onoff: # Values
self.valuewidget(self.management.graphs.tree())
self.valuewidget.connected_figure = self.management.current_graph
if self.valuewidget.connected_figure is not None:
self.management.graphs[self.valuewidget.connected_figure].add_external(self._values_plot)
current_graph = self.valuewidget.connected_figure
if current_graph is not None:
self.management.graphs[current_graph].add_external(self.valuewidget.selection_real)
self.management.graphs[current_graph].add_external(self.valuewidget.selection_imag)
else:
if self.valuewidget.connected_figure is not None:
self.management.graphs[self.valuewidget.connected_figure].remove_external(self._values_plot)
self.management.graphs[self.valuewidget.connected_figure].remove_external(self.valuewidget.selection_real)
self.management.graphs[self.valuewidget.connected_figure].remove_external(self.valuewidget.selection_imag)
def _select_integralwidget(self, onoff: bool, pick_required: bool, block_window: bool) -> tuple[bool, bool]:
if self.current_graph_widget is None:
@ -777,12 +776,12 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
data, mask = self.management.get_data(sid)
self.valuewidget.set_data(data, mask)
def plot_selected_values(self, gid: str, x: list, y: list):
self._values_plot.setData(x=x, y=y)
if gid != self.valuewidget.connected_figure and self.valuewidget.connected_figure is not None:
self.management.graphs[self.valuewidget.connected_figure].remove_external(self._values_plot)
self.management.graphs[gid].add_external(self._values_plot)
self.valuewidget.connected_figure = gid
def plot_selected_values(self, old_gid: str, new_gid: str):
for pts in (self.valuewidget.selection_real, self.valuewidget.selection_imag):
if old_gid:
self.management.graphs[old_gid].remove_external(pts)
if new_gid:
self.management.graphs[new_gid].add_external(pts)
@QtCore.pyqtSlot(object, str)
def item_to_graph(self, item, graph_id):

View File

@ -9,12 +9,13 @@ from nmreval.fit import data as fit_d
from nmreval.fit.model import Model
from nmreval.fit.result import FitResult
from nmreval.fit.minimizer import FitRoutine
from nmreval.lib.colors import TUColorsC, available_cycles
from nmreval.lib.colors import available_cycles
from nmreval.math.interpol import interpolate
from nmreval.math.logfourier import logft
from nmreval.math.smooth import smooth
from nmreval.nmr.relaxation import Relaxation
from ..Qt import QtCore, QtWidgets
from ..lib.undos import *
from ..data.container import *
from ..io.filereaders import QFileReader
@ -112,6 +113,8 @@ class UpperManagement(QtCore.QObject):
self.undostack = QtWidgets.QUndoStack()
self.deleteData.connect(self.plot_from_graph)
self._filereader = None
def __setitem__(self, key: str, value, **kwargs):
if isinstance(value, ExperimentContainer):
item = value
@ -148,7 +151,9 @@ class UpperManagement(QtCore.QObject):
return _id
def load_files(self, fname: List[str], new_plot: str = None):
ret_dic = QFileReader(manager=self).readfiles(fname)
if self._filereader is None:
self._filereader = QFileReader(manager=self)
ret_dic = self._filereader.readfiles(fname)
self.add_new_data(ret_dic, new_plot)
def _load_session(self, sets: dict, graphs: dict):
@ -1000,9 +1005,9 @@ class UpperManagement(QtCore.QObject):
if opts['axis1'] in ['t', 'invt1000']:
t_p = opts['t_param']
if len(t_p) == 2:
from ...models import Arrhenius as Func
from nmreval.models import Arrhenius as Func
else:
from ...models import VFT as Func
from nmreval.models import VFT as Func
_x = Func.func(x1, *t_p, invt=opts['axis1'])
@ -1078,7 +1083,7 @@ class UpperManagement(QtCore.QObject):
raise ValueError('No file extension detected')
if suffix == '.nmr':
from ...io.sessionwriter import NMRWriter
from nmreval.io.sessionwriter import NMRWriter
NMRWriter(self.graphs, self.data).export(path)
return