forked from IPKM/nmreval
bugfixes (#188)
Bugfixes for several issues: closes #163, closes #151, closes #176, closes #138, closes #104 Co-authored-by: Dominik Demuth <dominik.demuth@physik.tu-darmstadt.de> Reviewed-on: IPKM/nmreval#188
This commit is contained in:
@ -10,6 +10,10 @@ from ..lib.tables import TableWidget
|
||||
|
||||
|
||||
class FitModelWidget(QtWidgets.QWidget, Ui_FitParameter):
|
||||
"""
|
||||
Widget to show a global parameter
|
||||
"""
|
||||
|
||||
value_requested = QtCore.pyqtSignal(object)
|
||||
value_changed = QtCore.pyqtSignal(str)
|
||||
state_changed = QtCore.pyqtSignal()
|
||||
@ -73,11 +77,9 @@ class FitModelWidget(QtWidgets.QWidget, Ui_FitParameter):
|
||||
if bds is not None:
|
||||
self.set_bounds(*bds)
|
||||
|
||||
if fixed is not None:
|
||||
self.fixed_check.setCheckState(QtCore.Qt.Unchecked if fixed else QtCore.Qt.Checked)
|
||||
self.fixed_check.setCheckState(QtCore.Qt.CheckState.Unchecked if fixed else QtCore.Qt.CheckState.Checked)
|
||||
|
||||
if glob is not None:
|
||||
self.global_checkbox.setCheckState(QtCore.Qt.Checked if glob else QtCore.Qt.Unchecked)
|
||||
self.global_checkbox.setCheckState(QtCore.Qt.CheckState.Checked if glob else QtCore.Qt.CheckState.Unchecked)
|
||||
|
||||
def get_parameter(self):
|
||||
try:
|
||||
@ -126,7 +128,7 @@ class FitModelWidget(QtWidgets.QWidget, Ui_FitParameter):
|
||||
is_text = True
|
||||
self.global_checkbox.setCheckState(False)
|
||||
|
||||
self.set_fixed(is_text)
|
||||
self.set_fixed(is_text or self.fixed_check.isChecked())
|
||||
|
||||
|
||||
class QSaveModelDialog(QtWidgets.QDialog, Ui_SaveDialog):
|
||||
|
@ -27,6 +27,7 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
mouseDoubleClicked = QtCore.pyqtSignal()
|
||||
positionClicked = QtCore.pyqtSignal(tuple, bool)
|
||||
aboutToClose = QtCore.pyqtSignal(list)
|
||||
newData = QtCore.pyqtSignal(list, str)
|
||||
|
||||
counter = itertools.count()
|
||||
|
||||
@ -87,6 +88,9 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
|
||||
self.bwbutton.toggled.connect(self.change_background)
|
||||
|
||||
self.setAcceptDrops(True)
|
||||
self.graphic.installEventFilter(self)
|
||||
|
||||
def _init_gui(self):
|
||||
self.setWindowTitle('Graph ' + str(next(QGraphWindow.counter)))
|
||||
|
||||
@ -119,6 +123,34 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
for lineedit in [self.xmin_lineedit, self.xmax_lineedit, self.ymin_lineedit, self.ymax_lineedit]:
|
||||
lineedit.setValidator(QtGui.QDoubleValidator())
|
||||
|
||||
def eventFilter(self, obj: QtCore.QObject, evt: QtCore.QEvent):
|
||||
"""
|
||||
Catch drag and Drop to prevent anything inside self.graphic to accept the events.
|
||||
Without event filter, we cannot process it here and start file reading
|
||||
"""
|
||||
if evt.type() == QtCore.QEvent.Type.DragEnter:
|
||||
evt.accept()
|
||||
return True
|
||||
|
||||
elif evt.type() == QtCore.QEvent.Type.Drop:
|
||||
return self._handle_drop(evt)
|
||||
|
||||
else:
|
||||
return False
|
||||
|
||||
def dropEvent(self, evt: QtGui.QDropEvent):
|
||||
return self._handle_drop(evt)
|
||||
|
||||
def _handle_drop(self, evt: QtGui.QDropEvent):
|
||||
if evt.mimeData().hasUrls():
|
||||
files = [str(url.toLocalFile()) for url in evt.mimeData().urls()]
|
||||
self.newData.emit(files, self.id)
|
||||
|
||||
evt.accept()
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def __contains__(self, item: str):
|
||||
return item in self.sets
|
||||
|
||||
@ -304,6 +336,8 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
|
||||
if item in self.graphic.items():
|
||||
self.graphic.removeItem(item)
|
||||
|
||||
self.show_legend()
|
||||
|
||||
@QtCore.pyqtSlot(bool, name='on_imag_button_toggled')
|
||||
@QtCore.pyqtSlot(bool, name='on_real_button_toggled')
|
||||
def set_imag_visible(self, visible: bool):
|
||||
|
@ -7,8 +7,11 @@ from ..graphs.graphwindow import QGraphWindow
|
||||
|
||||
|
||||
class MdiAreaTile(QtWidgets.QMdiArea):
|
||||
newData = QtCore.pyqtSignal(list)
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent=parent)
|
||||
self.setAcceptDrops(True)
|
||||
|
||||
def tileSubWindowsVertically(self):
|
||||
window_list = self.subWindowList()
|
||||
@ -47,3 +50,8 @@ class MdiAreaTile(QtWidgets.QMdiArea):
|
||||
if isinstance(wdgt, QGraphWindow) and wdgt.id == key:
|
||||
self.setActiveSubWindow(win)
|
||||
break
|
||||
|
||||
def dropEvent(self, evt):
|
||||
if evt.mimeData().hasUrls():
|
||||
files = [str(url.toLocalFile()) for url in evt.mimeData().urls()]
|
||||
self.newData.emit(files)
|
||||
|
@ -108,7 +108,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
self.fitlim_button.setIcon(get_icon('fit_region'))
|
||||
self.toolBar_fit.addWidget(self.fitlim_button)
|
||||
|
||||
self.area.dragEnterEvent = self.dragEnterEvent
|
||||
# self.area.dragEnterEvent = self.dragEnterEvent
|
||||
|
||||
while self.tabWidget.count() > 2:
|
||||
self.tabWidget.removeTab(self.tabWidget.count()-1)
|
||||
@ -201,6 +201,8 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
self.management.unset_state.connect(lambda x: self.datawidget.uncheck_sets(x))
|
||||
self.management.fitFinished.connect(self.show_fit_results)
|
||||
|
||||
self.area.newData.connect(lambda x: self.management.load_files(x))
|
||||
|
||||
self.fit_dialog._management = self.management
|
||||
self.fit_dialog.preview_emit.connect(self.show_fit_preview)
|
||||
self.fit_dialog.fitStartSig.connect(self.start_fit)
|
||||
@ -469,6 +471,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
|
||||
w.mousePositionChanged.connect(self.mousemoved)
|
||||
w.aboutToClose.connect(self.management.delete_sets)
|
||||
w.positionClicked.connect(self.point_selected)
|
||||
w.newData.connect(lambda x, y: self.management.load_files(x, new_plot=y))
|
||||
w.show()
|
||||
|
||||
graph_list = self.management.graphs.list()
|
||||
|
Reference in New Issue
Block a user