Merge branch 'more_bugs'

This commit is contained in:
Dominik Demuth
2023-04-16 14:17:36 +02:00
11 changed files with 239 additions and 225 deletions

View File

@ -254,6 +254,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
@QtCore.pyqtSlot(name='on_actionOpen_FC_triggered')
def read_fc(self):
reader = QFCReader(path=self.path, parent=self)
reader.add_graphs(self.management.graphs.list())
reader.data_read.connect(self.management.add_new_data)
reader.exec()
@ -347,7 +348,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
@QtCore.pyqtSlot(str)
def remove_graph(self, gid: str):
self.datawidget.remove_item(gid)
self.datawidget.remove_item([gid])
val_figure = self.valuewidget.connected_figure
self.valuewidget.remove_graph()
@ -732,10 +733,11 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
self.datawidget.set_name(sid, self.management[sid].name)
@QtCore.pyqtSlot(str)
def delete_data(self, sid):
if self.valuewidget.shown_set == sid:
self.tabWidget.setCurrentIndex(0)
@QtCore.pyqtSlot(list)
def delete_data(self, sid: list[str]):
for key in sid:
if self.valuewidget.shown_set == key:
self.tabWidget.setCurrentIndex(0)
self.datawidget.remove_item(sid)

View File

@ -75,7 +75,7 @@ class UpperManagement(QtCore.QObject):
restoreGraph = QtCore.pyqtSignal(str)
deleteGraph = QtCore.pyqtSignal(str)
newData = QtCore.pyqtSignal(list, str)
deleteData = QtCore.pyqtSignal(str)
deleteData = QtCore.pyqtSignal(list)
dataChanged = QtCore.pyqtSignal(str)
fitFinished = QtCore.pyqtSignal(list)
stopFit = QtCore.pyqtSignal()
@ -234,9 +234,17 @@ class UpperManagement(QtCore.QObject):
for k in plotkeys:
self.data[k].graph = gid
@QtCore.pyqtSlot(str)
def plot_from_graph(self, key: str):
self.graphs[self.data[key].graph].remove(key)
@QtCore.pyqtSlot(list)
def plot_from_graph(self, key: list[str]):
sort_graph = {}
for sid in key:
v = self.data[sid].graph
if v not in sort_graph:
sort_graph[v] = []
sort_graph[v].append(sid)
for gid, sets in sort_graph.items():
self.graphs[gid].remove(sets)
@QtCore.pyqtSlot(list, str, str)
def move_sets(self, sets: list, dest: str, src: (str|list), pos: int = -1):
@ -287,15 +295,26 @@ class UpperManagement(QtCore.QObject):
self.undostack.beginMacro('Delete')
rm_set_by_graph = {}
for k in rm_sets[::-1]:
if k in self.data:
cmd = DeleteCommand(self.data, k, self.newData, self.deleteData)
self.undostack.push(cmd)
parent_graph = self.data[k].graph
if parent_graph not in rm_set_by_graph:
rm_set_by_graph[parent_graph] = []
rm_set_by_graph[parent_graph].append(k)
elif k in self.graphs:
rm_graphs.append(k)
else:
logger.warning(f'delete_sets: {k} is not in data or graph found')
for gid, sid_list in rm_set_by_graph.items():
cmd = DeleteCommand(self.data, sid_list, self.graphs, gid, self.newData, self.deleteData)
self.undostack.push(cmd)
for k in rm_graphs:
cmd = DeleteGraphCommand(self.graphs, k, self.restoreGraph, self.deleteGraph)
self.undostack.push(cmd)
@ -605,6 +624,7 @@ class UpperManagement(QtCore.QObject):
if not graph_id:
graph_id = ''
# TODO add flag that new window will not get focus, because it messes up the data_table in fitwindow
self.newData.emit(p_id_list, graph_id)
def save_fit_parameter(self, fname: str | pathlib.Path, fit_sets: list[str] = None):