From 79ff5ae53b5f31dacb38cef29ed28569ab89f838 Mon Sep 17 00:00:00 2001 From: Dave Andreoli Date: Sun, 21 Oct 2018 11:05:00 +0200 Subject: [PATCH] PackageKit gadget: augment the new menu Use the new menu augmentation system to provide two usefull operations. --- src/modules/packagekit/e_mod_main.c | 39 +++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/modules/packagekit/e_mod_main.c b/src/modules/packagekit/e_mod_main.c index e6f35b311..04da5498f 100644 --- a/src/modules/packagekit/e_mod_main.c +++ b/src/modules/packagekit/e_mod_main.c @@ -120,9 +120,44 @@ _gadget_configure_cb(Evas_Object *gadget) } static void -_gadget_menu_populate_cb(Evas_Object *g, E_Menu *m) +_gadget_menu1_cb(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) { - DBG("PKIT: menu cb (TODO)\n"); + E_PackageKit_Module_Context *ctxt = data; + + e_exec(e_zone_current_get(), NULL, + ctxt->config->manager_command, + NULL, NULL); +} + +static void +_gadget_menu2_cb(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) +{ + E_PackageKit_Module_Context *ctxt = data; + + packagekit_create_transaction_and_exec(ctxt, packagekit_refresh_cache); +} + +static void +_gadget_menu_populate_cb(Evas_Object *gadget, E_Menu *m) +{ + E_PackageKit_Instance *inst = evas_object_data_get(gadget, "pkit-inst"); + E_Menu_Item *mi; + + mi = e_menu_item_new(m); + e_menu_item_separator_set(mi, 1); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Refresh package list")); + e_util_menu_item_theme_icon_set(mi, "view-refresh"); + e_menu_item_callback_set(mi, _gadget_menu2_cb, inst->ctxt); + + if (inst->ctxt->config->manager_command && inst->ctxt->config->manager_command[0]) + { + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Run the package manager")); + e_util_menu_item_theme_icon_set(mi, "preferences-applications"); + e_menu_item_callback_set(mi, _gadget_menu1_cb, inst->ctxt); + } } static void