Data burning works somewhat nicely now... Also some misc memory leaks and small fixes.
This commit is contained in:
@ -66,11 +66,13 @@ _page_hide_finished(void *data, Evas_Object *o,
|
||||
const char *emission __UNUSED__,
|
||||
const char *source __UNUSED__)
|
||||
{
|
||||
Evas_Object *gui;
|
||||
Ecdb_Page *page = data;
|
||||
Ecdb_Data_Project *proj;
|
||||
|
||||
gui = data;
|
||||
edje_object_part_unswallow(gui, o);
|
||||
evas_object_hide(o);
|
||||
proj = evas_object_data_get(page->data, "proj");
|
||||
edje_object_part_unswallow(page->gui, page->data);
|
||||
evas_object_hide(page->data);
|
||||
ewl_widget_hide(proj->filelist);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -180,8 +182,11 @@ _button_cb_begin(void *data, Evas_Object *obj __UNUSED__,
|
||||
proj->filelist_swallow, ECDB_BURN(proj)->speed_combo,
|
||||
ECDB_PROJECT(proj)->ret, ECDB_PROJECT(proj)->begin,
|
||||
NULL};
|
||||
for (idx = 0; objs[idx]; idx++)
|
||||
for (idx = 0; objs[idx] != NULL; idx++)
|
||||
{
|
||||
edje_object_signal_emit(objs[idx], "ecdb,disable", "ecdb");
|
||||
printf("disabling controls...\n");
|
||||
}
|
||||
return;
|
||||
|
||||
case ECDB_ERROR_IMAGE_CREATE:
|
||||
@ -503,7 +508,6 @@ ecdb_burn_data_page_show(Ecdb_Page *page)
|
||||
Ecdb_Drive_Info *drive;
|
||||
Evas_Coord x, y, w, h;
|
||||
Ewl_Widget *embed;
|
||||
Ecdb_Source *src;
|
||||
Ecdb_Data_Project *proj;
|
||||
Ecdb_Burn_Project *bup;
|
||||
Ecdb_Project *bp;
|
||||
@ -516,7 +520,7 @@ ecdb_burn_data_page_show(Ecdb_Page *page)
|
||||
edje_object_part_swallow(page->gui, "action_area", page->data);
|
||||
edje_object_signal_callback_add(page->data, "hide,finished",
|
||||
"burn_data_page",
|
||||
_page_hide_finished, page->gui);
|
||||
_page_hide_finished, page);
|
||||
evas_object_show(page->data);
|
||||
|
||||
proj = ecdb_data_project_new();
|
||||
@ -573,13 +577,11 @@ ecdb_burn_data_page_show(Ecdb_Page *page)
|
||||
_update_capacity, page);
|
||||
ewl_widget_show(proj->filelist);
|
||||
|
||||
src = ecdb_source_new();
|
||||
ewl_widget_data_set(proj->filelist, "source", src);
|
||||
/* Add a delete callback so we can correctly free data that won't get
|
||||
* handled automatically
|
||||
*/
|
||||
evas_object_event_callback_add(page->data, EVAS_CALLBACK_DEL, _page_del,
|
||||
src);
|
||||
bup->files);
|
||||
|
||||
edje_object_part_geometry_get(page->data, "ecdb/burn_data/filelist",
|
||||
&x, &y, &w, &h);
|
||||
@ -592,7 +594,7 @@ ecdb_burn_data_page_show(Ecdb_Page *page)
|
||||
evas_object_show(proj->filelist_swallow);
|
||||
|
||||
proj->capacity = ecdb_capacity_add(page->data, "ecdb/burn_data/capacity");
|
||||
evas_object_data_set(proj->capacity, "src", src);
|
||||
evas_object_data_set(proj->capacity, "src", bup->files);
|
||||
evas_object_show(proj->capacity);
|
||||
|
||||
t = ecdb_config_inwin_add(page->data, NULL);
|
||||
@ -680,6 +682,8 @@ ecdb_burn_data_page_show(Ecdb_Page *page)
|
||||
{
|
||||
edje_object_part_swallow(page->gui, "action_area", page->data);
|
||||
evas_object_show(page->data);
|
||||
ewl_widget_show(ECDB_DATA(evas_object_data_get(page->data, "proj"))
|
||||
->filelist);
|
||||
}
|
||||
|
||||
edje_object_signal_emit(page->gui, "ecdb,burn_data_page,visible", "ecdb");
|
||||
@ -690,7 +694,7 @@ void
|
||||
ecdb_burn_data_cleanup(Ecdb_Page *page)
|
||||
{
|
||||
Ewl_Widget *filelist;
|
||||
Ecdb_Source *src;
|
||||
Ecdb_Source *src, *t;
|
||||
Ecdb_Data_Project *proj;
|
||||
int i;
|
||||
|
||||
@ -711,8 +715,8 @@ ecdb_burn_data_cleanup(Ecdb_Page *page)
|
||||
proj->filelist_swallow, ECDB_BURN(proj)->speed_combo,
|
||||
ECDB_PROJECT(proj)->ret, ECDB_PROJECT(proj)->begin,
|
||||
NULL};
|
||||
for (i = 0; objs[i]; i++)
|
||||
edje_object_signal_emit(objs[i], "ecdb,disable", "ecdb");
|
||||
for (i = 0; objs[i] != NULL; i++)
|
||||
edje_object_signal_emit(objs[i], "ecdb,enable", "ecdb");
|
||||
|
||||
edje_object_signal_emit(page->data, "ecdb,burn_data,start", "ecdb");
|
||||
edje_object_part_text_set(page->data, "progress_text", "Burn Complete!");
|
||||
@ -725,8 +729,16 @@ ecdb_burn_data_cleanup(Ecdb_Page *page)
|
||||
|
||||
for (i = 0; i < src->num_children; i++)
|
||||
{
|
||||
ecdb_source_child_remove(src, src->children[i]);
|
||||
ecdb_source_destroy(src->children[i]);
|
||||
t = src->children[i];
|
||||
ecdb_source_child_remove(src, t);
|
||||
ecdb_source_destroy(t);
|
||||
}
|
||||
|
||||
/* Make sure, of course, to refresh the capacity and the filelist
|
||||
* after finishing the burn
|
||||
*/
|
||||
ewl_mvc_dirty_set(EWL_MVC(EWL_FILELIST(proj->filelist)->controller), TRUE);
|
||||
ewl_callback_call_with_event_data(proj->filelist, ECDB_FILELIST_SIZE_CHANGED,
|
||||
src);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user