← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~cjcurran/indicator-session/restart-required-through-apt into lp:indicator-session

 

Conor Curran has proposed merging lp:~cjcurran/indicator-session/restart-required-through-apt into lp:indicator-session.

Requested reviews:
  Ted Gould (ted)

For more details, see:
https://code.launchpad.net/~cjcurran/indicator-session/restart-required-through-apt/+merge/70831

corrected merge proposal with the actual new code pushed this time
-- 
https://code.launchpad.net/~cjcurran/indicator-session/restart-required-through-apt/+merge/70831
Your team ayatana-commits is subscribed to branch lp:indicator-session.
=== modified file 'src/apt-transaction.c'
--- src/apt-transaction.c	2011-07-22 17:00:09 +0000
+++ src/apt-transaction.c	2011-08-09 09:03:32 +0000
@@ -185,8 +185,6 @@
       g_variant_get (value, "(asasasasasasas)", &install, 
                      &reinstall, &remove, &purge, &upgrade, &downgrade,
                      &keep);      
-      //g_debug ("Seemed to uppack dependencies without any warnings");
-      //g_debug ("Upgrade quantity : %u", g_strv_length(upgrade));
       gboolean upgrade_needed = (g_strv_length(upgrade) > 0) ||
                                 (g_strv_length(install) > 0) ||
                                 (g_strv_length(reinstall) > 0) ||

=== modified file 'src/apt-watcher.c'
--- src/apt-watcher.c	2011-07-22 14:36:59 +0000
+++ src/apt-watcher.c	2011-08-09 09:03:32 +0000
@@ -266,11 +266,23 @@
                                     _("Updates Installing…"));    
   }  
   else if (state == FINISHED){
-    dbusmenu_menuitem_property_set (self->apt_item,
-                                    DBUSMENU_MENUITEM_PROP_LABEL,
-                                    _("Software Up to Date"));
+    GVariant* reboot_result = g_dbus_proxy_get_cached_property (self->proxy,
+                                                               "RebootRequired");
+    gboolean reboot;
+    g_variant_get (reboot_result, "b", &reboot);
+    if (reboot == FALSE){
+      dbusmenu_menuitem_property_set (self->apt_item,
+                                      DBUSMENU_MENUITEM_PROP_LABEL,
+                                      _("Software Up to Date"));
+    }
+    else{
+      dbusmenu_menuitem_property_set (self->apt_item,
+                                      DBUSMENU_MENUITEM_PROP_LABEL,
+                                      _("Reboot Required"));
+      session_dbus_restart_required (self->session_dbus_interface);
+    }
     g_object_unref (G_OBJECT(self->current_transaction));
-    self->current_transaction = NULL;                                    
+    self->current_transaction = NULL;                                        
   }
   self->current_state = state;
 } 

=== modified file 'src/indicator-session.c'
--- src/indicator-session.c	2011-07-22 16:44:04 +0000
+++ src/indicator-session.c	2011-08-09 09:03:32 +0000
@@ -491,6 +491,7 @@
       g_signal_emit_by_name ((gpointer)self,
                              "entry-added",
                              &self->users);
+                             
     }   
     else{
       g_signal_emit_by_name ((gpointer)self,
@@ -498,6 +499,10 @@
                              &self->users);       
     }
   }
+  else if (g_strcmp0(signal_name, "RebootRequired") == 0) {
+    // TODO waiting on design to give me a name.
+    self->devices.image = indicator_image_helper (ICON_DEFAULT);        
+  }  
 }
 
 

=== modified file 'src/session-dbus.c'
--- src/session-dbus.c	2011-07-14 15:35:57 +0000
+++ src/session-dbus.c	2011-08-09 09:03:32 +0000
@@ -293,3 +293,25 @@
 		}
 	}  
 }
+
+void session_dbus_restart_required (SessionDbus* session)
+{
+	SessionDbusPrivate * priv = SESSION_DBUS_GET_PRIVATE(session);
+	GError * error = NULL;
+    
+	if (priv->bus != NULL) {
+		g_dbus_connection_emit_signal (priv->bus,
+                                   NULL,
+                                   INDICATOR_SESSION_SERVICE_DBUS_OBJECT,
+                                   INDICATOR_SESSION_SERVICE_DBUS_IFACE,
+                                   "RebootRequired",
+                                   NULL,
+                                   &error);
+
+		if (error != NULL) {
+			g_warning("Unable to send reboot-required signal: %s", error->message);
+			g_error_free(error);
+		}
+	}  
+  
+}

=== modified file 'src/session-dbus.h'
--- src/session-dbus.h	2011-07-14 12:06:38 +0000
+++ src/session-dbus.h	2011-08-09 09:03:32 +0000
@@ -51,7 +51,7 @@
 void session_dbus_set_name (SessionDbus * session, const gchar * name);
 void session_dbus_set_users_real_name (SessionDbus * session, const gchar * name);
 void session_dbus_set_user_menu_visibility (SessionDbus* session, gboolean visible);
-
+void session_dbus_restart_required (SessionDbus* session);
 G_END_DECLS
 
 #endif

=== modified file 'src/session-dbus.xml'
--- src/session-dbus.xml	2011-07-20 17:17:49 +0000
+++ src/session-dbus.xml	2011-08-09 09:03:32 +0000
@@ -17,8 +17,7 @@
     <signal name="UserMenuIsVisible">
       <arg name="update" type="b"/>
     </signal>
-    <signal name="RestartNeeded">
-      <arg name="name" type="s"/>
+    <signal name="RestartRequired">
     </signal>
   </interface>
 </node>


Follow ups