forked from IPKM/nmreval
		
	subclass every PlotWidget because logtickvalues
This commit is contained in:
		@@ -1,10 +1,11 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
 | 
			
		||||
# Form implementation generated from reading ui file '_ui/apod_dialog.ui'
 | 
			
		||||
# Form implementation generated from reading ui file 'src/resources/_ui/apod_dialog.ui'
 | 
			
		||||
#
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.12.3
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.15.9
 | 
			
		||||
#
 | 
			
		||||
# WARNING! All changes made in this file will be lost!
 | 
			
		||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
			
		||||
# run again.  Do not edit this file unless you know what you are doing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from PyQt5 import QtCore, QtGui, QtWidgets
 | 
			
		||||
@@ -23,7 +24,7 @@ class Ui_ApodEdit(object):
 | 
			
		||||
        self.gridLayout.setContentsMargins(3, 3, 3, 3)
 | 
			
		||||
        self.gridLayout.setSpacing(3)
 | 
			
		||||
        self.gridLayout.setObjectName("gridLayout")
 | 
			
		||||
        self.graphicsView = PlotWidget(ApodEdit)
 | 
			
		||||
        self.graphicsView = NMRPlotWidget(ApodEdit)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -31,7 +32,7 @@ class Ui_ApodEdit(object):
 | 
			
		||||
        self.graphicsView.setSizePolicy(sizePolicy)
 | 
			
		||||
        self.graphicsView.setObjectName("graphicsView")
 | 
			
		||||
        self.gridLayout.addWidget(self.graphicsView, 2, 0, 1, 1)
 | 
			
		||||
        self.graphicsView_2 = PlotWidget(ApodEdit)
 | 
			
		||||
        self.graphicsView_2 = NMRPlotWidget(ApodEdit)
 | 
			
		||||
        self.graphicsView_2.setObjectName("graphicsView_2")
 | 
			
		||||
        self.gridLayout.addWidget(self.graphicsView_2, 2, 1, 1, 1)
 | 
			
		||||
        self.apodcombobox = QtWidgets.QComboBox(ApodEdit)
 | 
			
		||||
@@ -63,12 +64,12 @@ class Ui_ApodEdit(object):
 | 
			
		||||
        self.gridLayout.addWidget(self.eqn_label, 0, 1, 1, 1)
 | 
			
		||||
 | 
			
		||||
        self.retranslateUi(ApodEdit)
 | 
			
		||||
        self.buttonBox.accepted.connect(ApodEdit.accept)
 | 
			
		||||
        self.buttonBox.rejected.connect(ApodEdit.close)
 | 
			
		||||
        self.buttonBox.accepted.connect(ApodEdit.accept) # type: ignore
 | 
			
		||||
        self.buttonBox.rejected.connect(ApodEdit.close) # type: ignore
 | 
			
		||||
        QtCore.QMetaObject.connectSlotsByName(ApodEdit)
 | 
			
		||||
 | 
			
		||||
    def retranslateUi(self, ApodEdit):
 | 
			
		||||
        _translate = QtCore.QCoreApplication.translate
 | 
			
		||||
        ApodEdit.setWindowTitle(_translate("ApodEdit", "Apodization"))
 | 
			
		||||
        self.eqn_label.setText(_translate("ApodEdit", "TextLabel"))
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,11 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
 | 
			
		||||
# Form implementation generated from reading ui file '_ui/baseline_dialog.ui'
 | 
			
		||||
# Form implementation generated from reading ui file 'src/resources/_ui/baseline_dialog.ui'
 | 
			
		||||
#
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.12.3
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.15.9
 | 
			
		||||
#
 | 
			
		||||
# WARNING! All changes made in this file will be lost!
 | 
			
		||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
			
		||||
# run again.  Do not edit this file unless you know what you are doing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from PyQt5 import QtCore, QtGui, QtWidgets
 | 
			
		||||
