kopia lustrzana https://github.com/NanoVNA-Saver/nanovna-saver
marker things
rodzic
05bb07b8fa
commit
7f7d56781d
|
@ -24,6 +24,7 @@ from typing import List, Set, Tuple, ClassVar, Any
|
|||
from PyQt5 import QtWidgets, QtGui, QtCore
|
||||
from PyQt5.QtCore import pyqtSignal
|
||||
|
||||
import NanoVNASaver.Defaults as Defaults
|
||||
from NanoVNASaver.RFTools import Datapoint
|
||||
from NanoVNASaver.Marker import Marker
|
||||
|
||||
|
@ -64,23 +65,15 @@ class ChartFlags:
|
|||
draw_lines: bool = False
|
||||
is_popout: bool = False
|
||||
|
||||
@dataclass
|
||||
class ChartMarkerConfig:
|
||||
draw_label: bool = False
|
||||
fill: bool = False
|
||||
at_tip: bool = False
|
||||
size: int = 3
|
||||
|
||||
class ChartMarker(QtWidgets.QWidget):
|
||||
cfg: ClassVar[ChartMarkerConfig] = ChartMarkerConfig()
|
||||
|
||||
def __init__(self, qp: QtGui.QPaintDevice):
|
||||
super().__init__()
|
||||
self.qp = qp
|
||||
|
||||
def draw(self, x: int, y: int, color: QtGui.QColor, text: str = ""):
|
||||
offset = self.cfg.size // 2
|
||||
if self.cfg.at_tip:
|
||||
offset = Defaults.cfg.chart_marker.size // 2
|
||||
if Defaults.cfg.chart_marker.at_tip:
|
||||
y -= offset
|
||||
pen = QtGui.QPen(color)
|
||||
self.qp.setPen(pen)
|
||||
|
@ -90,12 +83,12 @@ class ChartMarker(QtWidgets.QWidget):
|
|||
qpp.lineTo(x + offset, y - offset)
|
||||
qpp.lineTo(x, y + offset)
|
||||
|
||||
if self.cfg.fill:
|
||||
if Defaults.cfg.chart_marker.fill:
|
||||
self.qp.fillPath(qpp, color)
|
||||
else:
|
||||
self.qp.drawPath(qpp)
|
||||
|
||||
if text and self.cfg.draw_label:
|
||||
if text and Defaults.cfg.chart_marker.draw_label:
|
||||
text_width = self.qp.fontMetrics().horizontalAdvance(text)
|
||||
self.qp.drawText(x - text_width // 2, y - 3 - offset, text)
|
||||
|
||||
|
@ -104,7 +97,7 @@ class Chart(QtWidgets.QWidget):
|
|||
bands: ClassVar[Any] = None
|
||||
popoutRequested: ClassVar[Any] = pyqtSignal(object)
|
||||
color: ClassVar[ChartColors] = ChartColors()
|
||||
marker_cfg: ClassVar[ChartMarkerConfig] = ChartMarkerConfig()
|
||||
marker_cfg: ClassVar[Defaults.ChartMarker] = Defaults.cfg.chart_marker
|
||||
|
||||
def __init__(self, name):
|
||||
super().__init__()
|
||||
|
@ -160,7 +153,7 @@ class Chart(QtWidgets.QWidget):
|
|||
self.update()
|
||||
|
||||
def setMarkerSize(self, size):
|
||||
ChartMarker.cfg.size = size
|
||||
Defaults.cfg.chart_marker.size = size
|
||||
self.update()
|
||||
|
||||
def setSweepTitle(self, title):
|
||||
|
|
|
@ -24,6 +24,7 @@ from time import strftime, localtime
|
|||
|
||||
from PyQt5 import QtWidgets, QtCore, QtGui
|
||||
|
||||
import NanoVNASaver.Defaults as Defaults
|
||||
from .Windows import (
|
||||
AboutWindow, AnalysisWindow, CalibrationWindow,
|
||||
DeviceSettingsWindow, DisplaySettingsWindow, SweepSettingsWindow,
|
||||
|
@ -69,10 +70,11 @@ class NanoVNASaver(QtWidgets.QWidget):
|
|||
else:
|
||||
self.icon = QtGui.QIcon("icon_48x48.png")
|
||||
self.setWindowIcon(self.icon)
|
||||
self.settings = QtCore.QSettings(QtCore.QSettings.IniFormat,
|
||||
self.settings = Defaults.AppSettings(QtCore.QSettings.IniFormat,
|
||||
QtCore.QSettings.UserScope,
|
||||
"NanoVNASaver", "NanoVNASaver")
|
||||
logger.info("Settings from: %s", self.settings.fileName())
|
||||
Defaults.cfg = Defaults.restore(self.settings)
|
||||
self.threadpool = QtCore.QThreadPool()
|
||||
self.sweep = Sweep()
|
||||
self.worker = SweepWorker(self)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#
|
||||
# A python program to view and export Touchstone data from a NanoVNA
|
||||
# Copyright (C) 2019, 2020 Rune B. Broberg
|
||||
# Copyright (C) 2020,2021 NanoVNA-Saver Authors
|
||||
# Copyright (C) 2020ff NanoVNA-Saver Authors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -21,8 +21,9 @@ from typing import List
|
|||
|
||||
from PyQt5 import QtWidgets, QtCore, QtGui
|
||||
|
||||
import NanoVNASaver.Defaults as Defaults
|
||||
from NanoVNASaver.Charts.Chart import (
|
||||
Chart, ChartColors, ChartMarker, ChartMarkerConfig)
|
||||
Chart, ChartColors)
|
||||
from NanoVNASaver.Windows.Bands import BandsWindow
|
||||
from NanoVNASaver.Windows.MarkerSettings import MarkerSettingsWindow
|
||||
from NanoVNASaver.Marker import Marker
|
||||
|
@ -37,7 +38,6 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
self.app = app
|
||||
self.setWindowTitle("Display settings")
|
||||
self.setWindowIcon(self.app.icon)
|
||||
self.marker_cfg = ChartMarkerConfig()
|
||||
self.marker_window = MarkerSettingsWindow(self.app)
|
||||
self.callback_params = {}
|
||||
|
||||
|
@ -107,10 +107,9 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
|
||||
self.markerSizeInput = QtWidgets.QSpinBox()
|
||||
self.markerSizeInput.setMinimumHeight(20)
|
||||
markersize = self.app.settings.value("MarkerSize", 6, int)
|
||||
markersize = Defaults.cfg.chart_marker.size
|
||||
self.markerSizeInput.setValue(markersize)
|
||||
self.markerSizeInput.setMinimum(4)
|
||||
self.markerSizeInput.setMinimum(4)
|
||||
self.markerSizeInput.setMaximum(20)
|
||||
self.markerSizeInput.setSingleStep(2)
|
||||
self.markerSizeInput.setSuffix(" px")
|
||||
|
@ -369,10 +368,9 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
self.show_lines_option.setChecked(
|
||||
self.app.settings.value("ShowLines", False, bool))
|
||||
self.show_marker_number_option.setChecked(
|
||||
self.app.settings.value("ShowMarkerNumbers", ChartMarkerConfig.draw_label, bool))
|
||||
Defaults.cfg.chart_marker.draw_label)
|
||||
self.filled_marker_option.setChecked(
|
||||
self.app.settings.value("FilledMarkers", ChartMarkerConfig.fill, bool))
|
||||
|
||||
Defaults.cfg.chart_marker.fill)
|
||||
if self.app.settings.value("UseCustomColors",
|
||||
defaultValue=False, type=bool):
|
||||
self.dark_mode_option.setDisabled(True)
|
||||
|
@ -467,21 +465,18 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
c.setDrawLines(state)
|
||||
|
||||
def changeShowMarkerNumber(self):
|
||||
state = self.show_marker_number_option.isChecked()
|
||||
self.app.settings.setValue("ShowMarkerNumbers", state)
|
||||
ChartMarker.cfg.draw_label = state
|
||||
Defaults.cfg.chart_marker.draw_label = \
|
||||
self.show_marker_number_option.isChecked()
|
||||
self.updateCharts()
|
||||
|
||||
def changeFilledMarkers(self):
|
||||
state = self.filled_marker_option.isChecked()
|
||||
self.app.settings.setValue("FilledMarkers", state)
|
||||
ChartMarker.cfg.fill = state
|
||||
Defaults.cfg.chart_marker.fill = \
|
||||
self.filled_marker_option.isChecked()
|
||||
self.updateCharts()
|
||||
|
||||
def changeMarkerAtTip(self):
|
||||
state = self.marker_at_tip.isChecked()
|
||||
self.app.settings.setValue("MarkerAtTip", state)
|
||||
ChartMarker.cfg.at_tip = state
|
||||
Defaults.cfg.chart_marker.at_tip = \
|
||||
self.marker_at_tip.isChecked()
|
||||
self.updateCharts()
|
||||
|
||||
def changePointSize(self, size: int):
|
||||
|
@ -496,7 +491,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
|
||||
def changeMarkerSize(self, size: int):
|
||||
self.app.settings.setValue("MarkerSize", size)
|
||||
ChartMarker.cfg.size = size
|
||||
Defaults.cfg.chart_marker.size = size
|
||||
self.markerSizeInput.setValue(size)
|
||||
self.updateCharts()
|
||||
|
||||
|
@ -628,3 +623,4 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
|
|||
def updateCharts(self):
|
||||
for c in self.app.subscribing_charts:
|
||||
c.update()
|
||||
Defaults.store(self.app.settings, Defaults.cfg)
|
Ładowanie…
Reference in New Issue