forked from enlightenment/enlightenment
*Saving E_Apps forces new ones into ~/.e/e/applications/all, and adds
them to the _e_apps_all list directly. * No monitoring of ~/.e/e/applications/all, it should all be taken care of internally. SVN revision: 25880
This commit is contained in:
parent
cdecc1f4aa
commit
6064d537f9
|
@ -192,6 +192,7 @@ e_app_unmonitor_all(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME: Not actualy used anywhere, should we nuke it or should we use it everywhere that an E_App is allocated? */
|
||||||
EAPI E_App *
|
EAPI E_App *
|
||||||
e_app_raw_new(void)
|
e_app_raw_new(void)
|
||||||
{
|
{
|
||||||
|
@ -248,6 +249,8 @@ e_app_new(const char *path, int scan_subdirs)
|
||||||
a->name = evas_stringshare_add(ecore_file_get_file(a->path));
|
a->name = evas_stringshare_add(ecore_file_get_file(a->path));
|
||||||
if (scan_subdirs) e_app_subdir_scan(a, scan_subdirs);
|
if (scan_subdirs) e_app_subdir_scan(a, scan_subdirs);
|
||||||
|
|
||||||
|
/* Don't monitor the all directory, all changes to that must go through e_app. */
|
||||||
|
if (strcmp(_e_apps_path_all, a->path) != 0)
|
||||||
a->monitor = ecore_file_monitor_add(a->path, _e_app_cb_monitor, a);
|
a->monitor = ecore_file_monitor_add(a->path, _e_app_cb_monitor, a);
|
||||||
}
|
}
|
||||||
else if (_e_app_is_eapp(path))
|
else if (_e_app_is_eapp(path))
|
||||||
|
@ -1312,6 +1315,7 @@ e_app_fields_save(E_App *a)
|
||||||
{
|
{
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
const char *lang, *ext = NULL;
|
const char *lang, *ext = NULL;
|
||||||
|
int new_eap = 0;
|
||||||
|
|
||||||
/* Check if it's a new one that has not been saved yet. */
|
/* Check if it's a new one that has not been saved yet. */
|
||||||
if (a->path)
|
if (a->path)
|
||||||
|
@ -1321,6 +1325,19 @@ e_app_fields_save(E_App *a)
|
||||||
snprintf(buf, sizeof(buf), "%s/%s.desktop", _e_apps_all->path, a->name);
|
snprintf(buf, sizeof(buf), "%s/%s.desktop", _e_apps_all->path, a->name);
|
||||||
a->path = evas_stringshare_add(buf);
|
a->path = evas_stringshare_add(buf);
|
||||||
}
|
}
|
||||||
|
if (!a->path) return;
|
||||||
|
/* This still lets old ones that are not in all to be saved, but new ones are forced to be in all. */
|
||||||
|
if (!ecore_file_exists(a->path))
|
||||||
|
{
|
||||||
|
/* Force it to be in all. */
|
||||||
|
snprintf(buf, sizeof(buf), "%s/%s", _e_apps_all->path, ecore_file_get_file(a->path));
|
||||||
|
a->path = evas_stringshare_add(buf);
|
||||||
|
}
|
||||||
|
if (!a->path) return;
|
||||||
|
if (!ecore_file_exists(a->path))
|
||||||
|
{
|
||||||
|
new_eap = 1;
|
||||||
|
}
|
||||||
|
|
||||||
ext = strrchr(a->path, '.');
|
ext = strrchr(a->path, '.');
|
||||||
if ((ext) && (strcmp(ext, ".desktop") == 0))
|
if ((ext) && (strcmp(ext, ".desktop") == 0))
|
||||||
|
@ -1485,6 +1502,14 @@ e_app_fields_save(E_App *a)
|
||||||
}
|
}
|
||||||
_e_app_subdir_rescan(a->parent);
|
_e_app_subdir_rescan(a->parent);
|
||||||
}
|
}
|
||||||
|
if (new_eap)
|
||||||
|
{
|
||||||
|
/* Careful, if this is being created from the border icon, this E_App is already part of the border. */
|
||||||
|
a->parent = _e_apps_all;
|
||||||
|
_e_apps_all->subapps = evas_list_append(_e_apps_all->subapps, a);
|
||||||
|
/* FIXME: Don't know if we need to copy and reference this since it is in the repository. */
|
||||||
|
_e_app_change(a, E_APP_ADD);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
|
|
@ -141,7 +141,6 @@ _e_eap_edit_fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
cfdata->width = cfdata->editor->eap->width;
|
cfdata->width = cfdata->editor->eap->width;
|
||||||
if (cfdata->image) cfdata->editor->img_set = 1;
|
if (cfdata->image) cfdata->editor->img_set = 1;
|
||||||
|
|
||||||
IFADD(cfdata->editor->eap->path, cfdata->eap.path);
|
|
||||||
IFADD(cfdata->editor->eap->icon_class, cfdata->eap.icon_class);
|
IFADD(cfdata->editor->eap->icon_class, cfdata->eap.icon_class);
|
||||||
|
|
||||||
IFDEL(cfdata->eap.icon_path);
|
IFDEL(cfdata->eap.icon_path);
|
||||||
|
@ -176,7 +175,6 @@ _e_eap_edit_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data)
|
||||||
IFFREE(data->ipath);
|
IFFREE(data->ipath);
|
||||||
IFFREE(data->image);
|
IFFREE(data->image);
|
||||||
|
|
||||||
IFDEL(data->eap.path);
|
|
||||||
IFDEL(data->eap.icon_class);
|
IFDEL(data->eap.icon_class);
|
||||||
IFDEL(data->eap.icon_path);
|
IFDEL(data->eap.icon_path);
|
||||||
|
|
||||||
|
@ -522,12 +520,10 @@ _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);
|
||||||
|
|
||||||
// IFDEL(cfdata->eap.path);
|
|
||||||
IFDEL(cfdata->eap.icon_class);
|
IFDEL(cfdata->eap.icon_class);
|
||||||
IFDEL(cfdata->eap.icon_path);
|
IFDEL(cfdata->eap.icon_path);
|
||||||
|
|
||||||
cfdata->eap.icon_path = evas_stringshare_add(cfdata->image);
|
cfdata->eap.icon_path = evas_stringshare_add(cfdata->image);
|
||||||
// cfdata->eap.path = evas_stringshare_add("");
|
|
||||||
cfdata->eap.icon_class = NULL;
|
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
|
||||||
|
|
Loading…
Reference in New Issue