refactor(src/window): migrate control center windows to AppletWindow and simplify UI

Replace Window base with AppletWindow for consistency, switch to FlatScale, and streamline mouse capture handling.
This commit is contained in:
sankalp committed 2026-06-17 01:45:43 +05:45
1 parent b8d3e74afd
commit f78534dce0
11 files changed
+168 -199

No files matched your search

+11 -26
View File
@@ -6,10 +6,9 @@ from fabric.widgets.button import Button
from fabric.widgets.entry import Entry
from fabric.widgets.label import Label
from fabric.widgets.scrolledwindow import ScrolledWindow
from fabric.widgets.wayland import WaylandWindow as Window
from services.todo import get_todo_service
from shared.window.mousecapture import MouseCapture
from shared.window.applet_window import AppletWindow
from utils.utils import svg_file
@@ -224,18 +223,20 @@ class TodoItem(Box):
self.date_label.set_label(date_text)
class TodoListWidget(Window):
"""Main todo list widget window"""
class TodoListWidget(AppletWindow):
"""Main todo list window"""
def __init__(self, **kwargs):
def __init__(self, parent=None, pointing_to=None, **kwargs):
super().__init__(
parent=parent,
pointing_to=pointing_to,
layer="top",
title="modus-todo",
anchor="top right",
margin="2px 10px 0px 0px",
exclusivity="auto",
keyboard_mode="on-demand",
name="todo-list-window",
visible=False, # Back to hidden by default
name="todo-list-menu",
visible=False,
**kwargs,
)
@@ -416,13 +417,8 @@ class TodoListWidget(Window):
def hide_todo_list(self, *_):
"""Hide the todo list"""
if hasattr(self, "_mousecapture_parent"):
self._mousecapture_parent.toggle_mousecapture()
self.set_visible(False)
def _init_mousecapture(self, mousecapture):
"""Initialize mousecapture parent reference"""
self._mousecapture_parent = mousecapture
self.hide()
self.hide()
def destroy(self):
"""Clean up when destroyed"""
@@ -430,14 +426,3 @@ class TodoListWidget(Window):
get_todo_service().remove_callback(self._on_todo_event)
super().destroy()
class TodoListCapture(MouseCapture):
"""MouseCapture wrapper for the todo list"""
def __init__(self, **kwargs):
super().__init__(
layer="top",
child_window=TodoListWidget(),
**kwargs,
)