Philipp Hörist pushed to branch master at gajim / gajim
Commits:
afb5a944 by Philipp Hörist at 2026-01-22T18:54:31+01:00
fix: Settings: Allow to scale font correctly
- Use same lower, upper, step values as Gnome Tweaks Tool
- Add a new dataclass SpinRange and allow to pass the shown digits
- - - - -
3 changed files:
- gajim/gtk/main.py
- gajim/gtk/preference/app.py
- gajim/gtk/settings.py
Changes:
=====================================
gajim/gtk/main.py
=====================================
@@ -539,12 +539,12 @@ def _on_app_font_size_action(
app_font_size = app.settings.get("app_font_size")
new_app_font_size = app_font_size
if action_name == "increase-app-font-size":
- new_app_font_size = app_font_size + 0.125
+ new_app_font_size = app_font_size + 0.10
elif action_name == "decrease-app-font-size":
- new_app_font_size = app_font_size - 0.125
+ new_app_font_size = app_font_size - 0.10
# Clamp font size
- new_app_font_size = max(min(1.5, new_app_font_size), 1.0)
+ new_app_font_size = max(min(3.0, new_app_font_size), 0.5)
if new_app_font_size == app_font_size:
return
=====================================
gajim/gtk/preference/app.py
=====================================
@@ -34,6 +34,7 @@
from gajim.gtk.settings import DropDownSetting
from gajim.gtk.settings import GajimPreferencePage
from gajim.gtk.settings import GajimPreferencesGroup
+from gajim.gtk.settings import SpinRange
from gajim.gtk.sidebar_switcher import SideBarMenuItem
from gajim.gtk.util.misc import open_file
from gajim.gtk.util.window import get_app_window
@@ -648,7 +649,7 @@ def __init__(self) -> None:
_("User Interface Font Size"),
SettingType.CONFIG,
"app_font_size",
- props={"range_": (1.0, 1.5, 0.125)},
+ props={"range_": SpinRange(0.5, 3.0, 0.10, 2)},
callback=self._on_app_font_size_changed,
),
Setting(
=====================================
gajim/gtk/settings.py
=====================================
@@ -12,6 +12,7 @@
import logging
from collections.abc import Callable
+from dataclasses import dataclass
from pathlib import Path
from gi.repository import Adw
@@ -608,18 +609,28 @@ def _on_color_set(self, color_button:
Gtk.ColorDialogButton, *args: Any) -> None
app.css_config.refresh()
+@dataclass
+class SpinRange:
+ lower: float
+ upper: float
+ step: float
+ digits: int = 3
+
+
class SpinSetting(GenericSetting):
def __init__(
- self, *args: Any, range_: tuple[float, float, float], **kwargs: Any
+ self, *args: Any, range_: tuple[float, float, float] | SpinRange,
**kwargs: Any
) -> None:
GenericSetting.__init__(self, *args, **kwargs)
- lower, upper, step = range_
+ if not isinstance(range_, SpinRange):
+ range_ = SpinRange(*range_)
+
adjustment = Gtk.Adjustment(
value=0,
- lower=lower,
- upper=upper,
- step_increment=step,
+ lower=range_.lower,
+ upper=range_.upper,
+ step_increment=range_.step,
page_increment=10,
page_size=0,
)
@@ -632,12 +643,10 @@ def __init__(
update_policy=Gtk.SpinButtonUpdatePolicy.IF_VALID,
valign=Gtk.Align.CENTER,
width_chars=5,
+ digits=range_.digits,
)
assert isinstance(self.setting_value, int | float | str)
- if isinstance(self.setting_value, float):
- self.spin.set_digits(3)
-
self.spin.set_value(float(self.setting_value))
self._connect(self.spin, "notify::value", self._on_value_change)
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/afb5a944b69e90e4615b3c1c6fd3ffb7b6d28e2d
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/afb5a944b69e90e4615b3c1c6fd3ffb7b6d28e2d
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]