Bringing up the NULL view a lot sooner, hopefully providing a smoother experience...
authorepage <eopage@byu.net>
Thu, 26 Mar 2009 02:04:47 +0000 (02:04 +0000)
committerepage <eopage@byu.net>
Thu, 26 Mar 2009 02:04:47 +0000 (02:04 +0000)
git-svn-id: file:///svnroot/gc-dialer/branches/gv_support@249 c39d3808-3fe2-4d86-a59f-b7f623ee9f21

src/dc_glade.py

index 7c4b701..1229cdc 100755 (executable)
@@ -142,6 +142,26 @@ class Dialcentral(object):
                """
                If something can be done after the UI loads, push it here so it's not blocking the UI
                """
+               # Barebones UI handlers
+               import null_backend
+               import null_views
+
+               self._phoneBackends = {self.NULL_BACKEND: null_backend.NullDialer()}
+               gtk.gdk.threads_enter()
+               try:
+                       self._dialpads = {self.NULL_BACKEND: null_views.Dialpad(self._widgetTree)}
+                       self._accountViews = {self.NULL_BACKEND: null_views.AccountInfo(self._widgetTree)}
+                       self._recentViews = {self.NULL_BACKEND: null_views.RecentCallsView(self._widgetTree)}
+                       self._contactsViews = {self.NULL_BACKEND: null_views.ContactsView(self._widgetTree)}
+
+                       self._dialpads[self._selectedBackendId].enable()
+                       self._accountViews[self._selectedBackendId].enable()
+                       self._recentViews[self._selectedBackendId].enable()
+                       self._contactsViews[self._selectedBackendId].enable()
+               finally:
+                       gtk.gdk.threads_leave()
+
+               # Setup maemo specifics
                try:
                        import osso
                except ImportError:
@@ -166,12 +186,11 @@ class Dialcentral(object):
                else:
                        pass # warnings.warn("No Internet Connectivity API ", UserWarning)
 
-               import null_backend
+               # Setup costly backends
                import gv_backend
                import gc_backend
                import file_backend
                import evo_backend
-               import null_views
                import gc_views
 
                try:
@@ -186,47 +205,42 @@ class Dialcentral(object):
                        (self.GV_BACKEND, gvCookiePath),
                ))
 
-               self._phoneBackends = {
-                       self.NULL_BACKEND: null_backend.NullDialer(),
+               self._phoneBackends.update({
                        self.GC_BACKEND: gc_backend.GCDialer(gcCookiePath),
                        self.GV_BACKEND: gv_backend.GVDialer(gvCookiePath),
-               }
+               })
                gtk.gdk.threads_enter()
                try:
                        unifiedDialpad = gc_views.Dialpad(self._widgetTree, self._errorDisplay)
                        unifiedDialpad.set_number("")
-                       self._dialpads = {
+                       self._dialpads.update({
                                self.GC_BACKEND: unifiedDialpad,
                                self.GV_BACKEND: unifiedDialpad,
-                               self.NULL_BACKEND: null_views.Dialpad(self._widgetTree),
-                       }
-                       self._accountViews = {
+                       })
+                       self._accountViews.update({
                                self.GC_BACKEND: gc_views.AccountInfo(
                                        self._widgetTree, self._phoneBackends[self.GC_BACKEND], self._errorDisplay
                                ),
                                self.GV_BACKEND: gc_views.AccountInfo(
                                        self._widgetTree, self._phoneBackends[self.GV_BACKEND], self._errorDisplay
                                ),
-                               self.NULL_BACKEND: null_views.AccountInfo(self._widgetTree),
-                       }
-                       self._recentViews = {
+                       })
+                       self._recentViews.update({
                                self.GC_BACKEND: gc_views.RecentCallsView(
                                        self._widgetTree, self._phoneBackends[self.GC_BACKEND], self._errorDisplay
                                ),
                                self.GV_BACKEND: gc_views.RecentCallsView(
                                        self._widgetTree, self._phoneBackends[self.GV_BACKEND], self._errorDisplay
                                ),
-                               self.NULL_BACKEND: null_views.RecentCallsView(self._widgetTree),
-                       }
-                       self._contactsViews = {
+                       })
+                       self._contactsViews.update({
                                self.GC_BACKEND: gc_views.ContactsView(
                                        self._widgetTree, self._phoneBackends[self.GC_BACKEND], self._errorDisplay
                                ),
                                self.GV_BACKEND: gc_views.ContactsView(
                                        self._widgetTree, self._phoneBackends[self.GV_BACKEND], self._errorDisplay
                                ),
-                               self.NULL_BACKEND: null_views.ContactsView(self._widgetTree),
-                       }
+                       })
                finally:
                        gtk.gdk.threads_leave()
 
@@ -248,15 +262,6 @@ class Dialcentral(object):
                        self._contactsViews[backendId].extend(addressBooks)
                        self._contactsViews[backendId].open_addressbook(*self._contactsViews[backendId].get_addressbooks().next()[0][0:2])
 
-               gtk.gdk.threads_enter()
-               try:
-                       self._dialpads[self._selectedBackendId].enable()
-                       self._accountViews[self._selectedBackendId].enable()
-                       self._recentViews[self._selectedBackendId].enable()
-                       self._contactsViews[self._selectedBackendId].enable()
-               finally:
-                       gtk.gdk.threads_leave()
-
                callbackMapping = {
                        "on_paste": self._on_paste,
                        "on_clearcookies_clicked": self._on_clearcookies_clicked,