forked from enlightenment/enlightenment
Since raster added the ability for fm2 to delete from within .order
files that are displayed as a virtual folder, there is no need for the all apps app deletion buttons and code. If you are still having issues with deleting apps, take it up with raster. SVN revision: 25274
This commit is contained in:
parent
d3de4f4e95
commit
2c403e3e62
|
@ -812,59 +812,6 @@ e_app_remove(E_App *a)
|
||||||
e_object_unref(E_OBJECT(a));
|
e_object_unref(E_OBJECT(a));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EAPI void
|
|
||||||
e_app_remove_file_from_order(const char *order, const char *file)
|
|
||||||
{
|
|
||||||
char buf[4096];
|
|
||||||
Evas_List *list = NULL, *l;
|
|
||||||
int ret = 0;
|
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.order", order);
|
|
||||||
if (!ecore_file_exists(buf)) return;
|
|
||||||
f = fopen(buf, "rb");
|
|
||||||
if (!f) return;
|
|
||||||
|
|
||||||
while (fgets(buf, sizeof(buf), f))
|
|
||||||
{
|
|
||||||
int len;
|
|
||||||
|
|
||||||
len = strlen(buf);
|
|
||||||
if (len > 0)
|
|
||||||
{
|
|
||||||
if (buf[len - 1] == '\n')
|
|
||||||
{
|
|
||||||
buf[len - 1] = 0;
|
|
||||||
len--;
|
|
||||||
}
|
|
||||||
if (strcmp(buf, file) != 0)
|
|
||||||
list = evas_list_append(list, strdup(buf));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.order", order);
|
|
||||||
ecore_file_unlink(buf);
|
|
||||||
f = fopen(buf, "wb");
|
|
||||||
if (!f) return;
|
|
||||||
for (l = list; l; l = l->next)
|
|
||||||
{
|
|
||||||
char *text;
|
|
||||||
|
|
||||||
text = l->data;
|
|
||||||
fprintf(f, "%s\n", text);
|
|
||||||
free(text);
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
evas_list_free(list);
|
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.eap.cache.cfg", order);
|
|
||||||
ecore_file_unlink(buf);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_app_change_callback_add(void (*func) (void *data, E_App *a, E_App_Change ch), void *data)
|
e_app_change_callback_add(void (*func) (void *data, E_App *a, E_App_Change ch), void *data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -112,7 +112,6 @@ EAPI void e_app_append (E_App *add, E_App *par
|
||||||
EAPI void e_app_files_prepend_relative (Evas_List *files, E_App *before);
|
EAPI void e_app_files_prepend_relative (Evas_List *files, E_App *before);
|
||||||
EAPI void e_app_files_append (Evas_List *files, E_App *parent);
|
EAPI void e_app_files_append (Evas_List *files, E_App *parent);
|
||||||
EAPI void e_app_remove (E_App *a);
|
EAPI void e_app_remove (E_App *a);
|
||||||
EAPI void e_app_remove_file_from_order (const char *order, const char *file);
|
|
||||||
|
|
||||||
EAPI void e_app_change_callback_add (void (*func) (void *data, E_App *a, E_App_Change ch), void *data);
|
EAPI void e_app_change_callback_add (void (*func) (void *data, E_App *a, E_App_Change ch), void *data);
|
||||||
EAPI void e_app_change_callback_del (void (*func) (void *data, E_App *a, E_App_Change ch), void *data);
|
EAPI void e_app_change_callback_del (void (*func) (void *data, E_App *a, E_App_Change ch), void *data);
|
||||||
|
|
|
@ -243,91 +243,6 @@ _cb_files_add_edited(void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *i
|
||||||
e_menu_item_callback_set(mi, _cb_files_edited, cfdata);
|
e_menu_item_callback_set(mi, _cb_files_edited, cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_cb_button_delete_left(void *data1, void *data2)
|
|
||||||
{
|
|
||||||
E_Config_Dialog_Data *cfdata;
|
|
||||||
Evas_List *l;
|
|
||||||
E_Fm2_Icon_Info *ici;
|
|
||||||
const char *realpath;
|
|
||||||
char buf[4096];
|
|
||||||
|
|
||||||
cfdata = data1;
|
|
||||||
if (!cfdata->gui.o_fm_all) return;
|
|
||||||
if (!cfdata->parent_all) return;
|
|
||||||
|
|
||||||
l = e_fm2_selected_list_get(cfdata->gui.o_fm_all);
|
|
||||||
if (!l) return;
|
|
||||||
ici = l->data;
|
|
||||||
evas_list_free(l);
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* This just isn't working, lets try the crude method instead. */
|
|
||||||
for (l = cfdata->parent_all->subapps; l; l = l->next)
|
|
||||||
{
|
|
||||||
E_App *a2;
|
|
||||||
|
|
||||||
a2 = l->data;
|
|
||||||
if ((a2->deleted) || ((a2->orig) && (a2->orig->deleted))) continue;
|
|
||||||
if (!strcmp(ecore_file_get_file(a2->path), ecore_file_get_file(ici->file)))
|
|
||||||
{
|
|
||||||
e_app_remove(a2);
|
|
||||||
e_fm2_refresh(cfdata->gui.o_fm_all);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
realpath = e_fm2_real_path_get(cfdata->gui.o_fm_all);
|
|
||||||
if (!strcmp(realpath, "/"))
|
|
||||||
snprintf(buf, sizeof(buf), "/%s", ici->file);
|
|
||||||
else
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file);
|
|
||||||
ecore_file_unlink(buf);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.eap.cache.cfg", realpath);
|
|
||||||
ecore_file_unlink(buf);
|
|
||||||
e_fm2_refresh(cfdata->gui.o_fm_all);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_cb_button_delete_right(void *data1, void *data2)
|
|
||||||
{
|
|
||||||
E_Config_Dialog_Data *cfdata;
|
|
||||||
Evas_List *l;
|
|
||||||
E_Fm2_Icon_Info *ici;
|
|
||||||
const char *realpath;
|
|
||||||
|
|
||||||
cfdata = data1;
|
|
||||||
if (!cfdata->gui.o_fm) return;
|
|
||||||
|
|
||||||
l = e_fm2_selected_list_get(cfdata->gui.o_fm);
|
|
||||||
if (!l) return;
|
|
||||||
ici = l->data;
|
|
||||||
evas_list_free(l);
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* This just isn't working, lets try the crude method instead. */
|
|
||||||
if (!cfdata->parent) return;
|
|
||||||
for (l = cfdata->parent->subapps; l; l = l->next)
|
|
||||||
{
|
|
||||||
E_App *a2;
|
|
||||||
|
|
||||||
a2 = l->data;
|
|
||||||
if ((a2->deleted) || ((a2->orig) && (a2->orig->deleted))) continue;
|
|
||||||
if (!strcmp(ecore_file_get_file(a2->path), ecore_file_get_file(ici->file)))
|
|
||||||
{
|
|
||||||
e_app_remove_from_order(a2);
|
|
||||||
e_fm2_refresh(cfdata->gui.o_fm);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
realpath = e_fm2_real_path_get(cfdata->gui.o_fm);
|
|
||||||
e_app_remove_file_from_order(realpath, ecore_file_get_file(ici->file));
|
|
||||||
e_fm2_refresh(cfdata->gui.o_fm);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_cb_button_add(void *data1, void *data2)
|
_cb_button_add(void *data1, void *data2)
|
||||||
{
|
{
|
||||||
|
@ -462,11 +377,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
cfdata->gui.o_add_button = mt;
|
cfdata->gui.o_add_button = mt;
|
||||||
e_widget_framelist_object_append(of, mt);
|
e_widget_framelist_object_append(of, mt);
|
||||||
|
|
||||||
mt = e_widget_button_add(evas, _("Delete application"), "enlightenment/e",
|
|
||||||
_cb_button_delete_left, cfdata, NULL);
|
|
||||||
cfdata->gui.o_delete_left_button = mt;
|
|
||||||
e_widget_framelist_object_append(of, mt);
|
|
||||||
|
|
||||||
e_widget_table_object_append(ot, of, 0, 0, 2, 4, 1, 1, 1, 1);
|
e_widget_table_object_append(ot, of, 0, 0, 2, 4, 1, 1, 1, 1);
|
||||||
|
|
||||||
if (!once)
|
if (!once)
|
||||||
|
@ -513,11 +423,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
e_widget_min_size_set(ob, 150, 220);
|
e_widget_min_size_set(ob, 150, 220);
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
mt = e_widget_button_add(evas, _("Remove application"), "enlightenment/e",
|
|
||||||
_cb_button_delete_right, cfdata, NULL);
|
|
||||||
cfdata->gui.o_delete_right_button = mt;
|
|
||||||
e_widget_framelist_object_append(of, mt);
|
|
||||||
|
|
||||||
mt = e_widget_button_add(evas, _("Regenerate \"All Applications\" Menu"), "enlightenment/e",
|
mt = e_widget_button_add(evas, _("Regenerate \"All Applications\" Menu"), "enlightenment/e",
|
||||||
_cb_button_regen, cfdata, NULL);
|
_cb_button_regen, cfdata, NULL);
|
||||||
cfdata->gui.o_regen_button = mt;
|
cfdata->gui.o_regen_button = mt;
|
||||||
|
|
Loading…
Reference in New Issue