Bumping to 1.0.8
[gc-dialer] / src / gtk_toolbox.py
index 18c3801..575da00 100644 (file)
@@ -6,6 +6,7 @@ import os
 import errno
 import sys
 import time
+import itertools
 import functools
 import contextlib
 import logging
@@ -16,6 +17,34 @@ import gobject
 import gtk
 
 
+_moduleLogger = logging.getLogger("gtk_toolbox")
+
+
+def get_screen_orientation():
+       width, height = gtk.gdk.get_default_root_window().get_size()
+       if width < height:
+               return gtk.ORIENTATION_VERTICAL
+       else:
+               return gtk.ORIENTATION_HORIZONTAL
+
+
+def orientation_change_connect(handler, *args):
+       """
+       @param handler(orientation, *args) -> None(?)
+       """
+       initialScreenOrientation = get_screen_orientation()
+       orientationAndArgs = list(itertools.chain((initialScreenOrientation, ), args))
+
+       def _on_screen_size_changed(screen):
+               newScreenOrientation = get_screen_orientation()
+               if newScreenOrientation != orientationAndArgs[0]:
+                       orientationAndArgs[0] = newScreenOrientation
+                       handler(*orientationAndArgs)
+
+       rootScreen = gtk.gdk.get_default_root_window()
+       return gtk.connect(rootScreen, "size-changed", _on_screen_size_changed)
+
+
 @contextlib.contextmanager
 def flock(path, timeout=-1):
        WAIT_FOREVER = -1
@@ -189,7 +218,8 @@ def comap(function, target):
                        mappedItem = function(*item)
                        target.send(mappedItem)
                except Exception, e:
-                       target.throw(e.__class__, e.message)
+                       _moduleLogger.exception("Forwarding exception!")
+                       target.throw(e.__class__, str(e))
 
 
 def _flush_queue(queue):
@@ -273,11 +303,8 @@ class LoginWindow(object):
                self._serviceCombo.add_attribute(cell, 'text', 1)
                self._serviceCombo.set_active(0)
 
-               callbackMapping = {
-                       "on_loginbutton_clicked": self._on_loginbutton_clicked,
-                       "on_loginclose_clicked": self._on_loginclose_clicked,
-               }
-               widgetTree.signal_autoconnect(callbackMapping)
+               widgetTree.get_widget("loginbutton").connect("clicked", self._on_loginbutton_clicked)
+               widgetTree.get_widget("logins_close_button").connect("clicked", self._on_loginclose_clicked)
 
        def request_credentials(self,
                parentWindow = None,
@@ -388,9 +415,8 @@ class ErrorDisplay(object):
                        self.push_message(message)
 
        def push_message(self, message):
-               if 0 < len(self.__messages):
-                       self.__messages.append(message)
-               else:
+               self.__messages.append(message)
+               if 1 == len(self.__messages):
                        self.__show_message(message)
 
        def push_exception_with_lock(self):
@@ -398,16 +424,16 @@ class ErrorDisplay(object):
                        self.push_exception()
 
        def push_exception(self):
-               userMessage = str(sys.exc_value)
+               userMessage = str(sys.exc_info()[1])
                self.push_message(userMessage)
-               logging.exception(userMessage)
+               _moduleLogger.exception(userMessage)
 
        def pop_message(self):
-               if 0 < len(self.__messages):
-                       self.__show_message(self.__messages[0])
-                       del self.__messages[0]
-               else:
+               del self.__messages[0]
+               if 0 == len(self.__messages):
                        self.__hide_message()
+               else:
+                       self.__errorDescription.set_text(self.__messages[0])
 
        def _on_close(self, *args):
                self.pop_message()
@@ -440,7 +466,7 @@ class DummyErrorDisplay(object):
 
        def push_exception(self, exception = None):
                userMessage = str(sys.exc_value)
-               logging.exception(userMessage)
+               _moduleLogger.exception(userMessage)
 
        def pop_message(self):
                if 0 < len(self.__messages):
@@ -448,7 +474,7 @@ class DummyErrorDisplay(object):
                        del self.__messages[0]
 
        def __show_message(self, message):
-               logging.debug(message)
+               _moduleLogger.debug(message)
 
 
 class MessageBox(gtk.MessageDialog):
@@ -522,7 +548,7 @@ class PopupCalendar(object):
                        self._calendar.select_month(self._displayDate.month, self._displayDate.year)
                        self._calendar.select_day(self._displayDate.day)
                except Exception, e:
-                       logging.exception(e.message)
+                       _moduleLogger.exception(e)
 
 
 class QuickAddView(object):