summaryrefslogtreecommitdiff
path: root/src/trg-peers-model.c
diff options
context:
space:
mode:
authorGravatar Alan F <ajf@eth0.org.uk>2014-02-03 14:06:16 +0000
committerGravatar Alan F <ajf@eth0.org.uk>2014-02-03 14:06:16 +0000
commitb06b8290bef019462a45f36de6f10abfe8b13c6d (patch)
tree1ecedacea6ec3bc90a2c9ba50ba853e5486c8057 /src/trg-peers-model.c
parentb598a43dfe3123c3cec1022e59558b09ffe4dac5 (diff)
hide the country and city columns if the databases have not been opened (probably because the file doesn't exist).
Diffstat (limited to 'src/trg-peers-model.c')
-rw-r--r--src/trg-peers-model.c24
1 files changed, 22 insertions, 2 deletions
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()
{