diff options
Diffstat (limited to 'src/trg-torrent-tree-view.c')
-rw-r--r-- | src/trg-torrent-tree-view.c | 183 |
1 files changed, 116 insertions, 67 deletions
diff --git a/src/trg-torrent-tree-view.c b/src/trg-torrent-tree-view.c index d54286a..03861ab 100644 --- a/src/trg-torrent-tree-view.c +++ b/src/trg-torrent-tree-view.c @@ -39,7 +39,7 @@ struct _TrgTorrentTreeViewPrivate { static void trg_torrent_tree_view_class_init(TrgTorrentTreeViewClass * klass G_GNUC_UNUSED) { - g_type_class_add_private(klass, sizeof(TrgTorrentTreeViewPrivate)); + g_type_class_add_private(klass, sizeof(TrgTorrentTreeViewPrivate)); } static void trg_torrent_tree_view_init(TrgTorrentTreeView * tttv) @@ -53,10 +53,12 @@ static void trg_torrent_tree_view_init(TrgTorrentTreeView * tttv) 0); desc->model_column_extra = TORRENT_COLUMN_ICON; - trg_tree_view_reg_column(ttv, TRG_COLTYPE_SIZE, TORRENT_COLUMN_SIZEWHENDONE, - _("Size"), "size", 0); - trg_tree_view_reg_column(ttv, TRG_COLTYPE_PROG, TORRENT_COLUMN_PERCENTDONE, - _("Done"), "done", 0); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_SIZE, + TORRENT_COLUMN_SIZEWHENDONE, _("Size"), + "size", 0); + trg_tree_view_reg_column(ttv, TRG_COLTYPE_PROG, + TORRENT_COLUMN_PERCENTDONE, _("Done"), "done", + 0); trg_tree_view_reg_column(ttv, TRG_COLTYPE_TEXT, TORRENT_COLUMN_STATUS, _("Status"), "status", 0); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, @@ -78,28 +80,39 @@ static void trg_torrent_tree_view_init(TrgTorrentTreeView * tttv) _("Connected"), "connected-peers", 0); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_FROMPEX, _("PEX Peers"), - "from-pex", TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + "from-pex", + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_FROMDHT, _("DHT Peers"), - "from-dht", TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + "from-dht", + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_FROMTRACKERS, _("Tracker Peers"), "from-trackers", - TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_FROMLTEP, _("LTEP Peers"), - "from-ltep", TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + "from-ltep", + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_FROMRESUME, _("Resumed Peers"), - "from-resume", TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + "from-resume", + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO, TORRENT_COLUMN_FROMINCOMING, _("Incoming Peers"), "from-incoming", - TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_TEXT, TORRENT_COLUMN_PEER_SOURCES, _("Peers T/I/E/H/X/L/R"), "peer-sources", - TRG_COLUMN_EXTRA | TRG_COLUMN_HIDE_FROM_TOP_MENU); + TRG_COLUMN_EXTRA | + TRG_COLUMN_HIDE_FROM_TOP_MENU); trg_tree_view_reg_column(ttv, TRG_COLTYPE_SPEED, TORRENT_COLUMN_DOWNSPEED, _("Down Speed"), "down-speed", 0); @@ -172,7 +185,8 @@ JsonArray *build_json_id_array(TrgTorrentTreeView * tv) return ids; } -static void setup_classic_layout(TrgTorrentTreeView *tv) { +static void setup_classic_layout(TrgTorrentTreeView * tv) +{ gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(tv), TRUE); gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(tv), TRUE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tv), TRUE); @@ -180,58 +194,87 @@ static void setup_classic_layout(TrgTorrentTreeView *tv) { } static void -trg_torrent_tree_view_renderer_pref_changed(TrgPrefs * p, const gchar * updatedKey, - gpointer data) +trg_torrent_tree_view_renderer_pref_changed(TrgPrefs * p, + const gchar * updatedKey, + gpointer data) { - if (!g_strcmp0(updatedKey, TRG_PREFS_KEY_STYLE)) { - GtkTreeView *tv = torrent_cell_renderer_get_owner(TORRENT_CELL_RENDERER(data)); - gboolean compact = trg_prefs_get_int(p, TRG_PREFS_KEY_STYLE, TRG_PREFS_GLOBAL) == TRG_STYLE_TR_COMPACT; - g_object_set(G_OBJECT(data), "compact", GINT_TO_POINTER(compact), NULL); + if (!g_strcmp0(updatedKey, TRG_PREFS_KEY_STYLE)) { + GtkTreeView *tv = + torrent_cell_renderer_get_owner(TORRENT_CELL_RENDERER(data)); + gboolean compact = + trg_prefs_get_int(p, TRG_PREFS_KEY_STYLE, + TRG_PREFS_GLOBAL) == TRG_STYLE_TR_COMPACT; + g_object_set(G_OBJECT(data), "compact", GINT_TO_POINTER(compact), + NULL); #if GTK_CHECK_VERSION( 3,0,0 ) - g_signal_emit_by_name( tv, "style-updated", NULL, NULL ); + g_signal_emit_by_name(tv, "style-updated", NULL, NULL); #else - g_signal_emit_by_name( tv, "style-set", NULL, NULL ); + g_signal_emit_by_name(tv, "style-set", NULL, NULL); #endif - } + } } -static void setup_transmission_layout(TrgTorrentTreeView *tv, gint64 style) +static void setup_transmission_layout(TrgTorrentTreeView * tv, + gint64 style) { - TrgTorrentTreeViewPrivate *priv = GET_PRIVATE(tv); + TrgTorrentTreeViewPrivate *priv = GET_PRIVATE(tv); GtkCellRenderer *renderer = torrent_cell_renderer_new(); TrgPrefs *prefs = trg_client_get_prefs(priv->client); - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes("", - renderer, - "status", TORRENT_COLUMN_FLAGS, - "error", TORRENT_COLUMN_ERROR, - "fileCount", TORRENT_COLUMN_FILECOUNT, - "totalSize", TORRENT_COLUMN_TOTALSIZE, - "ratio", TORRENT_COLUMN_RATIO, - "downloaded", TORRENT_COLUMN_DOWNLOADED, - "haveValid", TORRENT_COLUMN_HAVE_VALID, - "sizeWhenDone", TORRENT_COLUMN_SIZEWHENDONE, - "uploaded", TORRENT_COLUMN_UPLOADED, - "percentComplete", TORRENT_COLUMN_PERCENTDONE, - "metadataPercentComplete", TORRENT_COLUMN_METADATAPERCENTCOMPLETE, - "upSpeed", TORRENT_COLUMN_UPSPEED, - "downSpeed", TORRENT_COLUMN_DOWNSPEED, - "peersToUs", TORRENT_COLUMN_PEERS_TO_US, - "peersGettingFromUs", TORRENT_COLUMN_PEERS_FROM_US, - "webSeedsToUs", TORRENT_COLUMN_WEB_SEEDS_TO_US, - "eta", TORRENT_COLUMN_ETA, - "json", TORRENT_COLUMN_JSON, - "seedRatioMode", TORRENT_COLUMN_SEED_RATIO_MODE, - "seedRatioLimit", TORRENT_COLUMN_SEED_RATIO_LIMIT, - "connected", TORRENT_COLUMN_PEERS_CONNECTED, - NULL); + GtkTreeViewColumn *column = + gtk_tree_view_column_new_with_attributes("", + renderer, + "status", + TORRENT_COLUMN_FLAGS, + "error", + TORRENT_COLUMN_ERROR, + "fileCount", + TORRENT_COLUMN_FILECOUNT, + "totalSize", + TORRENT_COLUMN_TOTALSIZE, + "ratio", + TORRENT_COLUMN_RATIO, + "downloaded", + TORRENT_COLUMN_DOWNLOADED, + "haveValid", + TORRENT_COLUMN_HAVE_VALID, + "sizeWhenDone", + TORRENT_COLUMN_SIZEWHENDONE, + "uploaded", + TORRENT_COLUMN_UPLOADED, + "percentComplete", + TORRENT_COLUMN_PERCENTDONE, + "metadataPercentComplete", + TORRENT_COLUMN_METADATAPERCENTCOMPLETE, + "upSpeed", + TORRENT_COLUMN_UPSPEED, + "downSpeed", + TORRENT_COLUMN_DOWNSPEED, + "peersToUs", + TORRENT_COLUMN_PEERS_TO_US, + "peersGettingFromUs", + TORRENT_COLUMN_PEERS_FROM_US, + "webSeedsToUs", + TORRENT_COLUMN_WEB_SEEDS_TO_US, + "eta", TORRENT_COLUMN_ETA, + "json", + TORRENT_COLUMN_JSON, + "seedRatioMode", + TORRENT_COLUMN_SEED_RATIO_MODE, + "seedRatioLimit", + TORRENT_COLUMN_SEED_RATIO_LIMIT, + "connected", + TORRENT_COLUMN_PEERS_CONNECTED, + NULL); g_object_set(G_OBJECT(renderer), "client", priv->client, - "owner", tv, - "compact", style == TRG_STYLE_TR_COMPACT, NULL); + "owner", tv, + "compact", style == TRG_STYLE_TR_COMPACT, NULL); g_signal_connect_object(prefs, "pref-changed", - G_CALLBACK(trg_torrent_tree_view_renderer_pref_changed), renderer, G_CONNECT_AFTER); + G_CALLBACK + (trg_torrent_tree_view_renderer_pref_changed), + renderer, G_CONNECT_AFTER); gtk_tree_view_column_set_resizable(column, FALSE); gtk_tree_view_column_set_reorderable(column, FALSE); @@ -246,27 +289,32 @@ static void setup_transmission_layout(TrgTorrentTreeView *tv, gint64 style) static void trg_torrent_tree_view_pref_changed(TrgPrefs * p, const gchar * updatedKey, - gpointer data) + gpointer data) { - if (!g_strcmp0(updatedKey, TRG_PREFS_KEY_STYLE)) { - TrgTorrentTreeViewPrivate *priv = GET_PRIVATE(data); - TrgPrefs *prefs = trg_client_get_prefs(priv->client); - - trg_tree_view_remove_all_columns(TRG_TREE_VIEW(data)); - if (trg_prefs_get_int(p, TRG_PREFS_KEY_STYLE, TRG_PREFS_GLOBAL) == TRG_STYLE_CLASSIC) - setup_classic_layout(TRG_TORRENT_TREE_VIEW(data)); - else - setup_transmission_layout(TRG_TORRENT_TREE_VIEW(data), trg_prefs_get_int(prefs, TRG_PREFS_KEY_STYLE, TRG_PREFS_GLOBAL)); - } + if (!g_strcmp0(updatedKey, TRG_PREFS_KEY_STYLE)) { + TrgTorrentTreeViewPrivate *priv = GET_PRIVATE(data); + TrgPrefs *prefs = trg_client_get_prefs(priv->client); + + trg_tree_view_remove_all_columns(TRG_TREE_VIEW(data)); + if (trg_prefs_get_int(p, TRG_PREFS_KEY_STYLE, TRG_PREFS_GLOBAL) == + TRG_STYLE_CLASSIC) + setup_classic_layout(TRG_TORRENT_TREE_VIEW(data)); + else + setup_transmission_layout(TRG_TORRENT_TREE_VIEW(data), + trg_prefs_get_int(prefs, + TRG_PREFS_KEY_STYLE, + TRG_PREFS_GLOBAL)); + } } -TrgTorrentTreeView *trg_torrent_tree_view_new(TrgClient *tc, +TrgTorrentTreeView *trg_torrent_tree_view_new(TrgClient * tc, GtkTreeModel * model) { GObject *obj = g_object_new(TRG_TYPE_TORRENT_TREE_VIEW, NULL); TrgTorrentTreeViewPrivate *priv = GET_PRIVATE(obj); TrgPrefs *prefs = trg_client_get_prefs(tc); - gint64 style = trg_prefs_get_int(prefs, TRG_PREFS_KEY_STYLE, TRG_PREFS_GLOBAL); + gint64 style = + trg_prefs_get_int(prefs, TRG_PREFS_KEY_STYLE, TRG_PREFS_GLOBAL); trg_tree_view_set_prefs(TRG_TREE_VIEW(obj), trg_client_get_prefs(tc)); gtk_tree_view_set_model(GTK_TREE_VIEW(obj), model); @@ -274,15 +322,16 @@ TrgTorrentTreeView *trg_torrent_tree_view_new(TrgClient *tc, priv->client = tc; if (style == TRG_STYLE_CLASSIC) { - setup_classic_layout(TRG_TORRENT_TREE_VIEW(obj)); + setup_classic_layout(TRG_TORRENT_TREE_VIEW(obj)); } else { - setup_transmission_layout(TRG_TORRENT_TREE_VIEW(obj), style); + setup_transmission_layout(TRG_TORRENT_TREE_VIEW(obj), style); } g_signal_connect(prefs, "pref-changed", G_CALLBACK(trg_torrent_tree_view_pref_changed), obj); - trg_tree_view_restore_sort(TRG_TREE_VIEW(obj), TRG_TREE_VIEW_SORTABLE_PARENT); + trg_tree_view_restore_sort(TRG_TREE_VIEW(obj), + TRG_TREE_VIEW_SORTABLE_PARENT); return TRG_TORRENT_TREE_VIEW(obj); } |