summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/trg-main-window.c7
-rw-r--r--src/trg-main-window.h1
-rw-r--r--src/trg-preferences-dialog.c114
-rw-r--r--src/trg-torrent-model.c426
-rw-r--r--src/trg-torrent-model.h3
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,