kopia lustrzana https://github.com/NanoVNA-Saver/nanovna-saver
Implemented secondary colour for RealImaginary charts
rodzic
b094f335c7
commit
8142c287d5
|
@ -31,6 +31,8 @@ class Chart(QtWidgets.QWidget):
|
||||||
secondarySweepColor = QtCore.Qt.darkMagenta
|
secondarySweepColor = QtCore.Qt.darkMagenta
|
||||||
referenceColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.blue)
|
referenceColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.blue)
|
||||||
referenceColor.setAlpha(64)
|
referenceColor.setAlpha(64)
|
||||||
|
secondaryReferenceColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.blue)
|
||||||
|
secondaryReferenceColor.setAlpha(64)
|
||||||
backgroundColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.white)
|
backgroundColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.white)
|
||||||
foregroundColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.lightGray)
|
foregroundColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.lightGray)
|
||||||
textColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.black)
|
textColor: QtGui.QColor = QtGui.QColor(QtCore.Qt.black)
|
||||||
|
@ -65,6 +67,10 @@ class Chart(QtWidgets.QWidget):
|
||||||
self.referenceColor = color
|
self.referenceColor = color
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
|
def setSecondaryReferenceColor(self, color : QtGui.QColor):
|
||||||
|
self.secondaryReferenceColor = color
|
||||||
|
self.update()
|
||||||
|
|
||||||
def setBackgroundColor(self, color: QtGui.QColor):
|
def setBackgroundColor(self, color: QtGui.QColor):
|
||||||
self.backgroundColor = color
|
self.backgroundColor = color
|
||||||
pal = self.palette()
|
pal = self.palette()
|
||||||
|
@ -1614,9 +1620,9 @@ class RealImaginaryChart(FrequencyChart):
|
||||||
prev_y_im = self.getImYPosition(self.data[i-1])
|
prev_y_im = self.getImYPosition(self.data[i-1])
|
||||||
|
|
||||||
# Real part first
|
# Real part first
|
||||||
|
line_pen.setColor(self.sweepColor)
|
||||||
|
qp.setPen(line_pen)
|
||||||
if self.isPlotable(x, y_re) and self.isPlotable(prev_x, prev_y_re):
|
if self.isPlotable(x, y_re) and self.isPlotable(prev_x, prev_y_re):
|
||||||
line_pen.setColor(self.sweepColor)
|
|
||||||
qp.setPen(line_pen)
|
|
||||||
qp.drawLine(x, y_re, prev_x, prev_y_re)
|
qp.drawLine(x, y_re, prev_x, prev_y_re)
|
||||||
elif self.isPlotable(x, y_re) and not self.isPlotable(prev_x, prev_y_re):
|
elif self.isPlotable(x, y_re) and not self.isPlotable(prev_x, prev_y_re):
|
||||||
new_x, new_y = self.getPlotable(x, y_re, prev_x, prev_y_re)
|
new_x, new_y = self.getPlotable(x, y_re, prev_x, prev_y_re)
|
||||||
|
@ -1625,10 +1631,10 @@ class RealImaginaryChart(FrequencyChart):
|
||||||
new_x, new_y = self.getPlotable(prev_x, prev_y_re, x, y_re)
|
new_x, new_y = self.getPlotable(prev_x, prev_y_re, x, y_re)
|
||||||
qp.drawLine(prev_x, prev_y_re, new_x, new_y)
|
qp.drawLine(prev_x, prev_y_re, new_x, new_y)
|
||||||
|
|
||||||
# Imag part first
|
# Imag part second
|
||||||
|
line_pen.setColor(self.secondarySweepColor)
|
||||||
|
qp.setPen(line_pen)
|
||||||
if self.isPlotable(x, y_im) and self.isPlotable(prev_x, prev_y_im):
|
if self.isPlotable(x, y_im) and self.isPlotable(prev_x, prev_y_im):
|
||||||
line_pen.setColor(self.secondarySweepColor)
|
|
||||||
qp.setPen(line_pen)
|
|
||||||
qp.drawLine(x, y_im, prev_x, prev_y_im)
|
qp.drawLine(x, y_im, prev_x, prev_y_im)
|
||||||
elif self.isPlotable(x, y_im) and not self.isPlotable(prev_x, prev_y_im):
|
elif self.isPlotable(x, y_im) and not self.isPlotable(prev_x, prev_y_im):
|
||||||
new_x, new_y = self.getPlotable(x, y_im, prev_x, prev_y_im)
|
new_x, new_y = self.getPlotable(x, y_im, prev_x, prev_y_im)
|
||||||
|
@ -1639,7 +1645,7 @@ class RealImaginaryChart(FrequencyChart):
|
||||||
|
|
||||||
primary_pen.setColor(self.referenceColor)
|
primary_pen.setColor(self.referenceColor)
|
||||||
line_pen.setColor(self.referenceColor)
|
line_pen.setColor(self.referenceColor)
|
||||||
secondary_pen.setColor(self.referenceColor)
|
secondary_pen.setColor(self.secondaryReferenceColor)
|
||||||
qp.setPen(primary_pen)
|
qp.setPen(primary_pen)
|
||||||
if len(self.reference) > 0:
|
if len(self.reference) > 0:
|
||||||
c = QtGui.QColor(self.referenceColor)
|
c = QtGui.QColor(self.referenceColor)
|
||||||
|
@ -1647,7 +1653,12 @@ class RealImaginaryChart(FrequencyChart):
|
||||||
pen = QtGui.QPen(c)
|
pen = QtGui.QPen(c)
|
||||||
pen.setWidth(2)
|
pen.setWidth(2)
|
||||||
qp.setPen(pen)
|
qp.setPen(pen)
|
||||||
qp.drawLine(20, 14, 25, 14) # Alpha might be low, so we draw twice
|
qp.drawLine(20, 14, 25, 14)
|
||||||
|
c = QtGui.QColor(self.secondaryReferenceColor)
|
||||||
|
c.setAlpha(255)
|
||||||
|
pen = QtGui.QPen(c)
|
||||||
|
pen.setWidth(2)
|
||||||
|
qp.setPen(pen)
|
||||||
qp.drawLine(self.leftMargin + self.chartWidth, 14, self.leftMargin + self.chartWidth + 5, 14)
|
qp.drawLine(self.leftMargin + self.chartWidth, 14, self.leftMargin + self.chartWidth + 5, 14)
|
||||||
|
|
||||||
for i in range(len(self.reference)):
|
for i in range(len(self.reference)):
|
||||||
|
@ -1667,10 +1678,10 @@ class RealImaginaryChart(FrequencyChart):
|
||||||
prev_y_re = self.getReYPosition(self.reference[i-1])
|
prev_y_re = self.getReYPosition(self.reference[i-1])
|
||||||
prev_y_im = self.getImYPosition(self.reference[i-1])
|
prev_y_im = self.getImYPosition(self.reference[i-1])
|
||||||
|
|
||||||
|
line_pen.setColor(self.secondaryReferenceColor)
|
||||||
|
qp.setPen(line_pen)
|
||||||
# Real part first
|
# Real part first
|
||||||
if self.isPlotable(x, y_re) and self.isPlotable(prev_x, prev_y_re):
|
if self.isPlotable(x, y_re) and self.isPlotable(prev_x, prev_y_re):
|
||||||
line_pen.setColor(self.referenceColor)
|
|
||||||
qp.setPen(line_pen)
|
|
||||||
qp.drawLine(x, y_re, prev_x, prev_y_re)
|
qp.drawLine(x, y_re, prev_x, prev_y_re)
|
||||||
elif self.isPlotable(x, y_re) and not self.isPlotable(prev_x, prev_y_re):
|
elif self.isPlotable(x, y_re) and not self.isPlotable(prev_x, prev_y_re):
|
||||||
new_x, new_y = self.getPlotable(x, y_re, prev_x, prev_y_re)
|
new_x, new_y = self.getPlotable(x, y_re, prev_x, prev_y_re)
|
||||||
|
@ -1679,10 +1690,10 @@ class RealImaginaryChart(FrequencyChart):
|
||||||
new_x, new_y = self.getPlotable(prev_x, prev_y_re, x, y_re)
|
new_x, new_y = self.getPlotable(prev_x, prev_y_re, x, y_re)
|
||||||
qp.drawLine(prev_x, prev_y_re, new_x, new_y)
|
qp.drawLine(prev_x, prev_y_re, new_x, new_y)
|
||||||
|
|
||||||
# Imag part first
|
line_pen.setColor(self.secondaryReferenceColor)
|
||||||
|
qp.setPen(line_pen)
|
||||||
|
# Imag part second
|
||||||
if self.isPlotable(x, y_im) and self.isPlotable(prev_x, prev_y_im):
|
if self.isPlotable(x, y_im) and self.isPlotable(prev_x, prev_y_im):
|
||||||
line_pen.setColor(self.secondarySweepColor)
|
|
||||||
qp.setPen(line_pen)
|
|
||||||
qp.drawLine(x, y_im, prev_x, prev_y_im)
|
qp.drawLine(x, y_im, prev_x, prev_y_im)
|
||||||
elif self.isPlotable(x, y_im) and not self.isPlotable(prev_x, prev_y_im):
|
elif self.isPlotable(x, y_im) and not self.isPlotable(prev_x, prev_y_im):
|
||||||
new_x, new_y = self.getPlotable(x, y_im, prev_x, prev_y_im)
|
new_x, new_y = self.getPlotable(x, y_im, prev_x, prev_y_im)
|
||||||
|
|
|
@ -1080,6 +1080,18 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
||||||
|
|
||||||
display_options_layout.addRow("Reference color", self.btnReferenceColorPicker)
|
display_options_layout.addRow("Reference color", self.btnReferenceColorPicker)
|
||||||
|
|
||||||
|
self.btnSecondaryReferenceColorPicker = QtWidgets.QPushButton("█")
|
||||||
|
self.btnSecondaryReferenceColorPicker.setFixedWidth(20)
|
||||||
|
self.secondaryReferenceColor = self.app.settings.value("SecondaryReferenceColor",
|
||||||
|
defaultValue=QtGui.QColor(0, 0, 255, 32),
|
||||||
|
type=QtGui.QColor)
|
||||||
|
self.setSecondaryReferenceColor(self.secondaryReferenceColor)
|
||||||
|
self.btnSecondaryReferenceColorPicker.clicked.connect(lambda: self.setSecondaryReferenceColor(
|
||||||
|
QtWidgets.QColorDialog.getColor(self.secondaryReferenceColor,
|
||||||
|
options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||||
|
|
||||||
|
display_options_layout.addRow("Second reference color", self.btnSecondaryReferenceColorPicker)
|
||||||
|
|
||||||
layout.addWidget(display_options_box)
|
layout.addWidget(display_options_box)
|
||||||
|
|
||||||
color_options_box = QtWidgets.QGroupBox("Chart colors")
|
color_options_box = QtWidgets.QGroupBox("Chart colors")
|
||||||
|
@ -1377,6 +1389,18 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
||||||
for c in self.app.charts:
|
for c in self.app.charts:
|
||||||
c.setReferenceColor(color)
|
c.setReferenceColor(color)
|
||||||
|
|
||||||
|
def setSecondaryReferenceColor(self, color):
|
||||||
|
if color.isValid():
|
||||||
|
self.secondaryReferenceColor = color
|
||||||
|
p = self.btnSecondaryReferenceColorPicker.palette()
|
||||||
|
p.setColor(QtGui.QPalette.ButtonText, color)
|
||||||
|
self.btnSecondaryReferenceColorPicker.setPalette(p)
|
||||||
|
self.app.settings.setValue("SecondaryReferenceColor", color)
|
||||||
|
self.app.settings.sync()
|
||||||
|
|
||||||
|
for c in self.app.charts:
|
||||||
|
c.setSecondaryReferenceColor(color)
|
||||||
|
|
||||||
def setShowBands(self, show_bands):
|
def setShowBands(self, show_bands):
|
||||||
self.app.bands.enabled = show_bands
|
self.app.bands.enabled = show_bands
|
||||||
self.app.bands.settings.setValue("ShowBands", show_bands)
|
self.app.bands.settings.setValue("ShowBands", show_bands)
|
||||||
|
|
Ładowanie…
Reference in New Issue