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];
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());
a->path = evas_stringshare_add(buf);
}
@ -1261,9 +1261,16 @@ EAPI void
e_app_fields_save(E_App *a)
{
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, '.');
if ((ext) && (strcmp(ext, ".desktop") == 0))
@ -1275,6 +1282,7 @@ e_app_fields_save(E_App *a)
if (!desktop)
{
desktop = E_NEW(Ecore_Desktop, 1);
desktop->original_path = strdup(a->path);
created = 1;
}
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->wrole) eap->win_role = evas_stringshare_add(data->wrole);
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)
{
@ -528,16 +529,16 @@ _e_eap_edit_cb_icon_select_ok(void *data, E_Dialog *dia)
cfdata->editor->img_set = 1;
if (cfdata->editor->img) evas_object_del(cfdata->editor->img);
if (cfdata->eap.path)
free((char *) cfdata->eap.path);
// if (cfdata->eap.path)
// free((char *) cfdata->eap.path);
if (cfdata->eap.icon_class)
free((char *) cfdata->eap.icon_class);
if (cfdata->eap.icon_path)
free((char *) cfdata->eap.icon_path);
cfdata->eap.icon_path = strdup(cfdata->image);
cfdata->eap.path = strdup("");
cfdata->eap.icon_class = strdup("");
// cfdata->eap.path = strdup("");
cfdata->eap.icon_class = NULL;
cfdata->editor->img = e_app_icon_add(cfdata->editor->evas, &(cfdata->eap));
#if 0
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)
{
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);
}
else