Implement Preferences -> Privacy -> Clear stuff.

SVN revision: 52208
This commit is contained in:
Leandro Pereira 2010-09-13 22:34:27 +00:00
parent b16e530c29
commit 806e261516
1 changed files with 41 additions and 4 deletions

View File

@ -24,6 +24,11 @@ static More_Menu_Item *more_menu_history_this_week(More_Menu_Item *);
static More_Menu_Item *more_menu_history_most_visited(More_Menu_Item *);
static More_Menu_Item *more_menu_history_least_visited(More_Menu_Item *);
static More_Menu_Item *more_menu_history_by_domain(More_Menu_Item *);
static More_Menu_Item *more_menu_privacy_clear_everything(More_Menu_Item *);
static More_Menu_Item *more_menu_privacy_clear_cache(More_Menu_Item *);
static More_Menu_Item *more_menu_privacy_clear_history(More_Menu_Item *);
static More_Menu_Item *more_menu_privacy_clear_database(More_Menu_Item *);
static void on_more_item_click(void *data, Evas_Object *obj, void *event_info __UNUSED__);
static void on_more_item_back_click(void *data, Evas_Object *edje, const char *emission __UNUSED__, const char *source __UNUSED__);
@ -130,11 +135,11 @@ static More_Menu_Item more_menu_preferences[] =
{ ITEM_TYPE_SEPARATOR, NULL, NULL, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_STATIC_FOLDER, "Privacy",
(More_Menu_Item[]) {
{ ITEM_TYPE_CALLBACK, "Clear everything", NULL, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear everything", more_menu_privacy_clear_everything, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_SEPARATOR, NULL, NULL, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear cache", NULL, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear history", NULL, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear database", NULL, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear cache", more_menu_privacy_clear_cache, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear history", more_menu_privacy_clear_history, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_CALLBACK, "Clear database", more_menu_privacy_clear_database, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_LAST, NULL, NULL, NULL, ITEM_FLAG_NONE },
}, NULL, ITEM_FLAG_ARROW },
{ ITEM_TYPE_SEPARATOR, NULL, NULL, NULL, ITEM_FLAG_NONE },
@ -787,6 +792,38 @@ on_view_popup_delete(void *data, Evas_Object *view, void *event_info)
ecore_idler_add(_view_popup_delete, data);
}
static More_Menu_Item *
more_menu_privacy_clear_everything(More_Menu_Item *mmi)
{
more_menu_privacy_clear_cache(mmi);
more_menu_privacy_clear_history(mmi);
more_menu_privacy_clear_database(mmi);
return NULL;
}
static More_Menu_Item *
more_menu_privacy_clear_cache(More_Menu_Item *mmi __UNUSED__)
{
/* FIXME: Eve does not support disk cache yet */
return NULL;
}
static More_Menu_Item *
more_menu_privacy_clear_history(More_Menu_Item *mmi __UNUSED__)
{
hist_free(hist);
hist = hist_new(0);
return NULL;
}
static More_Menu_Item *
more_menu_privacy_clear_database(More_Menu_Item *mmi __UNUSED__)
{
/* FIXME: Clear HTML5 database */
return NULL;
}
static void
_popup_item_selected(void *data, Evas_Object *obj, void *event_info)
{