Fix label snap on line highlight bug
							parent
							
								
									cf2f001bcc
								
							
						
					
					
						commit
						61198818dc
					
				| 
						 | 
				
			
			@ -377,15 +377,16 @@ class Cursor(pg.GraphicsObject):
 | 
			
		|||
        # px perfect...
 | 
			
		||||
        line_offset = self._lw / 2
 | 
			
		||||
 | 
			
		||||
        if iy != last_iy and self._y_label_update:
 | 
			
		||||
        if iy != last_iy:
 | 
			
		||||
 | 
			
		||||
            # update y-range items
 | 
			
		||||
            self.graphics[plot]['hl'].setY(iy + line_offset)
 | 
			
		||||
 | 
			
		||||
            self.graphics[self.active_plot]['yl'].update_label(
 | 
			
		||||
                abs_pos=plot.mapFromView(QPointF(ix, iy + line_offset)),
 | 
			
		||||
                value=iy
 | 
			
		||||
            )
 | 
			
		||||
            if self._y_label_update:
 | 
			
		||||
                self.graphics[self.active_plot]['yl'].update_label(
 | 
			
		||||
                    abs_pos=plot.mapFromView(QPointF(ix, iy + line_offset)),
 | 
			
		||||
                    value=iy
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
            # update all trackers
 | 
			
		||||
            for item in self._trackers:
 | 
			
		||||
| 
						 | 
				
			
			@ -425,15 +426,22 @@ class Cursor(pg.GraphicsObject):
 | 
			
		|||
        except AttributeError:
 | 
			
		||||
            return self.plots[0].boundingRect()
 | 
			
		||||
 | 
			
		||||
    def show_xhair(self) -> None:
 | 
			
		||||
    def show_xhair(
 | 
			
		||||
        self,
 | 
			
		||||
        y_label_level: float = None,
 | 
			
		||||
    ) -> None:
 | 
			
		||||
        g = self.graphics[self.active_plot]
 | 
			
		||||
        # show horiz line and y-label
 | 
			
		||||
        g['hl'].show()
 | 
			
		||||
        g['vl'].show()
 | 
			
		||||
 | 
			
		||||
        self._y_label_update = True
 | 
			
		||||
        yl = g['yl']
 | 
			
		||||
        # yl.fg_color = pg.mkColor(hcolor('black'))
 | 
			
		||||
        # yl.bg_color = pg.mkColor(hcolor(self.label_color))
 | 
			
		||||
        if y_label_level:
 | 
			
		||||
            yl.update_from_data(0, y_label_level, _save_last=False)
 | 
			
		||||
 | 
			
		||||
        yl.show()
 | 
			
		||||
 | 
			
		||||
    def hide_xhair(
 | 
			
		||||
| 
						 | 
				
			
			@ -447,12 +455,15 @@ class Cursor(pg.GraphicsObject):
 | 
			
		|||
        g['hl'].hide()
 | 
			
		||||
        g['vl'].hide()
 | 
			
		||||
 | 
			
		||||
        # only disable cursor y-label updates
 | 
			
		||||
        # if we're highlighting a line
 | 
			
		||||
        yl = g['yl']
 | 
			
		||||
 | 
			
		||||
        if hide_label:
 | 
			
		||||
            yl.hide()
 | 
			
		||||
 | 
			
		||||
        elif y_label_level:
 | 
			
		||||
            yl.update_from_data(0, y_label_level)
 | 
			
		||||
            yl.update_from_data(0, y_label_level, _save_last=False)
 | 
			
		||||
 | 
			
		||||
        if fg_color is not None:
 | 
			
		||||
            yl.fg_color = pg.mkColor(hcolor(fg_color))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -320,9 +320,10 @@ class LevelLine(pg.InfiniteLine):
 | 
			
		|||
 | 
			
		||||
                self.currentPen = self.hoverPen
 | 
			
		||||
 | 
			
		||||
                # only disable cursor y-label updates
 | 
			
		||||
                # if we're highlighting a line
 | 
			
		||||
                cur._y_label_update = False
 | 
			
		||||
                if self not in cur._trackers:
 | 
			
		||||
                    # only disable cursor y-label updates
 | 
			
		||||
                    # if we're highlighting a line
 | 
			
		||||
                    cur._y_label_update = False
 | 
			
		||||
 | 
			
		||||
            # add us to cursor state
 | 
			
		||||
            cur.add_hovered(self)
 | 
			
		||||
| 
						 | 
				
			
			@ -348,7 +349,7 @@ class LevelLine(pg.InfiniteLine):
 | 
			
		|||
            cur._hovered.remove(self)
 | 
			
		||||
 | 
			
		||||
            if self not in cur._trackers:
 | 
			
		||||
                cur.show_xhair()
 | 
			
		||||
                cur.show_xhair(y_label_level=self.value())
 | 
			
		||||
 | 
			
		||||
            if not self._always_show_labels:
 | 
			
		||||
                for at, label in self._labels:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue