summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean Guyomarc'h <jean.guyomarch@openwide.fr>2016-08-26 15:43:16 +0200
committerJean Guyomarc'h <jean@guyomarch.bzh>2016-08-26 19:45:46 +0200
commitbab92eb0e7cadb4d31a095be744f95415379d393 (patch)
tree4e24ab1d4bea3091f1ceafce19f0c4f1405e77b0
parentde68c472c597736e168166a480224e27ce330f51 (diff)
downloadefl-bab92eb0e7cadb4d31a095be744f95415379d393.tar.gz
elementary: better error handling of fileselector
-rw-r--r--src/lib/elementary/elc_fileselector.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c
index 750833a834..0c7b659bae 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -772,7 +772,7 @@ _process_child_error_cb(void *data, Eina_Error err EINA_UNUSED)
efl_unref(it_data->model);
free(it_data);
- WRN("could not get data from child Efl.Model");
+ ERR("Failed to access to a model property");
lreq->item_total--;
}
@@ -831,8 +831,14 @@ _process_children_cb(void *data, void *values)
{
EINA_ACCESSOR_FOREACH(children_accessor, i, child)
{
- Eina_Promise *promises[7] = {NULL,};
+ Eina_Promise *promises[7];
Eina_Promise *promise_all = NULL;
+ const char *prop[6] = {
+ "path", "filename", "is_dir", "size", "mtime", "mime_type"
+ };
+ unsigned int i;
+ Eina_Error error;
+
it_data = calloc(1, sizeof(Elm_Fileselector_Item_Data));
if (!it_data)
{
@@ -843,12 +849,16 @@ _process_children_cb(void *data, void *values)
it_data->model = efl_ref(child);
it_data->user_data = lreq;
- promises[0] = efl_model_property_get(child, "path");
- promises[1] = efl_model_property_get(child, "filename");
- promises[2] = efl_model_property_get(child, "is_dir");
- promises[3] = efl_model_property_get(child, "size");
- promises[4] = efl_model_property_get(child, "mtime");
- promises[5] = efl_model_property_get(child, "mime_type");
+ for (i = 0; i <= 5; i++)
+ {
+ promises[i] = efl_model_property_get(child, prop[i]);
+ error = eina_promise_error_get(promises[i]);
+ if (error)
+ {
+ ERR("Error with property \"%s\": %s", prop[i],
+ eina_error_msg_get(error));
+ }
+ }
promises[6] = NULL;
promise_all = eina_promise_all(eina_carray_iterator_new((void**)promises));