Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src


Modified Files:
        entropy_config.c entropy_core.c 


Log Message:
* Make the addition (and saving) of new mime types and descriptions possible 
again
* Cleanups in ewl list viewer
* More generic config work
* Cleanup in etk location add dialog

===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/entropy_config.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- entropy_config.c    18 Mar 2006 08:04:10 -0000      1.10
+++ entropy_config.c    19 Mar 2006 00:35:26 -0000      1.11
@@ -97,8 +97,13 @@
 
 Entropy_Config* entropy_config_init(entropy_core* core) {
        struct stat config_dir_stat;
+       struct stat eetstat;
        int i;
        Eet_File* conf_file;
+       char* data;
+       int size_ret;
+       int ok;
+
        Entropy_Config_Mime* mimes = calloc(1,sizeof(Entropy_Config_Mime));
 
        
@@ -169,6 +174,8 @@
 
        EET_DATA_DESCRIPTOR_ADD_BASIC(_entropy_config_mime_binding_edd, 
Entropy_Config_Mime_Binding,
                                  "mime_type", mime_type, EET_T_STRING);
+       EET_DATA_DESCRIPTOR_ADD_BASIC(_entropy_config_mime_binding_edd, 
Entropy_Config_Mime_Binding,
+                                 "description", desc, EET_T_STRING);
        EET_DATA_DESCRIPTOR_ADD_LIST(_entropy_config_mime_binding_edd, 
Entropy_Config_Mime_Binding, "actions", actions, 
                                _entropy_config_mime_binding_action_edd);
 
@@ -192,106 +199,108 @@
 
 
 
+       /*Check for existence of eet file*/
+       //Does the config dir exist?
+       if (stat(_Entropy_Config->config_dir_and_file_eet, &eetstat)) {
+               //Make the dir..
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("image/jpeg",
+                                       
entropy_config_binding_action_new("Exhibit (Single File)", "exhibit", "\%pf"),
+                                       
entropy_config_binding_action_new("Exhibit (Directory)", "exhibit", "\%p"),
+                                       NULL
+                                       ));
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("image/png",
+                                       
entropy_config_binding_action_new("Exhibit (Single File)", "exhibit", "\%pf"),
+                                       
entropy_config_binding_action_new("Exhibit (Directory)", "exhibit", "\%p"),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("image/gif",
+                                       
entropy_config_binding_action_new("Exhibit (Single File)", "exhibit", "\%pf"),
+                                       
entropy_config_binding_action_new("Exhibit (Directory)", "exhibit", "\%p"),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("text/csrc",
+                                       
entropy_config_binding_action_new("Gvim", "gvim", "\%pf"),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("text/html",
+                                       
entropy_config_binding_action_new("Firefox", "firefox", "\%pf"),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("audio/x-mp3",
+                                       
entropy_config_binding_action_new("Xmms", "xmms", "\%pf"),
+                                       
entropy_config_binding_action_new("Mpg123 (via eVFS)", "evfscat \"%u\" | mpg123 
-", ""),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("video/x-ms-wmv",
+                                       
entropy_config_binding_action_new("MPlayer", "mplayer", "\%pf"),
+                                       
entropy_config_binding_action_new("MPlayer (via evfs)", "evfscat \"%u\" | 
mplayer -cache 4096 -", ""),
+                                       
entropy_config_binding_action_new("Xine", "xine", "%pf"),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("video/mpeg",
+                                       
entropy_config_binding_action_new("MPlayer", "mplayer", "\%pf"),
+                                       
entropy_config_binding_action_new("MPlayer (via evfs)", "evfscat \"%u\" | 
mplayer -cache 4096 -", ""),
+                                       
entropy_config_binding_action_new("Xine", "xine", "%pf"),
+                                       NULL
+                                       ));
+
+               mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
+                               entropy_config_binding_new("video/x-msvideo",
+                                       
entropy_config_binding_action_new("MPlayer", "mplayer", "\%pf"),
+                                       
entropy_config_binding_action_new("MPlayer (via evfs)", "evfscat \"%u\" | 
mplayer -cache 4096 -", ""),
+                                       
entropy_config_binding_action_new("Xine", "xine", "%pf"),
+                                       NULL
+                                       ));
 
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("image/jpeg",
-                               entropy_config_binding_action_new("Exhibit 
(Single File)", "exhibit", "\%pf"),
-                               entropy_config_binding_action_new("Exhibit 
(Directory)", "exhibit", "\%p"),
-                               NULL
-                               ));
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("image/png",
-                               entropy_config_binding_action_new("Exhibit 
(Single File)", "exhibit", "\%pf"),
-                               entropy_config_binding_action_new("Exhibit 
(Directory)", "exhibit", "\%p"),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("image/gif",
-                               entropy_config_binding_action_new("Exhibit 
(Single File)", "exhibit", "\%pf"),
-                               entropy_config_binding_action_new("Exhibit 
(Directory)", "exhibit", "\%p"),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("text/csrc",
-                               entropy_config_binding_action_new("Gvim", 
"gvim", "\%pf"),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("text/html",
-                               entropy_config_binding_action_new("Firefox", 
"firefox", "\%pf"),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("audio/x-mp3",
-                               entropy_config_binding_action_new("Xmms", 
"xmms", "\%pf"),
-                               entropy_config_binding_action_new("Mpg123 (via 
eVFS)", "evfscat \"%u\" | mpg123 -", ""),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("video/x-ms-wmv",
-                               entropy_config_binding_action_new("MPlayer", 
"mplayer", "\%pf"),
-                               entropy_config_binding_action_new("MPlayer (via 
evfs)", "evfscat \"%u\" | mplayer -cache 4096 -", ""),
-                               entropy_config_binding_action_new("Xine", 
"xine", "%pf"),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("video/mpeg",
-                               entropy_config_binding_action_new("MPlayer", 
"mplayer", "\%pf"),
-                               entropy_config_binding_action_new("MPlayer (via 
evfs)", "evfscat \"%u\" | mplayer -cache 4096 -", ""),
-                               entropy_config_binding_action_new("Xine", 
"xine", "%pf"),
-                               NULL
-                               ));
-
-       mimes->mime_bindings = evas_list_append(mimes->mime_bindings, 
-                       entropy_config_binding_new("video/x-msvideo",
-                               entropy_config_binding_action_new("MPlayer", 
"mplayer", "\%pf"),
-                               entropy_config_binding_action_new("MPlayer (via 
evfs)", "evfscat \"%u\" | mplayer -cache 4096 -", ""),
-                               entropy_config_binding_action_new("Xine", 
"xine", "%pf"),
-                               NULL
-                               ));
-
-        /*ecore_list_append(mime_type_actions, "application/msword:abiword");
-        ecore_list_append(mime_type_actions, 
"application/vnd.ms-excel:gnumeric");*/
-
+               /*ecore_list_append(mime_type_actions, 
"application/msword:abiword");
+               ecore_list_append(mime_type_actions, 
"application/vnd.ms-excel:gnumeric");*/
        
-       conf_file = eet_open(_Entropy_Config->config_dir_and_file_eet, 
EET_FILE_MODE_WRITE);
-       if (conf_file) {
-               char* data;
-               int size_ret;
-               int ok;
+       
+               conf_file = eet_open(_Entropy_Config->config_dir_and_file_eet, 
EET_FILE_MODE_WRITE);
+               if (conf_file) {
+                       printf("Conf file loaded to: %p\n", conf_file);
+       
+                       data = 
eet_data_descriptor_encode(_entropy_config_mimes_edd, mimes, &size_ret);
                        
-               printf("Conf file loaded to: %p\n", conf_file);
-
-               data =
-               eet_data_descriptor_encode(_entropy_config_mimes_edd, mimes, 
&size_ret);
-               
-               printf("Write data: %p\n", data);
-               
-               if ( !(ok = eet_write(conf_file, "/config_action", data, 
-                       size_ret, 0))) {
-                       printf("Error writing data!\n");
+                       printf("Write data: %p\n", data);
                        
-               }
+                       if ( !(ok = eet_write(conf_file, "/config_action", 
data, 
+                               size_ret, 0))) {
+                               printf("Error writing data!\n");
+                               
+                       }
                                        
-               free(data);
-               eet_close(conf_file);
+                       free(data);
+                       eet_close(conf_file);
+               }
+       }
+
 
-               conf_file = eet_open(_Entropy_Config->config_dir_and_file_eet, 
EET_FILE_MODE_READ);
-                       
 
+       
+       /*Load the eet config*/
+       conf_file = eet_open(_Entropy_Config->config_dir_and_file_eet, 
EET_FILE_MODE_READ);
+       if (conf_file) {
                data = eet_read(conf_file, "/config_action", &size_ret);
-               printf("Data is %p\n", data);
-                       
                _Entropy_Config->Config_Mimes = 
eet_data_descriptor_decode(_entropy_config_mimes_edd, data, size_ret);
-
        }
+       /*------*/
+
+
 
        /*Print them out..*/
        entropy_config_mimes_print(_Entropy_Config->Config_Mimes);
@@ -352,12 +361,37 @@
 }
 
 
+void entropy_config_eet_config_save()
+{
+       Eet_File* conf_file;
+       char* data;
+       int size_ret;
+       int ok;
+       Entropy_Config* config;
 
-void entropy_config_destroy(Entropy_Config* config) {
-       //printf("Saving config to '%s'\n", config->config_dir_and_file);
-       ecore_config_file_save(config->config_dir_and_file);
+       config = entropy_core_get_core()->config;
        
-       //printf("STUB\n");
+       
+       conf_file = eet_open(config->config_dir_and_file_eet, 
EET_FILE_MODE_WRITE);
+       if (conf_file) {
+               data = eet_data_descriptor_encode(_entropy_config_mimes_edd, 
config->Config_Mimes, &size_ret);
+               if ( !(ok = eet_write(conf_file, "/config_action", data, 
+                       size_ret, 0))) {
+                       printf("Error writing data!\n");
+                       
+               }
+               free(data);
+               eet_close(conf_file);
+       }
+}
+       
+
+void entropy_config_destroy(Entropy_Config* config)
+{
+       entropy_config_eet_config_save();
+       
+       ecore_config_file_save(config->config_dir_and_file);
+
 }
 
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/entropy_core.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -3 -r1.59 -r1.60
--- entropy_core.c      18 Mar 2006 08:04:10 -0000      1.59
+++ entropy_core.c      19 Mar 2006 00:35:26 -0000      1.60
@@ -334,8 +334,13 @@
        return core;
 }
 
-void entropy_core_mime_action_add(char* mime_type, char* action) {
-       entropy_mime_action* action_o;
+void entropy_core_mime_action_add(char* mime_type, char* desc) 
+{
+       Entropy_Config_Mime_Binding* binding;
+       Evas_List* l;
+       int found = 0;
+       
+       /*entropy_mime_action* action_o;
        
        if ( ! (action_o = ecore_hash_get  (core_core->mime_action_hint, 
mime_type))) {
                        action_o = entropy_malloc(sizeof(entropy_mime_action));
@@ -344,10 +349,34 @@
        } else {
                        free(action_o->executable);
                        action_o->executable = strdup(action);
+       }*/
+
+       for (l = core_core->config->Config_Mimes->mime_bindings; l; ) {
+               binding = l->data;
+
+               /*If this exists, change the desc to whatever they say*/
+               if (!strcmp(binding->mime_type, mime_type)) {
+                       found = 1;
+                       binding->desc = strdup(desc);
+               }
+               
+               l = l->next;
        }
+
+       /*IF not found, make a new one*/
+       if (!found) {
+               binding = calloc(1,sizeof(Entropy_Config_Mime_Binding));
+               binding->mime_type = strdup(mime_type);
+               binding->desc = strdup(desc);
+               core_core->config->Config_Mimes->mime_bindings = 
+                       
evas_list_append(core_core->config->Config_Mimes->mime_bindings, binding);
+       }
+
+       
 }
 
-void entropy_core_config_load() {
+void entropy_core_config_load() 
+{
        int count, new_count;
        Ecore_List* mime_type_actions;
        char* key;
@@ -509,6 +538,10 @@
        char* key;
 
        //printf("Destroying config subsystem...\n");
+       /*Save the config*/
+       entropy_core_config_save();
+
+       entropy_config_destroy(core->config);
 
 
        /*Destroy the notification engines*/
@@ -564,12 +597,6 @@
        /*Destroy the plugins*/
        /*Destroy the eLists/eHashes*/
 
-
-       /*Save the config*/
-       entropy_core_config_save();
-
-       entropy_config_destroy(core->config);
-
 }
 
 void entropy_layout_run(entropy_core* core) {




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to