summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpazz <patricktotzke@gmail.com>2011-08-02 10:55:00 +0100
committerpazz <patricktotzke@gmail.com>2011-08-02 10:55:00 +0100
commit68757f46ce32bbe116b881b8b68508060f835880 (patch)
treebcd2b60b86a3aa6371b0a39b8858ced0576b7fbd
parentaa4e0ab75925b69bec8b778349a4c2eaf49d76ba (diff)
tag theming complete. issue #20
-rw-r--r--alot/buffer.py5
-rw-r--r--alot/settings.py4
-rw-r--r--alot/widgets.py23
3 files changed, 22 insertions, 10 deletions
diff --git a/alot/buffer.py b/alot/buffer.py
index dde2ff8f..dc35feea 100644
--- a/alot/buffer.py
+++ b/alot/buffer.py
@@ -242,12 +242,13 @@ class TagListBuffer(Buffer):
lines = list()
displayedtags = filter(self.filtfun, self.tags)
for (num, b) in enumerate(displayedtags):
- lines.append(widgets.TagWidget(b))
+ lines.append(urwid.Columns([('fixed', len(b), widgets.TagWidget(b))]))
self.taglist = urwid.ListBox(urwid.SimpleListWalker(lines))
self.body = self.taglist
self.taglist.set_focus(focusposition % len(displayedtags))
def get_selected_tag(self):
- (tagwidget, pos) = self.taglist.get_focus()
+ (cols, pos) = self.taglist.get_focus()
+ tagwidget = cols.get_focus()
return tagwidget.get_tag()
diff --git a/alot/settings.py b/alot/settings.py
index 90a978a8..e4931c96 100644
--- a/alot/settings.py
+++ b/alot/settings.py
@@ -74,7 +74,7 @@ DEFAULTS = {
'tag_focus_bg': 'dark gray',
'tag_focus_fg': 'white',
'tag_bg': 'black',
- 'tag_fg': 'light gray',
+ 'tag_fg': 'brown',
'threadline_authors_bg': 'default',
'threadline_authors_fg': 'dark green',
'threadline_authors_focus_bg': 'dark cyan',
@@ -171,7 +171,7 @@ DEFAULTS = {
'tag_focus_bg': 'g38',
'tag_focus_fg': '#ffa',
'tag_bg': 'default',
- 'tag_fg': 'default',
+ 'tag_fg': 'brown',
'threadline_authors_bg': 'default',
'threadline_authors_fg': '#6d6',
'threadline_authors_focus_bg': 'g58',
diff --git a/alot/widgets.py b/alot/widgets.py
index 3375d931..8a489a51 100644
--- a/alot/widgets.py
+++ b/alot/widgets.py
@@ -31,6 +31,7 @@ class ThreadlineWidget(urwid.AttrMap):
def __init__(self, tid, dbman):
self.dbman = dbman
self.thread = dbman.get_thread(tid)
+ self.tag_widgets = []
self.rebuild()
urwid.AttrMap.__init__(self, self.columns,
'threadline', 'threadline_focus')
@@ -46,10 +47,11 @@ class ThreadlineWidget(urwid.AttrMap):
'threadline_mailcount')
cols.append(('fixed', len(mailcountstring), self.mailcount_w))
- tagsstring = " ".join(self.thread.get_tags())
- self.tags_w = urwid.AttrMap(urwid.Text(tagsstring), 'threadline_tags')
- if tagsstring:
- cols.append(('fixed', len(tagsstring), self.tags_w))
+ tags = self.thread.get_tags()
+ for tag in tags:
+ tw = TagWidget(tag)
+ self.tag_widgets.append(tw)
+ cols.append(('fixed', len(tag), tw))
authors = self.thread.get_authors() or '(None)'
maxlength = config.getint('general', 'authors_maxlength')
@@ -72,13 +74,16 @@ class ThreadlineWidget(urwid.AttrMap):
self.date_w.set_attr_map({None: 'threadline_date_focus'})
self.mailcount_w.set_attr_map({None:
'threadline_mailcount_focus'})
- self.tags_w.set_attr_map({None: 'threadline_tags_focus'})
+ #self.tags_w.set_attr_map({None: 'threadline_tags_focus'})
+ for tw in self.tag_widgets:
+ tw.set_focussed()
self.authors_w.set_attr_map({None: 'threadline_authors_focus'})
self.subject_w.set_attr_map({None: 'threadline_subject_focus'})
else:
self.date_w.set_attr_map({None: 'threadline_date'})
self.mailcount_w.set_attr_map({None: 'threadline_mailcount'})
- self.tags_w.set_attr_map({None: 'threadline_tags'})
+ for tw in self.tag_widgets:
+ tw.set_unfocussed()
self.authors_w.set_attr_map({None: 'threadline_authors'})
self.subject_w.set_attr_map({None: 'threadline_subject'})
return urwid.AttrMap.render(self, size, focus)
@@ -126,6 +131,12 @@ class TagWidget(urwid.AttrMap):
def get_tag(self):
return self.tag
+ def set_focussed(self):
+ self.set_attr_map({None: config.get_tagattr(self.tag, focus=True)})
+
+ def set_unfocussed(self):
+ self.set_attr_map({None: config.get_tagattr(self.tag)})
+
class CompleteEdit(urwid.Edit):
# TODO: defaulttext: visible in darker font, tpe it with tab/enter