manuskript/manuskript/data/links.py
TheJackiMonster cf4e4bc794
Improve linking data changes
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
2022-10-29 19:30:53 +02:00

33 lines
771 B
Python

#!/usr/bin/env python
# --!-- coding: utf8 --!--
from collections.abc import Callable
from enum import Enum, unique
from manuskript.data.unique_id import UniqueID
@unique
class LinkAction(Enum):
DELETE = 0
UPDATE = 1
RELOAD = 2
class Links:
def __init__(self):
self.callbacks = list()
def add(self, callback: Callable[[LinkAction, UniqueID, any], None]):
self.callbacks.append(callback)
def remove(self, callback: Callable[[LinkAction, UniqueID, any], None]):
self.callbacks.remove(callback)
def call(self, action: LinkAction, UID: UniqueID, host: any):
for callback in self.callbacks:
callback(action, UID, host)
if action == LinkAction.DELETE:
self.callbacks.clear()