Gate `size_to_values()` on macOS in `_axes.py`
NOTE, this reversion was discovered as needed by @goodboy after extensively manually testing the new zoom-by-font-size feats introduced alongside macOS support. Use class-body `if _friggin_macos:` branching to conditionally define `size_to_values()` for both `PriceAxis` and `DynamicDateAxis` — macOS gets the new `_updateWidth()`/`_updateHeight()` + geometry recalc path, other platforms fall back to the original `setWidth()`/`setHeight()` calls. Deats, - add `platform` import and module-level `_friggin_macos: bool` flag. - `PriceAxis.size_to_values()`: macOS branch calls `_updateWidth()` + `updateGeometry()`; else branch uses `self.setWidth(self.typical_br.width())`. - `DynamicDateAxis.size_to_values()`: macOS branch calls `_updateHeight()` + `updateGeometry()`; else uses `self.setHeight(self.typical_br.height() + 1)`. - reorder imports: `platform` before `typing`. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-codeaxes_w_zoom_refinery
parent
f9979956a0
commit
efc98bdf4c
|
|
@ -20,8 +20,9 @@ Chart axes graphics and behavior.
|
||||||
"""
|
"""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from typing import Callable
|
|
||||||
from math import floor
|
from math import floor
|
||||||
|
import platform
|
||||||
|
from typing import Callable
|
||||||
|
|
||||||
import polars as pl
|
import polars as pl
|
||||||
import pyqtgraph as pg
|
import pyqtgraph as pg
|
||||||
|
|
@ -42,6 +43,7 @@ from ._style import DpiAwareFont, hcolor, _font
|
||||||
from ._interaction import ChartView
|
from ._interaction import ChartView
|
||||||
from ._dataviz import Viz
|
from ._dataviz import Viz
|
||||||
|
|
||||||
|
_friggin_macos: bool = platform.system() == 'Darwin'
|
||||||
_axis_pen = pg.mkPen(hcolor('bracket'))
|
_axis_pen = pg.mkPen(hcolor('bracket'))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -172,6 +174,7 @@ class Axis(pg.AxisItem):
|
||||||
text_offset = None
|
text_offset = None
|
||||||
if self.orientation in ('bottom',):
|
if self.orientation in ('bottom',):
|
||||||
text_offset = floor(0.25 * font_size)
|
text_offset = floor(0.25 * font_size)
|
||||||
|
|
||||||
elif self.orientation in ('left', 'right'):
|
elif self.orientation in ('left', 'right'):
|
||||||
text_offset = floor(font_size / 2)
|
text_offset = floor(font_size / 2)
|
||||||
|
|
||||||
|
|
@ -293,6 +296,7 @@ class PriceAxis(Axis):
|
||||||
) -> None:
|
) -> None:
|
||||||
self._min_tick = size
|
self._min_tick = size
|
||||||
|
|
||||||
|
if _friggin_macos:
|
||||||
def size_to_values(self) -> None:
|
def size_to_values(self) -> None:
|
||||||
# Call PyQtGraph's internal width update mechanism
|
# Call PyQtGraph's internal width update mechanism
|
||||||
# This respects autoExpandTextSpace and updates min/max constraints
|
# This respects autoExpandTextSpace and updates min/max constraints
|
||||||
|
|
@ -303,6 +307,12 @@ class PriceAxis(Axis):
|
||||||
if self.pi and hasattr(self.pi, 'updateGeometry'):
|
if self.pi and hasattr(self.pi, 'updateGeometry'):
|
||||||
self.pi.updateGeometry()
|
self.pi.updateGeometry()
|
||||||
|
|
||||||
|
else:
|
||||||
|
def size_to_values(self) -> None:
|
||||||
|
# XXX, old code!
|
||||||
|
self.setWidth(self.typical_br.width())
|
||||||
|
|
||||||
|
|
||||||
# XXX: drop for now since it just eats up h space
|
# XXX: drop for now since it just eats up h space
|
||||||
|
|
||||||
def tickStrings(
|
def tickStrings(
|
||||||
|
|
@ -344,6 +354,7 @@ class DynamicDateAxis(Axis):
|
||||||
1: '%H:%M:%S',
|
1: '%H:%M:%S',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _friggin_macos:
|
||||||
def size_to_values(self) -> None:
|
def size_to_values(self) -> None:
|
||||||
# Call PyQtGraph's internal height update mechanism
|
# Call PyQtGraph's internal height update mechanism
|
||||||
# This respects autoExpandTextSpace and updates min/max constraints
|
# This respects autoExpandTextSpace and updates min/max constraints
|
||||||
|
|
@ -354,6 +365,11 @@ class DynamicDateAxis(Axis):
|
||||||
if self.pi and hasattr(self.pi, 'updateGeometry'):
|
if self.pi and hasattr(self.pi, 'updateGeometry'):
|
||||||
self.pi.updateGeometry()
|
self.pi.updateGeometry()
|
||||||
|
|
||||||
|
else:
|
||||||
|
def size_to_values(self) -> None:
|
||||||
|
# XXX, old code!
|
||||||
|
self.setHeight(self.typical_br.height() + 1)
|
||||||
|
|
||||||
def _indexes_to_timestrs(
|
def _indexes_to_timestrs(
|
||||||
self,
|
self,
|
||||||
indexes: list[int],
|
indexes: list[int],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue