This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch netbsd_support
in repository enlightenment.

View the commit online.

commit aee4ab7f2b8c44141c8769e2bd80bb0f12c0a6e1
Author: Carsten Haitzler <[email protected]>
AuthorDate: Thu Jul 23 19:23:41 2026 +0100

    networkmanager: reduce copy+pasta code wwith helpers
---
 src/modules/networkmanager/e_mod_main.c | 222 ++++++++++++++------------------
 1 file changed, 100 insertions(+), 122 deletions(-)

diff --git a/src/modules/networkmanager/e_mod_main.c b/src/modules/networkmanager/e_mod_main.c
index eede5aaf2..1381a7cde 100644
--- a/src/modules/networkmanager/e_mod_main.c
+++ b/src/modules/networkmanager/e_mod_main.c
@@ -336,6 +336,53 @@ _enm_itc_item_del(void *data, Evas_Object *obj EINA_UNUSED)
    _enm_item_data_free(data);
 }
 
+static Evas_Object *
+_enm_icon_table_new(Evas_Object *parent, Evas_Object *icon)
+{
+   Evas_Object *tbl, *rect;
+
+   if (!icon) return NULL;
+
+   tbl = elm_table_add(parent);
+   if (!tbl)
+     {
+        evas_object_del(icon);
+        return NULL;
+     }
+
+   evas_object_show(icon);
+   elm_table_pack(tbl, icon, 0, 0, 1, 1);
+
+   rect = evas_object_rectangle_add(evas_object_evas_get(parent));
+   evas_object_color_set(rect, 0, 0, 0, 0);
+   evas_object_size_hint_min_set(rect, ELM_SCALE_SIZE(32),
+                                 ELM_SCALE_SIZE(32));
+   elm_table_pack(tbl, rect, 0, 0, 1, 1);
+
+   return tbl;
+}
+
+static Evas_Object *
+_enm_icon_button_new(Evas_Object *parent, const char *icon_name)
+{
+   Evas_Object *btn, *ic;
+
+   btn = elm_button_add(parent);
+   if (!btn) return NULL;
+
+   ic = elm_icon_add(btn);
+   if (!ic)
+     {
+        evas_object_del(btn);
+        return NULL;
+     }
+   elm_icon_standard_set(ic, icon_name);
+   elm_object_content_set(btn, ic);
+   evas_object_show(ic);
+
+   return btn;
+}
+
 /* Genlist text_get for AP rows: returns SSID on elm.text; on elm.text.sub
  * returns the assigned IP when this is the active AP, or the security type
  * otherwise. */
@@ -381,26 +428,10 @@ _enm_itc_ap_content_get(void *data, Evas_Object *obj, const char *part)
 
    if (!strcmp(part, "elm.swallow.icon"))
      {
-        Evas_Object *ic, *tbl, *rect;
-
-        tbl = elm_table_add(obj);
+        Evas_Object *ic;
 
         ic = _enm_ap_icon_new(id->nm, id->ap, obj);
-        if (!ic)
-          {
-             evas_object_del(tbl);
-             return NULL;
-          }
-        evas_object_show(ic);
-        elm_table_pack(tbl, ic, 0, 0, 1, 1);
-
-        rect = evas_object_rectangle_add(evas_object_evas_get(obj));
-        evas_object_color_set(rect, 0, 0, 0, 0);
-        evas_object_size_hint_min_set(rect, ELM_SCALE_SIZE(32),
-                                      ELM_SCALE_SIZE(32));
-        elm_table_pack(tbl, rect, 0, 0, 1, 1);
-
-        return tbl;
+        return _enm_icon_table_new(obj, ic);
      }
    if (!strcmp(part, "elm.swallow.end"))
      return _enm_ap_end_new(id->nm, id->ap, obj);
@@ -446,26 +477,10 @@ _enm_itc_eth_content_get(void *data, Evas_Object *obj, const char *part)
 
    if (!strcmp(part, "elm.swallow.icon"))
      {
-        Evas_Object *ic, *tbl, *rect;
-
-        tbl = elm_table_add(obj);
+        Evas_Object *ic;
 
         ic = _enm_eth_icon_new(id->dev, obj);
-        if (!ic)
-          {
-             evas_object_del(tbl);
-             return NULL;
-          }
-        evas_object_show(ic);
-        elm_table_pack(tbl, ic, 0, 0, 1, 1);
-
-        rect = evas_object_rectangle_add(evas_object_evas_get(obj));
-        evas_object_color_set(rect, 0, 0, 0, 0);
-        evas_object_size_hint_min_set(rect, ELM_SCALE_SIZE(32),
-                                      ELM_SCALE_SIZE(32));
-        elm_table_pack(tbl, rect, 0, 0, 1, 1);
-
-        return tbl;
+        return _enm_icon_table_new(obj, ic);
      }
    return NULL;
 }
