diff options
Diffstat (limited to 'src/layout/gallery.c')
-rw-r--r-- | src/layout/gallery.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 1a77bac..7c6aad9 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -106,11 +106,18 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) return data; } -static void _update_content_info(struct _priv *priv) +static void _update_bottom_area(struct _priv *priv) { struct datamgr *dmgr; char buf[128]; + /* update view mode button state */ + if (priv->media_list) + elm_object_disabled_set(priv->view_btn, EINA_FALSE); + else + elm_object_disabled_set(priv->view_btn, EINA_TRUE); + + /* update content info */ dmgr = priv->dmgr[E_DATA_MEDIA]; if (!dmgr) return; @@ -135,10 +142,8 @@ static void _clear_content_list(struct _priv *priv) static void _update_content_list(struct _priv *priv) { - Eina_List *list; - if (priv->media_list) { - _update_content_info(priv); + _update_bottom_area(priv); return; } @@ -149,8 +154,11 @@ static void _update_content_list(struct _priv *priv) return; } - list = priv->gdata->get_item_list(priv->dmgr[E_DATA_MEDIA]); - if (!list) { + priv->media_list = priv->gdata->get_item_list(priv->dmgr[E_DATA_MEDIA]); + + _update_bottom_area(priv); + + if (!priv->media_list) { elm_object_part_text_set(priv->layout, PART_NOCONTENT, TEXT_NOCONTENT); return; @@ -158,12 +166,9 @@ static void _update_content_list(struct _priv *priv) priv->gdata->data = priv->dmgr[E_DATA_MEDIA]; - if (!listmgr_update_content_list(priv->listmgr, list, priv->gdata)) + if (!listmgr_update_content_list(priv->listmgr, + priv->media_list, priv->gdata)) _ERR("failed to update list area"); - - priv->media_list = list; - - _update_content_info(priv); } static void _destroy_datamgr(struct _priv *priv) |