Skip to content

Commit

Permalink
Merge branch 'main' into only-one-cmd
Browse files Browse the repository at this point in the history
  • Loading branch information
tlambert03 committed Jul 11, 2022
2 parents 9d9c427 + c2dc214 commit 0a01d17
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 7 deletions.
19 changes: 17 additions & 2 deletions src/app_model/registries/_menus_reg.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
from __future__ import annotations

from typing import Callable, Dict, Final, Iterator, List, Optional, Sequence, Set, Tuple
from typing import (
Any,
Callable,
Dict,
Final,
Iterator,
List,
Optional,
Sequence,
Set,
Tuple,
)

from psygnal import Signal

Expand Down Expand Up @@ -39,7 +50,11 @@ def append_menu_items(
menu_list = self._menu_items.setdefault(menu_id, [])
menu_list.append(item)
changed_ids.add(menu_id)
disposers.append(lambda: menu_list.remove(item))

def _remove(lst: list = menu_list, _item: Any = item) -> None:
lst.remove(_item)

disposers.append(_remove)

def _dispose() -> None:
for disposer in disposers:
Expand Down
12 changes: 7 additions & 5 deletions src/app_model/registries/_register.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,11 +223,13 @@ def _register_action_obj(
# keybinding
for keyb in action.keybindings or ():
if action.enablement is not None:
_keyb = keyb.copy()
if _keyb.when is None:
_keyb.when = action.enablement
else:
_keyb.when = action.enablement | _keyb.when
kwargs = keyb.dict()
kwargs["when"] = (
action.enablement
if keyb.when is None
else action.enablement | keyb.when
)
_keyb = type(keyb)(**kwargs)
else:
_keyb = keyb
if _d := app.keybindings.register_keybinding_rule(action.id, _keyb):
Expand Down
1 change: 1 addition & 0 deletions src/app_model/types/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ class _StrictModel(BaseModel):

class Config:
extra = Extra.forbid
frozen = True

0 comments on commit 0a01d17

Please sign in to comment.