Commit 8fadc4b5 authored by Jacek Sowiński's avatar Jacek Sowiński

Use 256-color map in column-ui

parent 78850e9f
......@@ -34,3 +34,17 @@ COLOR_MAP = {
'light-cyan': 'light cyan',
'white': 'white',
}
def color_map256():
"""
Returns dict where topydo colorscheme config values are linked to values
supported by urwid. 16 standard color names and 256-color indexes are
supported.
"""
color_map = dict()
for i in range(256):
color_map[str(i)] = 'h' + str(i)
color_map.update(COLOR_MAP)
return color_map
......@@ -15,7 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from topydo.lib.Config import config
from topydo.ui.Colors import COLOR_MAP
from topydo.ui.Colors import color_map256
import urwid
......@@ -56,19 +56,20 @@ class TodoWidget(urwid.WidgetWrap):
def _markup(self, p_todo, p_focus):
priority_colors = config().priority_colors()
color_map = color_map256()
try:
# retrieve the assigned value in the config file
fg_color = priority_colors[p_todo.priority()]
# convert to a color that urwid understands
fg_color = COLOR_MAP[fg_color]
fg_color = color_map[fg_color]
except KeyError:
fg_color = 'black' if p_focus else 'default'
bg_color = 'light gray' if p_focus else 'default'
return urwid.AttrSpec(fg_color, bg_color, 16)
return urwid.AttrSpec(fg_color, bg_color, 256)
def keypress(self, p_size, p_key):
"""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment