Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_int_config_mime.c e_int_config_mime_edit.c 


Log Message:
Add/Del/Configure should work now. Still have to handle the case of edj and
desktop.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_int_config_mime.c 3 Nov 2006 16:50:31 -0000       1.5
+++ e_int_config_mime.c 3 Nov 2006 18:52:39 -0000       1.6
@@ -11,7 +11,7 @@
 
 static void         _cb_confirm_yes     (void *data);
 static void         _cb_confirm_destroy (void *data);
-
+static void         _cb_entry_ok        (char *text, void *data);
 
 struct _E_Config_Dialog_Data 
 {
@@ -46,6 +46,21 @@
 _fill_data(E_Config_Dialog_Data *cfdata) 
 {
    Evas_List *l;
+
+   while (cfdata->mimes) 
+     {
+       E_Config_Mime_Icon *mi;
+       
+       mi = cfdata->mimes->data;
+       if (!mi) continue;
+       if (mi->mime)
+         evas_stringshare_del(mi->mime);
+       if (mi->icon)
+         evas_stringshare_del(mi->icon);
+       E_FREE(mi);
+       
+       cfdata->mimes = evas_list_remove_list(cfdata->mimes, cfdata->mimes);
+     }
    
    for (l = e_config->mime_icons; l; l = l->next) 
      {
@@ -139,13 +154,16 @@
        
        mi = l->data;
        if (!mi) continue;
+       if (mi->icon)
+         if (!strcmp(mi->icon, "DESKTOP")) continue;
+       
        tmp = e_fm_mime_icon_get(mi->mime);
        if (!tmp) 
          snprintf(buf, sizeof(buf), "e/icons/fileman/file");
        else if (!strcmp(tmp, "THUMB")) 
          snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", mi->mime);
        else if (!strncmp(tmp, "e/icons/fileman/mime/", 21)) 
-         snprintf(buf, sizeof(buf), "%s", tmp);
+         snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", mi->mime);
        else 
          {
             char *p;
@@ -167,7 +185,14 @@
 static void
 _cb_add(void *data, void *data2) 
 {
+   E_Config_Dialog_Data *cfdata;
    
+   cfdata = data;
+   if (!cfdata) return;
+   
+   e_entry_dialog_show(_("Create new mime type"), "enlightenment/e",
+                      _("Enter a name for this new mime type"), "", 
+                      NULL, NULL, _cb_entry_ok, NULL, cfdata);
 }
 
 static void
@@ -242,9 +267,14 @@
        mi = l->data;
        if (!mi) continue;
        if (strcmp(mi->mime, cfdata->sel_mt)) continue;
-       cfdata->mimes = evas_list_remove(cfdata->mimes, mi);
+       if (mi->mime)
+         evas_stringshare_del(mi->mime);
+       if (mi->icon)
+         evas_stringshare_del(mi->icon);
        e_config->mime_icons = evas_list_remove(e_config->mime_icons, mi);
      }
+   _fill_data(cfdata);
+   _fill_list(cfdata);
 }
 
 static void
@@ -254,5 +284,30 @@
    
    cfdata = data;
    if (!cfdata) return;
+   _fill_list(cfdata);
+}
+
+static void 
+_cb_entry_ok(char *text, void *data) 
+{
+   E_Config_Dialog_Data *cfdata;
+   E_Config_Mime_Icon *mime;
+   char buf[4096];
+
+   cfdata = data;
+   if (!cfdata) return;
+   if (!text) return;
+   if (!strstr(text, "/")) return;
+   
+   snprintf(buf, sizeof(buf), "%s", text);
+   mime = E_NEW(E_Config_Mime_Icon, 1);
+   mime->mime = evas_stringshare_add(buf);
+//   snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", text);
+   mime->icon = evas_stringshare_add("THUMB");
+
+   e_config->mime_icons = evas_list_append(e_config->mime_icons, mime);
+   e_config_save_queue();
+
+   _fill_data(cfdata);
    _fill_list(cfdata);
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime_edit.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_int_config_mime_edit.c    3 Nov 2006 16:50:31 -0000       1.3
+++ e_int_config_mime_edit.c    3 Nov 2006 18:52:39 -0000       1.4
@@ -17,8 +17,8 @@
 enum _Icon_Type 
 {
      THUMB,
-     EDJ,
-     IMAGE
+     THEME,
+     EDJ
 };
 
 struct _E_Config_Dialog_Data 
@@ -97,7 +97,7 @@
        if ((p) && (!strcmp(p, ".edj"))) 
          cfdata->type = EDJ;
        else
-         cfdata->type = IMAGE;
+         cfdata->type = THEME;
      }
 }
 
@@ -124,6 +124,7 @@
    ob = e_widget_label_add(evas, _("Mime:"));
    e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 1);
    ob = e_widget_entry_add(evas, &(cfdata->mime));
+   e_widget_entry_readonly_set(ob, 1);
    e_widget_min_size_set(ob, 100, 1);
    e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