@@ -44,7 +45,7 @@ class Ui_SignalEdit(object):
 | 
			
		||||
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
 | 
			
		||||
        self.buttonBox.setObjectName("buttonBox")
 | 
			
		||||
        self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 3)
 | 
			
		||||
        self.graphicsView = PlotWidget(SignalEdit)
 | 
			
		||||
        self.graphicsView = NMRPlotWidget(SignalEdit)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -54,11 +55,11 @@ class Ui_SignalEdit(object):
 | 
			
		||||
        self.gridLayout.addWidget(self.graphicsView, 0, 2, 1, 1)
 | 
			
		||||
 | 
			
		||||
        self.retranslateUi(SignalEdit)
 | 
			
		||||
        self.buttonBox.accepted.connect(SignalEdit.accept)
 | 
			
		||||
        self.buttonBox.rejected.connect(SignalEdit.close)
 | 
			
		||||
        self.buttonBox.accepted.connect(SignalEdit.accept) # type: ignore
 | 
			
		||||
        self.buttonBox.rejected.connect(SignalEdit.close) # type: ignore
 | 
			
		||||
        QtCore.QMetaObject.connectSlotsByName(SignalEdit)
 | 
			
		||||
 | 
			
		||||
    def retranslateUi(self, SignalEdit):
 | 
			
		||||
        _translate = QtCore.QCoreApplication.translate
 | 
			
		||||
        SignalEdit.setWindowTitle(_translate("SignalEdit", "Dialog"))
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -166,7 +166,7 @@ class Ui_Dialog(object):
 | 
			
		||||
        self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
 | 
			
		||||
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
 | 
			
		||||
        self.gridLayout.setObjectName("gridLayout")
 | 
			
		||||
        self.raw_graph = PlotWidget(self.layoutWidget)
 | 
			
		||||
        self.raw_graph = NMRPlotWidget(self.layoutWidget)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -175,7 +175,7 @@ class Ui_Dialog(object):
 | 
			
		||||
        self.raw_graph.setMinimumSize(QtCore.QSize(300, 200))
 | 
			
		||||
        self.raw_graph.setObjectName("raw_graph")
 | 
			
		||||
        self.gridLayout.addWidget(self.raw_graph, 0, 0, 1, 1)
 | 
			
		||||
        self.calib_graph = PlotWidget(self.layoutWidget)
 | 
			
		||||
        self.calib_graph = NMRPlotWidget(self.layoutWidget)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -184,7 +184,7 @@ class Ui_Dialog(object):
 | 
			
		||||
        self.calib_graph.setMinimumSize(QtCore.QSize(300, 200))
 | 
			
		||||
        self.calib_graph.setObjectName("calib_graph")
 | 
			
		||||
        self.gridLayout.addWidget(self.calib_graph, 1, 0, 1, 1)
 | 
			
		||||
        self.baseline_graph = PlotWidget(self.layoutWidget)
 | 
			
		||||
        self.baseline_graph = NMRPlotWidget(self.layoutWidget)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -193,7 +193,7 @@ class Ui_Dialog(object):
 | 
			
		||||
        self.baseline_graph.setMinimumSize(QtCore.QSize(300, 200))
 | 
			
		||||
        self.baseline_graph.setObjectName("baseline_graph")
 | 
			
		||||
        self.gridLayout.addWidget(self.baseline_graph, 0, 1, 1, 1)
 | 
			
		||||
        self.end_graph = PlotWidget(self.layoutWidget)
 | 
			
		||||
        self.end_graph = NMRPlotWidget(self.layoutWidget)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -228,4 +228,4 @@ class Ui_Dialog(object):
 | 
			
		||||
        self.cp_checkBox.setText(_translate("Dialog", "Use reference to convert to heat capacity"))
 | 
			
		||||
        self.ref_add_pushButton.setText(_translate("Dialog", "Add reference"))
 | 
			
		||||
        self.ref_remove_pushButton.setText(_translate("Dialog", "Remove reference"))
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -210,7 +210,7 @@ class Ui_GraphWindow(object):
 | 
			
		||||
        self.checkBox.setChecked(True)
 | 
			
		||||
        self.checkBox.setObjectName("checkBox")
 | 
			
		||||
        self.gridLayout.addWidget(self.checkBox, 0, 1, 1, 1)
 | 
			
		||||
        self.graphic = PlotWidget(GraphWindow)
 | 
			
		||||
        self.graphic = NMRPlotWidget(GraphWindow)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -274,5 +274,5 @@ class Ui_GraphWindow(object):
 | 
			
		||||
        self.label_6.setText(_translate("GraphWindow", "X Axis"))
 | 
			
		||||
        self.label_7.setText(_translate("GraphWindow", "Y Axis"))
 | 
			
		||||
        self.checkBox.setText(_translate("GraphWindow", "Show legend"))
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
from ..lib.listwidget import QListWidgetSelect
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
 | 
			
		||||
