Skip to content
Snippets Groups Projects

zoom out

Merged Lan Dam requested to merge i177_zoomout into develop
Files
2
@@ -364,9 +364,9 @@ class PlottingWidget(QtWidgets.QScrollArea):
self.min_x, self.max_x = self.zoom_minmax_list[-2]
self.zoom_minmax_list.pop()
self.set_lim(is_zoom_in=False)
self.zoom_marker1.set_visible(False)
self.zoom_marker2.set_visible(False)
self.plotting_axes.canvas.draw()
self.zoom_marker1.set_visible(False)
self.zoom_marker2.set_visible(False)
self.plotting_axes.canvas.draw()
def eventFilter(self, target: QObject, event: QEvent) -> bool:
"""
@@ -496,9 +496,9 @@ class PlottingWidget(QtWidgets.QScrollArea):
When click mouse on the current plottingWidget, SOHView will loop
through different plottingWidgets to do the same task for
interaction:
+ shift+click: call on_shift_click() to do zooming. This is
disregarded in TimePowerSquareWidget because it isn't subjected
to be zoomed in.
+ shift+click: is disregarded if start in TimePowerSquareWidget
* If click on left side of the plot (xdata<xmin): call zoom out
* Otherwise: call on_shift_click to do tasks of zoom in
+ ctrl+click or cmd+click in mac: call on_ctrl_cmd_click() to show
ruler
@@ -529,16 +529,6 @@ class PlottingWidget(QtWidgets.QScrollArea):
else:
xdata = self.get_timestamp(event)
# We only want to remove the text on the ruler when we start zooming in
# or move the ruler to another location.
if modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier,
QtCore.Qt.KeyboardModifier.ShiftModifier]:
try:
self.ruler_text.remove()
self.ruler_text = None
except AttributeError:
pass
if (self.main_window.tps_check_box.isChecked() and
modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier,
@@ -547,16 +537,14 @@ class PlottingWidget(QtWidgets.QScrollArea):
for w in self.peer_plotting_widgets:
if not w.has_data:
continue
if modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier,
QtCore.Qt.KeyboardModifier.ShiftModifier]:
try:
w.ruler_text.remove()
w.ruler_text = None
except AttributeError:
pass
if modifiers == QtCore.Qt.KeyboardModifier.ShiftModifier:
w.on_shift_click(xdata)
if xdata < w.min_x:
# click on left of plot
w.zoom_marker1_shown = False # reset zoom in
w.zoom_out()
else:
w.on_shift_click(xdata)
elif modifiers in [QtCore.Qt.KeyboardModifier.ControlModifier,
QtCore.Qt.KeyboardModifier.MetaModifier]:
w.on_ctrl_cmd_click(xdata)
@@ -584,6 +572,7 @@ class PlottingWidget(QtWidgets.QScrollArea):
:param xdata: float - time value of a channel plot
"""
self.zoom_marker1.set_visible(False)
self.zoom_marker1_shown = False
try:
@@ -594,6 +583,11 @@ class PlottingWidget(QtWidgets.QScrollArea):
if xdata >= self.min_x:
ruler_text_content = format_time(xdata, self.parent.date_format,
'HH:MM:SS')
try:
# remove ruler_text before creating the new one
self.ruler_text.remove()
except AttributeError:
pass
self.ruler_text = self.plotting_axes.fig.text(
xdata, 5000, ruler_text_content,
verticalalignment='top',
@@ -608,22 +602,18 @@ class PlottingWidget(QtWidgets.QScrollArea):
On shift + left click:
if click on the left of a plot, do zoom out to the previous range
if zoom_marker1 not shown yet:
+ hide ruler
+ connect zoom_marker2 to follow mouse
+ show zoom_marker1
else:
+ show zoom_marker2
+ zoom data in between 2 zoomMarkers
Notice that ruler will stay at the same xdata either with zoom in
or out.
:param xdata: float - time value of a channel plot
"""
if xdata < self.min_x:
# click on left of plot
self.zoom_marker1_shown = False # reset zoom in
self.zoom_out()
return
if not self.zoom_marker1_shown:
self.ruler.set_visible(False)
self.set_ruler_visibled(self.zoom_marker1, xdata)
self.new_min_x = xdata
self.zoom_marker1_shown = True
@@ -654,6 +644,8 @@ class PlottingWidget(QtWidgets.QScrollArea):
When press on Escape key, hide all rulers and set False for
zoom_marker1_shown on all plotting widgets
Notice: press Escape is the only way to hide ruler and its text.
:param event: QKeyEvent - event to know what key is pressed
"""
if event.key() == QtCore.Qt.Key.Key_Escape:
Loading