From dcb633e46ef7d1ad4292e834b3c91401e47c21ed Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 13 May 2006 16:05:15 +0000 Subject: [PATCH] and now pick up new apps immediately :) SVN revision: 22588 --- src/bin/e_apps.c | 45 +++++++++++++++++++++++++-------------------- src/bin/e_utils.c | 1 + 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/bin/e_apps.c b/src/bin/e_apps.c index e4219eb98..70f27cea4 100644 --- a/src/bin/e_apps.c +++ b/src/bin/e_apps.c @@ -306,20 +306,27 @@ EAPI E_App * e_app_empty_new(const char *path) { E_App *a; - char buf[4096]; a = E_OBJECT_ALLOC(E_App, E_APP_TYPE, _e_app_free); a->image = NULL; - if ((_e_apps_all) && (_e_apps_all->path)) - { - snprintf(buf, sizeof(buf), "%s/_new_app_%1.1f.eap", - _e_apps_all->path, ecore_time_get()); - a->parent = _e_apps_all; - _e_apps_all->subapps = evas_list_append(_e_apps_all->subapps, a); - path = buf; - } if (path) a->path = evas_stringshare_add(path); - return a; + else + { + if ((_e_apps_all) && (_e_apps_all->path)) + { + char buf[4096]; + + snprintf(buf, sizeof(buf), "%s/_new_app_%1.1f.eap", + _e_apps_all->path, ecore_time_get()); + a->parent = _e_apps_all; + _e_apps_all->subapps = evas_list_append(_e_apps_all->subapps, a); + a->path = evas_stringshare_add(buf); + _e_apps = evas_hash_add(_e_apps, a->path, a); + _e_apps_list = evas_list_prepend(_e_apps_list, a); + _e_app_change(a, E_APP_ADD); + } + } + return a; } EAPI void @@ -1187,9 +1194,7 @@ e_app_fields_save(E_App *a) unsigned char tmp[1]; int img; - if (!a->path) return; - - if (!ecore_file_exists(a->path)) + if ((!a->path) || (!ecore_file_exists(a->path))) { _e_app_new_save(a); img = 0; @@ -1201,10 +1206,7 @@ e_app_fields_save(E_App *a) lang = e_intl_language_alias_get(); /* if its "C" its the default - so drop it */ - if (!strcmp(lang, "C")) - { - lang = NULL; - } + if (!strcmp(lang, "C")) lang = NULL; ef = eet_open(a->path, EET_FILE_MODE_READ_WRITE); if (!ef) return; @@ -1290,8 +1292,12 @@ e_app_fields_save(E_App *a) eet_data_image_write(ef, "images/0", (void *)data, a->width, a->height, alpha, 1, 0, 0); } } - eet_close(ef); + if (a->parent) + { + _e_app_change(a->parent, E_APP_CHANGE); + _e_app_subdir_rescan(a->parent); + } } EAPI void @@ -1427,8 +1433,7 @@ _e_app_new_save(E_App *a) char *start, *end, *imgdir = NULL; int i; - if (!a->path) return 0; - + if (!a->path) return 0; strcpy(tmpn, "/tmp/eapp_edit_cc.edc-tmp-XXXXXX"); fd = mkstemp(tmpn); if (fd < 0) diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index a7134ccea..d23a901be 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -556,6 +556,7 @@ e_util_filename_escape(const char *filename) q++; p++; } + *q = 0; return buf; }