Skip to content

Commit

Permalink
Fine tuning
Browse files Browse the repository at this point in the history
  • Loading branch information
MattHag committed May 27, 2024
1 parent a6a5514 commit 3d74693
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 12 deletions.
7 changes: 6 additions & 1 deletion lib/solaar/ui/diversion_rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -1212,6 +1212,11 @@ def show_window(model):
save_rules_func=_DIV.rule_storage.save_config,
)
rules_view = RulesView(COMPONENT_UI, UnsupportedRuleComponentUI)
_diversion_dialog = rule_window.DiversionDialog(rules_model, rules_view, _create_model, _populate_model)
_diversion_dialog = rule_window.DiversionDialog(
rules_model,
rules_view,
convert_to_model_func=_create_model,
populate_model_func=_populate_model,
)
update_devices()
_diversion_dialog.run()
10 changes: 6 additions & 4 deletions lib/solaar/ui/rules/action_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from typing import Any
from typing import Callable
from typing import List

from gi.repository import Gdk
from gi.repository import Gtk
Expand Down Expand Up @@ -49,10 +50,11 @@ def allowed_actions(m: Gtk.TreeStore, it: Gtk.TreeIter) -> AllowedActions:
class ActionMenu:
"""Handles right-click context menu and keyboard shortcuts."""

def __init__(self, tree_view: Gtk.TreeView, on_update_cb: Callable, populate_model_cb: Callable):
def __init__(self, tree_view: Gtk.TreeView, on_update_func: Callable, populate_model_func: Callable):
self.tree_view = tree_view
self._on_update = on_update_cb
self._populate_model = populate_model_cb
self._on_update = on_update_func
self._populate_model = populate_model_func

self._clipboard = None

def create_menu_event_key_pressed(self, window: Gtk.Window, v: Gtk.TreeView, e: Gdk.EventKey, save_callback: Callable):
Expand Down Expand Up @@ -233,7 +235,7 @@ def build(spec):
menu_insert.show_all()
return menu_insert

def _get_insert_menus(self, m: Gtk.TreeStore, it: Gtk.TreeIter, enabled_actions: AllowedActions) -> list:
def _get_insert_menus(self, m: Gtk.TreeStore, it: Gtk.TreeIter, enabled_actions: AllowedActions) -> List[Gtk.MenuItem]:
items = []
if enabled_actions.insert:
ins = self.create_insert_menu(m, it)
Expand Down
10 changes: 4 additions & 6 deletions lib/solaar/ui/rules/rule_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,13 @@ class DiversionDialog:
This class is responsible for handling events and updating the view.
"""

def __init__(self, model, view, create_model_cb: Callable, populate_model_cb: Callable):
def __init__(self, model, view, convert_to_model_func: Callable, populate_model_func: Callable):
self._model = model
self._view = view
self._convert_to_model = convert_to_model_func

self._model.set_state_change_callback(self._view.set_save_discard_buttons_sensitive)

# TODO model handling
self._create_model = create_model_cb

# Init UI
event_handler = EventHandler(
handle_event_key_pressed=self.handle_event_key_pressed,
Expand All @@ -51,14 +49,14 @@ def __init__(self, model, view, create_model_cb: Callable, populate_model_cb: Ca
self.handle_update_of_rule_view(self._model.rules)

self.action_menu = ActionMenu(
self._view.tree_view, on_update_cb=self.handle_view_update, populate_model_cb=populate_model_cb
self._view.tree_view, on_update_func=self.handle_view_update, populate_model_func=populate_model_func
)

def handle_update_of_rule_view(self, rules):
"""Updates view with given rules."""
self._view.clear_selected_rule_edit_panel()

tree_model = self._create_model(rules)
tree_model = self._convert_to_model(rules)
self._view.update_tree_view(tree_model)

def handle_view_update(self):
Expand Down
1 change: 0 additions & 1 deletion lib/solaar/ui/rules/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ def __init__(

self.tree_view = None
self.selected_rule_edit_panel = None

self.ui = None

def init_ui(self, event_handler: EventHandler, on_update: Callable):
Expand Down

0 comments on commit 3d74693

Please sign in to comment.