summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpazz <patricktotzke@gmail.com>2011-07-31 18:32:59 +0100
committerpazz <patricktotzke@gmail.com>2011-07-31 18:32:59 +0100
commitf6bc488a197709d476b057ace3b1149d79b5a873 (patch)
tree7f5afc7e4d4d64025dd19172c4bf4995d94221f3
parent506a3ce7d782a177b9946235555f877cbd915e74 (diff)
notification priorities. issue #39
-rw-r--r--alot/settings.py60
-rw-r--r--alot/ui.py39
2 files changed, 57 insertions, 42 deletions
diff --git a/alot/settings.py b/alot/settings.py
index 7542b075..65e4a3a1 100644
--- a/alot/settings.py
+++ b/alot/settings.py
@@ -56,16 +56,20 @@ DEFAULTS = {
'message_body_fg': 'light gray',
'message_header_bg': 'dark gray',
'message_header_fg': 'white',
- 'message_header_key_fg': 'white',
'message_header_key_bg': 'dark gray',
- 'message_header_value_fg': 'light gray',
+ 'message_header_key_fg': 'white',
'message_header_value_bg': 'dark gray',
+ 'message_header_value_fg': 'light gray',
'messagesummary_even_bg': 'light blue',
'messagesummary_even_fg': 'white',
'messagesummary_focus_bg': 'dark cyan',
'messagesummary_focus_fg': 'white',
'messagesummary_odd_bg': 'dark blue',
'messagesummary_odd_fg': 'white',
+ 'notify_error_bg': 'dark red',
+ 'notify_error_fg': 'white',
+ 'notify_normal_bg': 'default',
+ 'notify_normal_fg': 'default',
'prompt_bg': 'black',
'prompt_fg': 'light gray',
'taglist_focus_bg': 'dark gray',
@@ -100,35 +104,37 @@ DEFAULTS = {
'threadline_tags_focus_fg': 'yellow,bold',
},
'mono-theme': {
- 'header': 'standout',
+ 'bufferlist_focus': 'standout',
+ 'bufferlist_results_even': 'default',
+ 'bufferlist_results_odd': 'default',
'footer': 'standout',
+ 'header': 'standout',
+ 'message_attachment': 'default',
+ 'message_body': 'default',
+ 'message_header': 'default',
+ 'message_header_key': 'default',
+ 'message_header_value': 'default',
+ 'messagesummary_even': '',
+ 'messagesummary_focus': 'standout',
+ 'messagesummary_odd': '',
+ 'notify_error': 'standout',
+ 'notify_normal': 'default',
'prompt': '',
+ 'taglist_focus': 'standout',
+ 'taglist_tag': 'default',
'threadline': 'default',
- 'threadline_date': 'default',
- 'threadline_mailcount': 'default',
- 'threadline_tags': 'bold',
'threadline_authors': 'default,underline',
- 'threadline_subject': 'default',
+ 'threadline_authors_focus': 'standout',
'threadline_content': 'default',
- 'threadline_focus': 'standout',
+ 'threadline_date': 'default',
'threadline_date_focus': 'standout',
+ 'threadline_focus': 'standout',
+ 'threadline_mailcount': 'default',
'threadline_mailcount_focus': 'standout',
- 'threadline_tags_focus': 'standout',
- 'threadline_authors_focus': 'standout',
+ 'threadline_subject': 'default',
'threadline_subject_focus': 'standout',
- 'messagesummary_even': '',
- 'messagesummary_odd': '',
- 'messagesummary_focus': 'standout',
- 'message_attachment': 'default',
- 'message_header': 'default',
- 'message_header_key': 'default',
- 'message_header_value': 'default',
- 'message_body': 'default',
- 'bufferlist_results_even': 'default',
- 'bufferlist_results_odd': 'default',
- 'bufferlist_focus': 'standout',
- 'taglist_tag': 'default',
- 'taglist_focus': 'standout',
+ 'threadline_tags': 'bold',
+ 'threadline_tags_focus': 'standout',
},
'highcolour-theme': {
'bufferlist_focus_bg': 'g38',
@@ -147,16 +153,20 @@ DEFAULTS = {
'message_body_fg': 'light gray',
'message_header_bg': 'dark gray',
'message_header_fg': 'white',
- 'message_header_key_fg': 'white',
'message_header_key_bg': 'dark gray',
- 'message_header_value_fg': 'light gray',
+ 'message_header_key_fg': 'white',
'message_header_value_bg': 'dark gray',
+ 'message_header_value_fg': 'light gray',
'messagesummary_even_bg': '#068',
'messagesummary_even_fg': 'white',
'messagesummary_focus_bg': 'g58',
'messagesummary_focus_fg': '#ff8',
'messagesummary_odd_bg': '#006',
'messagesummary_odd_fg': 'white',
+ 'notify_error_bg': 'dark red',
+ 'notify_error_fg': 'white',
+ 'notify_normal_bg': 'default',
+ 'notify_normal_fg': 'default',
'prompt_bg': 'default',
'prompt_fg': 'light gray',
'taglist_focus_bg': 'g38',
diff --git a/alot/ui.py b/alot/ui.py
index 1f28e701..f9c5236a 100644
--- a/alot/ui.py
+++ b/alot/ui.py
@@ -51,7 +51,7 @@ class UI:
self.show_statusbar = config.getboolean('general', 'show_statusbar')
self.show_notificationbar = config.getboolean('general',
'show_notificationbar')
- self.notificationbar = urwid.Text(' ')
+ self.notificationbar = None # urwid.Text(' ')
self.mode = ''
self.logger.debug('setup bindings')
@@ -163,21 +163,28 @@ class UI:
def get_buffers_of_type(self, t):
return filter(lambda x: isinstance(x, t), self.buffers)
- def notify(self, statusmessage):
- self.notificationbar.set_text(statusmessage)
- if not self.show_notificationbar:
- if not self.show_statusbar:
- self.mainframe.set_footer(self.notificationbar)
- else:
- pile = self.mainframe.get_footer()
- pile.widget_list.append(self.notificationbar)
- self.mainframe.set_footer(urwid.Pile(pile.widget_list))
+ def notify(self, message, priority='normal', timeout=0):
+ myline = urwid.Text(('notify_' + priority, message))
+ footer = self.mainframe.get_footer()
+ if not self.notificationbar:
+ self.notificationbar = urwid.Pile([myline])
+ else:
+ newpile = self.notificationbar.widget_list + [myline]
+ self.notificationbar = urwid.Pile(newpile)
def clear_notify(*args):
- self.notificationbar.set_text(' ')
+ footer = self.mainframe.get_footer()
+ if len(self.notificationbar.widget_list) == 1:
+ self.notificationbar = None
+ else:
+ newpile = self.notificationbar.widget_list
+ newpile.remove(myline)
+ self.notificationbar = urwid.Pile(newpile)
self.update()
- secs = config.getint('general', 'notify_timeout')
- self.mainloop.set_alarm_in(secs, clear_notify)
+ if not timeout:
+ timeout = config.getint('general', 'notify_timeout')
+ self.mainloop.set_alarm_in(timeout, clear_notify)
+ self.update()
def update(self):
"""
@@ -193,12 +200,10 @@ class UI:
#footer
lines = []
+ if self.notificationbar: # .get_text()[0] != ' ':
+ lines.append(self.notificationbar)
if self.show_statusbar:
lines.append(self.build_statusbar())
- if self.notificationbar.get_text()[0] != ' ':
- lines.append(self.notificationbar)
- elif self.show_notificationbar:
- lines.append(urwid.Text(' '))
if lines:
self.mainframe.set_footer(urwid.Pile(lines))