kopia lustrzana https://github.com/NanoVNA-Saver/nanovna-saver
More copy functions for charts. TDRWindow now uses signals for charts.
rodzic
e893c8a104
commit
cc80c23c2e
|
@ -236,7 +236,6 @@ class FrequencyChart(Chart):
|
|||
fixedSpan = False
|
||||
fixedValues = False
|
||||
|
||||
linear = True
|
||||
logarithmicX = False
|
||||
|
||||
chartWidth = Chart.minChartWidth
|
||||
|
@ -565,6 +564,28 @@ class FrequencyChart(Chart):
|
|||
else:
|
||||
return x, y
|
||||
|
||||
def copy(self):
|
||||
new_chart: FrequencyChart = super().copy()
|
||||
new_chart.fstart = self.fstart
|
||||
new_chart.fstop = self.fstop
|
||||
new_chart.maxFrequency = self.maxFrequency
|
||||
new_chart.minFrequency = self.minFrequency
|
||||
new_chart.minDisplayValue = self.minDisplayValue
|
||||
new_chart.maxDisplayValue = self.maxDisplayValue
|
||||
|
||||
new_chart.setFixedSpan(self.fixedSpan)
|
||||
new_chart.action_automatic.setChecked(not self.fixedSpan)
|
||||
new_chart.action_fixed_span.setChecked(self.fixedSpan)
|
||||
|
||||
new_chart.setFixedValues(self.fixedValues)
|
||||
new_chart.y_action_automatic.setChecked(not self.fixedValues)
|
||||
new_chart.y_action_fixed_span.setChecked(self.fixedValues)
|
||||
|
||||
new_chart.setLogarithmicX(self.logarithmicX)
|
||||
new_chart.action_set_logarithmic_x.setChecked(self.logarithmicX)
|
||||
new_chart.action_set_linear_x.setChecked(not self.logarithmicX)
|
||||
return new_chart
|
||||
|
||||
|
||||
class SquareChart(Chart):
|
||||
def __init__(self, name):
|
||||
|
@ -611,6 +632,11 @@ class PhaseChart(FrequencyChart):
|
|||
self.action_unwrap.triggered.connect(lambda: self.setUnwrap(self.action_unwrap.isChecked()))
|
||||
self.y_menu.addAction(self.action_unwrap)
|
||||
|
||||
def copy(self):
|
||||
new_chart: PhaseChart = super().copy()
|
||||
new_chart.setUnwrap(self.unwrap)
|
||||
new_chart.action_unwrap.setChecked(self.unwrap)
|
||||
|
||||
def setUnwrap(self, unwrap: bool):
|
||||
self.unwrap = unwrap
|
||||
self.update()
|
||||
|
@ -810,7 +836,7 @@ class VSWRChart(FrequencyChart):
|
|||
vswrstr = str(round(vswr))
|
||||
else:
|
||||
vswrstr = str(round(vswr, digits))
|
||||
qp.drawText(3, y+3, vswrstr)
|
||||
qp.drawText(3, y+3, vswrstr)
|
||||
qp.setPen(QtGui.QPen(self.foregroundColor))
|
||||
qp.drawLine(self.leftMargin-5, y, self.leftMargin+self.chartWidth, y)
|
||||
qp.drawLine(self.leftMargin - 5, self.topMargin, self.leftMargin + self.chartWidth, self.topMargin)
|
||||
|
@ -1297,6 +1323,12 @@ class LogMagChart(FrequencyChart):
|
|||
else:
|
||||
return NanoVNASaver.gain(p)
|
||||
|
||||
def copy(self):
|
||||
new_chart: LogMagChart = super().copy()
|
||||
new_chart.isInverted = self.isInverted
|
||||
new_chart.span = self.span
|
||||
return new_chart
|
||||
|
||||
|
||||
class QualityFactorChart(FrequencyChart):
|
||||
def __init__(self, name=""):
|
||||
|
@ -1431,6 +1463,12 @@ class TDRChart(Chart):
|
|||
self.setPalette(pal)
|
||||
self.setAutoFillBackground(True)
|
||||
|
||||
def copy(self):
|
||||
new_chart = super().copy()
|
||||
new_chart.tdrWindow = self.tdrWindow
|
||||
self.tdrWindow.updated.connect(new_chart.update)
|
||||
return new_chart
|
||||
|
||||
def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
|
||||
qp = QtGui.QPainter(self)
|
||||
qp.setPen(QtGui.QPen(self.textColor))
|
||||
|
@ -1539,6 +1577,14 @@ class RealImaginaryChart(FrequencyChart):
|
|||
self.setPalette(pal)
|
||||
self.setAutoFillBackground(True)
|
||||
|
||||
def copy(self):
|
||||
new_chart: RealImaginaryChart = super().copy()
|
||||
|
||||
new_chart.maxDisplayReal = self.maxDisplayReal
|
||||
new_chart.maxDisplayImag = self.maxDisplayImag
|
||||
new_chart.minDisplayReal = self.minDisplayReal
|
||||
new_chart.minDisplayImag = self.minDisplayImag
|
||||
|
||||
def drawChart(self, qp: QtGui.QPainter):
|
||||
qp.setPen(QtGui.QPen(self.textColor))
|
||||
qp.drawText(self.leftMargin + 5, 15, self.name + " (\N{OHM SIGN})")
|
||||
|
|
|
@ -341,6 +341,7 @@ class NanoVNASaver(QtWidgets.QWidget):
|
|||
|
||||
self.tdr_window = TDRWindow(self)
|
||||
self.tdr_chart.tdrWindow = self.tdr_window
|
||||
self.tdr_window.updated.connect(self.tdr_chart.update)
|
||||
|
||||
tdr_control_box = QtWidgets.QGroupBox()
|
||||
tdr_control_box.setTitle("TDR")
|
||||
|
@ -1683,6 +1684,8 @@ class AboutWindow(QtWidgets.QWidget):
|
|||
|
||||
|
||||
class TDRWindow(QtWidgets.QWidget):
|
||||
updated = QtCore.pyqtSignal()
|
||||
|
||||
def __init__(self, app: NanoVNASaver):
|
||||
super().__init__()
|
||||
self.app = app
|
||||
|
@ -1794,7 +1797,7 @@ class TDRWindow(QtWidgets.QWidget):
|
|||
|
||||
self.tdr_result_label.setText(str(cable_len) + " m (" + str(feet) + "ft " + str(inches) + "in)")
|
||||
self.app.tdr_result_label.setText(str(cable_len) + " m")
|
||||
self.app.tdr_chart.update()
|
||||
self.updated.emit()
|
||||
|
||||
|
||||
class SweepSettingsWindow(QtWidgets.QWidget):
|
||||
|
|
Ładowanie…
Reference in New Issue