diff options
author | pazz <patricktotzke@gmail.com> | 2011-08-02 10:55:00 +0100 |
---|---|---|
committer | pazz <patricktotzke@gmail.com> | 2011-08-02 10:55:00 +0100 |
commit | 68757f46ce32bbe116b881b8b68508060f835880 (patch) | |
tree | bcd2b60b86a3aa6371b0a39b8858ced0576b7fbd | |
parent | aa4e0ab75925b69bec8b778349a4c2eaf49d76ba (diff) |
tag theming complete. issue #20
-rw-r--r-- | alot/buffer.py | 5 | ||||
-rw-r--r-- | alot/settings.py | 4 | ||||
-rw-r--r-- | alot/widgets.py | 23 |
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 |