diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/torrent.h | 1 | ||||
-rw-r--r-- | src/trg-general-panel.c | 43 | ||||
-rw-r--r-- | src/trg-general-panel.h | 4 | ||||
-rw-r--r-- | src/trg-main-window.c | 4 |
5 files changed, 38 insertions, 16 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 48550a6..4527e0c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,7 +23,7 @@ schemadir = @GCONF_SCHEMA_FILE_DIR@ schema_DATA = transmission-remote-gtk.schemas bin_PROGRAMS = transmission-remote-gtk -CFLAGS = --pedantic -Wall -I.. -O2 -DTRGLOCALEDIR=\""$(trglocaledir)"\" $(jsonglib_CFLAGS) $(gthread_CFLAGS) $(gtk_CFLAGS) $(gconf_CFLAGS) $(gio_CFLAGS) $(unique_CFLAGS) $(notify_CFLAGS) +INCLUDES = --pedantic -Wall -I.. -O2 -DTRGLOCALEDIR=\""$(trglocaledir)"\" $(jsonglib_CFLAGS) $(gthread_CFLAGS) $(gtk_CFLAGS) $(gconf_CFLAGS) $(gio_CFLAGS) $(unique_CFLAGS) $(notify_CFLAGS) transmission_remote_gtk_SOURCES = main.c \ requests.c \ diff --git a/src/torrent.h b/src/torrent.h index e76fccc..16102e4 100644 --- a/src/torrent.h +++ b/src/torrent.h @@ -30,6 +30,7 @@ #define TORRENT_FLAG_WAITING_CHECK (1 << 5) /* 0x16 */ #define TORRENT_FLAG_DOWNLOADING (1 << 6) /* 0x32 */ #define TORRENT_FLAG_PAUSED (1 << 7) /* 0x64 */ +#define FILTER_FLAG_TRACKER (1 << 8) /* 0x128 */ gint64 torrent_get_size(JsonObject * t); const gchar *torrent_get_name(JsonObject * t); diff --git a/src/trg-general-panel.c b/src/trg-general-panel.c index c0165fd..bed2815 100644 --- a/src/trg-general-panel.c +++ b/src/trg-general-panel.c @@ -27,12 +27,15 @@ #include "trg-general-panel.h" #include "trg-torrent-model.h" +#define TRG_GENERAL_PANEL_COLUMNS 3 +#define TRG_GENERAL_PANEL_COLUMNS_TOTAL 6 + static void gtk_label_clear(GtkLabel * l); static GtkLabel *gen_panel_label_get_key_label(GtkLabel * l); -static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel * fixed, - char *key, int col, int row); +static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel * gp, + char *key, guint col, guint row); -G_DEFINE_TYPE(TrgGeneralPanel, trg_general_panel, GTK_TYPE_FIXED) +G_DEFINE_TYPE(TrgGeneralPanel, trg_general_panel, GTK_TYPE_TABLE) #define TRG_GENERAL_PANEL_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_GENERAL_PANEL, TrgGeneralPanelPrivate)) typedef struct _TrgGeneralPanelPrivate TrgGeneralPanelPrivate; @@ -179,36 +182,51 @@ void trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t, gtk_label_set_text(GTK_LABEL(priv->gen_leechers_label), buf); } -static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel * fixed, - char *key, int col, int row) +static GtkLabel *trg_general_panel_add_label_with_width(TrgGeneralPanel *gp, + char *key, guint col, guint row, gint width) { GtkWidget *keyLabel; GtkWidget *value; + GtkWidget *alignment; gchar *keyMarkup; + int startCol = (col == 0) ? 0 : col*2; + alignment = gtk_alignment_new(0, 0, 0, 0); keyLabel = gtk_label_new(NULL); keyMarkup = g_markup_printf_escaped(strlen(key) > 0 ? "<b>%s:</b>" : "", key); gtk_label_set_markup(GTK_LABEL(keyLabel), keyMarkup); g_free(keyMarkup); - gtk_fixed_put(GTK_FIXED(fixed), keyLabel, 10 + (col * 280), - 10 + (row * 22)); + gtk_container_add(GTK_CONTAINER(alignment), keyLabel); + gtk_table_attach(GTK_TABLE(gp), alignment, startCol, startCol+1, row, row+1, GTK_FILL, 0, 2, 2); + alignment = gtk_alignment_new(0, 0, 0, 0); value = gtk_label_new(NULL); - gtk_label_set_selectable(GTK_LABEL(value), TRUE); - gtk_fixed_put(GTK_FIXED(fixed), value, 120 + (col * 300), - 10 + (row * 22)); 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, 2, 2); return GTK_LABEL(value); } +static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel *gp, + char *key, guint col, guint row) +{ + return trg_general_panel_add_label_with_width(gp, key, col, row, 1); +} + static void trg_general_panel_init(TrgGeneralPanel * self) { TrgGeneralPanelPrivate *priv = TRG_GENERAL_PANEL_GET_PRIVATE(self); + int i; + + g_object_set(G_OBJECT(self), "n-columns", TRG_GENERAL_PANEL_COLUMNS_TOTAL, + "n-rows", 7, + NULL); priv->gen_name_label = - trg_general_panel_add_label(self, _("Name"), 0, 0); + trg_general_panel_add_label_with_width(self, _("Name"), 0, 0, -1); priv->gen_size_label = trg_general_panel_add_label(self, _("Size"), 0, 1); @@ -241,6 +259,9 @@ static void trg_general_panel_init(TrgGeneralPanel * self) priv->gen_error_label = trg_general_panel_add_label(self, "", 0, 6); + for (i = 0; i < TRG_GENERAL_PANEL_COLUMNS_TOTAL; i++) + gtk_table_set_col_spacing(GTK_TABLE(self), i, i % 2 == 0 ? 20 : 40); + gtk_widget_set_sensitive(GTK_WIDGET(self), FALSE); } diff --git a/src/trg-general-panel.h b/src/trg-general-panel.h index ef20ffd..0f49088 100644 --- a/src/trg-general-panel.h +++ b/src/trg-general-panel.h @@ -40,11 +40,11 @@ G_BEGIN_DECLS #define TRG_GENERAL_PANEL_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), TRG_TYPE_GENERAL_PANEL, TrgGeneralPanelClass)) typedef struct { - GtkFixed parent; + GtkTable parent; } TrgGeneralPanel; typedef struct { - GtkFixedClass parent_class; + GtkTableClass parent_class; } TrgGeneralPanelClass; GType trg_general_panel_get_type(void); diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 8efe06c..4610b87 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -796,7 +796,7 @@ GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) gboolean show_graph; GError *error = NULL; - gtk_widget_set_size_request(notebook, -1, 190); + gtk_widget_set_size_request(notebook, -1, 175); priv->genDetails = trg_general_panel_new(priv->sortedTorrentModel); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), @@ -1052,7 +1052,7 @@ trg_torrent_tree_view_visible_func(GtkTreeModel * model, gchar *filterTextFolded = g_utf8_casefold(filterText, -1); gchar *nameFolded = g_utf8_casefold(name, -1); - if (!strstr(nameFolded, filterTextFolded)) + if (strstr(nameFolded, filterTextFolded)) visible = FALSE; g_free(filterTextFolded); |