refactor(services): enhance TodoService with callbacks, UUID IDs, and UTF‑8 file handling

This commit is contained in:
sankalp committed 2026-07-12 09:33:41 +05:45
1 parent 51283125ef
commit afd826d0c0
6 files changed
+440 -44

No files matched your search

+2 -2
View File
@@ -24,12 +24,12 @@ class DismissLayer(Window):
class AppletWindow(PopupWindow):
_active_popup = None
def __init__(self, **kwargs):
def __init__(self, edge_margin: int = 0, **kwargs):
self._is_open = False
self._hide_timeout_id = None
self.dismiss_layer = DismissLayer(on_dismiss=self.toggle)
kwargs["keyboard_mode"] = "on-demand"
super().__init__(**kwargs)
super().__init__(edge_margin=edge_margin, **kwargs)
self.add_keybinding("escape", lambda *_: self.toggle())
def toggle(self, *_):
+6 -6
View File
@@ -2,8 +2,6 @@ from fabric.utils import Gdk, GLib, Gtk, logger
from fabric.widgets.wayland import WaylandWindow
from gi.repository import GtkLayerShell
EDGE_MARGIN = 0
def _get_monitor_geometry(widget: Gtk.Widget) -> tuple[int, int]:
screen = Gdk.Screen.get_default()
@@ -24,6 +22,7 @@ class PopupWindow(WaylandWindow):
parent: WaylandWindow | None = None,
pointing_to: Gtk.Widget | None = None,
margin: tuple[int, ...] | str = "0px 0px 0px 0px",
edge_margin: int = 0,
**kwargs,
):
super().__init__(**kwargs)
@@ -33,6 +32,7 @@ class PopupWindow(WaylandWindow):
self._pointing_widget = pointing_to
self._base_margin = self.extract_margin(margin)
self.margin = self._base_margin.values()
self.edge_margin = edge_margin
self.connect("notify::visible", self.do_update_handlers)
def get_coords_for_widget(self, widget: Gtk.Widget) -> tuple[int, int]:
@@ -163,15 +163,15 @@ class PopupWindow(WaylandWindow):
raw_margin = round((bar_left + coords_centered[0]) - (width / 2))
else:
raw_margin = round((parent_x_margin + coords_centered[0]) - (width / 2))
min_margin = EDGE_MARGIN
max_margin = monitor_width - width - EDGE_MARGIN
min_margin = self.edge_margin
max_margin = monitor_width - width - self.edge_margin
clamped = max(min_margin, min(raw_margin, max_margin))
position_margins = (0, 0, 0, clamped)
else:
raw_margin = round((parent_y_margin + coords_centered[1]) - (height / 2))
monitor_height = Gdk.Screen.get_default().get_height()
min_margin = EDGE_MARGIN
max_margin = monitor_height - height - EDGE_MARGIN
min_margin = self.edge_margin
max_margin = monitor_height - height - self.edge_margin
clamped = max(min_margin, min(raw_margin, max_margin))
position_margins = (clamped, 0, 0, 0)