# Form implementation generated from reading ui file 'resources/_ui/phase_corr_dialog.ui'
 | 
			
		||||
# Form implementation generated from reading ui file 'src/resources/_ui/phase_corr_dialog.ui'
 | 
			
		||||
#
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.15.4
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.15.9
 | 
			
		||||
#
 | 
			
		||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
			
		||||
# run again.  Do not edit this file unless you know what you are doing.
 | 
			
		||||
@@ -24,7 +24,7 @@ class Ui_SignalEdit(object):
 | 
			
		||||
        self.gridLayout.setContentsMargins(6, 6, 6, 6)
 | 
			
		||||
        self.gridLayout.setSpacing(3)
 | 
			
		||||
        self.gridLayout.setObjectName("gridLayout")
 | 
			
		||||
        self.graphicsView = PlotWidget(SignalEdit)
 | 
			
		||||
        self.graphicsView = NMRPlotWidget(SignalEdit)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -83,8 +83,8 @@ class Ui_SignalEdit(object):
 | 
			
		||||
        self.gridLayout.addItem(spacerItem1, 1, 5, 1, 1)
 | 
			
		||||
 | 
			
		||||
        self.retranslateUi(SignalEdit)
 | 
			
		||||
        self.buttonBox.accepted.connect(SignalEdit.accept)
 | 
			
		||||
        self.buttonBox.rejected.connect(SignalEdit.close)
 | 
			
		||||
        self.buttonBox.accepted.connect(SignalEdit.accept) # type: ignore
 | 
			
		||||
        self.buttonBox.rejected.connect(SignalEdit.close) # type: ignore
 | 
			
		||||
        QtCore.QMetaObject.connectSlotsByName(SignalEdit)
 | 
			
		||||
 | 
			
		||||
    def retranslateUi(self, SignalEdit):
 | 
			
		||||
@@ -94,4 +94,4 @@ class Ui_SignalEdit(object):
 | 
			
		||||
        self.label_8.setText(_translate("SignalEdit", "Pivot"))
 | 
			
		||||
        self.label_6.setText(_translate("SignalEdit", "Phase 1"))
 | 
			
		||||
        self.label.setText(_translate("SignalEdit", "Phase 0"))
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,11 @@
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
 | 
			
		||||
# Form implementation generated from reading ui file 'resources/_ui/shift_scale_dialog.ui'
 | 
			
		||||
# Form implementation generated from reading ui file 'src/resources/_ui/shift_scale_dialog.ui'
 | 
			
		||||
#
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.12.3
 | 
			
		||||
# Created by: PyQt5 UI code generator 5.15.9
 | 
			
		||||
#
 | 
			
		||||
# WARNING! All changes made in this file will be lost!
 | 
			
		||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
			
		||||
# run again.  Do not edit this file unless you know what you are doing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from PyQt5 import QtCore, QtGui, QtWidgets
 | 
			
		||||
@@ -162,7 +163,7 @@ class Ui_shift_dialog(object):
 | 
			
		||||
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalFrame_2)
 | 
			
		||||
        self.verticalLayout_2.setSpacing(3)
 | 
			
		||||
        self.verticalLayout_2.setObjectName("verticalLayout_2")
 | 
			
		||||
        self.graphicsView = PlotWidget(self.verticalFrame_2)
 | 
			
		||||
        self.graphicsView = NMRPlotWidget(self.verticalFrame_2)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -267,8 +268,8 @@ class Ui_shift_dialog(object):
 | 
			
		||||
 | 
			
		||||
        self.retranslateUi(shift_dialog)
 | 
			
		||||
        self.tabWidget.setCurrentIndex(0)
 | 
			
		||||
        self.buttonBox.accepted.connect(shift_dialog.accept)
 | 
			
		||||
        self.buttonBox.rejected.connect(shift_dialog.reject)
 | 
			
		||||
        self.buttonBox.accepted.connect(shift_dialog.accept) # type: ignore
 | 
			
		||||
        self.buttonBox.rejected.connect(shift_dialog.reject) # type: ignore
 | 
			
		||||
        QtCore.QMetaObject.connectSlotsByName(shift_dialog)
 | 
			
		||||
        shift_dialog.setTabOrder(self.tabWidget, self.shift_table)
 | 
			
		||||
        shift_dialog.setTabOrder(self.shift_table, self.x_shift_spinbox)
 | 
			
		||||
