From 344da3af9f42caaaa99f3514697a555a370680c5 Mon Sep 17 00:00:00 2001 From: epage Date: Fri, 14 Aug 2009 01:56:09 +0000 Subject: [PATCH] Misc code cleanups git-svn-id: file:///svnroot/gc-dialer/trunk@386 c39d3808-3fe2-4d86-a59f-b7f623ee9f21 --- src/dc_glade.py | 26 +++++++++----------------- src/gc_views.py | 2 ++ src/gtk_toolbox.py | 17 ++++++++++++++++- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/dc_glade.py b/src/dc_glade.py index 9a978b0..245d6c6 100755 --- a/src/dc_glade.py +++ b/src/dc_glade.py @@ -105,6 +105,7 @@ class Dialcentral(object): self._messagesViews = None self._recentViews = None self._contactsViews = None + self._originalCurrentLabels = [] for path in self._glade_files: if os.path.isfile(path): @@ -313,9 +314,11 @@ class Dialcentral(object): } self._widgetTree.signal_autoconnect(callbackMapping) - self._originalCurrentLabel = "" with gtk_toolbox.gtk_lock(): - self._backup_tab_name() + self._originalCurrentLabels = [ + self._notebook.get_tab_label(self._notebook.get_nth_page(pageIndex)).get_text() + for pageIndex in xrange(self._notebook.get_n_pages()) + ] self._notebookTapHandler = gtk_toolbox.TapOrHold(self._notebook) self._notebookTapHandler.enable() self._notebookTapHandler.on_tap = self._reset_tab_refresh @@ -331,13 +334,9 @@ class Dialcentral(object): self.load_settings(config) self._spawn_attempt_login(2) - except StandardError, e: - warnings.warn(e.message, UserWarning, 2) - except BaseException, e: - try: - warnings.warn(e.message, UserWarning, 2) - finally: - raise + except Exception, e: + with gtk_toolbox.gtk_lock(): + self._errorDisplay.push_exception(e) def attempt_login(self, numOfAttempts = 10, force = False): """ @@ -644,7 +643,6 @@ class Dialcentral(object): def _on_notebook_switch_page(self, notebook, page, pageIndex): self._reset_tab_refresh() - self._backup_tab_name(pageIndex) if pageIndex == self.RECENT_TAB: self._recentViews[self._selectedBackendId].update() elif pageIndex == self.MESSAGES_TAB: @@ -654,12 +652,6 @@ class Dialcentral(object): elif pageIndex == self.ACCOUNT_TAB: self._accountViews[self._selectedBackendId].update() - def _backup_tab_name(self, pageIndex = -1): - if pageIndex == -1: - pageIndex = self._notebook.get_current_page() - child = self._notebook.get_nth_page(pageIndex) - self._originalCurrentLabel = self._notebook.get_tab_label(child).get_text() - def _set_tab_refresh(self, *args): pageIndex = self._notebook.get_current_page() child = self._notebook.get_nth_page(pageIndex) @@ -669,7 +661,7 @@ class Dialcentral(object): def _reset_tab_refresh(self, *args): pageIndex = self._notebook.get_current_page() child = self._notebook.get_nth_page(pageIndex) - self._notebook.get_tab_label(child).set_text(self._originalCurrentLabel) + self._notebook.get_tab_label(child).set_text(self._originalCurrentLabels[pageIndex]) return False def _on_tab_refresh(self, *args): diff --git a/src/gc_views.py b/src/gc_views.py index 3e5b976..20a4359 100644 --- a/src/gc_views.py +++ b/src/gc_views.py @@ -17,6 +17,8 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +@todo Feature request: The ability to go to relevant thing in web browser """ from __future__ import with_statement diff --git a/src/gtk_toolbox.py b/src/gtk_toolbox.py index ac3cca9..833b097 100644 --- a/src/gtk_toolbox.py +++ b/src/gtk_toolbox.py @@ -305,6 +305,21 @@ class LoginWindow(object): self._dialog.response(gtk.RESPONSE_CANCEL) +def safecall(f, errorDisplay=None, default=None, exception=Exception): + ''' + Returns modified f. When the modified f is called and throws an + exception, the default value is returned + ''' + def _safecall(*args, **argv): + try: + return f(*args,**argv) + except exception, e: + if errorDisplay is not None: + errorDisplay.push_exception(e) + return default + return _safecall + + class ErrorDisplay(object): def __init__(self, widgetTree): @@ -341,7 +356,7 @@ class ErrorDisplay(object): userMessage = str(exception) warningMessage = str(exception) self.push_message(userMessage) - warnings.warn(warningMessage, stacklevel=3) + warnings.warn(warningMessage, stacklevel=2) def pop_message(self): if 0 < len(self.__messages): -- 1.7.9.5