Limit updates of markers to the required parts of the code.

pull/71/head
Rune B. Broberg 2019-10-26 15:52:54 +02:00
rodzic 55f7934df9
commit 38c3e01384
2 zmienionych plików z 17 dodań i 11 usunięć

Wyświetl plik

@ -31,7 +31,7 @@ class Marker(QtCore.QObject):
returnloss_is_positive = False
updated = pyqtSignal()
updated = pyqtSignal(object)
def __init__(self, name, initialColor, frequency=""):
super().__init__()
@ -115,13 +115,8 @@ class Marker(QtCore.QObject):
def setFrequency(self, frequency):
f = RFTools.parseFrequency(frequency)
if f > 0:
self.frequency = f
self.updated.emit()
else:
self.frequency = 0
self.updated.emit()
return
self.frequency = max(f, 0)
self.updated.emit(self)
def setColor(self, color):
if color.isValid():

Wyświetl plik

@ -291,7 +291,7 @@ class NanoVNASaver(QtWidgets.QWidget):
default_color = QtGui.QColor(QtCore.Qt.darkGray)
color = self.settings.value("Marker" + str(i+1) + "Color", default_color)
marker = Marker("Marker " + str(i+1), color)
marker.updated.connect(self.dataUpdated)
marker.updated.connect(self.markerUpdated)
label, layout = marker.getRow()
self.marker_control_layout.addRow(label, layout)
self.markers.append(marker)
@ -685,6 +685,17 @@ class NanoVNASaver(QtWidgets.QWidget):
else:
self.sweepSource = strftime("%Y-%m-%d %H:%M:%S", localtime())
def markerUpdated(self, marker: Marker):
if self.dataLock.acquire(blocking=True):
marker.findLocation(self.data)
for m in self.markers:
m.resetLabels()
m.updateLabels(self.data, self.data21)
for c in self.subscribing_charts:
c.update()
self.dataLock.release()
def dataUpdated(self):
if self.dataLock.acquire(blocking=True):
for m in self.markers:
@ -1472,7 +1483,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
self.app.markers.append(new_marker)
self.app.marker_data_layout.addWidget(new_marker.getGroupBox())
new_marker.updated.connect(self.app.dataUpdated)
new_marker.updated.connect(self.app.markerUpdated)
label, layout = new_marker.getRow()
self.app.marker_control_layout.insertRow(marker_count, label, layout)
if marker_count == 0:
@ -1490,7 +1501,7 @@ class DisplaySettingsWindow(QtWidgets.QWidget):
# Last marker removed.
self.btn_remove_marker.setDisabled(True)
last_marker.updated.disconnect(self.app.dataUpdated)
last_marker.updated.disconnect(self.app.markerUpdated)
self.app.marker_data_layout.removeWidget(last_marker.getGroupBox())
self.app.marker_control_layout.removeRow(len(self.app.markers))
last_marker.getGroupBox().hide()