@@ -310,5 +311,5 @@ class Ui_shift_dialog(object):
 | 
			
		||||
        self.overwrite_checkbox.setText(_translate("shift_dialog", "Overwrite data"))
 | 
			
		||||
        self.data_newgraph.setText(_translate("shift_dialog", "New graph"))
 | 
			
		||||
        self.values_newgraph.setText(_translate("shift_dialog", "New graph"))
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
from ..lib.spinboxes import SciSpinBox
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -59,7 +59,7 @@ class Ui_DSCEvalDialog(object):
 | 
			
		||||
        self.tg_tree.headerItem().setText(0, "1")
 | 
			
		||||
        self.tg_tree.header().setVisible(False)
 | 
			
		||||
        self.gridLayout_2.addWidget(self.tg_tree, 2, 0, 1, 1)
 | 
			
		||||
        self.dsc_plot = PlotWidget(self.page)
 | 
			
		||||
        self.dsc_plot = NMRPlotWidget(self.page)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -89,10 +89,10 @@ class Ui_DSCEvalDialog(object):
 | 
			
		||||
        self.label_4 = QtWidgets.QLabel(self.page_2)
 | 
			
		||||
        self.label_4.setObjectName("label_4")
 | 
			
		||||
        self.gridLayout_3.addWidget(self.label_4, 2, 0, 1, 1)
 | 
			
		||||
        self.tghodge_graph = PlotWidget(self.page_2)
 | 
			
		||||
        self.tghodge_graph = NMRPlotWidget(self.page_2)
 | 
			
		||||
        self.tghodge_graph.setObjectName("tghodge_graph")
 | 
			
		||||
        self.gridLayout_3.addWidget(self.tghodge_graph, 1, 0, 1, 1)
 | 
			
		||||
        self.tau_plot = PlotWidget(self.page_2)
 | 
			
		||||
        self.tau_plot = NMRPlotWidget(self.page_2)
 | 
			
		||||
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
			
		||||
        sizePolicy.setHorizontalStretch(0)
 | 
			
		||||
        sizePolicy.setVerticalStretch(0)
 | 
			
		||||
@@ -155,7 +155,7 @@ class Ui_DSCEvalDialog(object):
 | 
			
		||||
        self.page_3.setObjectName("page_3")
 | 
			
		||||
        self.gridLayout_6 = QtWidgets.QGridLayout(self.page_3)
 | 
			
		||||
        self.gridLayout_6.setObjectName("gridLayout_6")
 | 
			
		||||
        self.tnmh_graphics = PlotWidget(self.page_3)
 | 
			
		||||
        self.tnmh_graphics = NMRPlotWidget(self.page_3)
 | 
			
		||||
        self.tnmh_graphics.setObjectName("tnmh_graphics")
 | 
			
		||||
        self.gridLayout_6.addWidget(self.tnmh_graphics, 1, 0, 1, 2)
 | 
			
		||||
        self.tnmh_tree = QtWidgets.QTreeWidget(self.page_3)
 | 
			
		||||
@@ -249,5 +249,5 @@ class Ui_DSCEvalDialog(object):
 | 
			
		||||
        self.back_button.setText(_translate("DSCEvalDialog", "Back"))
 | 
			
		||||
        self.next_button.setText(_translate("DSCEvalDialog", "Next"))
 | 
			
		||||
        self.close_button.setText(_translate("DSCEvalDialog", "Close"))
 | 
			
		||||
from ..lib.graph_items import NMRPlotWidget
 | 
			
		||||
from ..lib.listwidget import QListWidgetSelect
 | 
			
		||||
from pyqtgraph import PlotWidget
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ from math import isnan
 | 
			
		||||
from pyqtgraph import mkBrush, mkPen
 | 
			
		||||
 | 
			
		||||
from nmreval.utils.text import convert
 | 
			
		||||
from ..lib.graph_items import logTickValues
 | 
			
		||||
 | 
			
		||||
from ..lib.utils import RdBuCMap
 | 
			
		||||
from ..Qt import QtWidgets, QtGui, QtCore
 | 
			
		||||
