extra: refactor progress popup

this refactors the progress displaying of hte popups and progress calls
from the lib.
This commit is contained in:
Marcel Hollerbach 2017-01-09 16:24:59 +01:00
parent 443d899a12
commit 4b28a5d844
1 changed files with 49 additions and 46 deletions

View File

@ -34,6 +34,46 @@ static Evas_Object *_theme_list;
static Extra_Theme *_selected_theme; static Extra_Theme *_selected_theme;
static Theme_Ui ui; static Theme_Ui ui;
static void
_extra_win_progress_popup_cb(double progress)
{
Evas_Object *p;
p = elm_object_content_get(_popup);
if (elm_progressbar_pulse_get(p))
{
elm_progressbar_pulse(p, EINA_FALSE);
elm_progressbar_pulse_set(p, EINA_FALSE);
}
elm_progressbar_value_set(p, progress);
}
static void
_extra_win_progress_popup_show(const char *title)
{
Evas_Object *progress;
_popup = elm_popup_add(_win);
progress = elm_progressbar_add(_popup);
elm_progressbar_pulse_set(progress, EINA_TRUE);
elm_progressbar_pulse(progress, EINA_TRUE);
evas_object_show(progress);
elm_object_part_text_set(_popup, "title,text", title);
elm_object_content_set(_popup, progress);
evas_object_show(_popup);
}
static void
_extra_win_progress_popup_del(void)
{
evas_object_del(_popup);
_popup = NULL;
}
static void static void
_extra_win_ask_yes(void *data, _extra_win_ask_yes(void *data,
Evas_Object *obj EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
@ -176,10 +216,9 @@ _extra_win_sync_done_cb()
{ {
Extra_Theme *first; Extra_Theme *first;
elm_genlist_clear(_theme_list); _extra_win_progress_popup_del();
evas_object_del(_popup); elm_genlist_clear(_theme_list);
_popup = NULL;
_extra_win_theme_list_refresh(); _extra_win_theme_list_refresh();
first = eina_list_data_get(extra_themes_list()); first = eina_list_data_get(extra_themes_list());
@ -189,46 +228,20 @@ _extra_win_sync_done_cb()
} }
static void static void
extra_win_sync(Evas_Object *win) extra_win_sync(void)
{ {
Evas_Object *progress; _sync_progress.progress_cb = _extra_win_progress_popup_cb;
// _sync_progress.progress_cb = _extra_win_sync_progress_cb;
_sync_progress.done_cb = _extra_win_sync_done_cb; _sync_progress.done_cb = _extra_win_sync_done_cb;
_popup = elm_popup_add(win); _extra_win_progress_popup_show("Downloading themes");
progress = elm_progressbar_add(win);
elm_progressbar_pulse_set(progress, EINA_TRUE);
elm_progressbar_pulse(progress, EINA_TRUE);
evas_object_show(progress);
elm_object_part_text_set(_popup, "title,text", "Downloading themes");
elm_object_content_set(_popup, progress);
evas_object_show(_popup);
extra_sync(&_sync_progress); extra_sync(&_sync_progress);
} }
static void
_extra_win_download_progress_cb(double progress)
{
Evas_Object *p;
p = elm_object_content_get(_popup);
if (elm_progressbar_pulse_get(p))
{
elm_progressbar_pulse(p, EINA_FALSE);
elm_progressbar_pulse_set(p, EINA_FALSE);
}
elm_progressbar_value_set(p, progress);
}
static void static void
_extra_win_download_done_cb() _extra_win_download_done_cb()
{ {
evas_object_del(_popup); _extra_win_progress_popup_del();
_popup = NULL;
elm_genlist_clear(_theme_list); elm_genlist_clear(_theme_list);
_extra_win_theme_list_refresh(); _extra_win_theme_list_refresh();
@ -240,21 +253,11 @@ _extra_win_download_done_cb()
static void static void
_extra_win_install_execute() _extra_win_install_execute()
{ {
Evas_Object *progress; _extra_win_progress_popup_show("Installing theme");
_install_progress.progress_cb = _extra_win_download_progress_cb; _install_progress.progress_cb = _extra_win_progress_popup_cb;
_install_progress.done_cb = _extra_win_download_done_cb; _install_progress.done_cb = _extra_win_download_done_cb;
_popup = elm_popup_add(_win);
progress = elm_progressbar_add(_win);
elm_progressbar_pulse_set(progress, EINA_TRUE);
elm_progressbar_pulse(progress, EINA_TRUE);
evas_object_show(progress);
elm_object_part_text_set(_popup, "title,text", "Processing...");
elm_object_content_set(_popup, progress);
evas_object_show(_popup);
extra_theme_download(&_install_progress, _selected_theme); extra_theme_download(&_install_progress, _selected_theme);
} }
@ -451,7 +454,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
if (!(win = extra_win_setup())) if (!(win = extra_win_setup()))
goto end; goto end;
extra_win_sync(win); extra_win_sync();
elm_run(); elm_run();