Plugin permission additions

This commit is contained in:
2022-07-07 12:51:51 -05:00
parent 8f64066049
commit bcc04dda3c
9 changed files with 99 additions and 17 deletions

View File

@@ -3,7 +3,7 @@ Copy the example and rename it to your desired name. Plugins define a ui target
Plugins must have a run method defined; though, you do not need to necessarily do anything within it. The run method implies that the passed in event system or other data is ready for the plugin to use.
### Manifest
### Manifest Example (All are required.)
```
class Manifest:
path: str = os.path.dirname(os.path.realpath(__file__))
@@ -23,8 +23,11 @@ class Manifest:
```
permissions: {} = {
'ui_target': "plugin_control_list",
'ui_target_id': "<some other Gtk Glade ID>" # Only needed if using "other" in "ui_target". See below for predefined "ui_target" options...
'pass_fm_events': "true" # If empty or undefined will be ignored.
'ui_target_id': "<some other Gtk Glade ID>" # Only needed if using "other" in "ui_target". See below for predefined "ui_target" options...
'pass_fm_events': "true" # If empty or not present will be ignored.
'bind_keys': [f"{name}||send_message:<Control>f"],
f"{name}||do_save:<Control>s"] # Bind keys with method and key pare using list. Must pass "name" like shown with delimiter to its right.
}
```

View File

@@ -32,8 +32,8 @@ class Manifest:
support: str = ""
permissions: {} = {
'ui_target': "plugin_control_list",
'pass_fm_events': "true"
'pass_fm_events': "true",
'bind_keys': [f"{name}||send_message:<Control>f"]
}
@@ -58,6 +58,7 @@ class Plugin(Manifest):
def send_message(self, widget=None, eve=None):
message = "Hello, World!"
print("here")
self._event_system.push_gui_event([self.name, "display_message", ("warning", message, None)])
@@ -68,13 +69,17 @@ class Plugin(Manifest):
event = self._event_system.read_module_event()
if event:
try:
if event[0] is self.name:
if event[0] == self.name:
target_id, method_target, data = self._event_system.consume_module_event()
if not method_target:
self._event_message = data
else:
method = getattr(self.__class__, f"{method_target}")
data = method(*(self, *parameters))
if data:
data = method(*(self, *data))
else:
method(*(self,))
except Exception as e:
print("ewww here")
print(repr(e))

View File

@@ -63,14 +63,17 @@ class Plugin(Manifest):
event = self._fm_event_system.read_module_event()
if event:
try:
if event[0] is self.name:
if event[0] == self.name:
target_id, method_target, data = self._fm_event_system.consume_module_event()
if not method_target:
self._fm_event_message = data
else:
method = getattr(self.__class__, f"{method_target}")
data = method(*(self, *parameters))
if data:
data = method(*(self, *data))
else:
method(*(self,))
except Exception as e:
print(repr(e))