@@ -33,8 +34,12 @@ class QFitResult(QtWidgets.QDialog, Ui_Dialog):
 | 
			
		||||
        self.graph_opts = {}
 | 
			
		||||
        self.last_idx = None
 | 
			
		||||
 | 
			
		||||
        self.resid_plot = self.graphicsView.addPlot(row=0, col=0, title='Residual')
 | 
			
		||||
        self.fit_plot = self.graphicsView.addPlot(row=1, col=0, title='Fit')
 | 
			
		||||
        self.resid_plot = self.graphicsView.addPlot(row=0, col=0, title='Residual')
 | 
			
		||||
 | 
			
		||||
        for orient in ['top', 'bottom', 'left', 'right']:
 | 
			
		||||
            self.fit_plot.getAxis(orient).logTickValues = logTickValues
 | 
			
		||||
            self.resid_plot.getAxis(orient).logTickValues = logTickValues
 | 
			
		||||
 | 
			
		||||
        self.graphicsView.ci.layout.setRowStretchFactor(0, 1)
 | 
			
		||||
        self.graphicsView.ci.layout.setRowStretchFactor(1, 2)
 | 
			
		||||
 
 | 
			
		||||
@@ -106,10 +106,6 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
 | 
			
		||||
        self.plotItem.ctrl.logXCheck.blockSignals(True)
 | 
			
		||||
        self.plotItem.ctrl.logYCheck.blockSignals(True)
 | 
			
		||||
 | 
			
		||||
        for orient in ['top', 'bottom', 'left', 'right']:
 | 
			
		||||
            # BAD HACK!!! but seems to work, see function for explanation
 | 
			
		||||
            self.plotItem.getAxis(orient).logTickValues = logTickValues
 | 
			
		||||
 | 
			
		||||
        for lineedit in [self.xmin_lineedit, self.xmax_lineedit, self.ymin_lineedit, self.ymax_lineedit]:
 | 
			
		||||
            lineedit.setValidator(QtGui.QDoubleValidator())
 | 
			
		||||
 | 
			
		||||
@@ -163,6 +159,10 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
 | 
			
		||||
    def active(self) -> list:
 | 
			
		||||
        return [set_id for set_id in self.sets if set_id in self._active]
 | 
			
		||||
 | 
			
		||||
    @active.setter
 | 
			
		||||
    def active(self, value: list):
 | 
			
		||||
        self._active = value
 | 
			
		||||
 | 
			
		||||
    def block(self, state: bool):
 | 
			
		||||
        self._block = state
 | 
			
		||||
 | 
			
		||||
@@ -779,30 +779,3 @@ class QGraphWindow(QtWidgets.QGraphicsView, Ui_GraphWindow):
 | 
			
		||||
        self.set_color(foreground=self._prev_colors[0], background=self._prev_colors[1])
 | 
			
		||||
        self._prev_colors = temp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def logTickValues(minVal, maxVal, size, stdTicks):
 | 
			
		||||
    # TODO FIND A BETTER SOLUTION!!!
 | 
			
		||||
    # Sometimes minVal and maxVal are not log-scaled values and the loop from v1 to v2 is humongous,
 | 
			
		||||
    # The minor list then fills the RAM completely and freezes everything
 | 
			
		||||
    # Until there is a better solution, we overwrite this function for every AxesItem
 | 
			
		||||
    # and do not draw minor ticks at all if there are too many
 | 
			
		||||
 | 
			
		||||
    # start with the tick spacing given by tickValues().
 | 
			
		||||
    # Any level whose spacing is < 1 needs to be converted to log scale
 | 
			
		||||
    ticks = []
 | 
			
		||||
    for (spacing, t) in stdTicks:
 | 
			
		||||
        if spacing >= 1.0:
 | 
			
		||||
            ticks.append((spacing, t))
 | 
			
		||||
 | 
			
		||||
    if len(ticks) < 3:
 | 
			
		||||
        v1 = int(np.floor(minVal))
 | 
			
		||||
        v2 = int(np.ceil(maxVal))
 | 
			
		||||
        # major = list(range(v1+1, v2))
 | 
			
		||||
        minor = []
 | 
			
		||||
 | 
			
		||||
        if v2 - v1 < 400:
 | 
			
		||||
            for v in range(v1, v2):
 | 
			
		||||
                minor.extend(v + np.log10(np.arange(1, 10)))
 | 
			
		||||
            minor = [x for x in minor if x>minVal and x<maxVal]
 | 
			
		||||
            ticks.append((None, minor))
 | 
			
		||||
    return ticks
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										53
									
								
								src/gui_qt/lib/graph_items.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/gui_qt/lib/graph_items.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
from numpy import log10, arange, floor, ceil
 | 
			
		||||
