From 7c447ed7c04aaa05e9e973841d5f888452046c5c Mon Sep 17 00:00:00 2001 From: linuswck Date: Tue, 28 Jan 2025 16:49:56 +0800 Subject: [PATCH] pglive: Fix range_width bugs at boundary condition --- patches/pg_live_range_width.patch | 34 +++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/patches/pg_live_range_width.patch b/patches/pg_live_range_width.patch index 49fd2f8..084b12d 100644 --- a/patches/pg_live_range_width.patch +++ b/patches/pg_live_range_width.patch @@ -1,5 +1,5 @@ diff --git a/pglive/sources/live_axis_range.py b/pglive/sources/live_axis_range.py -index cd3a7fc..102a48f 100755 +index cd3a7fc..276c7b6 100755 --- a/pglive/sources/live_axis_range.py +++ b/pglive/sources/live_axis_range.py @@ -13,6 +13,10 @@ class LiveAxisRange: @@ -24,7 +24,13 @@ index cd3a7fc..102a48f 100755 self.x_range: Dict[str, List[float]] = {} self.y_range: Dict[str, List[float]] = {} self.final_x_range = [0.0, 0.0] -@@ -70,6 +78,7 @@ class LiveAxisRange: +@@ -65,11 +73,12 @@ class LiveAxisRange: + final_range[0] = x_range[0] + if final_range[1] < x_range[1]: + final_range[1] = x_range[1] +- if final_range[0] == final_range[1]: ++ if final_range[0] == final_range[1] and self.x_range_width is not None: + # Pyqtgraph ViewBox.setRange doesn't like same value for min and max, # therefore in that case we must set some range final_range[0] -= 0.4 final_range[1] += 0.4 @@ -32,7 +38,23 @@ index cd3a7fc..102a48f 100755 if self.final_x_range != final_range: self.final_x_range = final_range return self.final_x_range -@@ -137,6 +146,7 @@ class LiveAxisRange: +@@ -88,7 +97,7 @@ class LiveAxisRange: + final_range[1] = x_range[1] + if final_range is None: + final_range = [0, 0] +- if final_range[0] == final_range[1]: ++ if final_range[0] == final_range[1] and self.x_range_width is None: + # Pyqtgraph ViewBox.setRange doesn't like same value for min and max, + # therefore in that case we must set some range + final_range[0] -= 0.4 +@@ -132,11 +141,13 @@ class LiveAxisRange: + final_range[0] = y_range[0] + if final_range[1] < y_range[1]: + final_range[1] = y_range[1] +- if final_range[0] == final_range[1]: ++ ++ if final_range[0] == final_range[1] and self.y_range_width is None: + # Pyqtgraph ViewBox.setRange doesn't like same value for min and max, # therefore in that case we must set some range final_range[0] -= 0.4 final_range[1] += 0.4 @@ -40,7 +62,7 @@ index cd3a7fc..102a48f 100755 if self.final_y_range != final_range: self.final_y_range = final_range return self.final_y_range -@@ -199,6 +209,24 @@ class LiveAxisRange: +@@ -199,6 +210,24 @@ class LiveAxisRange: else: return None @@ -56,9 +78,9 @@ index cd3a7fc..102a48f 100755 + bound_width = abs(bound[0] - bound[1]) + if bound_width < final_range_width: + final_range = bound -+ if final_range[0] < bound[0]: ++ if final_range[0] <= bound[0]: + final_range = [bound[0], bound[0] + final_range_width] -+ elif final_range[1] > bound[1]: ++ elif final_range[1] >= bound[1]: + final_range = [bound[0] - final_range_width, bound[1]] + return final_range +