void ttx_window_request_page (TTXWindow *self, TTXProviderID prov_id, unsigned page, unsigned subpage) { const char *combo_id; GtkComboBox *combo; const TTXProvider *prov; g_return_if_fail (TTX_IS_WINDOW(self)); g_return_if_fail (page >= 100 && page <= 999); g_return_if_fail (subpage > 0); if (page > 999 || subpage < 1) { g_warning ("invalid page %u/%u", page, subpage); update_entry (self); } /* if not provided, get the last one (or the default) */ if (!prov_id) prov_id = get_provider_id (self); if (prov_id) { prov = ttx_provider_mgr_get_provider ( self->priv->prov_mgr, prov_id); if (!prov) { g_printerr (_("unknown teletext provider %s\n"), prov_id); prov_id = "nos"; /* default */ } } combo = GTK_COMBO_BOX(self->priv->combo); combo_id = gtk_combo_box_get_active_id (combo); self->priv->retrieving = TRUE; if (g_strcmp0 (prov_id, combo_id) != 0) if (!gtk_combo_box_set_active_id (combo, prov_id)) g_warning ("failed to set active id to %s", prov_id); ttx_provider_mgr_retrieve (self->priv->prov_mgr, prov_id, page, subpage, (TTXProviderResultFunc)on_completed, self); }
int QcOfflineCacheDatabase::get_map_level_id(const QcTileSpec & tile_spec) { int provider_id = get_provider_id(tile_spec.plugin()); // Fixme: provider unsigned int map_level_hash = hash_tile_spec(provider_id, tile_spec.map_id(), tile_spec.level()); if (m_map_levels.contains(map_level_hash)) return m_map_levels[map_level_hash]; else { KeyValuePair kwargs; kwargs.insert(PROVIDER_ID, provider_id); kwargs.insert(MAP_ID, tile_spec.map_id()); kwargs.insert(LEVEL, tile_spec.level()); insert(MAP_LEVEL, kwargs); QString where = format_simple_where(kwargs); QSqlRecord record = select_one(MAP_LEVEL, QStringList(MAP_LEVEL_ID), where); int map_level_id = record.value(0).toInt(); m_map_levels.insert(map_level_hash, map_level_id); return map_level_id; } }