online-desktop r7276 - in trunk/weblogindriver: . weblogindriver



Author: marinaz
Date: Fri Oct 24 20:44:02 2008
New Revision: 7276
URL: http://svn.gnome.org/viewvc/online-desktop?rev=7276&view=rev

Log:
Display a different link depending on whether we have a user from the data model and whether save online mode is enabled. 


Modified:
   trunk/weblogindriver/web-login-driver
   trunk/weblogindriver/weblogindriver/accounts_dialog.py

Modified: trunk/weblogindriver/web-login-driver
==============================================================================
--- trunk/weblogindriver/web-login-driver	(original)
+++ trunk/weblogindriver/web-login-driver	Fri Oct 24 20:44:02 2008
@@ -703,6 +703,7 @@
   def __on_datamodel_response(self, myself):    
     _logger.debug("received data model response")
     self.__received_response_from_server = True
+    self.HaveOnlineUserFlagChanged(self.__received_response_from_server)
     myself.connect(self.__update_google_enabled_emails, 'googleEnabledEmails') 
     myself.connect(self.__update_loved_accounts, 'lovedAccounts') 
     self.__update_google_enabled_emails(myself)
@@ -901,6 +902,7 @@
         else:
           self.__server_accounts.clear() 
           self.__received_response_from_server = False
+          self.HaveOnlineUserFlagChanged(self.__received_response_from_server)
           if self.__model.self_resource != None:
             self.__model.self_resource.disconnect(self.__update_google_enabled_emails) 
             self.__model.self_resource.disconnect(self.__update_loved_accounts)
@@ -1093,6 +1095,16 @@
   def SaveOnlineFlagChanged(self, new_save_online_flag):
     pass
 
+  @dbus.service.method(OA_BUS_IFACE_STR,                      
+                       out_signature="b")
+  def GetHaveOnlineUserFlag(self): 
+    return self.__received_response_from_server
+
+  @dbus.service.signal(OA_BUS_IFACE_STR,
+                       signature='b')
+  def HaveOnlineUserFlagChanged(self, new_have_online_user_flag):
+    pass
+
   @dbus.service.signal(OA_BUS_IFACE_STR,
                        signature='ssb')
   def AccountUpdateFeedback(self, feedback_header, feedback_message, is_error_flag):

Modified: trunk/weblogindriver/weblogindriver/accounts_dialog.py
==============================================================================
--- trunk/weblogindriver/weblogindriver/accounts_dialog.py	(original)
+++ trunk/weblogindriver/weblogindriver/accounts_dialog.py	Fri Oct 24 20:44:02 2008
@@ -122,8 +122,7 @@
 
         self.__account_page_link_box = gtk.HBox()
         self.__account_page_link = Link()
-        self.__account_page_link.set_text("Visit Account Page")
-        self.__account_page_link.connect("clicked", self.__open_account_page)
+        self.__account_page_link_connect_id = None
         self.__account_page_link_box.pack_start(self.__account_page_link, expand=False, fill=False)
     
         self.__outer_existing_accounts_vbox.pack_end(self.__account_page_link_box, False, False, padding=2) 
@@ -190,8 +189,7 @@
 
         self.__account_page_link_box_2 = gtk.HBox()
         self.__account_page_link_2 = Link()
-        self.__account_page_link_2.set_text("Visit Account Page")
-        self.__account_page_link_2.connect("clicked", self.__open_account_page)
+        self.__account_page_link_2_connect_id = None
         self.__account_page_link_box_2.pack_start(self.__account_page_link_2, expand=False, fill=False)
     
         self.__outer_new_account_vbox.pack_end(self.__account_page_link_box_2, False, False, padding=2) 
@@ -205,6 +203,8 @@
         self.__model_tree_iter_by_account = {}
         self.__current_account = None
 
+        self.__update_online_links()        
+
         self.show_all()
         self.__set_no_accounts_state(True)
         
@@ -236,17 +236,52 @@
         id = self.__onlineaccounts_proxy.connect_to_signal('SaveOnlineFlagChanged',
                                                            self.__on_save_online_flag_changed)
         self.__connections.add(self.__onlineaccounts_proxy, id)        