@@ -504,26 +519,10 @@ _enm_itc_bt_content_get(void *data, Evas_Object *obj, const char *part)
 
    if (!strcmp(part, "elm.swallow.icon"))
      {
-        Evas_Object *ic, *tbl, *rect;
-
-        tbl = elm_table_add(obj);
+        Evas_Object *ic;
 
         ic = _enm_bt_icon_new(id->nm, id->bt, id->dev, obj);
-        if (!ic)
-          {
-             evas_object_del(tbl);
-             return NULL;
-          }
-        evas_object_show(ic);
-        elm_table_pack(tbl, ic, 0, 0, 1, 1);
-
-        rect = evas_object_rectangle_add(evas_object_evas_get(obj));
-        evas_object_color_set(rect, 0, 0, 0, 0);
-        evas_object_size_hint_min_set(rect, ELM_SCALE_SIZE(32),
-                                      ELM_SCALE_SIZE(32));
-        elm_table_pack(tbl, rect, 0, 0, 1, 1);
-
-        return tbl;
+        return _enm_icon_table_new(obj, ic);
      }
    return NULL;
 }
@@ -635,16 +634,12 @@ static Evas_Object *
 _enm_itc_group_vpn_content_get(void *data, Evas_Object *obj, const char *part)
 {
    E_NM_Instance *inst = data;
-   Evas_Object *btn, *o;
+   Evas_Object *btn;
 
    if (strcmp(part, "elm.swallow.end")) return NULL;
 
-   btn = elm_button_add(obj);
-
-   o = elm_icon_add(obj);
-   elm_icon_standard_set(o, "add");
-   elm_object_content_set(btn, o);
-   evas_object_show(o);
+   btn = _enm_icon_button_new(obj, "add");
+   if (!btn) return NULL;
 
    if (!enm_import_nmcli_path())
      {
@@ -708,11 +703,8 @@ _enm_itc_vpn_content_get(void *data, Evas_Object *obj, const char *part)
    if (!strcmp(part, "elm.swallow.end"))
      {
         /* Forget (delete) button — same edit-delete icon used by wifi rows. */
-        Evas_Object *btn = elm_button_add(obj);
-        Evas_Object *ic = elm_icon_add(btn);
-        elm_icon_standard_set(ic, "edit-delete");
-        elm_object_content_set(btn, ic);
-        evas_object_show(ic);
+        Evas_Object *btn = _enm_icon_button_new(obj, "edit-delete");
+        if (!btn) return NULL;
         evas_object_smart_callback_add(btn, "clicked",
                                        _enm_vpn_forget_btn_click_cb, vc);
         evas_object_data_set(btn, "instance", inst);
@@ -1249,7 +1241,7 @@ static Evas_Object *
 _enm_ap_end_new(struct NM_Manager *nm, struct NM_Access_Point *ap,
                 Evas_Object *parent)
 {
-   Evas_Object *end, *ic;
+   Evas_Object *end;
    const char *conn_path;
    struct _Enm_Forget_Data *fd;
 
@@ -1281,11 +1273,14 @@ _enm_ap_end_new(struct NM_Manager *nm, struct NM_Access_Point *ap,
      }
    fd->ssid = eina_stringshare_add(ap->ssid);
 
-   end = elm_button_add(parent);
-   ic = elm_icon_add(end);
-   elm_icon_standard_set(ic, "edit-delete");
-   elm_object_content_set(end, ic);
-   evas_object_show(ic);
+   end = _enm_icon_button_new(parent, "edit-delete");
+   if (!end)
+     {
+        eina_stringshare_del(fd->connection_path);
+        eina_stringshare_del(fd->ssid);
+        free(fd);
+        return NULL;
+     }
    evas_object_smart_callback_add(end, "clicked", _enm_forget_click_cb, fd);
    evas_object_event_callback_add(end, EVAS_CALLBACK_DEL,
                                   _enm_forget_data_free_cb, fd);
@@ -2026,12 +2021,30 @@ _enm_widget_size_wrap(E_NM_Instance *inst, Evas_Object *content,
    return tbl;
 }
 
+static Elm_Genlist_Item_Class *
+_enm_itc_new(const char *style,
+             char *(*text_get)(void *, Evas_Object *, const char *),
+             Evas_Object *(*content_get)(void *, Evas_Object *, const char *),
+             void (*del)(void *, Evas_Object *))
+{
+   Elm_Genlist_Item_Class *itc;
+
+   itc = elm_genlist_item_class_new();
+   if (!itc) return NULL;
+   itc->item_style = style;
+   itc->func.text_get = text_get;
+   itc->func.content_get = content_get;
+   itc->func.state_get = NULL;
+   itc->func.del = del;
+
+   return itc;
+}
+
 static void
 _enm_popup_new(E_NM_Instance *inst)
 {
    E_NM_Module_Context *ctxt = inst->ctxt;
    Evas_Object *box, *button, *gl, *icon;
-   Elm_Genlist_Item_Class *itc;
 
    EINA_SAFETY_ON_FALSE_RETURN(inst->popup == NULL);
 
@@ -2057,63 +2070,28 @@ _enm_popup_new(E_NM_Instance *inst)
    inst->ui.popup.genlist = gl;
 
    /* Item classes — created per-popup, freed in enm_popup_del */
-   itc = elm_genlist_item_class_new();
-   itc->item_style = "group_index";
-   itc->func.text_get = _enm_itc_group_text_get;
-   itc->func.content_get = NULL;
-   itc->func.state_get = NULL;
-   itc->func.del = NULL;
-   inst->ui.popup.itc_group = itc;
+   inst->ui.popup.itc_group = _enm_itc_new("group_index",
+      _enm_itc_group_text_get, NULL, NULL);
 
-   itc = elm_genlist_item_class_new();
-   itc->item_style = "group_index";
-   itc->func.text_get = _enm_itc_group_wifi_text_get;
-   itc->func.content_get = _enm_itc_group_wifi_content_get;
-   itc->func.state_get = NULL;
-   itc->func.del = NULL;
-   inst->ui.popup.itc_group_wifi = itc;
+   inst->ui.popup.itc_group_wifi = _enm_itc_new("group_index",
+      _enm_itc_group_wifi_text_get, _enm_itc_group_wifi_content_get, NULL);
 
-   itc = elm_genlist_item_class_new();
    /* double_label_blue: same layout as double_label but elm.text.sub is
     * rendered in wifi-band blue (51 153 255) so IPs stand out clearly. */
-   itc->item_style = "double_label";
-   itc->func.text_get = _enm_itc_ap_text_get;
-   itc->func.content_get = _enm_itc_ap_content_get;
-   itc->func.state_get = NULL;
-   itc->func.del = _enm_itc_item_del;
-   inst->ui.popup.itc_ap = itc;
+   inst->ui.popup.itc_ap = _enm_itc_new("double_label",
+      _enm_itc_ap_text_get, _enm_itc_ap_content_get, _enm_itc_item_del);
 
-   itc = elm_genlist_item_class_new();
-   itc->item_style = "double_label";
-   itc->func.text_get = _enm_itc_eth_text_get;
-   itc->func.content_get = _enm_itc_eth_content_get;
-   itc->func.state_get = NULL;
-   itc->func.del = _enm_itc_item_del;
-   inst->ui.popup.itc_eth = itc;
+   inst->ui.popup.itc_eth = _enm_itc_new("double_label",
+      _enm_itc_eth_text_get, _enm_itc_eth_content_get, _enm_itc_item_del);
 
-   itc = elm_genlist_item_class_new();
-   itc->item_style = "double_label";
-   itc->func.text_get = _enm_itc_bt_text_get;
-   itc->func.content_get = _enm_itc_bt_content_get;
-   itc->func.state_get = NULL;
-   itc->func.del = _enm_itc_item_del;
-   inst->ui.popup.itc_bt = itc;
+   inst->ui.popup.itc_bt = _enm_itc_new("double_label",
+      _enm_itc_bt_text_get, _enm_itc_bt_content_get, _enm_itc_item_del);
 
-   itc = elm_genlist_item_class_new();
-   itc->item_style = "group_index";
-   itc->func.text_get = _enm_itc_group_vpn_text_get;
-   itc->func.content_get = _enm_itc_group_vpn_content_get;
-   itc->func.state_get = NULL;
-   itc->func.del = NULL;
-   inst->ui.popup.itc_group_vpn = itc;
+   inst->ui.popup.itc_group_vpn = _enm_itc_new("group_index",
+      _enm_itc_group_vpn_text_get, _enm_itc_group_vpn_content_get, NULL);
 
-   itc = elm_genlist_item_class_new();
-   itc->item_style = "double_label";
-   itc->func.text_get = _enm_itc_vpn_text_get;
-   itc->func.content_get = _enm_itc_vpn_content_get;
-   itc->func.state_get = NULL;
-   itc->func.del = NULL;
-   inst->ui.popup.itc_vpn = itc;
+   inst->ui.popup.itc_vpn = _enm_itc_new("double_label",
+      _enm_itc_vpn_text_get, _enm_itc_vpn_content_get, NULL);
 
    /* Click signal for row tap -> connect/disconnect. Avoid using selection
     * callbacks here so already-selected active rows still react to clicks. */

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to