@@ -133,12 +134,13 @@
    ob = e_widget_radio_add(evas, _("Use Generated Thumbnail"), THUMB, rg);
    evas_object_smart_callback_add(ob, "changed", _cb_type, cfdata);
    e_widget_frametable_object_append(of, ob, 0, 0, 3, 1, 1, 1, 1, 1);
-   ob = e_widget_radio_add(evas, _("Use Edje File"), EDJ, rg);
+   ob = e_widget_radio_add(evas, _("Use Theme Icon"), THEME, rg);
    evas_object_smart_callback_add(ob, "changed", _cb_type, cfdata);
    e_widget_frametable_object_append(of, ob, 0, 1, 3, 1, 1, 1, 1, 1);
-   ob = e_widget_radio_add(evas, _("Use Image"), IMAGE, rg);
+   ob = e_widget_radio_add(evas, _("Use Edje File"), EDJ, rg);
    evas_object_smart_callback_add(ob, "changed", _cb_type, cfdata);
    e_widget_frametable_object_append(of, ob, 0, 2, 3, 1, 1, 1, 1, 1);
+   e_widget_disabled_set(ob, 1);
    
    oi = e_widget_button_add(evas, "", NULL, _cb_icon_sel, cfdata, cfd);
    cfdata->gui.icon = oi;
@@ -159,6 +161,31 @@
 static int
 _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
 {
+   E_Config_Mime_Icon *mime;
+   char buf[4096];
+   
+   mime = cfd->data;
+   if (!mime) return 0;
+   
+   if (mime->mime)
+     evas_stringshare_del(mime->mime);
+   mime->mime = evas_stringshare_add(cfdata->mime);
+   
+   if (mime->icon)
+     evas_stringshare_del(mime->icon);
+   
+   switch (cfdata->type) 
+     {
+      case THUMB:
+       mime->icon = evas_stringshare_add("THUMB");
+       break;
+      case THEME:
+      case EDJ:
+       snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", cfdata->mime);
+       mime->icon = evas_stringshare_add(buf);
+       break;
+     }
+   e_config_save_queue();
    return 1;
 }
 
@@ -170,7 +197,6 @@
    E_Dialog *dia;
    Evas_Object *o;
    Evas_Coord w, h;
-   char *dir = NULL;
    
    cfdata = data;
    if (!cfdata) return;
@@ -183,17 +209,8 @@
    if (!dia) return;
    e_dialog_title_set(dia, _("Select an Icon"));
    dia->data = cfdata;
-   if (cfdata->icon)
-     dir = (char *)e_fm_mime_icon_get(cfdata->icon);
-   if ((dir) && (cfdata->type != THUMB))
-     {
-       o = e_widget_fsel_add(dia->win->evas, dir, "/", NULL, NULL,
-                             _cb_fsel_sel, cfdata, NULL, cfdata, 1);
-       free(dir);
-     }
-   else
-     o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL,
-                          _cb_fsel_sel, cfdata, NULL, cfdata, 1);
+   o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL,
+                        _cb_fsel_sel, cfdata, NULL, cfdata, 1);
 
    cfdata->gui.fsel_wid = o;
    evas_object_show(o);
@@ -227,6 +244,10 @@
    switch (cfdata->type) 
      {
       case THUMB:
+       icon = edje_object_add(evas_object_evas_get(cfdata->gui.icon));
+       e_theme_edje_object_set(icon, "base/theme/fileman", 
"e/icons/fileman/file");
+       break;
+      case THEME:
        snprintf(buf, sizeof(buf), "e/icons/fileman/mime/%s", cfdata->mime);
        icon = edje_object_add(evas_object_evas_get(cfdata->gui.icon));
        if (!e_theme_edje_object_set(icon, "base/theme/fileman", buf))
@@ -234,15 +255,10 @@
        break;
       case EDJ:
        icon = edje_object_add(evas_object_evas_get(cfdata->gui.icon));
-       if (!e_theme_edje_object_set(icon, "base/theme/fileman", cfdata->icon))
+       if (!e_theme_edje_object_set(icon, "base/theme/fileman", tmp))
          e_theme_edje_object_set(icon, "base/theme/fileman", 
"e/icons/fileman/file");
        e_widget_disabled_set(cfdata->gui.icon, 0);
        break;
-      case IMAGE:
-       icon = e_icon_add(evas_object_evas_get(cfdata->gui.icon));
-       e_icon_file_set(icon, cfdata->icon);
-       e_widget_disabled_set(cfdata->gui.icon, 0);
-       break;
       default:
        break;
      }
@@ -262,10 +278,10 @@
       case THUMB:
        e_widget_disabled_set(cfdata->gui.icon, 1);
        break;
-      case EDJ:
-       e_widget_disabled_set(cfdata->gui.icon, 0);
+      case THEME:
+       e_widget_disabled_set(cfdata->gui.icon, 1);
        break;
-      case IMAGE:
+      case EDJ:
        e_widget_disabled_set(cfdata->gui.icon, 0);
        break;
       default:
@@ -321,9 +337,6 @@
       case EDJ:
        if (!strstr(cfdata->file, ".edj")) return;
 //     if (!edje_file_group_exists(cfdata->file, "")) return;
-       break;
-      case IMAGE:
-       break;
       default:
        return;
        break;



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to