[core/theme] Add inline named color support

Add named colors that can be specified directly in the "colors" array
within a theme.

fixes #556
This commit is contained in:
Tobias Witek 2020-02-19 21:39:44 +01:00
parent 5134ce3b5b
commit 0751b7c084
2 changed files with 16 additions and 5 deletions

View file

@ -186,9 +186,14 @@ class Theme(object):
result[key] = colors[field][key]
return result
def color(self, color_name, default=None):
return self._colorset.get(color_name, default)
def _load_colors(self, name):
"""Load colors for a theme"""
try:
if isinstance(name, dict):
return name
if name.lower() == "wal":
return self._load_wal_colors()
except Exception as err:
@ -285,7 +290,7 @@ class Theme(object):
if isinstance(value, (dict, list)):
return value
return self._colorset.get(value, value)
return self.color(value, value)
# algorithm copied from
# http://blog.impressiver.com/post/31434674390/deep-merge-multiple-python-dicts