From 6abc8459ef3237c44eaffd5df9b3a7af6e3e5417 Mon Sep 17 00:00:00 2001 From: Alan F Date: Fri, 14 Mar 2014 22:42:42 +0000 Subject: issue 254 - does not build without GeoIP enabled. thanks for patch! --- src/trg-general-panel.c | 95 ++++++++++++++++++++++++++--------------------- src/trg-general-panel.h | 4 +- src/trg-peers-model.c | 6 ++- src/trg-peers-tree-view.c | 4 ++ 4 files changed, 64 insertions(+), 45 deletions(-) (limited to 'src') 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); } -- cgit v1.2.3