summaryrefslogtreecommitdiff
path: root/src/layout/gallery.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/gallery.c')
-rw-r--r--src/layout/gallery.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/layout/gallery.c b/src/layout/gallery.c
index de3bf61..7ba53eb 100644
--- a/src/layout/gallery.c
+++ b/src/layout/gallery.c
@@ -59,6 +59,8 @@ struct _priv {
Eina_List *media_list;
int view_mode;
+ int source_type;
+
struct grid_data *gdata;
struct locmgr *locmgr;
@@ -126,6 +128,8 @@ static void _clear_content_list(struct _priv *priv)
priv->media_list = NULL;
}
+ elm_object_part_text_set(priv->layout, PART_NOCONTENT, "");
+
listmgr_clear_content_list(priv->listmgr);
}
@@ -220,7 +224,7 @@ static bool _create_utils(struct _priv *priv)
int i;
for (i = 0; i < E_DATA_MAX; i++) {
- dmgr = datamgr_create(i, GALLERY_MEDIA_COND, E_SOURCE_ALL);
+ dmgr = datamgr_create(i, GALLERY_MEDIA_COND, E_SOURCE_INTERNAL);
if (!dmgr) {
_ERR("failed to create datamgr");
_destroy_datamgr(priv);
@@ -380,6 +384,7 @@ static void _update(void *layout_data, int update_type, void *data)
{
struct view_update_data *vdata;
struct _priv *priv;
+ struct datamgr *dmgr;
int mode;
if (!layout_data) {
@@ -442,6 +447,27 @@ static void _update(void *layout_data, int update_type, void *data)
priv->view_mode = mode;
_update_content_list(priv);
break;
+ case UPDATE_SOURCE_TYPE:
+ if (!data) {
+ _ERR("invalid argument");
+ return;
+ }
+
+ vdata = data;
+ mode = vdata->index;
+
+ if (mode == priv->source_type)
+ return;
+
+ priv->source_type = mode;
+
+ dmgr = priv->dmgr[E_DATA_MEDIA];
+ dmgr->ops->set_source(dmgr->handle, mode);
+
+ _clear_content_list(priv);
+
+ _update_content_list(priv);
+ break;
default:
break;
}