Skip to content

Commit f7d44ce

Browse files
authored
Merge pull request #186 from michaellans/update_curve_settings
Live + archive data moved to curve settings
2 parents 14281cb + eadc53a commit f7d44ce

3 files changed

Lines changed: 27 additions & 21 deletions

File tree

trace/widgets/control_panel.py

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -718,33 +718,26 @@ def __init__(self, plot_curve_item: ArchivePlotCurveItem, variable_name: str = N
718718
self.pv_settings_modal = None
719719
self.pv_settings_button.clicked.connect(self.show_settings_modal)
720720
pv_settings_layout.addWidget(self.pv_settings_button)
721-
self.delete_button = QtWidgets.QPushButton()
722-
self.delete_button.setIcon(qta.icon("msc.trash"))
723-
self.delete_button.setFlat(True)
724-
self.delete_button.clicked.connect(self.close)
725-
pv_settings_layout.addWidget(self.delete_button)
726721

727722
self.setup_line_edit()
728723

729-
self.live_toggle = QtWidgets.QCheckBox("Live")
730-
self.live_toggle.setCheckState(QtCore.Qt.Checked if self.source.liveData else QtCore.Qt.Unchecked)
731-
self.live_toggle.stateChanged.connect(self.set_live_data_connection)
732-
data_type_layout.addWidget(self.live_toggle)
733724
self.live_connection_status = QtWidgets.QLabel()
734725
self.live_connection_status.setPixmap(self.icon_disconnected.pixmap(16, 16))
735726
self.live_connection_status.setToolTip("Not connected to live data")
736727
self.source.live_channel_connection.connect(self.update_live_icon)
737-
data_type_layout.addWidget(self.live_connection_status)
728+
pv_settings_layout.addWidget(self.live_connection_status)
738729

739-
self.archive_toggle = QtWidgets.QCheckBox("Archive")
740-
self.archive_toggle.setCheckState(QtCore.Qt.Checked if self.source.use_archive_data else QtCore.Qt.Unchecked)
741-
self.archive_toggle.stateChanged.connect(self.set_archive_data_connection)
742-
data_type_layout.addWidget(self.archive_toggle)
743730
self.archive_connection_status = QtWidgets.QLabel()
744731
self.archive_connection_status.setPixmap(self.icon_disconnected.pixmap(16, 16))
745732
self.archive_connection_status.setToolTip("Not connected to archive data")
746733
self.source.archive_channel_connection.connect(self.update_archive_icon)
747-
data_type_layout.addWidget(self.archive_connection_status)
734+
pv_settings_layout.addWidget(self.archive_connection_status)
735+
736+
self.delete_button = QtWidgets.QPushButton()
737+
self.delete_button.setIcon(qta.icon("msc.trash"))
738+
self.delete_button.setFlat(True)
739+
self.delete_button.clicked.connect(self.close)
740+
pv_settings_layout.addWidget(self.delete_button)
748741

749742
data_type_layout.addStretch()
750743

@@ -799,12 +792,6 @@ def set_active(self, state: QtCore.Qt.CheckState):
799792
else:
800793
self.source.show()
801794

802-
def set_live_data_connection(self, state: QtCore.Qt.CheckState) -> None:
803-
self.source.liveData = state == QtCore.Qt.Checked
804-
805-
def set_archive_data_connection(self, state: QtCore.Qt.CheckState) -> None:
806-
self.source.use_archive_data = state == QtCore.Qt.Checked
807-
808795
def update_live_icon(self, connected: bool) -> None:
809796
self.live_connection_status.setVisible(not connected)
810797

trace/widgets/curve_settings.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@ def __init__(self, parent: QWidget, plot: PyDMArchiverTimePlot, curve: TimePlotC
4141
bin_count_line_edit.setPlaceholderText(str(bin_count))
4242
main_layout.addLayout(optimized_bin_count)
4343

44+
self.live_toggle = QCheckBox("")
45+
self.live_toggle.setCheckState(Qt.Checked if self.curve.liveData else Qt.Unchecked)
46+
self.live_toggle.stateChanged.connect(self.set_live_data_connection)
47+
live_toggle_row = SettingsRowItem(self, "Connect to Live", self.live_toggle)
48+
main_layout.addLayout(live_toggle_row)
49+
50+
self.archive_toggle = QCheckBox("")
51+
self.archive_toggle.setCheckState(Qt.Checked if self.curve.use_archive_data else Qt.Unchecked)
52+
self.archive_toggle.stateChanged.connect(self.set_archive_data_connection)
53+
archive_toggle_row = SettingsRowItem(self, "Connect to Archive", self.archive_toggle)
54+
main_layout.addLayout(archive_toggle_row)
55+
4456
line_title_label = SettingsTitle(self, "Line")
4557
main_layout.addWidget(line_title_label)
4658

@@ -95,6 +107,12 @@ def set_curve_data_bins(self):
95107
except (AttributeError, ValueError) as e:
96108
logger.warning(f"Unable to set data bins: {e}")
97109

110+
def set_live_data_connection(self, state: Qt.CheckState) -> None:
111+
self.curve.liveData = state == Qt.Checked
112+
113+
def set_archive_data_connection(self, state: Qt.CheckState) -> None:
114+
self.curve.use_archive_data = state == Qt.Checked
115+
98116
def show(self):
99117
parent_pos = self.parent().rect().bottomRight()
100118
global_pos = self.parent().mapToGlobal(parent_pos)

trace/widgets/plot_settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def __init__(self, parent: QWidget, plot: PyDMArchiverTimePlot):
4747

4848
self.legend_checkbox = QCheckBox(self)
4949
self.legend_checkbox.stateChanged.connect(lambda check: self.plot.setShowLegend(bool(check)))
50+
self.legend_checkbox.setChecked(True) # legend on by default
5051
legend_row = SettingsRowItem(self, "Show Legend", self.legend_checkbox)
5152
main_layout.addLayout(legend_row)
5253

0 commit comments

Comments
 (0)