Save new apps as .desktops, and also save new images.

SVN revision: 25405
This commit is contained in:
David Walter Seikel 2006-09-03 12:43:08 +00:00
parent 953d902a18
commit f1589cd360
3 changed files with 17 additions and 8 deletions

View File

@ -322,7 +322,7 @@ e_app_empty_new(const char *path)
{ {
char buf[4096]; char buf[4096];
snprintf(buf, sizeof(buf), "%s/_new_app_%1.1f.eap", snprintf(buf, sizeof(buf), "%s/_new_app_%1.1f.desktop",
_e_apps_all->path, ecore_time_get()); _e_apps_all->path, ecore_time_get());
a->path = evas_stringshare_add(buf); a->path = evas_stringshare_add(buf);
} }
@ -1261,9 +1261,16 @@ EAPI void
e_app_fields_save(E_App *a) e_app_fields_save(E_App *a)
{ {
char buf[PATH_MAX]; char buf[PATH_MAX];
const char *lang, *ext; const char *lang, *ext = NULL;
/* FIXME: if there is no path, put it in applications/all/a->name.desktop. */ /* Check if it's a new one that has not been saved yet. */
if (a->path)
ext = ecore_file_get_file(a->path);
if ( (!a->path) || ((strncmp(ext, "_new_app_", 9) == 0) && (!ecore_file_exists(a->path))) )
{
snprintf(buf, sizeof(buf), "%s/%s.desktop", _e_apps_all->path, a->name);
a->path = evas_stringshare_add(buf);
}
ext = strrchr(a->path, '.'); ext = strrchr(a->path, '.');
if ((ext) && (strcmp(ext, ".desktop") == 0)) if ((ext) && (strcmp(ext, ".desktop") == 0))
@ -1275,6 +1282,7 @@ e_app_fields_save(E_App *a)
if (!desktop) if (!desktop)
{ {
desktop = E_NEW(Ecore_Desktop, 1); desktop = E_NEW(Ecore_Desktop, 1);
desktop->original_path = strdup(a->path);
created = 1; created = 1;
} }
if (desktop) if (desktop)

View File

@ -254,6 +254,7 @@ _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data
if (data->wtitle) eap->win_title = evas_stringshare_add(data->wtitle); if (data->wtitle) eap->win_title = evas_stringshare_add(data->wtitle);
if (data->wrole) eap->win_role = evas_stringshare_add(data->wrole); if (data->wrole) eap->win_role = evas_stringshare_add(data->wrole);
if (data->iclass) eap->icon_class = evas_stringshare_add(data->iclass); if (data->iclass) eap->icon_class = evas_stringshare_add(data->iclass);
if (data->eap.icon_path) eap->icon_path = evas_stringshare_add(data->eap.icon_path);
if (data->image) if (data->image)
{ {
@ -528,16 +529,16 @@ _e_eap_edit_cb_icon_select_ok(void *data, E_Dialog *dia)
cfdata->editor->img_set = 1; cfdata->editor->img_set = 1;
if (cfdata->editor->img) evas_object_del(cfdata->editor->img); if (cfdata->editor->img) evas_object_del(cfdata->editor->img);
if (cfdata->eap.path) // if (cfdata->eap.path)
free((char *) cfdata->eap.path); // free((char *) cfdata->eap.path);
if (cfdata->eap.icon_class) if (cfdata->eap.icon_class)
free((char *) cfdata->eap.icon_class); free((char *) cfdata->eap.icon_class);
if (cfdata->eap.icon_path) if (cfdata->eap.icon_path)
free((char *) cfdata->eap.icon_path); free((char *) cfdata->eap.icon_path);
cfdata->eap.icon_path = strdup(cfdata->image); cfdata->eap.icon_path = strdup(cfdata->image);
cfdata->eap.path = strdup(""); // cfdata->eap.path = strdup("");
cfdata->eap.icon_class = strdup(""); cfdata->eap.icon_class = NULL;
cfdata->editor->img = e_app_icon_add(cfdata->editor->evas, &(cfdata->eap)); cfdata->editor->img = e_app_icon_add(cfdata->editor->evas, &(cfdata->eap));
#if 0 #if 0
cfdata->editor->img = e_icon_add(cfdata->editor->evas); cfdata->editor->img = e_icon_add(cfdata->editor->evas);

View File

@ -556,7 +556,7 @@ _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi)
{ {
if (bname) if (bname)
{ {
snprintf(path, sizeof(path), "%s/.e/e/applications/all/%s.eap", getenv("HOME"), bname); snprintf(path, sizeof(path), "%s/.e/e/applications/all/%s.desktop", getenv("HOME"), bname);
a = e_app_empty_new(path); a = e_app_empty_new(path);
} }
else else