Start implementing decorator
This commit is contained in:
parent
d4df78b75f
commit
dcc3993091
@ -40,23 +40,13 @@ class Command(QObject):
|
||||
# we should probably have some kind of typing / argument casting for args
|
||||
# this might be combined with help texts or so as well
|
||||
|
||||
nargs = 0
|
||||
name = None
|
||||
mainname = None
|
||||
signal = None
|
||||
count = False
|
||||
split_args = True
|
||||
signal = pyqtSignal(tuple)
|
||||
hide = False
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, name, split_args, hide, nargs, handler):
|
||||
super().__init__()
|
||||
if self.name is None:
|
||||
self.name = self.__class__.__name__.lower()
|
||||
if isinstance(self.name, str):
|
||||
self.mainname = self.name
|
||||
else:
|
||||
self.mainname = self.name[0]
|
||||
self.name = name
|
||||
self.split_args = split_args
|
||||
self.hide = hide
|
||||
self.nargs = nargs
|
||||
self.handler = handler
|
||||
|
||||
def check(self, args):
|
||||
"""Check if the argument count is valid.
|
||||
|
@ -47,6 +47,23 @@ def register_all():
|
||||
cmd_dict[n] = obj
|
||||
|
||||
|
||||
def register_cmd(func, name=None, split_args=True, hide=False):
|
||||
"""Decorator to register a new command handler."""
|
||||
global cmd_dict
|
||||
names = []
|
||||
if name is None:
|
||||
name = func.__name__.lower()
|
||||
if isinstance(name, str):
|
||||
mainname = name
|
||||
names.append(name)
|
||||
else:
|
||||
mainname = name[0]
|
||||
names += name
|
||||
cmd = Command(mainname, split_args, hide, handler=func)
|
||||
for name in names:
|
||||
cmd_dict[name] = cmd
|
||||
|
||||
|
||||
class SearchParser(QObject):
|
||||
|
||||
"""Parse qutebrowser searches.
|
||||
|
Loading…
Reference in New Issue
Block a user