From b06b8290bef019462a45f36de6f10abfe8b13c6d Mon Sep 17 00:00:00 2001 From: Alan F Date: Mon, 3 Feb 2014 14:06:16 +0000 Subject: hide the country and city columns if the databases have not been opened (probably because the file doesn't exist). --- src/trg-peers-model.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/trg-peers-model.c') diff --git a/src/trg-peers-model.c b/src/trg-peers-model.c index d64c74d..0137c9d 100644 --- a/src/trg-peers-model.c +++ b/src/trg-peers-model.c @@ -336,8 +336,21 @@ static gboolean trg_peers_model_add_city_foreach(GtkTreeModel *model, return FALSE; } +#if HAVE_GEOIP +gboolean trg_peers_model_has_city_db(TrgPeersModel *model) { + TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(model); + return priv->geoipcity != NULL; +} + +gboolean trg_peers_model_has_country_db(TrgPeersModel *model) { + TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(model); + return priv->geoip != NULL; +} + void trg_peers_model_add_city_column(TrgPeersModel *model) { - gtk_tree_model_foreach(GTK_TREE_MODEL(model), trg_peers_model_add_city_foreach, NULL); + TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(model); + if (priv->geoipcity) + gtk_tree_model_foreach(GTK_TREE_MODEL(model), trg_peers_model_add_city_foreach, NULL); } static gboolean trg_peers_model_add_country_foreach(GtkTreeModel *model, @@ -345,15 +358,22 @@ static gboolean trg_peers_model_add_country_foreach(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gchar *address = NULL; + gtk_tree_model_get(GTK_TREE_MODEL(model), iter, PEERSCOL_IP, &address, -1); gtk_list_store_set(GTK_LIST_STORE(model), iter, PEERSCOL_COUNTRY, lookup_country(TRG_PEERS_MODEL(model), address), -1); + g_free(address); + return FALSE; } void trg_peers_model_add_country_column(TrgPeersModel *model) { - gtk_tree_model_foreach(GTK_TREE_MODEL(model), trg_peers_model_add_country_foreach, NULL); + TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(model); + if (priv->geoip) + gtk_tree_model_foreach(GTK_TREE_MODEL(model), trg_peers_model_add_country_foreach, NULL); } +#endif + TrgPeersModel *trg_peers_model_new() { -- cgit v1.2.3