kopia lustrzana https://github.com/NanoVNA-Saver/nanovna-saver
Option for filled marker indicators
Option to have the data point at the tip of the markerpull/89/head
rodzic
2d462e892e
commit
69acf7ab8a
|
@ -53,6 +53,8 @@ class Chart(QtWidgets.QWidget):
|
|||
pointSize = 2
|
||||
markerSize = 3
|
||||
drawMarkerNumbers = False
|
||||
markerAtTip = False
|
||||
filledMarkers = False
|
||||
|
||||
isPopout = False
|
||||
popoutRequested = pyqtSignal(object)
|
||||
|
@ -164,12 +166,20 @@ class Chart(QtWidgets.QWidget):
|
|||
def getPosition(self, d: Datapoint) -> (int, int):
|
||||
return self.getXPosition(d), self.getYPosition(d)
|
||||
|
||||
def setDrawLines(self, drawLines):
|
||||
self.drawLines = drawLines
|
||||
def setDrawLines(self, draw_lines):
|
||||
self.drawLines = draw_lines
|
||||
self.update()
|
||||
|
||||
def setDrawMarkerNumbers(self, drawMarkerNumbers):
|
||||
self.drawMarkerNumbers = drawMarkerNumbers
|
||||
def setDrawMarkerNumbers(self, draw_marker_numbers):
|
||||
self.drawMarkerNumbers = draw_marker_numbers
|
||||
self.update()
|
||||
|
||||
def setMarkerAtTip(self, marker_at_tip):
|
||||
self.markerAtTip = marker_at_tip
|
||||
self.update()
|
||||
|
||||
def setFilledMarkers(self, filled_markers):
|
||||
self.filledMarkers = filled_markers
|
||||
self.update()
|
||||
|
||||
@staticmethod
|
||||
|
@ -221,6 +231,8 @@ class Chart(QtWidgets.QWidget):
|
|||
new_chart.drawLines = self.drawLines
|
||||
new_chart.markerSize = self.markerSize
|
||||
new_chart.drawMarkerNumbers = self.drawMarkerNumbers
|
||||
new_chart.filledMarkers = self.filledMarkers
|
||||
new_chart.markerAtTip = self.markerAtTip
|
||||
new_chart.resize(self.width(), self.height())
|
||||
new_chart.setPointSize(self.pointSize)
|
||||
new_chart.setLineThickness(self.lineThickness)
|
||||
|
@ -248,14 +260,20 @@ class Chart(QtWidgets.QWidget):
|
|||
self.update()
|
||||
|
||||
def drawMarker(self, x, y, qp: QtGui.QPainter, color: QtGui.QColor, number=0):
|
||||
if self.markerAtTip:
|
||||
y -= self.markerSize
|
||||
pen = QtGui.QPen(color)
|
||||
qp.setPen(pen)
|
||||
qp.drawLine(int(x), int(y) + self.markerSize,
|
||||
int(x) - self.markerSize, int(y) - self.markerSize)
|
||||
qp.drawLine(int(x), int(y) + self.markerSize,
|
||||
int(x) + self.markerSize, int(y) - self.markerSize)
|
||||
qp.drawLine(int(x) - self.markerSize, int(y) - self.markerSize,
|
||||
int(x) + self.markerSize, int(y) - self.markerSize)
|
||||
qpp = QtGui.QPainterPath()
|
||||
qpp.moveTo(x, y + self.markerSize)
|
||||
qpp.lineTo(x - self.markerSize, y - self.markerSize)
|
||||
qpp.lineTo(x + self.markerSize, y - self.markerSize)
|
||||
qpp.lineTo(x, y + self.markerSize)
|
||||
|
||||
if self.filledMarkers:
|
||||
qp.fillPath(qpp, color)
|
||||
else:
|
||||
qp.drawPath(qpp)
|
||||
|
||||
if self.drawMarkerNumbers:
|
||||
number_x = x - 3
|
||||
|
|
|
@ -992,11 +992,11 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
display_options_box = QtWidgets.QGroupBox("Options")
|
||||
display_options_layout = QtWidgets.QFormLayout(display_options_box)
|
||||
|
||||
returnloss_group = QtWidgets.QButtonGroup()
|
||||
self.returnloss_group = QtWidgets.QButtonGroup()
|
||||
self.returnloss_is_negative = QtWidgets.QRadioButton("Negative")
|
||||
self.returnloss_is_positive = QtWidgets.QRadioButton("Positive")
|
||||
returnloss_group.addButton(self.returnloss_is_positive)
|
||||
returnloss_group.addButton(self.returnloss_is_negative)
|
||||
self.returnloss_group.addButton(self.returnloss_is_positive)
|
||||
self.returnloss_group.addButton(self.returnloss_is_negative)
|
||||
|
||||
display_options_layout.addRow("Return loss is:", self.returnloss_is_negative)
|
||||
display_options_layout.addRow("", self.returnloss_is_positive)
|
||||
|
@ -1103,6 +1103,28 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
self.show_marker_number_option.stateChanged.connect(self.changeShowMarkerNumber)
|
||||
display_options_layout.addRow(self.show_marker_number_option, show_marker_number_label)
|
||||
|
||||
self.filled_marker_option = QtWidgets.QCheckBox("Filled markers")
|
||||
filled_marker_label = QtWidgets.QLabel("Shows the marker as a filled triangle")
|
||||
self.filled_marker_option.stateChanged.connect(self.changeFilledMarkers)
|
||||
display_options_layout.addRow(self.filled_marker_option, filled_marker_label)
|
||||
|
||||
self.marker_tip_group = QtWidgets.QButtonGroup()
|
||||
self.marker_at_center = QtWidgets.QRadioButton("At the center of the marker")
|
||||
self.marker_at_tip = QtWidgets.QRadioButton("At the tip of the marker")
|
||||
self.marker_tip_group.addButton(self.marker_at_center)
|
||||
self.marker_tip_group.addButton(self.marker_at_tip)
|
||||
|
||||
display_options_layout.addRow("Data point is:", self.marker_at_center)
|
||||
display_options_layout.addRow("", self.marker_at_tip)
|
||||
|
||||
if self.app.settings.value("MarkerAtTip", False, bool):
|
||||
self.marker_at_tip.setChecked(True)
|
||||
else:
|
||||
self.marker_at_center.setChecked(True)
|
||||
|
||||
self.marker_at_tip.toggled.connect(self.changeMarkerAtTip)
|
||||
self.changeMarkerAtTip()
|
||||
|
||||
color_options_box = QtWidgets.QGroupBox("Chart colors")
|
||||
color_options_layout = QtWidgets.QFormLayout(color_options_box)
|
||||
|
||||
|
@ -1112,19 +1134,25 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
|
||||
self.btn_background_picker = QtWidgets.QPushButton("█")
|
||||
self.btn_background_picker.setFixedWidth(20)
|
||||
self.btn_background_picker.clicked.connect(lambda: self.setColor("background", QtWidgets.QColorDialog.getColor(self.backgroundColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
self.btn_background_picker.clicked.connect(lambda: self.setColor("background",
|
||||
QtWidgets.QColorDialog.getColor(self.backgroundColor,
|
||||
options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
|
||||
color_options_layout.addRow("Chart background", self.btn_background_picker)
|
||||
|
||||
self.btn_foreground_picker = QtWidgets.QPushButton("█")
|
||||
self.btn_foreground_picker.setFixedWidth(20)
|
||||
self.btn_foreground_picker.clicked.connect(lambda: self.setColor("foreground", QtWidgets.QColorDialog.getColor(self.foregroundColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
self.btn_foreground_picker.clicked.connect(lambda: self.setColor("foreground",
|
||||
QtWidgets.QColorDialog.getColor(self.foregroundColor,
|
||||
options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
|
||||
color_options_layout.addRow("Chart foreground", self.btn_foreground_picker)
|
||||
|
||||
self.btn_text_picker = QtWidgets.QPushButton("█")
|
||||
self.btn_text_picker.setFixedWidth(20)
|
||||
self.btn_text_picker.clicked.connect(lambda: self.setColor("text", QtWidgets.QColorDialog.getColor(self.textColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
self.btn_text_picker.clicked.connect(lambda: self.setColor("text",
|
||||
QtWidgets.QColorDialog.getColor(self.textColor,
|
||||
options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
|
||||
color_options_layout.addRow("Chart text", self.btn_text_picker)
|
||||
|
||||
|
@ -1154,7 +1182,9 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
|
||||
self.btn_bands_picker = QtWidgets.QPushButton("█")
|
||||
self.btn_bands_picker.setFixedWidth(20)
|
||||
self.btn_bands_picker.clicked.connect(lambda: self.setColor("bands", QtWidgets.QColorDialog.getColor(self.bandsColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
self.btn_bands_picker.clicked.connect(lambda: self.setColor("bands",
|
||||
QtWidgets.QColorDialog.getColor(self.bandsColor,
|
||||
options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
|
||||
bands_layout.addRow("Chart bands", self.btn_bands_picker)
|
||||
|
||||
|
@ -1179,7 +1209,9 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
|
||||
self.btn_vswr_picker = QtWidgets.QPushButton("█")
|
||||
self.btn_vswr_picker.setFixedWidth(20)
|
||||
self.btn_vswr_picker.clicked.connect(lambda: self.setColor("vswr", QtWidgets.QColorDialog.getColor(self.vswrColor, options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
self.btn_vswr_picker.clicked.connect(lambda: self.setColor("vswr",
|
||||
QtWidgets.QColorDialog.getColor(self.vswrColor,
|
||||
options=QtWidgets.QColorDialog.ShowAlphaChannel)))
|
||||
|
||||
vswr_marker_layout.addRow("VSWR Markers", self.btn_vswr_picker)
|
||||
|
||||
|
@ -1324,6 +1356,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
self.dark_mode_option.setChecked(self.app.settings.value("DarkMode", False, bool))
|
||||
self.show_lines_option.setChecked(self.app.settings.value("ShowLines", False, bool))
|
||||
self.show_marker_number_option.setChecked(self.app.settings.value("ShowMarkerNumbers", False, bool))
|
||||
self.filled_marker_option.setChecked(self.app.settings.value("FilledMarkers", False, bool))
|
||||
|
||||
if self.app.settings.value("UseCustomColors", defaultValue=False, type=bool):
|
||||
self.dark_mode_option.setDisabled(True)
|
||||
|
@ -1411,6 +1444,18 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
for c in self.app.subscribing_charts:
|
||||
c.setDrawMarkerNumbers(state)
|
||||
|
||||
def changeFilledMarkers(self):
|
||||
state = self.filled_marker_option.isChecked()
|
||||
self.app.settings.setValue("FilledMarkers", state)
|
||||
for c in self.app.subscribing_charts:
|
||||
c.setFilledMarkers(state)
|
||||
|
||||
def changeMarkerAtTip(self):
|
||||
state = self.marker_at_tip.isChecked()
|
||||
self.app.settings.setValue("MarkerAtTip", state)
|
||||
for c in self.app.subscribing_charts:
|
||||
c.setMarkerAtTip(state)
|
||||
|
||||
def changePointSize(self, size: int):
|
||||
self.app.settings.setValue("PointSize", size)
|
||||
for c in self.app.subscribing_charts:
|
||||
|
|
Ładowanie…
Reference in New Issue