236
235
AptState state = (AptState)update;
238
if ( state == UP_TO_DATE ){
237
if (state == UP_TO_DATE){
239
238
dbusmenu_menuitem_property_set (self->apt_item,
240
239
DBUSMENU_MENUITEM_PROP_LABEL,
241
_("Software Up to Date"));
240
_("Software Up to Date"));
241
// Simulations don't send a finished signal for some reason
242
// Anyway from a simulation we just need one state update
243
// (updates available or not)
244
if (apt_transaction_get_transaction_type (self->current_transaction)
246
g_object_unref (G_OBJECT(self->current_transaction));
247
self->current_transaction = NULL;
243
else if ( state == UPDATES_AVAILABLE ){
250
else if (state == UPDATES_AVAILABLE){
244
251
dbusmenu_menuitem_property_set (self->apt_item,
245
252
DBUSMENU_MENUITEM_PROP_LABEL,
246
253
_("Updates Available…"));
254
// Simulations don't send a finished signal for some reason
255
// Anyway from a simulation we just need one state update
256
// (updates available or not)
257
if (apt_transaction_get_transaction_type (self->current_transaction)
259
g_object_unref (G_OBJECT(self->current_transaction));
260
self->current_transaction = NULL;
263
else if (state == UPGRADE_IN_PROGRESS){
264
dbusmenu_menuitem_property_set (self->apt_item,
265
DBUSMENU_MENUITEM_PROP_LABEL,
266
_("Updates Installing…"));
268
else if (state == FINISHED){
269
dbusmenu_menuitem_property_set (self->apt_item,
270
DBUSMENU_MENUITEM_PROP_LABEL,
271
_("Software Up to Date"));
272
g_object_unref (G_OBJECT(self->current_transaction));
273
self->current_transaction = NULL;
248
275
self->current_state = state;
249
g_object_unref (self->current_transaction);
250
self->current_transaction = NULL;
254
279
apt_watcher_manage_transactions (AptWatcher* self, gchar* transaction_id)
256
281
if (self->current_transaction == NULL){
257
self->current_transaction = apt_transaction_new (transaction_id);
258
g_object_ref (self->current_transaction);
282
self->current_transaction = apt_transaction_new (transaction_id, SIMULATION);
259
283
g_signal_connect (G_OBJECT(self->current_transaction),
261
285
G_CALLBACK(apt_watcher_transaction_state_update_cb), self);
265
289
// TODO - Ask MVO about this.
279
303
if (g_strcmp0(signal_name, "ActiveTransactionsChanged") == 0){
280
304
gchar* input = NULL;
281
305
g_variant_get(value, "s", & input);
306
if (g_str_has_prefix (input, "/org/debian/apt/transaction/") == TRUE){
307
g_debug ("Active Transactions signal - input is null = %i", input == NULL);
309
if (self->current_transaction != NULL)
311
g_object_unref (G_OBJECT(self->current_transaction));
312
self->current_transaction = NULL;
283
g_debug ("Active Transactions signal - input is null = %i", input == NULL);
284
// TODO don't call on null terminated input
285
g_dbus_proxy_call (self->proxy,
287
g_variant_new("(b)", TRUE),
288
G_DBUS_CALL_FLAGS_NONE,
291
apt_watcher_upgrade_system_cb,
315
self->current_transaction = apt_transaction_new (input, REAL);
316
g_signal_connect (G_OBJECT(self->current_transaction),
318
G_CALLBACK(apt_watcher_transaction_state_update_cb), self);
294
323
g_variant_unref (parameters);