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]

Reply via email to