from pyqtgraph import PlotWidget, PlotItem
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
__all__ = ['NMRPlotWidget', 'logTickValues']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NMRPlotWidget(PlotWidget):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
 | 
			
		||||
        for orient in ['top', 'bottom', 'left', 'right']:
 | 
			
		||||
            # BAD HACK!!! but seems to work, see function for explanation
 | 
			
		||||
            self.plotItem.getAxis(orient).logTickValues = logTickValues
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NMRPlotItem(PlotItem):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
 | 
			
		||||
        for orient in ['top', 'bottom', 'left', 'right']:
 | 
			
		||||
            self.plotItem.getAxis(orient).logTickValues = logTickValues
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def logTickValues(minVal, maxVal, size, stdTicks):
 | 
			
		||||
    # TODO FIND A BETTER SOLUTION!!!
 | 
			
		||||
    # Sometimes minVal and maxVal are not log-scaled values and the loop from v1 to v2 is humongous,
 | 
			
		||||
    # The minor list then fills the RAM completely and freezes everything
 | 
			
		||||
    # Until there is a better solution, we overwrite this function for every AxesItem
 | 
			
		||||
    # and do not draw minor ticks at all if there are too many
 | 
			
		||||
 | 
			
		||||
    # start with the tick spacing given by tickValues().
 | 
			
		||||
    # Any level whose spacing is < 1 needs to be converted to log scale
 | 
			
		||||
    ticks = []
 | 
			
		||||
    for (spacing, t) in stdTicks:
 | 
			
		||||
        if spacing >= 1.0:
 | 
			
		||||
            ticks.append((spacing, t))
 | 
			
		||||
 | 
			
		||||
    if len(ticks) < 3:
 | 
			
		||||
        v1 = int(floor(minVal))
 | 
			
		||||
        v2 = int(ceil(maxVal))
 | 
			
		||||
        # major = list(range(v1+1, v2))
 | 
			
		||||
        minor = []
 | 
			
		||||
 | 
			
		||||
        if v2 - v1 < 400:
 | 
			
		||||
            for v in range(v1, v2):
 | 
			
		||||
                minor.extend(v + log10(arange(1, 10)))
 | 
			
		||||
            minor = [x for x in minor if minVal < x < maxVal]
 | 
			
		||||
            ticks.append((None, minor))
 | 
			
		||||
    return ticks
 | 
			
		||||
 | 
			
		||||