+        id = self.__onlineaccounts_proxy.connect_to_signal('HaveOnlineUserFlagChanged',
+                                                           self.__on__have_online_user_flag_changed)
+        self.__connections.add(self.__onlineaccounts_proxy, id)  
         id = self.__onlineaccounts_proxy.connect_to_signal('AccountUpdateFeedback',
                                                            self.__on_account_update_feedback)
         self.__connections.add(self.__onlineaccounts_proxy, id)        
 
-    def __open_account_page(self, l):
-        gnome.url_show(urlparse.urljoin(ddm_util.get_baseurl(), "/account"))
-      
+    def __open_server_page(self, l, page):
+        gnome.url_show(urlparse.urljoin(ddm_util.get_baseurl(), page))
+
+    def __update_online_links(self):
+        save_online_flag = self.__online_accounts_service.GetSaveOnlineFlag()
+        have_online_user_flag = self.__online_accounts_service.GetHaveOnlineUserFlag()  
+
+        if self.__account_page_link_connect_id is not None:
+            self.__account_page_link.disconnect(self.__account_page_link_connect_id)
+
+        if self.__account_page_link_2_connect_id is not None:
+            self.__account_page_link_2.disconnect(self.__account_page_link_2_connect_id)
+
+        if save_online_flag and have_online_user_flag:
+            # display a link to the account page
+            self.__account_page_link.set_text("Visit Account Page")
+            self.__account_page_link_connect_id = self.__account_page_link.connect("clicked", self.__open_server_page, "/account")
+            self.__account_page_link_2.set_text("Visit Account Page")
+            self.__account_page_link_2_connect_id = self.__account_page_link_2.connect("clicked", self.__open_server_page, "/account")
+        elif save_online_flag and not have_online_user_flag:
+            # tell the user that they need to sign in
+            self.__account_page_link.set_text("You Need to Sign in", "red")
+            self.__account_page_link_connect_id = self.__account_page_link.connect("clicked", self.__open_server_page, "/who-are-you")
+            self.__account_page_link_2.set_text("You Need to Sign in", "red")
+            self.__account_page_link_2_connect_id = self.__account_page_link_2.connect("clicked", self.__open_server_page, "/who-are-you")
+        else:
+            # display a Learn More link 
+            self.__account_page_link.set_text("Learn More")
+            self.__account_page_link_connect_id = self.__account_page_link.connect("clicked", self.__open_server_page, "/accounts-learnmore")
+            self.__account_page_link_2.set_text("Learn More")
+            self.__account_page_link_2_connect_id = self.__account_page_link_2.connect("clicked", self.__open_server_page, "/accounts-learnmore") 
+
     def __on_save_online_flag_changed(self, new_save_online_flag):
         self.__save_online_check_box.set_active(new_save_online_flag)
         self.__save_online_check_box_2.set_active(new_save_online_flag)
-        # TODO: update the links too
+        self.__update_online_links()
+
+    def __on__have_online_user_flag_changed(self, new_have_online_user_flag):
+        self.__update_online_links() 
 
     def __on_account_added(self, a_path):
         if a_path not in self.__model_tree_iter_by_account:
@@ -469,17 +504,17 @@
     def get_text(self):
         return self.__text
     
-    def set_text(self, text):
+    def set_text(self, text, color="blue"):
         self.__text = text
-        self.set_markup(gobject.markup_escape_text(text))
+        self.set_markup(gobject.markup_escape_text(text), color)
     
     def set_enabled(self, enabled):        
         self.__enabled = enabled
         self.set_markup(gobject.markup_escape_text(self.__text))
 
-    def set_markup(self, text):
+    def set_markup(self, text, color="blue"):
         if  self.__enabled: 
-            self.__label.set_markup('<span foreground="blue">%s</span>' % (text,))
+            self.__label.set_markup('<span foreground="%s">%s</span>' % (color, text,))
         else:
             self.__label.set_markup('<span foreground="#666666">%s</span>' % (text,))
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]