diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-11-22 21:43:39 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-11-22 21:43:39 +0000 |
commit | c02d88a6532f5f96211ed4410dadf4bc6ae1b094 (patch) | |
tree | 1b1daa098596a41d1562311cfb29aded638db46e /src | |
parent | ceed760d73e4ec82c8bd6f9a99a93ce184968b23 (diff) |
use "Default" as the alias for the state selector name for the default directory. refresh when labels are set.
Diffstat (limited to 'src')
-rw-r--r-- | src/trg-main-window.c | 7 | ||||
-rw-r--r-- | src/trg-main-window.h | 1 | ||||
-rw-r--r-- | src/trg-preferences-dialog.c | 114 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 426 | ||||
-rw-r--r-- | src/trg-torrent-model.h | 3 |
5 files changed, 283 insertions, 268 deletions
diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 076747b..c165484 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -1070,6 +1070,13 @@ static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, return visible; } +void trg_main_window_reload_dir_alises(TrgMainWindow *win) +{ + TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); + trg_torrent_model_reload_dir_alises(priv->client, GTK_TREE_MODEL(priv->torrentModel)); + trg_state_selector_update(priv->stateSelector); +} + static TrgTorrentTreeView *trg_main_window_torrent_tree_view_new( TrgMainWindow * win, GtkTreeModel * model) { TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); diff --git a/src/trg-main-window.h b/src/trg-main-window.h index 683cf35..7303315 100644 --- a/src/trg-main-window.h +++ b/src/trg-main-window.h @@ -71,6 +71,7 @@ gint trg_mw_get_selected_torrent_id(TrgMainWindow * win); GtkTreeModel *trg_main_window_get_torrent_model(TrgMainWindow * win); void trg_main_window_notebook_set_visible(TrgMainWindow *win, gboolean visible); void connect_cb(GtkWidget * w, gpointer data); +void trg_main_window_reload_dir_alises(TrgMainWindow *win); #if !GTK_CHECK_VERSION(2, 21, 1) #define gdk_drag_context_get_actions(context) context->actions diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c index 5ca792f..584409b 100644 --- a/src/trg-preferences-dialog.c +++ b/src/trg-preferences-dialog.c @@ -38,8 +38,7 @@ #define TRG_PREFERENCES_DIALOG_GET_PRIVATE(object) \ (G_TYPE_INSTANCE_GET_PRIVATE ((object), TRG_TYPE_PREFERENCES_DIALOG, TrgPreferencesDialogPrivate)) -G_DEFINE_TYPE(TrgPreferencesDialog, trg_preferences_dialog, - GTK_TYPE_DIALOG) +G_DEFINE_TYPE(TrgPreferencesDialog, trg_preferences_dialog, GTK_TYPE_DIALOG) enum { PROP_0, PROP_TRG_CLIENT, PROP_MAIN_WINDOW @@ -98,7 +97,8 @@ static void trg_pref_widget_save_all(TrgPreferencesDialog *dlg) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(dlg); GList *li; - if (trg_prefs_get_profile(priv->prefs) == NULL) + if (trg_prefs_get_profile(priv->prefs) == NULL + ) return; trg_client_configlock(priv->client); @@ -109,8 +109,8 @@ static void trg_pref_widget_save_all(TrgPreferencesDialog *dlg) { trg_client_configunlock(priv->client); } -static void trg_preferences_dialog_set_property(GObject * object, - guint prop_id, const GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { +static void trg_preferences_dialog_set_property(GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(object); @@ -134,6 +134,8 @@ static void trg_preferences_response_cb(GtkDialog * dlg, gint res_id, trg_prefs_save(priv->prefs); } + trg_main_window_reload_dir_alises(priv->win); + GList *li; for (li = priv->widgets; li; li = g_list_next(li)) trg_pref_widget_desc_free((trg_pref_widget_desc*) li->data); @@ -143,8 +145,8 @@ static void trg_preferences_response_cb(GtkDialog * dlg, gint res_id, instance = NULL; } -static void trg_preferences_dialog_get_property(GObject * object, - guint prop_id, GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { +static void trg_preferences_dialog_get_property(GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec G_GNUC_UNUSED) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(object); @@ -248,8 +250,8 @@ static void spin_save(TrgPrefs * prefs, void* wdp) { wd->flags); } -static GtkWidget *trgp_spin_new(TrgPreferencesDialog *dlg, gchar * key, - int low, int high, int step, int flags, GtkToggleButton *dependency) { +static GtkWidget *trgp_spin_new(TrgPreferencesDialog *dlg, gchar * key, int low, + int high, int step, int flags, GtkToggleButton *dependency) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(dlg); GtkWidget *w; @@ -303,10 +305,9 @@ static void menu_bar_toggle_filter_dirs(GtkToggleButton * w, gpointer win) { } static void view_states_toggled_cb(GtkToggleButton * w, gpointer data) { - GtkWidget - *scroll = - gtk_widget_get_parent( - GTK_WIDGET(trg_main_window_get_state_selector(TRG_MAIN_WINDOW(data)))); + GtkWidget *scroll = + gtk_widget_get_parent( + GTK_WIDGET(trg_main_window_get_state_selector(TRG_MAIN_WINDOW(data)))); trg_widget_set_visible(scroll, gtk_toggle_button_get_active(w)); } @@ -327,8 +328,8 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { dep = w = trgp_check_new(dlg, _("State selector"), TRG_PREFS_KEY_SHOW_STATE_SELECTOR, TRG_PREFS_GLOBAL, NULL); - g_signal_connect(G_OBJECT(w), "toggled", - G_CALLBACK(view_states_toggled_cb), priv->win); + g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(view_states_toggled_cb), + priv->win); hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Directory filters"), TRG_PREFS_KEY_FILTER_DIRS, @@ -337,24 +338,23 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { G_CALLBACK(menu_bar_toggle_filter_dirs), priv->win); hig_workarea_add_wide_control(t, &row, w); - w = trgp_check_new(dlg, _("Tracker filters"), - TRG_PREFS_KEY_FILTER_TRACKERS, TRG_PREFS_GLOBAL, - GTK_TOGGLE_BUTTON(dep)); - g_signal_connect(G_OBJECT(w), "toggled", - G_CALLBACK(toggle_filter_trackers), priv->win); + w = trgp_check_new(dlg, _("Tracker filters"), TRG_PREFS_KEY_FILTER_TRACKERS, + TRG_PREFS_GLOBAL, GTK_TOGGLE_BUTTON(dep)); + g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(toggle_filter_trackers), + priv->win); hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Torrent Details"), TRG_PREFS_KEY_SHOW_NOTEBOOK, TRG_PREFS_GLOBAL, NULL); - g_signal_connect(G_OBJECT(w), "toggled", - G_CALLBACK(notebook_toggled_cb), priv->win); + g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(notebook_toggled_cb), + priv->win); hig_workarea_add_wide_control(t, &row, w); #ifndef TRG_NO_GRAPH w = trgp_check_new(dlg, _("Show graph"), TRG_PREFS_KEY_SHOW_GRAPH, TRG_PREFS_GLOBAL, GTK_TOGGLE_BUTTON(w)); - g_signal_connect(G_OBJECT(w), "toggled", - G_CALLBACK(toggle_graph), priv->win); + g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(toggle_graph), + priv->win); hig_workarea_add_wide_control(t, &row, w); #endif @@ -362,8 +362,8 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { tray = trgp_check_new(dlg, _("Show in system tray"), TRG_PREFS_KEY_SYSTEM_TRAY, TRG_PREFS_GLOBAL, NULL); - g_signal_connect(G_OBJECT(tray), "toggled", - G_CALLBACK(toggle_tray_icon), priv->win); + g_signal_connect(G_OBJECT(tray), "toggled", G_CALLBACK(toggle_tray_icon), + priv->win); hig_workarea_add_wide_control(t, &row, tray); w = trgp_check_new(dlg, _("Minimise to system tray"), @@ -378,7 +378,7 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { w = trgp_check_new(dlg, _("Torrent added notifications"), TRG_PREFS_KEY_ADD_NOTIFY, TRG_PREFS_GLOBAL, NULL); gtk_widget_set_sensitive(w, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (tray))); + (tray))); g_signal_connect(G_OBJECT(tray), "toggled", G_CALLBACK(toggle_active_arg_is_sensitive), w); hig_workarea_add_wide_control(t, &row, w); @@ -386,7 +386,7 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { w = trgp_check_new(dlg, _("Torrent complete notifications"), TRG_PREFS_KEY_COMPLETE_NOTIFY, TRG_PREFS_GLOBAL, NULL); gtk_widget_set_sensitive(w, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (tray))); + (tray))); g_signal_connect(G_OBJECT(tray), "toggled", G_CALLBACK(toggle_active_arg_is_sensitive), w); hig_workarea_add_wide_control(t, &row, w); @@ -420,8 +420,7 @@ static GtkWidget *trg_prefs_behaviorPage(TrgPreferencesDialog * dlg) { static void profile_changed_cb(GtkWidget *w, gpointer data) { GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(w)); - TrgPreferencesDialogPrivate *priv = - TRG_PREFERENCES_DIALOG_GET_PRIVATE(data); + TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(data); GtkTreeIter iter; JsonObject *profile; @@ -492,8 +491,7 @@ static GtkWidget *trg_prefs_profile_combo_new(TrgClient *tc) { } static void name_changed_cb(GtkWidget *w, gpointer data) { - TrgPreferencesDialogPrivate *priv = - TRG_PREFERENCES_DIALOG_GET_PRIVATE(data); + TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(data); GtkTreeIter iter; GtkTreeModel *model; GtkComboBox *combo; @@ -549,7 +547,6 @@ static void trgp_double_special_dependent(GtkWidget *widget, gpointer data) { GTK_TOGGLE_BUTTON(priv->fullUpdateCheck))); } - static GtkWidget *trg_prefs_openExecPage(TrgPreferencesDialog *dlg) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(dlg); GtkWidget *t; @@ -564,16 +561,20 @@ static GtkWidget *trg_prefs_openExecPage(TrgPreferencesDialog *dlg) { model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - ptv = trg_persistent_tree_view_new(priv->prefs, model, TRG_PREFS_KEY_EXEC_COMMANDS); - trg_persistent_tree_view_set_add_select(ptv, - trg_persistent_tree_view_add_column(ptv, 0, TRG_PREFS_SUBKEY_LABEL, _("Label"))); - trg_persistent_tree_view_add_column(ptv, 1, TRG_PREFS_KEY_EXEC_COMMANDS_SUBKEY_CMD, _("Command")); + ptv = trg_persistent_tree_view_new(priv->prefs, model, + TRG_PREFS_KEY_EXEC_COMMANDS); + trg_persistent_tree_view_set_add_select( + ptv, + trg_persistent_tree_view_add_column(ptv, 0, TRG_PREFS_SUBKEY_LABEL, + _("Label"))); + trg_persistent_tree_view_add_column(ptv, 1, + TRG_PREFS_KEY_EXEC_COMMANDS_SUBKEY_CMD, _("Command")); wd = trg_persistent_tree_view_get_widget_desc(ptv); trg_pref_widget_refresh(dlg, wd); priv->widgets = g_list_append(priv->widgets, wd); - gtk_table_attach(GTK_TABLE(t), GTK_WIDGET(ptv), 1, 2, row, - row + 1, GTK_EXPAND | GTK_SHRINK | GTK_FILL, + gtk_table_attach(GTK_TABLE(t), GTK_WIDGET(ptv), 1, 2, row, row + 1, + GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 0, 0); return t; @@ -593,16 +594,20 @@ static GtkWidget *trg_prefs_dirsPage(TrgPreferencesDialog *dlg) { model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - ptv = trg_persistent_tree_view_new(priv->prefs, model, TRG_PREFS_KEY_DESTINATIONS); - trg_persistent_tree_view_set_add_select(ptv, - trg_persistent_tree_view_add_column(ptv, 0, TRG_PREFS_SUBKEY_LABEL, _("Label"))); - trg_persistent_tree_view_add_column(ptv, 1, TRG_PREFS_KEY_DESTINATIONS_SUBKEY_DIR, _("Directory")); + ptv = trg_persistent_tree_view_new(priv->prefs, model, + TRG_PREFS_KEY_DESTINATIONS); + trg_persistent_tree_view_set_add_select( + ptv, + trg_persistent_tree_view_add_column(ptv, 0, TRG_PREFS_SUBKEY_LABEL, + _("Label"))); + trg_persistent_tree_view_add_column(ptv, 1, + TRG_PREFS_KEY_DESTINATIONS_SUBKEY_DIR, _("Directory")); wd = trg_persistent_tree_view_get_widget_desc(ptv); trg_pref_widget_refresh(dlg, wd); priv->widgets = g_list_append(priv->widgets, wd); - gtk_table_attach(GTK_TABLE(t), GTK_WIDGET(ptv), 1, 2, row, - row + 1, GTK_EXPAND | GTK_SHRINK | GTK_FILL, + gtk_table_attach(GTK_TABLE(t), GTK_WIDGET(ptv), 1, 2, row, row + 1, + GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 0, 0); return t; @@ -630,21 +635,25 @@ static GtkWidget *trg_prefs_serverPage(TrgPreferencesDialog *dlg) { profileButtonsHbox = gtk_hbox_new(FALSE, 0); w = gtk_button_new_from_stock(GTK_STOCK_ADD); - g_signal_connect(w, "clicked", G_CALLBACK(add_profile_cb), priv->profileComboBox); + g_signal_connect(w, "clicked", G_CALLBACK(add_profile_cb), + priv->profileComboBox); gtk_box_pack_start(GTK_BOX(profileButtonsHbox), w, FALSE, FALSE, 4); w = priv->profileDelButton = gtk_button_new_from_stock(GTK_STOCK_DELETE); - g_signal_connect(w, "clicked", G_CALLBACK(del_profile_cb), priv->profileComboBox); + g_signal_connect(w, "clicked", G_CALLBACK(del_profile_cb), + priv->profileComboBox); gtk_widget_set_sensitive(w, FALSE); gtk_box_pack_start(GTK_BOX(profileButtonsHbox), w, FALSE, FALSE, 4); trg_prefs_profile_combo_populate(dlg, GTK_COMBO_BOX(priv->profileComboBox), prefs); - g_signal_connect(G_OBJECT(priv->profileComboBox), "changed", G_CALLBACK(profile_changed_cb), dlg); + g_signal_connect(G_OBJECT(priv->profileComboBox), "changed", + G_CALLBACK(profile_changed_cb), dlg); /* Name */ - g_signal_connect(priv->profileNameEntry, "changed", G_CALLBACK(name_changed_cb), dlg); + g_signal_connect(priv->profileNameEntry, "changed", + G_CALLBACK(name_changed_cb), dlg); hig_workarea_add_row(t, &row, _("Name:"), priv->profileNameEntry, NULL); @@ -739,8 +748,7 @@ static GObject *trg_preferences_dialog_constructor(GType type, gtk_window_set_title(GTK_WINDOW(object), _("Local Preferences")); gtk_container_set_border_width(GTK_CONTAINER(object), GUI_PAD); - g_signal_connect(G_OBJECT(object), - "response", + g_signal_connect(G_OBJECT(object), "response", G_CALLBACK(trg_preferences_response_cb), NULL); notebook = gtk_notebook_new(); @@ -812,8 +820,8 @@ static void trg_preferences_dialog_class_init(TrgPreferencesDialogClass * class) GtkWidget *trg_preferences_dialog_get_instance(TrgMainWindow * win, TrgClient * client) { if (!instance) - instance = g_object_new(TRG_TYPE_PREFERENCES_DIALOG, "main-window", - win, "trg-client", client, NULL); + instance = g_object_new(TRG_TYPE_PREFERENCES_DIALOG, "main-window", win, + "trg-client", client, NULL); return GTK_WIDGET(instance); } diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c index 0ef89d6..b69c524 100644 --- a/src/trg-torrent-model.c +++ b/src/trg-torrent-model.c @@ -51,56 +51,47 @@ struct _TrgTorrentModelPrivate { GRegex *urlHostRegex; }; -static void trg_torrent_model_dispose(GObject * object) -{ +static void trg_torrent_model_dispose(GObject * object) { TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(object); g_hash_table_destroy(priv->ht); G_OBJECT_CLASS(trg_torrent_model_parent_class)->dispose(object); } static void -update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, - gint64 rpcv, gint64 serial, GtkTreeIter * iter, - JsonObject * t, trg_torrent_model_update_stats * stats); +update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, gint64 rpcv, + gint64 serial, GtkTreeIter * iter, JsonObject * t, + trg_torrent_model_update_stats * stats); -static void trg_torrent_model_class_init(TrgTorrentModelClass * klass) -{ +static void trg_torrent_model_class_init(TrgTorrentModelClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgTorrentModelPrivate)); object_class->dispose = trg_torrent_model_dispose; - signals[TMODEL_TORRENT_COMPLETED] = - g_signal_new("torrent-completed", - G_TYPE_FROM_CLASS(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET(TrgTorrentModelClass, - torrent_completed), NULL, - NULL, g_cclosure_marshal_VOID__POINTER, - G_TYPE_NONE, 1, G_TYPE_POINTER); - - signals[TMODEL_TORRENT_ADDED] = - g_signal_new("torrent-added", - G_TYPE_FROM_CLASS(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET(TrgTorrentModelClass, - torrent_added), NULL, - NULL, g_cclosure_marshal_VOID__POINTER, - G_TYPE_NONE, 1, G_TYPE_POINTER); - - signals[TMODEL_TORRENT_ADDREMOVE] = - g_signal_new("torrent-addremove", - G_TYPE_FROM_CLASS(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET(TrgTorrentModelClass, - torrent_removed), NULL, - NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + signals[TMODEL_TORRENT_COMPLETED] = g_signal_new("torrent-completed", + G_TYPE_FROM_CLASS(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET(TrgTorrentModelClass, + torrent_completed), NULL, NULL, + g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + + signals[TMODEL_TORRENT_ADDED] = g_signal_new("torrent-added", + G_TYPE_FROM_CLASS(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET(TrgTorrentModelClass, + torrent_added), NULL, NULL, + g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + + signals[TMODEL_TORRENT_ADDREMOVE] = g_signal_new("torrent-addremove", + G_TYPE_FROM_CLASS(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET(TrgTorrentModelClass, + torrent_removed), NULL, NULL, g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } static void trg_torrent_model_count_peers(TrgTorrentModel * model, - GtkTreeIter * iter, - JsonObject * t) -{ + GtkTreeIter * iter, JsonObject * t) { GList *trackersList = json_array_get_elements(torrent_get_tracker_stats(t)); gint seeders = 0; gint leechers = 0; @@ -117,14 +108,12 @@ static void trg_torrent_model_count_peers(TrgTorrentModel * model, g_list_free(trackersList); - gtk_list_store_set(GTK_LIST_STORE(model), iter, - TORRENT_COLUMN_SEEDS, seeders, - TORRENT_COLUMN_LEECHERS, leechers, - TORRENT_COLUMN_DOWNLOADS, downloads, -1); + gtk_list_store_set(GTK_LIST_STORE(model), iter, TORRENT_COLUMN_SEEDS, + seeders, TORRENT_COLUMN_LEECHERS, leechers, + TORRENT_COLUMN_DOWNLOADS, downloads, -1); } -static void trg_torrent_model_ref_free(gpointer data) -{ +static void trg_torrent_model_ref_free(gpointer data) { GtkTreeRowReference *rr = (GtkTreeRowReference *) data; GtkTreeModel *model = gtk_tree_row_reference_get_model(rr); GtkTreePath *path = gtk_tree_row_reference_get_path(rr); @@ -132,14 +121,13 @@ static void trg_torrent_model_ref_free(gpointer data) GtkTreeIter iter; JsonObject *json; if (gtk_tree_model_get_iter(model, &iter, path)) { - gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, &json, - -1); + gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, &json, -1); json_object_unref(json); g_object_set_data(G_OBJECT(model), PROP_REMOVE_IN_PROGRESS, - GINT_TO_POINTER(TRUE)); + GINT_TO_POINTER(TRUE)); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); g_object_set_data(G_OBJECT(model), PROP_REMOVE_IN_PROGRESS, - GINT_TO_POINTER(FALSE)); + GINT_TO_POINTER(FALSE)); } gtk_tree_path_free(path); @@ -148,8 +136,7 @@ static void trg_torrent_model_ref_free(gpointer data) gtk_tree_row_reference_free(rr); } -static void trg_torrent_model_init(TrgTorrentModel * self) -{ +static void trg_torrent_model_init(TrgTorrentModel * self) { TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(self); GType column_types[TORRENT_COLUMN_COLUMNS]; @@ -192,46 +179,68 @@ static void trg_torrent_model_init(TrgTorrentModel * self) column_types[TORRENT_COLUMN_LASTACTIVE] = G_TYPE_INT64; gtk_list_store_set_column_types(GTK_LIST_STORE(self), - TORRENT_COLUMN_COLUMNS, column_types); + TORRENT_COLUMN_COLUMNS, column_types); - priv->ht = - g_hash_table_new_full(g_int64_hash, g_int64_equal, - (GDestroyNotify) g_free, - trg_torrent_model_ref_free); + priv->ht = g_hash_table_new_full(g_int64_hash, g_int64_equal, + (GDestroyNotify) g_free, trg_torrent_model_ref_free); g_object_set_data(G_OBJECT(self), PROP_REMOVE_IN_PROGRESS, - GINT_TO_POINTER(FALSE)); + GINT_TO_POINTER(FALSE)); priv->urlHostRegex = trg_uri_host_regex_new(); } -gboolean trg_torrent_model_is_remove_in_progress(TrgTorrentModel * model) -{ - return (gboolean) - GPOINTER_TO_INT(g_object_get_data - (G_OBJECT(model), PROP_REMOVE_IN_PROGRESS)); +gboolean trg_torrent_model_is_remove_in_progress(TrgTorrentModel * model) { + return (gboolean) GPOINTER_TO_INT(g_object_get_data + (G_OBJECT(model), PROP_REMOVE_IN_PROGRESS)); +} + +static gboolean trg_torrent_model_reload_dir_alises_foreachfunc( + GtkTreeModel * model, GtkTreePath * path G_GNUC_UNUSED, + GtkTreeIter * iter, gpointer gdata) { + gchar *downloadDir, *shortDownloadDir; + + gtk_tree_model_get(model, iter, TORRENT_COLUMN_DOWNLOADDIR, &downloadDir, + -1); + + shortDownloadDir = shorten_download_dir((TrgClient*) gdata, downloadDir); + g_message("%s", shortDownloadDir); + + gtk_list_store_set(GTK_LIST_STORE(model), iter, + TORRENT_COLUMN_DOWNLOADDIR_SHORT, shortDownloadDir, -1); + + g_free(downloadDir); + g_free(shortDownloadDir); + + return FALSE; } -static gboolean -trg_torrent_model_stats_scan_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, - GtkTreeIter * iter, - gpointer gdata) +void trg_torrent_model_reload_dir_alises(TrgClient *tc, GtkTreeModel *model) { + gtk_tree_model_foreach(model, + trg_torrent_model_reload_dir_alises_foreachfunc, tc); +} + +static gboolean trg_torrent_model_stats_scan_foreachfunc(GtkTreeModel * model, + GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer gdata) { trg_torrent_model_update_stats *stats = - (trg_torrent_model_update_stats *) gdata; + (trg_torrent_model_update_stats *) gdata; guint flags; gtk_tree_model_get(model, iter, TORRENT_COLUMN_FLAGS, &flags, -1); - if (flags & TORRENT_FLAG_SEEDING) + if (flags & TORRENT_FLAG_SEEDING + ) stats->seeding++; - else if (flags & TORRENT_FLAG_DOWNLOADING) + else if (flags & TORRENT_FLAG_DOWNLOADING + ) stats->down++; - else if (flags & TORRENT_FLAG_PAUSED) + else if (flags & TORRENT_FLAG_PAUSED + ) stats->paused++; - if (flags & TORRENT_FLAG_ERROR) + if (flags & TORRENT_FLAG_ERROR + ) stats->error++; stats->count++; @@ -239,28 +248,35 @@ trg_torrent_model_stats_scan_foreachfunc(GtkTreeModel * model, return FALSE; } -void trg_torrent_model_remove_all(TrgTorrentModel *model) -{ +void trg_torrent_model_remove_all(TrgTorrentModel *model) { TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); g_hash_table_remove_all(priv->ht); gtk_list_store_clear(GTK_LIST_STORE(model)); } -gchar *shorten_download_dir(TrgClient *tc, const gchar *downloadDir) -{ +gchar *shorten_download_dir(TrgClient *tc, const gchar *downloadDir) { TrgPrefs *prefs = trg_client_get_prefs(tc); - JsonArray *labels = trg_prefs_get_array(prefs, TRG_PREFS_KEY_DESTINATIONS, TRG_PREFS_CONNECTION); + JsonArray *labels = trg_prefs_get_array(prefs, TRG_PREFS_KEY_DESTINATIONS, + TRG_PREFS_CONNECTION); + JsonObject *session = trg_client_get_session(tc); + const gchar *defaultDownloadDir = session_get_download_dir(session); gchar *shortDownloadDir = NULL; + if (!g_strcmp0(defaultDownloadDir, downloadDir)) + return g_strdup(_("Default")); + if (labels) { GList *labelsList = json_array_get_elements(labels); if (labelsList) { GList *li; for (li = labelsList; li; li = g_list_next(li)) { - JsonObject *labelObj = json_node_get_object((JsonNode*)li->data); - const gchar *labelDir = json_object_get_string_member(labelObj, TRG_PREFS_KEY_DESTINATIONS_SUBKEY_DIR); + JsonObject *labelObj = json_node_get_object( + (JsonNode*) li->data); + const gchar *labelDir = json_object_get_string_member(labelObj, + TRG_PREFS_KEY_DESTINATIONS_SUBKEY_DIR); if (!g_strcmp0(downloadDir, labelDir)) { - const gchar *labelLabel = json_object_get_string_member(labelObj, TRG_PREFS_SUBKEY_LABEL); + const gchar *labelLabel = json_object_get_string_member( + labelObj, TRG_PREFS_SUBKEY_LABEL); shortDownloadDir = g_strdup(labelLabel); break; } @@ -272,26 +288,22 @@ gchar *shorten_download_dir(TrgClient *tc, const gchar *downloadDir) if (shortDownloadDir) { return shortDownloadDir; } else { - JsonObject *session = trg_client_get_session(tc); - const gchar *defaultDownloadDir = session_get_download_dir(session); if (g_str_has_prefix(downloadDir, defaultDownloadDir)) { int offset = strlen(defaultDownloadDir); - if (*(downloadDir+offset) == '/') + if (*(downloadDir + offset) == '/') offset++; - if (offset+1 < strlen(downloadDir)) - return g_strdup(downloadDir+offset); + if (offset + 1 < strlen(downloadDir)) + return g_strdup(downloadDir + offset); } } return g_strdup(downloadDir); } -static void -update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, - gint64 rpcv, gint64 serial, GtkTreeIter * iter, - JsonObject * t, trg_torrent_model_update_stats * stats) -{ +static void update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, + gint64 rpcv, gint64 serial, GtkTreeIter * iter, JsonObject * t, + trg_torrent_model_update_stats * stats) { TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); GtkListStore *ls = GTK_LIST_STORE(model); guint lastFlags, newFlags; @@ -312,7 +324,7 @@ update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, uploaded = torrent_get_uploaded(t); downloaded = torrent_get_downloaded(t); - downloadDir = (gchar*)torrent_get_download_dir(t); + downloadDir = (gchar*) torrent_get_download_dir(t); rm_trailing_slashes(downloadDir); id = torrent_get_id(t); @@ -323,91 +335,87 @@ update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, pf = torrent_get_peersfrom(t); trackerStats = torrent_get_tracker_stats(t); - gtk_tree_model_get(GTK_TREE_MODEL(model), iter, - TORRENT_COLUMN_FLAGS, &lastFlags, - TORRENT_COLUMN_JSON, &lastJson, - TORRENT_COLUMN_DOWNLOADDIR, &lastDownloadDir, -1); + gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_FLAGS, + &lastFlags, TORRENT_COLUMN_JSON, &lastJson, + TORRENT_COLUMN_DOWNLOADDIR, &lastDownloadDir, -1); json_object_ref(t); if (json_array_get_length(trackerStats) > 0) { - JsonObject *firstTracker = json_array_get_object_element(trackerStats, 0); - firstTrackerHost = trg_gregex_get_first(priv->urlHostRegex, tracker_stats_get_host(firstTracker)); + JsonObject *firstTracker = json_array_get_object_element(trackerStats, + 0); + firstTrackerHost = trg_gregex_get_first(priv->urlHostRegex, + tracker_stats_get_host(firstTracker)); } lpd = peerfrom_get_lpd(pf); if (newFlags & TORRENT_FLAG_ACTIVE) { if (lpd >= 0) { - peerSources = g_strdup_printf("%ld / %ld / %ld / %ld / %ld / %ld / %ld", - peerfrom_get_trackers(pf), - peerfrom_get_incoming(pf), - peerfrom_get_ltep(pf), - peerfrom_get_dht(pf), - peerfrom_get_pex(pf), - lpd, - peerfrom_get_resume(pf)); + peerSources = g_strdup_printf( + "%ld / %ld / %ld / %ld / %ld / %ld / %ld", + peerfrom_get_trackers(pf), peerfrom_get_incoming(pf), + peerfrom_get_ltep(pf), peerfrom_get_dht(pf), + peerfrom_get_pex(pf), lpd, peerfrom_get_resume(pf)); } else { - peerSources = g_strdup_printf("%ld / %ld / %ld / %ld / %ld / N/A / %ld", - peerfrom_get_trackers(pf), - peerfrom_get_incoming(pf), - peerfrom_get_ltep(pf), - peerfrom_get_dht(pf), - peerfrom_get_pex(pf), - peerfrom_get_resume(pf)); + peerSources = g_strdup_printf( + "%ld / %ld / %ld / %ld / %ld / N/A / %ld", + peerfrom_get_trackers(pf), peerfrom_get_incoming(pf), + peerfrom_get_ltep(pf), peerfrom_get_dht(pf), + peerfrom_get_pex(pf), peerfrom_get_resume(pf)); } } #ifdef DEBUG gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_NAME, torrent_get_name(t), -1); + TORRENT_COLUMN_NAME, torrent_get_name(t), -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_SIZE, torrent_get_size(t), -1); + TORRENT_COLUMN_SIZE, torrent_get_size(t), -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_DONE, (newFlags & TORRENT_FLAG_CHECKING) ? - torrent_get_recheck_progress(t) - : torrent_get_percent_done(t), - -1); + TORRENT_COLUMN_DONE, (newFlags & TORRENT_FLAG_CHECKING) ? + torrent_get_recheck_progress(t) + : torrent_get_percent_done(t), + -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_STATUS, statusString, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNSPEED, downRate, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FLAGS, newFlags, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPSPEED, upRate, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_ETA, - torrent_get_eta(t), -1); + torrent_get_eta(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPLOADED, uploaded, -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_DOWNLOADED, downloaded, -1); + TORRENT_COLUMN_DOWNLOADED, downloaded, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_RATIO, - uploaded > 0 - && downloaded > - 0 ? (double) uploaded / (double) downloaded : 0, - -1); + uploaded > 0 + && downloaded > + 0 ? (double) uploaded / (double) downloaded : 0, + -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_ID, id, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_JSON, t, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_UPDATESERIAL, serial, -1); gtk_list_store_set(ls, iter, - TORRENT_COLUMN_ADDED, torrent_get_added_date(t), - -1); + TORRENT_COLUMN_ADDED, torrent_get_added_date(t), + -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR, - downloadDir, -1); + downloadDir, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_BANDWIDTH_PRIORITY, - torrent_get_bandwidth_priority(t), -1); + torrent_get_bandwidth_priority(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE_DATE, - torrent_get_done_date(t), -1); + torrent_get_done_date(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMPEX, - peerfrom_get_pex(pf), -1); + peerfrom_get_pex(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMDHT, - peerfrom_get_dht(pf), -1); + peerfrom_get_dht(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMTRACKERS, - peerfrom_get_trackers(pf), -1); + peerfrom_get_trackers(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMLTEP, - peerfrom_get_ltep(pf), -1); + peerfrom_get_ltep(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMRESUME, - peerfrom_get_resume(pf), -1); + peerfrom_get_resume(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMINCOMING, - peerfrom_get_incoming(pf), -1); + peerfrom_get_incoming(pf), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEER_SOURCES, - peerSources, -1); + peerSources, -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEERS_CONNECTED, torrent_get_peers_connected(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_PEERS_TO_US, @@ -419,52 +427,52 @@ update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, gtk_list_store_set(ls, iter, TORRENT_COLUMN_QUEUE_POSITION, torrent_get_queue_position(t), -1); gtk_list_store_set(ls, iter, TORRENT_COLUMN_LASTACTIVE, torrent_get_activity_date(t), -1); #else - gtk_list_store_set(ls, iter, - TORRENT_COLUMN_ICON, statusIcon, - TORRENT_COLUMN_ADDED, torrent_get_added_date(t), - TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), - TORRENT_COLUMN_NAME, torrent_get_name(t), - TORRENT_COLUMN_SIZE, torrent_get_size(t), - TORRENT_COLUMN_DONE, (newFlags & TORRENT_FLAG_CHECKING) ? - torrent_get_recheck_progress(t) - : torrent_get_percent_done(t), - TORRENT_COLUMN_STATUS, statusString, - TORRENT_COLUMN_DOWNSPEED, downRate, - TORRENT_COLUMN_FLAGS, newFlags, - TORRENT_COLUMN_UPSPEED, upRate, - TORRENT_COLUMN_ETA, torrent_get_eta(t), - TORRENT_COLUMN_UPLOADED, uploaded, - TORRENT_COLUMN_DOWNLOADED, downloaded, - TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf), - TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf), - TORRENT_COLUMN_FROMTRACKERS, peerfrom_get_trackers(pf), - TORRENT_COLUMN_FROMLTEP, peerfrom_get_ltep(pf), - TORRENT_COLUMN_FROMRESUME, peerfrom_get_resume(pf), - TORRENT_COLUMN_FROMINCOMING, peerfrom_get_incoming(pf), - TORRENT_COLUMN_PEER_SOURCES, peerSources, - TORRENT_COLUMN_PEERS_CONNECTED, torrent_get_peers_connected(t), - TORRENT_COLUMN_PEERS_TO_US, torrent_get_peers_sending_to_us(t), - TORRENT_COLUMN_PEERS_FROM_US, torrent_get_peers_getting_from_us(t), - TORRENT_COLUMN_QUEUE_POSITION, torrent_get_queue_position(t), - TORRENT_COLUMN_LASTACTIVE, torrent_get_activity_date(t), - TORRENT_COLUMN_RATIO, - uploaded > - 0 - && downloaded > - 0 ? (double) uploaded / (double) downloaded : 0, - TORRENT_COLUMN_DOWNLOADDIR, - downloadDir, - TORRENT_COLUMN_BANDWIDTH_PRIORITY, - torrent_get_bandwidth_priority(t), - TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t, - TORRENT_COLUMN_TRACKERHOST, - firstTrackerHost ? firstTrackerHost : "", - TORRENT_COLUMN_UPDATESERIAL, serial, -1); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_ICON, statusIcon, + TORRENT_COLUMN_ADDED, torrent_get_added_date(t), + TORRENT_COLUMN_DONE_DATE, torrent_get_done_date(t), + TORRENT_COLUMN_NAME, torrent_get_name(t), TORRENT_COLUMN_SIZE, + torrent_get_size(t), TORRENT_COLUMN_DONE, + (newFlags & TORRENT_FLAG_CHECKING) ? + torrent_get_recheck_progress(t) + : torrent_get_percent_done(t), + TORRENT_COLUMN_STATUS, statusString, + TORRENT_COLUMN_DOWNSPEED, downRate, + TORRENT_COLUMN_FLAGS, newFlags, + TORRENT_COLUMN_UPSPEED, upRate, + TORRENT_COLUMN_ETA, torrent_get_eta(t), + TORRENT_COLUMN_UPLOADED, uploaded, + TORRENT_COLUMN_DOWNLOADED, downloaded, + TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf), + TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf), + TORRENT_COLUMN_FROMTRACKERS, peerfrom_get_trackers(pf), + TORRENT_COLUMN_FROMLTEP, peerfrom_get_ltep(pf), + TORRENT_COLUMN_FROMRESUME, peerfrom_get_resume(pf), + TORRENT_COLUMN_FROMINCOMING, peerfrom_get_incoming(pf), + TORRENT_COLUMN_PEER_SOURCES, peerSources, + TORRENT_COLUMN_PEERS_CONNECTED, torrent_get_peers_connected(t), + TORRENT_COLUMN_PEERS_TO_US, torrent_get_peers_sending_to_us(t), + TORRENT_COLUMN_PEERS_FROM_US, torrent_get_peers_getting_from_us(t), + TORRENT_COLUMN_QUEUE_POSITION, torrent_get_queue_position(t), + TORRENT_COLUMN_LASTACTIVE, torrent_get_activity_date(t), + TORRENT_COLUMN_RATIO, + uploaded > + 0 + && downloaded > + 0 ? (double) uploaded / (double) downloaded : 0, + TORRENT_COLUMN_DOWNLOADDIR, + downloadDir, + TORRENT_COLUMN_BANDWIDTH_PRIORITY, + torrent_get_bandwidth_priority(t), + TORRENT_COLUMN_ID, id, TORRENT_COLUMN_JSON, t, + TORRENT_COLUMN_TRACKERHOST, + firstTrackerHost ? firstTrackerHost : "", + TORRENT_COLUMN_UPDATESERIAL, serial, -1); #endif if (!lastDownloadDir || g_strcmp0(downloadDir, lastDownloadDir)) { gchar *shortDownloadDir = shorten_download_dir(tc, downloadDir); - gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR_SHORT, shortDownloadDir, -1); + gtk_list_store_set(ls, iter, TORRENT_COLUMN_DOWNLOADDIR_SHORT, + shortDownloadDir, -1); g_free(shortDownloadDir); } @@ -472,7 +480,7 @@ update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, json_object_unref(lastJson); if ((lastFlags & TORRENT_FLAG_DOWNLOADING) - && (newFlags & TORRENT_FLAG_COMPLETE)) + && (newFlags & TORRENT_FLAG_COMPLETE)) g_signal_emit(model, signals[TMODEL_TORRENT_COMPLETED], 0, iter); trg_torrent_model_count_peers(model, iter, t); @@ -487,8 +495,7 @@ update_torrent_iter(TrgTorrentModel * model, TrgClient *tc, g_free(statusIcon); } -TrgTorrentModel *trg_torrent_model_new(void) -{ +TrgTorrentModel *trg_torrent_model_new(void) { return g_object_new(TRG_TYPE_TORRENT_MODEL, NULL); } @@ -497,21 +504,17 @@ struct TrgModelRemoveData { gint64 currentSerial; }; -GHashTable *get_torrent_table(TrgTorrentModel * model) -{ +GHashTable *get_torrent_table(TrgTorrentModel * model) { TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); return priv->ht; } -gboolean -trg_model_find_removed_foreachfunc(GtkTreeModel * model, - GtkTreePath * path G_GNUC_UNUSED, - GtkTreeIter * iter, gpointer gdata) -{ +gboolean trg_model_find_removed_foreachfunc(GtkTreeModel * model, + GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer gdata) { struct TrgModelRemoveData *args = (struct TrgModelRemoveData *) gdata; gint64 rowSerial; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_UPDATESERIAL, - &rowSerial, -1); + gtk_tree_model_get(model, iter, TORRENT_COLUMN_UPDATESERIAL, &rowSerial, + -1); if (rowSerial != args->currentSerial) { gint64 *id = g_new(gint64, 1); gtk_tree_model_get(model, iter, TORRENT_COLUMN_ID, id, -1); @@ -522,21 +525,19 @@ trg_model_find_removed_foreachfunc(GtkTreeModel * model, } GList *trg_torrent_model_find_removed(GtkTreeModel * model, - gint64 currentSerial) -{ + gint64 currentSerial) { struct TrgModelRemoveData args; args.toRemove = NULL; args.currentSerial = currentSerial; gtk_tree_model_foreach(GTK_TREE_MODEL(model), - trg_model_find_removed_foreachfunc, &args); + trg_model_find_removed_foreachfunc, &args); return args.toRemove; } gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, - GtkTreeIter * out_iter) -{ + GtkTreeIter * out_iter) { gpointer result = g_hash_table_lookup(table, &id); gboolean found = FALSE; @@ -550,8 +551,7 @@ gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, if (out_iter) *out_iter = iter; if (t) - gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, t, - -1); + gtk_tree_model_get(model, &iter, TORRENT_COLUMN_JSON, t, -1); found = TRUE; gtk_tree_path_free(path); } @@ -561,10 +561,8 @@ gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, } void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, - JsonObject * response, - trg_torrent_model_update_stats * stats, - gint mode) -{ + JsonObject * response, trg_torrent_model_update_stats * stats, + gint mode) { TrgTorrentModelPrivate *priv = TRG_TORRENT_MODEL_GET_PRIVATE(model); GList *torrentList; @@ -589,14 +587,14 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, id = torrent_get_id(t); result = - mode == - TORRENT_GET_MODE_FIRST ? NULL : g_hash_table_lookup(priv->ht, - &id); + mode == TORRENT_GET_MODE_FIRST ? NULL : + g_hash_table_lookup(priv->ht, &id); if (!result) { gtk_list_store_append(GTK_LIST_STORE(model), &iter); - update_torrent_iter(model, tc, rpcv, trg_client_get_serial(tc), &iter, t, stats); + update_torrent_iter(model, tc, rpcv, trg_client_get_serial(tc), + &iter, t, stats); path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &iter); rr = gtk_tree_row_reference_new(GTK_TREE_MODEL(model), path); @@ -605,17 +603,17 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, g_hash_table_insert(priv->ht, idCopy, rr); gtk_tree_path_free(path); addRemove = TRUE; - if (mode != TORRENT_GET_MODE_FIRST) - g_signal_emit(model, signals[TMODEL_TORRENT_ADDED], 0, - &iter); + if (mode != TORRENT_GET_MODE_FIRST + ) + g_signal_emit(model, signals[TMODEL_TORRENT_ADDED], 0, &iter); } else { - path = gtk_tree_row_reference_get_path((GtkTreeRowReference *) - result); + path = gtk_tree_row_reference_get_path( + (GtkTreeRowReference *) result); if (path) { - if (gtk_tree_model_get_iter - (GTK_TREE_MODEL(model), &iter, path)) { - update_torrent_iter(model, tc, rpcv, trg_client_get_serial(tc), &iter, t, - stats); + if (gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, + path)) { + update_torrent_iter(model, tc, rpcv, + trg_client_get_serial(tc), &iter, t, stats); } gtk_tree_path_free(path); } @@ -625,9 +623,8 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, g_list_free(torrentList); if (mode == TORRENT_GET_MODE_UPDATE) { - GList *hitlist = - trg_torrent_model_find_removed(GTK_TREE_MODEL(model), - trg_client_get_serial(tc)); + GList *hitlist = trg_torrent_model_find_removed(GTK_TREE_MODEL(model), + trg_client_get_serial(tc)); if (hitlist) { for (li = hitlist; li; li = g_list_next(li)) { g_hash_table_remove(priv->ht, li->data); @@ -653,6 +650,5 @@ void trg_torrent_model_update(TrgTorrentModel * model, TrgClient * tc, g_signal_emit(model, signals[TMODEL_TORRENT_ADDREMOVE], 0); gtk_tree_model_foreach(GTK_TREE_MODEL(model), - trg_torrent_model_stats_scan_foreachfunc, - stats); + trg_torrent_model_stats_scan_foreachfunc, stats); } diff --git a/src/trg-torrent-model.h b/src/trg-torrent-model.h index dd03ee9..ebb911d 100644 --- a/src/trg-torrent-model.h +++ b/src/trg-torrent-model.h @@ -84,6 +84,9 @@ gboolean trg_torrent_model_is_remove_in_progress(TrgTorrentModel * model); gboolean get_torrent_data(GHashTable * table, gint64 id, JsonObject ** t, GtkTreeIter * out_iter); +gchar *shorten_download_dir(TrgClient *tc, const gchar *downloadDir); +void trg_torrent_model_reload_dir_alises(TrgClient *tc, GtkTreeModel *model); + enum { TORRENT_COLUMN_ICON, TORRENT_COLUMN_NAME, |