Misc code cleanups
authorepage <eopage@byu.net>
Fri, 14 Aug 2009 01:56:09 +0000 (01:56 +0000)
committerepage <eopage@byu.net>
Fri, 14 Aug 2009 01:56:09 +0000 (01:56 +0000)
git-svn-id: file:///svnroot/gc-dialer/trunk@386 c39d3808-3fe2-4d86-a59f-b7f623ee9f21

src/dc_glade.py
src/gc_views.py
src/gtk_toolbox.py

index 9a978b0..245d6c6 100755 (executable)
@@ -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):
index 3e5b976..20a4359 100644 (file)
@@ -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
index ac3cca9..833b097 100644 (file)
@@ -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):