devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=cf566306c6b5572c91de39a1d5c4281929bfe4c4

commit cf566306c6b5572c91de39a1d5c4281929bfe4c4
Author: Simon Tischer <[email protected]>
Date:   Thu Apr 9 14:27:50 2020 +0200

    wallpaper selector - small optimizations
    
    wallpaper selector - small optimizations
    
    Reviewed-by: Christopher Michael <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D11673
---
 src/modules/conf_theme/e_int_config_wallpaper.c | 112 +++++++++++++++++-------
 1 file changed, 80 insertions(+), 32 deletions(-)

diff --git a/src/modules/conf_theme/e_int_config_wallpaper.c 
b/src/modules/conf_theme/e_int_config_wallpaper.c
index 069880b3e..a486cccd7 100644
--- a/src/modules/conf_theme/e_int_config_wallpaper.c
+++ b/src/modules/conf_theme/e_int_config_wallpaper.c
@@ -40,6 +40,8 @@ struct _E_Config_Dialog_Data
    Evas_Object     *o_theme_bg;
    Evas_Object     *o_personal;
    Evas_Object     *o_system;
+   Evas_Object     *o_image;
+   Evas_Object     *o_online;
    int              fmdir, use_theme_bg;
    const char      *bg;
 
@@ -105,6 +107,15 @@ _e_int_config_wallpaper_desk(Evas_Object *parent 
EINA_UNUSED, int zone_num, int
    return cfd;
 }
 
+static void
+_disable_set(E_Config_Dialog_Data *cfdata, int state)
+{
+   e_widget_disabled_set(cfdata->o_system, state);
+   e_widget_disabled_set(cfdata->o_personal, state);
+   e_widget_disabled_set(cfdata->o_up_button, state);
+   e_widget_disabled_set(cfdata->o_fm, state);
+}
+
 static void
 _bg_set(E_Config_Dialog_Data *cfdata)
 {
@@ -257,12 +268,14 @@ _cb_theme_wallpaper(void *data, Evas_Object *obj 
EINA_UNUSED, void *event_info E
                                   "e/desktop/background");
         eina_stringshare_replace(&cfdata->bg, f);
         _bg_set(cfdata);
+        _disable_set(cfdata, 1);
      }
    else
      {
         evas_object_smart_callback_call(cfdata->o_fm, "selection_change",
                                         cfdata);
         _bg_set(cfdata);
+        _disable_set(cfdata, 0);
      }
 }
 
@@ -424,7 +437,7 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata)
 static Evas_Object *
 _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *cfdata)
 {
-   Evas_Object *o, *rt, *ot, *oa;
+   Evas_Object *o, *rt, *ot, *oa, *tt;
    Evas_Object *ow;
    E_Zone *zone = NULL;
    E_Radio_Group *rg;
@@ -434,11 +447,11 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas 
*evas, E_Config_Dialog_Data
    e_dialog_resizable_set(cfd->dia, 1);
 
    zone = e_zone_current_get();
-   o = e_widget_list_add(evas, 0, 1);
+   o = e_widget_table_add(evas, 0);
 
    rg = e_widget_radio_group_new(&(cfdata->fmdir));
    ot = e_widget_table_add(e_win_evas_win_get(evas), 0);
-   rt = e_widget_table_add(e_win_evas_win_get(evas), 1);
+   rt = e_widget_table_add(e_win_evas_win_get(evas), 0);
 
    /* create dir radios */
    ow = e_widget_radio_add(evas, _("Personal"), 0, rg);
@@ -449,12 +462,13 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas 
*evas, E_Config_Dialog_Data
    cfdata->o_system = ow;
    evas_object_smart_callback_add(ow, "changed", _cb_dir, cfdata);
    e_widget_table_object_append(rt, ow, 1, 0, 1, 1, 1, 1, 0, 0);
-   e_widget_table_object_append(ot, rt, 0, 0, 1, 1, 0, 0, 0, 0);
 
    ow = e_widget_button_add(evas, _("Go up a directory"), "go-up",
                             _cb_button_up, cfdata, NULL);
    cfdata->o_up_button = ow;
-   e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 0, 0, 0, 0);
+   e_widget_table_object_append(rt, ow, 2, 0, 1, 1, 0, 0, 0, 0);
+   
+   e_widget_table_object_align_append(ot, rt, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0);
 
    if (cfdata->fmdir == 1)
      e_prefix_data_concat_static(path, "data/backgrounds");
@@ -480,27 +494,34 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas 
*evas, E_Config_Dialog_Data
 
    e_widget_size_min_set(ow, 160, 160);
    e_widget_table_object_append(ot, ow, 0, 2, 1, 1, 1, 1, 1, 1);
