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

git pushed a commit to branch main
in repository eradio.

View the commit online.

commit 8048a7646dbaef3ab24f5d96f9d885b6a0c7aac0
Author: politebot <[email protected]>
AuthorDate: Sat Oct 11 05:41:56 2025 -0500

    UI changes
---
 src/http.c |  4 ++--
 src/ui.c   | 59 +++++++++++++++++++++++++++++++++++++----------------------
 2 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/src/http.c b/src/http.c
index 773741e..ccd7b3f 100644
--- a/src/http.c
+++ b/src/http.c
@@ -305,8 +305,6 @@ _handle_station_list_complete(Ecore_Con_Event_Url_Complete *ev)
         ad->stations = eina_list_append(ad->stations, st);
     }
 
-    free(d_ctx);
-
     favorites_apply_to_stations(ad);
     if (ad->view_mode == VIEW_SEARCH)
       station_list_populate(ad, ad->stations, d_ctx->new_search);
@@ -325,6 +323,8 @@ _handle_station_list_complete(Ecore_Con_Event_Url_Complete *ev)
             ui_set_load_more_button_visibility(ad, EINA_FALSE);
     }
 
+    free(d_ctx);
+
     xmlXPathFreeObject(xpathObj);
     xmlXPathFreeContext(xpathCtx);
     xmlFreeDoc(doc);
diff --git a/src/ui.c b/src/ui.c
index b858141..1162006 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -61,7 +61,7 @@ ui_create(AppData *ad)
    if (ee) evas_object_smart_callback_add(ad->win, "delete,request", _app_exit_cb, ee);
 
    Evas_Object *box = elm_box_add(ad->win);
-   elm_box_padding_set(box, 0, 10);
+   elm_box_padding_set(box, 10, 10); // Add padding to the main box
    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_win_resize_object_add(ad->win, box);
    evas_object_show(box);
@@ -81,8 +81,7 @@ ui_create(AppData *ad)
    elm_toolbar_item_append(toolbar, "emblem-favorite", "Favorites", _tb_favorites_clicked_cb, ad);
 
    ad->search_bar = elm_box_add(ad->win);
-   elm_box_horizontal_set(ad->search_bar, EINA_TRUE);
-   elm_box_padding_set(ad->search_bar, 10, 0);
+   elm_box_padding_set(ad->search_bar, 10, 10);
    evas_object_size_hint_weight_set(ad->search_bar, EVAS_HINT_EXPAND, 0);
    evas_object_size_hint_align_set(ad->search_bar, EVAS_HINT_FILL, 0);
    elm_box_pack_end(box, ad->search_bar);
@@ -98,6 +97,19 @@ ui_create(AppData *ad)
    evas_object_show(ad->search_entry);
    elm_object_focus_set(ad->search_entry, EINA_TRUE);
 
+   // Search options in a separate box
+   Evas_Object *search_options_box = elm_box_add(ad->win);
+   elm_box_horizontal_set(search_options_box, EINA_TRUE);
+   elm_box_padding_set(search_options_box, 10, 0);
+   elm_box_pack_end(ad->search_bar, search_options_box);
+   evas_object_show(search_options_box);
+
+   Evas_Object *lbl;
+   lbl = elm_label_add(ad->win);
+   elm_object_text_set(lbl, "Search by:");
+   elm_box_pack_end(search_options_box, lbl);
+   evas_object_show(lbl);
+
    ad->search_hoversel = elm_hoversel_add(ad->win);
    elm_hoversel_hover_parent_set(ad->search_hoversel, ad->win);
    elm_object_text_set(ad->search_hoversel, "name");
@@ -105,9 +117,14 @@ ui_create(AppData *ad)
    elm_hoversel_item_add(ad->search_hoversel, "country", NULL, ELM_ICON_NONE, _hoversel_item_selected_cb, NULL);
    elm_hoversel_item_add(ad->search_hoversel, "language", NULL, ELM_ICON_NONE, _hoversel_item_selected_cb, NULL);
    elm_hoversel_item_add(ad->search_hoversel, "tag", NULL, ELM_ICON_NONE, _hoversel_item_selected_cb, NULL);
-   elm_box_pack_end(ad->search_bar, ad->search_hoversel);
+   elm_box_pack_end(search_options_box, ad->search_hoversel);
    evas_object_show(ad->search_hoversel);
 
+   lbl = elm_label_add(ad->win);
+   elm_object_text_set(lbl, "Sort by:");
+   elm_box_pack_end(search_options_box, lbl);
+   evas_object_show(lbl);
+
    ad->sort_hoversel = elm_hoversel_add(ad->win);
    elm_hoversel_hover_parent_set(ad->sort_hoversel, ad->win);
    elm_object_text_set(ad->sort_hoversel, "name");
@@ -129,12 +146,12 @@ ui_create(AppData *ad)
    elm_hoversel_item_add(ad->sort_hoversel, "clicktrend", NULL, ELM_ICON_NONE, _hoversel_item_selected_cb, NULL);
    elm_hoversel_item_add(ad->sort_hoversel, "changetimestamp", NULL, ELM_ICON_NONE, _hoversel_item_selected_cb, NULL);
    elm_hoversel_item_add(ad->sort_hoversel, "random", NULL, ELM_ICON_NONE, _hoversel_item_selected_cb, NULL);
-   elm_box_pack_end(ad->search_bar, ad->sort_hoversel);
+   elm_box_pack_end(search_options_box, ad->sort_hoversel);
    evas_object_show(ad->sort_hoversel);
 
    ad->reverse_check = elm_check_add(ad->win);
    elm_object_text_set(ad->reverse_check, "Reverse");
