mirror of
https://github.com/gwm17/spspy.git
synced 2024-11-22 18:18:52 -05:00
Added delete functionality to SPANC calibration peaks
This commit is contained in:
parent
c866c07abc
commit
462e959100
|
@ -79,6 +79,12 @@ class Spanc:
|
||||||
data.peakID = len(self.calibrations)
|
data.peakID = len(self.calibrations)
|
||||||
self.calibrations[data.peakID] = data
|
self.calibrations[data.peakID] = data
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def remove_calibration(self, data: Peak) -> bool:
|
||||||
|
if data.peakID not in self.calibrations.keys():
|
||||||
|
return False
|
||||||
|
self.calibrations.pop(data.peakID)
|
||||||
|
return True
|
||||||
|
|
||||||
def add_output(self, data: Peak) -> None:
|
def add_output(self, data: Peak) -> None:
|
||||||
if data.peakID == INVALID_PEAK_ID:
|
if data.peakID == INVALID_PEAK_ID:
|
||||||
|
|
|
@ -237,8 +237,11 @@ class SpancGUI(QMainWindow):
|
||||||
peakData = self.spanc.calibrations[row]
|
peakData = self.spanc.calibrations[row]
|
||||||
calDia = PeakDialog(PeakType.CALIBRATION, self.spanc.reactions.keys(), self, peak=peakData)
|
calDia = PeakDialog(PeakType.CALIBRATION, self.spanc.reactions.keys(), self, peak=peakData)
|
||||||
calDia.new_peak.connect(self.spanc.add_calibration)
|
calDia.new_peak.connect(self.spanc.add_calibration)
|
||||||
|
calDia.delete_peak.connect(self.spanc.remove_calibration)
|
||||||
if calDia.exec():
|
if calDia.exec():
|
||||||
self.update_calibration_table()
|
self.update_calibration_table()
|
||||||
|
if self.spanc.isFit == True:
|
||||||
|
self.handle_run_fit()
|
||||||
return
|
return
|
||||||
|
|
||||||
def handle_new_output(self) -> None:
|
def handle_new_output(self) -> None:
|
||||||
|
|
|
@ -2,11 +2,12 @@ from ..Spanc import Peak, PeakType, INVALID_PEAK_ID
|
||||||
from PySide6.QtWidgets import QLabel
|
from PySide6.QtWidgets import QLabel
|
||||||
from PySide6.QtWidgets import QVBoxLayout, QFormLayout, QGroupBox
|
from PySide6.QtWidgets import QVBoxLayout, QFormLayout, QGroupBox
|
||||||
from PySide6.QtWidgets import QComboBox, QDoubleSpinBox
|
from PySide6.QtWidgets import QComboBox, QDoubleSpinBox
|
||||||
from PySide6.QtWidgets import QDialog, QDialogButtonBox
|
from PySide6.QtWidgets import QDialog, QDialogButtonBox, QPushButton
|
||||||
from PySide6.QtCore import Signal
|
from PySide6.QtCore import Signal
|
||||||
|
|
||||||
class PeakDialog(QDialog):
|
class PeakDialog(QDialog):
|
||||||
new_peak = Signal(Peak)
|
new_peak = Signal(Peak)
|
||||||
|
delete_peak = Signal(Peak)
|
||||||
|
|
||||||
def __init__(self, peakType: PeakType, rxnList: list[str], parent=None, peak: Peak=None):
|
def __init__(self, peakType: PeakType, rxnList: list[str], parent=None, peak: Peak=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -29,6 +30,9 @@ class PeakDialog(QDialog):
|
||||||
self.set_calibration_inputs(peak)
|
self.set_calibration_inputs(peak)
|
||||||
self.peakID = peak.peakID
|
self.peakID = peak.peakID
|
||||||
self.buttonBox.accepted.connect(self.send_update_calibration_peak)
|
self.buttonBox.accepted.connect(self.send_update_calibration_peak)
|
||||||
|
self.deleteButton = QPushButton("Delete", self)
|
||||||
|
self.deleteButton.clicked.connect(self.send_delete_calibration_peak)
|
||||||
|
self.centralLayout.addWidget(self.deleteButton)
|
||||||
else:
|
else:
|
||||||
self.buttonBox.accepted.connect(self.send_calibration_peak)
|
self.buttonBox.accepted.connect(self.send_calibration_peak)
|
||||||
elif peakType == PeakType.OUTPUT:
|
elif peakType == PeakType.OUTPUT:
|
||||||
|
@ -114,6 +118,12 @@ class PeakDialog(QDialog):
|
||||||
peak = Peak(excitation=self.exInput.value(), excitationErr=self.uexInput.value(), position=self.xInput.value(),
|
peak = Peak(excitation=self.exInput.value(), excitationErr=self.uexInput.value(), position=self.xInput.value(),
|
||||||
positionErrStat=self.uxstatInput.value(), positionErrSys=self.uxsysInput.value(), rxnName=self.rxnNameBox.currentText(), peakID=self.peakID)
|
positionErrStat=self.uxstatInput.value(), positionErrSys=self.uxsysInput.value(), rxnName=self.rxnNameBox.currentText(), peakID=self.peakID)
|
||||||
self.new_peak.emit(peak)
|
self.new_peak.emit(peak)
|
||||||
|
|
||||||
|
def send_delete_calibration_peak(self) -> None:
|
||||||
|
peak = Peak(excitation=self.exInput.value(), excitationErr=self.uexInput.value(), position=self.xInput.value(),
|
||||||
|
positionErrStat=self.uxstatInput.value(), positionErrSys=self.uxsysInput.value(), rxnName=self.rxnNameBox.currentText(), peakID=self.peakID)
|
||||||
|
self.delete_peak.emit(peak)
|
||||||
|
self.done(3)
|
||||||
|
|
||||||
def send_output_peak(self) -> None:
|
def send_output_peak(self) -> None:
|
||||||
peak = Peak(position=self.xInput.value(), positionErrStat=self.uxstatInput.value(), positionErrSys=self.uxsysInput.value(),
|
peak = Peak(position=self.xInput.value(), positionErrStat=self.uxstatInput.value(), positionErrSys=self.uxsysInput.value(),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user