-   e_widget_list_object_append(o, ot, 1, 1, 0.0);
+   e_widget_table_object_append(o, ot, 0, 0, 1, 1, 1, 1, 0, 1);
+
+   tt = e_widget_table_add(e_win_evas_win_get(evas), 0);
 
    ot = e_widget_table_add(e_win_evas_win_get(evas), 0);
    ow = e_widget_check_add(evas, _("Use Theme Wallpaper"),
                            &cfdata->use_theme_bg);
    cfdata->o_theme_bg = ow;
    evas_object_smart_callback_add(ow, "changed", _cb_theme_wallpaper, cfdata);
-   e_widget_table_object_append(ot, ow, 0, 0, 2, 1, 1, 0, 0, 0);
-   ow = e_widget_button_add(evas, _("Picture..."), "folder-image",
+   e_widget_table_object_align_append(tt, ow, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0);
+
+   ow = e_widget_button_add(evas, _("Import File..."), "folder-image",
                             _cb_import, cfdata, NULL);
-   e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 1, 0, 0, 0);
+   cfdata->o_image = ow;
+   e_widget_table_object_align_append(tt, ow, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0);
 
    if (efreet_util_desktop_file_id_find("extra.desktop"))
    {
       ow = e_widget_button_add(evas, _("Import Online..."), 
"preferences-desktop-theme",
                               _cb_import_online, NULL, NULL);
-      e_widget_table_object_append(ot, ow, 1, 1, 1, 1, 1, 0, 0, 0);
+      cfdata->o_online = ow;
+      e_widget_table_object_align_append(tt, ow, 2, 0, 1, 1, 0, 0, 1, 0, 0, 0);
    }
 
-   mw = 320;
-   mh = (320 * zone->h) / zone->w;
+   e_widget_table_object_align_append(ot, tt, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0);
+
+   mw = 500;
+   mh = (500 * zone->h) / zone->w;
    oa = e_widget_aspect_add(evas, mw, mh);
    ow = e_widget_preview_add(evas, mw, mh);
    evas_object_size_hint_min_set(ow, mw, mh);
@@ -509,13 +530,16 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas 
*evas, E_Config_Dialog_Data
    _bg_set(cfdata);
    e_widget_aspect_child_set(oa, ow);
    evas_object_show(ow);
-   e_widget_table_object_append(ot, oa, 0, 2, 2, 1, 1, 1, 1, 1);
-   e_widget_list_object_append(o, ot, 1, 1, 0.5);
+   e_widget_table_object_append(ot, oa, 0, 1, 3, 1, 1, 1, 1, 1);
+   e_widget_table_object_append(o, ot, 1, 0, 1, 1, 1, 1, 1, 1);
 
    if (!cfdata->bg || cfdata->fmdir == 1)
      e_widget_radio_toggle_set(cfdata->o_system, EINA_TRUE);
    else
      e_widget_radio_toggle_set(cfdata->o_personal, EINA_TRUE);
+   
+   if (cfdata->use_theme_bg)
+     _disable_set(cfdata, 1);
 
    return o;
 }
@@ -610,7 +634,7 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata)
 static Evas_Object *
 _adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dialog_Data 
*cfdata)
 {
-   Evas_Object *o, *rt, *ot, *oa;
+   Evas_Object *o, *rt, *ot, *oa, *tt;
    Evas_Object *ow, *of;
    E_Zone *zone = NULL;
    E_Radio_Group *rg;
@@ -620,11 +644,11 @@ _adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *
    e_dialog_resizable_set(cfd->dia, 1);
 
    zone = e_zone_current_get();
-   o = e_widget_list_add(evas, 0, 1);
+   o = e_widget_table_add(e_win_evas_win_get(evas), 0);
 
    rg = e_widget_radio_group_new(&(cfdata->fmdir));
    ot = e_widget_table_add(e_win_evas_win_get(evas), 0);
-   rt = e_widget_table_add(e_win_evas_win_get(evas), 1);
+   rt = e_widget_table_add(e_win_evas_win_get(evas), 0);
 
    /* create dir radios */
    ow = e_widget_radio_add(evas, _("Personal"), 0, rg);
@@ -635,12 +659,13 @@ _adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *
    cfdata->o_system = ow;
    evas_object_smart_callback_add(ow, "changed", _cb_dir, cfdata);
    e_widget_table_object_append(rt, ow, 1, 0, 1, 1, 1, 1, 0, 0);
-   e_widget_table_object_append(ot, rt, 0, 0, 1, 1, 0, 0, 0, 0);
 
    ow = e_widget_button_add(evas, _("Go up a directory"), "go-up",
                             _cb_button_up, cfdata, NULL);
    cfdata->o_up_button = ow;
-   e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 0, 0, 0, 0);
+   e_widget_table_object_append(rt, ow, 2, 0, 1, 1, 0, 0, 0, 0);
+
+   e_widget_table_object_align_append(ot, rt, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0);
 
    if (cfdata->fmdir == 1)
      e_prefix_data_concat_static(path, "data/backgrounds");
@@ -648,6 +673,11 @@ _adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *
      e_user_dir_concat_static(path, "backgrounds");
 
    ow = e_widget_flist_add(evas);