@@ -5,7 +5,7 @@ from pyqtgraph import (
 | 
			
		||||
    LinearRegionItem, mkBrush,
 | 
			
		||||
    mkColor, mkPen,
 | 
			
		||||
    PlotDataItem,
 | 
			
		||||
    LegendItem, ViewBox,
 | 
			
		||||
    LegendItem,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
from nmreval.lib.colors import BaseColor, Colors
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
    <number>3</number>
 | 
			
		||||
   </property>
 | 
			
		||||
   <item row="2" column="0">
 | 
			
		||||
    <widget class="PlotWidget" name="graphicsView">
 | 
			
		||||
    <widget class="NMRPlotWidget" name="graphicsView">
 | 
			
		||||
     <property name="sizePolicy">
 | 
			
		||||
      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
 | 
			
		||||
       <horstretch>0</horstretch>
 | 
			
		||||
@@ -46,7 +46,7 @@
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="2" column="1">
 | 
			
		||||
    <widget class="PlotWidget" name="graphicsView_2"/>
 | 
			
		||||
    <widget class="NMRPlotWidget" name="graphicsView_2"/>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="0" column="0">
 | 
			
		||||
    <widget class="QComboBox" name="apodcombobox">
 | 
			
		||||
@@ -98,9 +98,9 @@
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item row="0" column="2">
 | 
			
		||||
    <widget class="PlotWidget" name="graphicsView">
 | 
			
		||||
    <widget class="NMRPlotWidget" name="graphicsView">
 | 
			
		||||
     <property name="sizePolicy">
 | 
			
		||||
      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
 | 
			
		||||
       <horstretch>0</horstretch>
 | 
			
		||||
@@ -66,9 +66,9 @@
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 
 | 
			
		||||
@@ -378,7 +378,7 @@
 | 
			
		||||
     <widget class="QWidget" name="layoutWidget">
 | 
			
		||||
      <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
       <item row="0" column="0">
 | 
			
		||||
        <widget class="PlotWidget" name="raw_graph">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="raw_graph">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -394,7 +394,7 @@
 | 
			
		||||
        </widget>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="1" column="0">
 | 
			
		||||
        <widget class="PlotWidget" name="calib_graph">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="calib_graph">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -410,7 +410,7 @@
 | 
			
		||||
        </widget>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="0" column="1">
 | 
			
		||||
        <widget class="PlotWidget" name="baseline_graph">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="baseline_graph">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -426,7 +426,7 @@
 | 
			
		||||
        </widget>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="1" column="1">
 | 
			
		||||
        <widget class="PlotWidget" name="end_graph">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="end_graph">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -449,9 +449,9 @@
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 
 | 
			
		||||
@@ -538,7 +538,7 @@
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item row="0" column="0" rowspan="2">
 | 
			
		||||
      <widget class="PlotWidget" name="graphic">
 | 
			
		||||
      <widget class="NMRPlotWidget" name="graphic">
 | 
			
		||||
       <property name="sizePolicy">
 | 
			
		||||
        <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
         <horstretch>0</horstretch>
 | 
			
		||||
@@ -552,16 +552,16 @@
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>QListWidgetSelect</class>
 | 
			
		||||
   <extends>QListWidget</extends>
 | 
			
		||||
   <header>..lib.listwidget</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <tabstops>
 | 
			
		||||
  <tabstop>logx_button</tabstop>
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
    <number>3</number>
 | 
			
		||||
   </property>
 | 
			
		||||
   <item row="0" column="0" colspan="8">
 | 
			
		||||
    <widget class="PlotWidget" name="graphicsView">
 | 
			
		||||
    <widget class="NMRPlotWidget" name="graphicsView">
 | 
			
		||||
     <property name="sizePolicy">
 | 
			
		||||
      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
 | 
			
		||||
       <horstretch>0</horstretch>
 | 
			
		||||
@@ -160,9 +160,9 @@
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 
 | 
			
		||||
@@ -317,7 +317,7 @@
 | 
			
		||||
        <number>3</number>
 | 
			
		||||
       </property>
 | 
			
		||||
       <item>
 | 
			
		||||
        <widget class="PlotWidget" name="graphicsView">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="graphicsView">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -503,9 +503,9 @@
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>SciSpinBox</class>
 | 
			
		||||
 
 | 
			
		||||
@@ -100,7 +100,7 @@
 | 
			
		||||
        </widget>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="1" column="0" colspan="2">
 | 
			
		||||
        <widget class="PlotWidget" name="dsc_plot">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="dsc_plot">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -145,10 +145,10 @@
 | 
			
		||||
        </widget>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="1" column="0">
 | 
			
		||||
        <widget class="PlotWidget" name="tghodge_graph"/>
 | 
			
		||||
        <widget class="NMRPlotWidget" name="tghodge_graph"/>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="1" column="1">
 | 
			
		||||
        <widget class="PlotWidget" name="tau_plot">
 | 
			
		||||
        <widget class="NMRPlotWidget" name="tau_plot">
 | 
			
		||||
         <property name="sizePolicy">
 | 
			
		||||
          <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
 | 
			
		||||
           <horstretch>0</horstretch>
 | 
			
		||||
@@ -277,7 +277,7 @@
 | 
			
		||||
     <widget class="QWidget" name="page_3">
 | 
			
		||||
      <layout class="QGridLayout" name="gridLayout_6">
 | 
			
		||||
       <item row="1" column="0" colspan="2">
 | 
			
		||||
        <widget class="PlotWidget" name="tnmh_graphics"/>
 | 
			
		||||
        <widget class="NMRPlotWidget" name="tnmh_graphics"/>
 | 
			
		||||
       </item>
 | 
			
		||||
       <item row="2" column="0">
 | 
			
		||||
        <widget class="QTreeWidget" name="tnmh_tree">
 | 
			
		||||
@@ -427,16 +427,16 @@
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <customwidgets>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>PlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>pyqtgraph</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>QListWidgetSelect</class>
 | 
			
		||||
   <extends>QListWidget</extends>
 | 
			
		||||
   <header>..lib.listwidget</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
  <customwidget>
 | 
			
		||||
   <class>NMRPlotWidget</class>
 | 
			
		||||
   <extends>QGraphicsView</extends>
 | 
			
		||||
   <header>..lib.graph_items</header>
 | 
			
		||||
  </customwidget>
 | 
			
		||||
 </customwidgets>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user