-   elm_box_pack_end(ad->search_bar, ad->reverse_check);
+   elm_box_pack_end(search_options_box, ad->reverse_check);
    evas_object_show(ad->reverse_check);
 
    // Server selection hoversel, populated after HTTP init discovers servers
@@ -149,7 +166,11 @@ ui_create(AppData *ad)
    elm_box_pack_end(ad->search_bar, ad->search_btn);
    evas_object_show(ad->search_btn);
 
-   /* Removed redundant Favorites button from search bar; toolbar handles view switching */
+   /* Separator */
+   Evas_Object *sep = elm_separator_add(ad->win);
+   elm_separator_horizontal_set(sep, EINA_TRUE);
+   elm_box_pack_end(box, sep);
+   evas_object_show(sep);
 
    ad->list = elm_list_add(ad->win);
    evas_object_size_hint_weight_set(ad->list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -160,9 +181,9 @@ ui_create(AppData *ad)
    Evas_Object *controls_hbox = elm_box_add(ad->win);
    elm_box_horizontal_set(controls_hbox, EINA_TRUE);
    elm_box_padding_set(controls_hbox, 10, 0);
-   elm_box_align_set(controls_hbox, 0.5, 1.0);
+   elm_box_homogeneous_set(controls_hbox, EINA_TRUE);
    evas_object_size_hint_weight_set(controls_hbox, EVAS_HINT_EXPAND, 0);
-   evas_object_size_hint_align_set(controls_hbox, EVAS_HINT_FILL, 0);
+   evas_object_size_hint_align_set(controls_hbox, EVAS_HINT_FILL, 0.5);
    elm_box_pack_end(box, controls_hbox);
    evas_object_show(controls_hbox);
 
@@ -171,7 +192,7 @@ ui_create(AppData *ad)
    ad->play_pause_btn = elm_button_add(ad->win);
    ic = elm_icon_add(ad->play_pause_btn);
    elm_icon_standard_set(ic, "media-playback-start");
-   evas_object_size_hint_min_set(ic, 40, 40);
+   evas_object_size_hint_min_set(ic, 48, 48);
    elm_object_part_content_set(ad->play_pause_btn, "icon", ic);
    elm_box_pack_end(controls_hbox, ad->play_pause_btn);
    evas_object_show(ad->play_pause_btn);
@@ -179,22 +200,15 @@ ui_create(AppData *ad)
    ad->stop_btn = elm_button_add(ad->win);
    ic = elm_icon_add(ad->stop_btn);
    elm_icon_standard_set(ic, "media-playback-stop");
-   evas_object_size_hint_min_set(ic, 40, 40);
+   evas_object_size_hint_min_set(ic, 48, 48);
    elm_object_part_content_set(ad->stop_btn, "icon", ic);
    elm_box_pack_end(controls_hbox, ad->stop_btn);
    evas_object_show(ad->stop_btn);
 
    ad->load_more_btn = elm_button_add(ad->win);
    elm_object_text_set(ad->load_more_btn, "Load More");
-   Evas_Object *load_more_box = elm_box_add(ad->win);
-   elm_box_padding_set(load_more_box, 10, 0);
-   elm_box_align_set(load_more_box, 0.5, 1.0);
-   evas_object_size_hint_weight_set(load_more_box, EVAS_HINT_EXPAND, 0);
-   evas_object_size_hint_align_set(load_more_box, EVAS_HINT_FILL, 0);
-   elm_box_pack_end(load_more_box, ad->load_more_btn);
-   elm_box_pack_end(box, load_more_box);
-   evas_object_show(load_more_box);
-   evas_object_show(ad->load_more_btn);
+   elm_box_pack_end(controls_hbox, ad->load_more_btn);
+   evas_object_hide(ad->load_more_btn); // Hide by default
 
    evas_object_smart_callback_add(ad->play_pause_btn, "clicked", _play_pause_btn_clicked_cb, ad);
    evas_object_smart_callback_add(ad->stop_btn, "clicked", _stop_btn_clicked_cb, ad);
@@ -202,7 +216,6 @@ ui_create(AppData *ad)
    evas_object_smart_callback_add(ad->search_entry, "activated", _search_entry_activated_cb, ad);
    evas_object_smart_callback_add(ad->list, "selected", _list_item_selected_cb, ad);
    evas_object_smart_callback_add(ad->load_more_btn, "clicked", _load_more_btn_clicked_cb, ad);
-   /* Favorites view button removed; toolbar callbacks handle switching */
 
    /* Default to Search view on startup */
    ad->view_mode = VIEW_SEARCH;
@@ -213,7 +226,7 @@ ui_create(AppData *ad)
    else
      station_list_clear(ad);
 
-   evas_object_resize(ad->win, 400, 600);
+   evas_object_resize(ad->win, 480, 800);
    evas_object_show(ad->win);
 }
 
@@ -249,6 +262,7 @@ _tb_favorites_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_i
    AppData *ad = data;
    ad->view_mode = VIEW_FAVORITES;
    evas_object_hide(ad->search_bar);
+   ui_set_load_more_button_visibility(ad, EINA_FALSE);
    favorites_rebuild_station_list(ad);
    station_list_populate(ad, ad->favorites_stations, EINA_TRUE);
 }
@@ -259,6 +273,7 @@ _tb_search_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
    AppData *ad = data;
    ad->view_mode = VIEW_SEARCH;
    evas_object_show(ad->search_bar);
+   ui_set_load_more_button_visibility(ad, EINA_FALSE);
    if (ad->stations)
      station_list_populate(ad, ad->stations, EINA_TRUE);
    else

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

Reply via email to