summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alan F <ajf@eth0.org.uk>2014-03-14 22:42:42 +0000
committerGravatar Alan F <ajf@eth0.org.uk>2014-03-14 22:42:42 +0000
commit6abc8459ef3237c44eaffd5df9b3a7af6e3e5417 (patch)
tree56f96f27ef74a3d04a98cd02b1d9d1d4ba1d5968 /src
parenta348e739c004f544f4c7ae129b61aed905d49621 (diff)
issue 254 - does not build without GeoIP enabled. thanks for patch!
Diffstat (limited to 'src')
-rw-r--r--src/trg-general-panel.c95
-rw-r--r--src/trg-general-panel.h4
-rw-r--r--src/trg-peers-model.c6
-rw-r--r--src/trg-peers-tree-view.c4
4 files changed, 64 insertions, 45 deletions
diff --git a/src/trg-general-panel.c b/src/trg-general-panel.c
index cec641a..46e3a42 100644
--- a/src/trg-general-panel.c
+++ b/src/trg-general-panel.c
@@ -41,7 +41,7 @@ static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel * gp,
char *key, guint col,
guint row);
-G_DEFINE_TYPE(TrgGeneralPanel, trg_general_panel, GTK_TYPE_TABLE)
+G_DEFINE_TYPE(TrgGeneralPanel, trg_general_panel, GTK_TYPE_GRID)
#define TRG_GENERAL_PANEL_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_GENERAL_PANEL, TrgGeneralPanelPrivate))
typedef struct _TrgGeneralPanelPrivate TrgGeneralPanelPrivate;
@@ -226,11 +226,11 @@ static GtkLabel *trg_general_panel_add_label_with_width(TrgGeneralPanel *
guint row,
gint width)
{
- GtkWidget *value, *keyLabel, *alignment;
+ GtkWidget *value, *keyLabel, *keyAlignment, *valueAlignment;
int startCol = col * 2;
- alignment = gtk_alignment_new(0, 0, 0, 0);
+ keyAlignment = gtk_alignment_new(0, 0, 0, 0);
keyLabel = gtk_label_new(NULL);
if (strlen(key) > 0) {
gchar *keyMarkup =
@@ -239,22 +239,18 @@ static GtkLabel *trg_general_panel_add_label_with_width(TrgGeneralPanel *
gtk_label_set_markup(GTK_LABEL(keyLabel), keyMarkup);
g_free(keyMarkup);
}
- gtk_container_add(GTK_CONTAINER(alignment), keyLabel);
- gtk_table_attach(GTK_TABLE(gp), alignment, startCol, startCol + 1, row,
- row + 1, GTK_FILL, 0, TRG_GENERAL_PANEL_SPACING_X,
- TRG_GENERAL_PANEL_SPACING_Y);
+ gtk_container_add(GTK_CONTAINER(keyAlignment), keyLabel);
- alignment = gtk_alignment_new(0, 0, 0, 0);
+ gtk_grid_attach(GTK_GRID(gp), keyAlignment, startCol, row, 1, 1);
+
+ valueAlignment = gtk_alignment_new(0, 0, 0, 0);
value = gtk_label_new(NULL);
g_object_set_data(G_OBJECT(value), "key-label", keyLabel);
gtk_label_set_selectable(GTK_LABEL(value), TRUE);
- gtk_container_add(GTK_CONTAINER(alignment), value);
- gtk_table_attach(GTK_TABLE(gp), alignment, startCol + 1,
- width <
- 0 ? TRG_GENERAL_PANEL_COLUMNS_TOTAL - 1 : startCol +
- 1 + width, row, row + 1, GTK_FILL | GTK_SHRINK, 0,
- TRG_GENERAL_PANEL_SPACING_X,
- TRG_GENERAL_PANEL_SPACING_Y);
+ gtk_container_add(GTK_CONTAINER(valueAlignment), value);
+ gtk_widget_set_hexpand (valueAlignment, TRUE);
+ gtk_grid_attach_next_to(GTK_GRID(gp), valueAlignment, keyAlignment, GTK_POS_RIGHT, width <
+ 0 ? TRG_GENERAL_PANEL_COLUMNS_TOTAL - 1 : width, 1);
return GTK_LABEL(value);
}
@@ -266,62 +262,77 @@ static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel * gp,
return trg_general_panel_add_label_with_width(gp, key, col, row, 1);
}
+static void trg_general_panel_new_row(GtkGrid *grid, guint *row)
+{
+ gtk_grid_insert_column(grid, *row);
+ *row = *row + 1;
+}
+
static void trg_general_panel_init(TrgGeneralPanel * self)
{
TrgGeneralPanelPrivate *priv = TRG_GENERAL_PANEL_GET_PRIVATE(self);
- int i;
+ GtkGrid *grid = GTK_GRID(self);
+ guint row = 0;
- g_object_set(G_OBJECT(self), "n-columns",
- TRG_GENERAL_PANEL_COLUMNS_TOTAL, "n-rows", 7, NULL);
+ /*g_object_set(G_OBJECT(self), "n-columns",
+ TRG_GENERAL_PANEL_COLUMNS_TOTAL, "n-rows", 7, NULL);*/
+
+ gtk_grid_set_row_spacing(grid, TRG_GENERAL_PANEL_SPACING_Y);
+
+ trg_general_panel_new_row(grid, &row);
priv->gen_name_label =
- trg_general_panel_add_label_with_width(self, _("Name"), 0, 0, -1);
+ trg_general_panel_add_label_with_width(self, _("Name"), 0, row, -1);
+
+ trg_general_panel_new_row(grid, &row);
priv->gen_size_label =
- trg_general_panel_add_label(self, _("Size"), 0, 1);
+ trg_general_panel_add_label(self, _("Size"), 0, row);
priv->gen_eta_label =
- trg_general_panel_add_label(self, _("ETA"), 1, 1);
+ trg_general_panel_add_label(self, _("ETA"), 1, row);
priv->gen_completed_label =
- trg_general_panel_add_label(self, _("Completed"), 2, 1);
+ trg_general_panel_add_label(self, _("Completed"), 2, row);
+
+ trg_general_panel_new_row(grid, &row);
priv->gen_seeders_label =
- trg_general_panel_add_label(self, _("Seeders"), 0, 2);
+ trg_general_panel_add_label(self, _("Seeders"), 0, row);
priv->gen_down_rate_label =
- trg_general_panel_add_label(self, _("Rate Down"), 1, 2);
+ trg_general_panel_add_label(self, _("Rate Down"), 1, row);
priv->gen_downloaded_label =
- trg_general_panel_add_label(self, _("Downloaded"), 2, 2);
+ trg_general_panel_add_label(self, _("Downloaded"), 2, row);
+
+ trg_general_panel_new_row(grid, &row);
priv->gen_leechers_label =
- trg_general_panel_add_label(self, _("Leechers"), 0, 3);
+ trg_general_panel_add_label(self, _("Leechers"), 0, row);
priv->gen_up_rate_label =
- trg_general_panel_add_label(self, _("Rate Up"), 1, 3);
+ trg_general_panel_add_label(self, _("Rate Up"), 1, row);
priv->gen_uploaded_label =
- trg_general_panel_add_label(self, _("Uploaded"), 2, 3);
+ trg_general_panel_add_label(self, _("Uploaded"), 2, row);
+
+ trg_general_panel_new_row(grid, &row);
priv->gen_status_label =
- trg_general_panel_add_label(self, _("Status"), 0, 4);
+ trg_general_panel_add_label(self, _("Status"), 0, row);
priv->gen_ratio_label =
- trg_general_panel_add_label(self, _("Ratio"), 1, 4);
+ trg_general_panel_add_label(self, _("Ratio"), 1, row);
priv->gen_comment_label =
- trg_general_panel_add_label(self, _("Comment"), 2, 4);
+ trg_general_panel_add_label(self, _("Comment"), 3, row);
+
+ trg_general_panel_new_row(grid, &row);
priv->gen_completedat_label =
- trg_general_panel_add_label_with_width(self, _("Completed At"), 0,
- 5, -1);
+ trg_general_panel_add_label(self, _("Completed At"), 0, row);
priv->gen_downloaddir_label =
- trg_general_panel_add_label_with_width(self, _("Location"), 1, 5,
- -1);
+ trg_general_panel_add_label_with_width(self, _("Location"), 1, row, -1);
- priv->gen_error_label =
- trg_general_panel_add_label_with_width(self, "", 0, 6, -1);
+ trg_general_panel_new_row(grid, &row);
- for (i = 0; i < TRG_GENERAL_PANEL_COLUMNS_TOTAL; i++)
- gtk_table_set_col_spacing(GTK_TABLE(self), i,
- i % 2 ==
- 0 ? TRG_GENERAL_PANEL_WIDTH_FROM_KEY :
- TRG_GENERAL_PANEL_WIDTH_FROM_VALUE);
+ priv->gen_error_label =
+ trg_general_panel_add_label_with_width(self, "", 0, row, -1);
gtk_widget_set_sensitive(GTK_WIDGET(self), FALSE);
}
diff --git a/src/trg-general-panel.h b/src/trg-general-panel.h
index e1a75bb..2317cf6 100644
--- a/src/trg-general-panel.h
+++ b/src/trg-general-panel.h
@@ -41,11 +41,11 @@ G_BEGIN_DECLS
#define TRG_GENERAL_PANEL_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), TRG_TYPE_GENERAL_PANEL, TrgGeneralPanelClass))
typedef struct {
- GtkTable parent;
+ GtkGrid parent;
} TrgGeneralPanel;
typedef struct {
- GtkTableClass parent_class;
+ GtkGridClass parent_class;
} TrgGeneralPanelClass;
GType trg_general_panel_get_type(void);
diff --git a/src/trg-peers-model.c b/src/trg-peers-model.c
index a3b7458..f46a083 100644
--- a/src/trg-peers-model.c
+++ b/src/trg-peers-model.c
@@ -145,6 +145,7 @@ static void resolved_dns_cb(GObject * source_object, GAsyncResult * res,
}
}
+#ifdef HAVE_GEOIP
/* for handling v4 or v6 addresses. string is owned by GeoIP, should not be freed. */
static const gchar* lookup_country(TrgPeersModel *model, const gchar *address) {
TrgPeersModelPrivate *priv = TRG_PEERS_MODEL_GET_PRIVATE(model);
@@ -156,6 +157,7 @@ static const gchar* lookup_country(TrgPeersModel *model, const gchar *address) {
else
return NULL;
}
+#endif
void
trg_peers_model_update(TrgPeersModel * model, TrgTreeView * tv,
@@ -218,8 +220,10 @@ trg_peers_model_update(TrgPeersModel * model, TrgTreeView * tv,
isNew = FALSE;
}
+#ifdef HAVE_GEOIP
if (city)
GeoIPRecord_delete(city);
+#endif
flagStr = peer_get_flagstr(peer);
gtk_list_store_set(GTK_LIST_STORE(model), &peerIter,
@@ -323,6 +327,7 @@ static void trg_peers_model_init(TrgPeersModel * self)
#endif
}
+#ifdef HAVE_GEOIP
static gboolean trg_peers_model_add_city_foreach(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
@@ -344,7 +349,6 @@ 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;
diff --git a/src/trg-peers-tree-view.c b/src/trg-peers-tree-view.c
index 9385d32..3d6052d 100644
--- a/src/trg-peers-tree-view.c
+++ b/src/trg-peers-tree-view.c
@@ -80,6 +80,7 @@ static void trg_peers_tree_view_setup_columns(TrgPeersTreeView * self, TrgPeersM
gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), PEERSCOL_HOST);
}
+#ifdef HAVE_GEOIP
static void trg_peers_tree_view_column_added(TrgTreeView *tv, const gchar *id) {
TrgPeersModel *model = TRG_PEERS_MODEL(gtk_tree_view_get_model(GTK_TREE_VIEW(tv)));
if (!g_strcmp0(id, "city")) {
@@ -88,6 +89,7 @@ static void trg_peers_tree_view_column_added(TrgTreeView *tv, const gchar *id) {
trg_peers_model_add_country_column(model);
}
}
+#endif
TrgPeersTreeView *trg_peers_tree_view_new(TrgPrefs * prefs,
TrgPeersModel * model,
@@ -103,7 +105,9 @@ TrgPeersTreeView *trg_peers_tree_view_new(TrgPrefs * prefs,
trg_tree_view_restore_sort(TRG_TREE_VIEW(obj), 0x00);
trg_tree_view_setup_columns(TRG_TREE_VIEW(obj));
+#ifdef HAVE_GEOIP
g_signal_connect(obj, "column-added", G_CALLBACK(trg_peers_tree_view_column_added), NULL);
+#endif
return TRG_PEERS_TREE_VIEW(obj);
}