From 6861590ca1638dca9a25f12a69cc1d75b0c0a5f6 Mon Sep 17 00:00:00 2001 From: Ken Hayber Date: Sun, 12 Aug 2007 08:34:28 -0700 Subject: [PATCH] Set 'error' icon when there are any account errors Fix bug in Accounts.ini file handling of ints (was writing and reading as float) --- accounts.py | 7 +++++-- checker.py | 1 + imap_check.py | 6 +++++- pop_check.py | 2 ++ postal.py | 8 ++++++-- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/accounts.py b/accounts.py index ef11e8a..34df241 100644 --- a/accounts.py +++ b/accounts.py @@ -29,7 +29,7 @@ class AccountEditor(rox.Dialog): self.table.attach(widget, 1, 2, n, n+1, gtk.EXPAND|gtk.FILL, 0) self.last_row += 1 - def add_num(self, label, name, value, min=1, max=65535, step=1, page=10, digits = 0): + def add_num(self, label, name, value, min=1, max=65535, step=1, page=10, digits=0): entry = gtk.SpinButton() entry.set_range(min, max) entry.set_increments(step, page) @@ -39,7 +39,10 @@ class AccountEditor(rox.Dialog): self.add_row(label, entry) def set_num(self, widget, name): - self.account.__dict__[name] = widget.get_value() + if widget.get_digits() == 0: + self.account.__dict__[name] = widget.get_value_as_int() + else: + self.account.__dict__[name] = widget.get_value() def add_str(self, label, name, value, visible=True): entry = gtk.Entry() diff --git a/checker.py b/checker.py index cb11640..c96f1ae 100644 --- a/checker.py +++ b/checker.py @@ -18,6 +18,7 @@ class Checker: self.results = "" self.unseen = 0 self.prev_total = 0 + self.errors = 0 def check(self): yield None diff --git a/imap_check.py b/imap_check.py index 2797c19..9465bae 100644 --- a/imap_check.py +++ b/imap_check.py @@ -14,7 +14,7 @@ class IMAPChecker(Checker): self.protocol = 'IMAP' try: self.server = config['server'] - self.port = int(config['port']) + self.port = int(float(config['port'])) self.ssl = (config['ssl'] == 'True') self.username = config['username'] self.password = config['password'] @@ -29,6 +29,7 @@ class IMAPChecker(Checker): def check(self): """Check all folders""" + self.errors = 0 try: if self.ssl: im = imaplib.IMAP4_SSL(self.server, self.port) @@ -38,6 +39,7 @@ class IMAPChecker(Checker): except: self.results = "%s (%s)\n" % (self.name, _('Login Error')) self.blocker.trigger() + self.errors += 1 return yield None #let someone else run for a while @@ -52,6 +54,7 @@ class IMAPChecker(Checker): result = im.select(folder, readonly=True) except socket.timeout: self.results += " %s (Timeout)\n" % (folder,) + self.errors += 1 yield None #let someone else run for a while continue @@ -76,6 +79,7 @@ class IMAPChecker(Checker): self.unseen += unseen else: unseen = -1 + self.errors += 1 if unseen > 0: self.results += " %s (%d/%d)\n" % (folder, unseen, count) yield None #let someone else run for a while diff --git a/pop_check.py b/pop_check.py index 78fa86b..ff5c8f5 100644 --- a/pop_check.py +++ b/pop_check.py @@ -32,6 +32,7 @@ class POPChecker(Checker): def check(self): self.unseen = 0 + self.errors = 0 try: if self.ssl: @@ -47,6 +48,7 @@ class POPChecker(Checker): except: self.results = "%s (%s)\n" % (self.name, _('Login Error')) self.blocker.trigger() + self.errors += 1 return # get list of unique message ids diff --git a/postal.py b/postal.py index da17dd7..43ed8f9 100644 --- a/postal.py +++ b/postal.py @@ -202,17 +202,21 @@ class Postal(applet.Applet): def update(self, mailbox): """Update the display""" - unseen = 0 + unseen = 0 + errors = 0 results = "" for box in self.mailboxes: results += box.results unseen += box.unseen + errors += box.errors if not len(results): results = _("No Mail") self.tooltips.set_tip(self, results.strip(), tip_private=None) - if unseen: + if errors: + self.pixbuf = self.errimg + elif unseen: self.pixbuf = self.ismail else: self.pixbuf = self.nomail -- 2.11.4.GIT