+   {
+      E_Fm2_Config *cfg;
+      cfg = e_widget_flist_config_get(ow);
+      cfg->view.no_click_rename = 1;
+   }
    cfdata->o_fm = ow;
    evas_object_smart_callback_add(ow, "dir_changed",
                                   _cb_files_changed, cfdata);
@@ -655,40 +685,51 @@ _adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *
                                   _cb_files_selection_change, cfdata);
    evas_object_smart_callback_add(ow, "changed",
                                   _cb_files_files_changed, cfdata);
+   evas_object_smart_callback_add(ow, "files_deleted",
+                                  _cb_files_files_deleted, cfdata);
    e_widget_flist_path_set(ow, path, "/");
 
    e_widget_size_min_set(ow, 160, 160);
    e_widget_table_object_append(ot, ow, 0, 2, 1, 1, 1, 1, 1, 1);
-   e_widget_list_object_append(o, ot, 1, 1, 0.0);
+   e_widget_table_object_append(o, ot, 0, 0, 1, 1, 1, 1, 0, 1);
+
+   tt = e_widget_table_add(e_win_evas_win_get(evas), 0);
+
 
    ot = e_widget_table_add(e_win_evas_win_get(evas), 0);
    ow = e_widget_check_add(evas, _("Use Theme Wallpaper"),
                            &cfdata->use_theme_bg);
    cfdata->o_theme_bg = ow;
    evas_object_smart_callback_add(ow, "changed", _cb_theme_wallpaper, cfdata);
-   e_widget_table_object_append(ot, ow, 0, 0, 2, 1, 1, 0, 0, 0);
-   ow = e_widget_button_add(evas, _("Picture..."), "folder-image",
+   e_widget_table_object_align_append(tt, ow, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0);
+
+   ow = e_widget_button_add(evas, _("Import File..."), "folder-image",
                             _cb_import, cfdata, NULL);
-   e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 1, 0, 0, 0);
+   cfdata->o_image = ow;
+   e_widget_table_object_align_append(tt, ow, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0);
 
    if (efreet_util_desktop_file_id_find("extra.desktop"))
    {
       ow = e_widget_button_add(evas, _("Import Online..."), 
"preferences-desktop-theme",
                               _cb_import_online, NULL, NULL);
-      e_widget_table_object_append(ot, ow, 1, 1, 1, 1, 1, 0, 0, 0);
+      cfdata->o_online = ow;
+      e_widget_table_object_align_append(tt, ow, 2, 0, 1, 1, 0, 0, 1, 0, 0, 0);
    }
 
-   mw = 320;
-   mh = (320 * zone->h) / zone->w;
+
+   e_widget_table_object_align_append(ot, tt, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0);
+
+   mw = 500;
+   mh = (500 * zone->h) / zone->w;
    oa = e_widget_aspect_add(evas, mw, mh);
    ow = e_widget_preview_add(evas, mw, mh);
-   evas_object_show(ow);
    evas_object_size_hint_min_set(ow, mw, mh);
-   evas_object_size_hint_aspect_set(ow, EVAS_ASPECT_CONTROL_BOTH, zone->w, 
zone->h);
+   evas_object_show(ow);
    cfdata->o_preview = ow;
    _bg_set(cfdata);
    e_widget_aspect_child_set(oa, ow);
-   e_widget_table_object_append(ot, oa, 0, 2, 2, 1, 1, 1, 1, 1);
+   evas_object_show(ow);
+   e_widget_table_object_append(ot, oa, 0, 1, 3, 1, 1, 1, 1, 1);
 
    rg = e_widget_radio_group_new(&(cfdata->all_this_desk_screen));
    of = e_widget_frametable_add(evas, _("Where to place the Wallpaper"), 0);
@@ -701,9 +742,17 @@ _adv_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data *
          (e_comp_zone_number_get(0))))
      e_widget_disabled_set(ow, 1);
    e_widget_frametable_object_append(of, ow, 0, 2, 1, 1, 1, 0, 1, 0);
-   e_widget_table_object_append(ot, of, 0, 3, 2, 1, 1, 0, 1, 0);
+   e_widget_table_object_append(ot, of, 0, 3, 3, 1, 1, 0, 1, 0);
 
-   e_widget_list_object_append(o, ot, 1, 1, 0.0);
+   e_widget_table_object_append(o, ot, 1, 0, 1, 1, 1, 1, 1, 1);
+
+   if (!cfdata->bg || cfdata->fmdir == 1)
+     e_widget_radio_toggle_set(cfdata->o_system, EINA_TRUE);
+   else
+     e_widget_radio_toggle_set(cfdata->o_personal, EINA_TRUE);
+
+   if (cfdata->use_theme_bg)
+     _disable_set(cfdata, 1);
 
    return o;
 }
@@ -775,4 +824,3 @@ _adv_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
    e_config_save_queue();
    return 1;
 }
-

-- 


Reply via email to