Allow handing config editing back to Anki after calling add-on action

Allows add-ons to partially manage their own configuration
while still delegating the actual UI to Anki.
This commit is contained in:
Glutanimate 2019-12-21 16:48:05 +01:00
parent bfcc837939
commit 32ef53092f

View File

@ -6,7 +6,7 @@ import json
import re import re
import zipfile import zipfile
from collections import defaultdict from collections import defaultdict
from typing import Any, Callable, Dict from typing import Any, Callable, Dict, Optional
from zipfile import ZipFile from zipfile import ZipFile
import jsonschema import jsonschema
@ -358,7 +358,7 @@ and have been disabled: %(found)s") % dict(name=self.addonName(dir), found=addon
# Add-on Config # Add-on Config
###################################################################### ######################################################################
_configButtonActions: Dict[str, Callable[[], None]] = {} _configButtonActions: Dict[str, Callable[[], Optional[bool]]] = {}
_configUpdatedActions: Dict[str, Callable[[Any], None]] = {} _configUpdatedActions: Dict[str, Callable[[Any], None]] = {}
def addonConfigDefaults(self, dir): def addonConfigDefaults(self, dir):
@ -640,8 +640,9 @@ class AddonsDialog(QDialog):
# does add-on manage its own config? # does add-on manage its own config?
act = self.mgr.configAction(addon) act = self.mgr.configAction(addon)
if act: if act:
act() ret = act()
return if ret is not False:
return
conf = self.mgr.getConfig(addon) conf = self.mgr.getConfig(addon)
if conf is None: if conf is None: