static void history_parse_end_element (GMarkupParseContext *context, const char *element_name, gpointer user_data, GError **error) { HistoryParseData *parse_data = user_data; if (g_str_equal (element_name, "node") && parse_data) { /* Add one item to History */ EphyHistoryPageVisit *visit = ephy_history_page_visit_new (parse_data->location ? parse_data->location : "", parse_data->last_visit, EPHY_PAGE_VISIT_TYPED); g_free (visit->url->title); visit->url->title = g_strdup (parse_data->title); if (parse_data->zoom_level != 1.0) { /* Zoom levels are only stored per host in the old history, so * creating a new host here is OK. */ g_assert (!visit->url->host); visit->url->host = ephy_history_host_new (parse_data->location, parse_data->title, parse_data->visit_count, parse_data->zoom_level); } parse_data->visits = g_list_append (parse_data->visits, visit); } }
static EphyHistoryPageVisit * create_page_visit_from_statement (EphySQLiteStatement *statement) { EphyHistoryPageVisit *visit = ephy_history_page_visit_new (NULL, ephy_sqlite_statement_get_column_as_int64 (statement, 1), ephy_sqlite_statement_get_column_as_int (statement, 2)); visit->url->id = ephy_sqlite_statement_get_column_as_int (statement, 0); return visit; }
static gboolean impl_visit_url (EphyHistoryService *self, const char *url, EphyHistoryPageVisitType visit_type) { EphyHistoryPageVisit *visit; visit = ephy_history_page_visit_new (url, time (NULL), visit_type); ephy_history_service_add_visit (self, visit, NULL, NULL, NULL); ephy_history_page_visit_free (visit); return FALSE; }