summaryrefslogtreecommitdiff
path: root/src/trg-torrent-add-dialog.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-04 20:26:19 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2012-01-04 20:26:19 +0000
commita73d164e9fae9059be1b347270f1c7debbc00f3e (patch)
treea91c94a322ead98226d01fa6bbe0c4c79478c627 /src/trg-torrent-add-dialog.c
parent336960c958d0b4ebdc0b54c25aef87fc7cb7b0a8 (diff)
reindent with gnu indent. add keyboard accelerators for view menu, fix toggle filter widget also connected to toggle graph cb. add Lithuanian translation thanks to Algimantas Margevičius via launchpad.
Diffstat (limited to 'src/trg-torrent-add-dialog.c')
-rw-r--r--src/trg-torrent-add-dialog.c484
1 files changed, 294 insertions, 190 deletions
diff --git a/src/trg-torrent-add-dialog.c b/src/trg-torrent-add-dialog.c
index 48f4666..c072b28 100644
--- a/src/trg-torrent-add-dialog.c
+++ b/src/trg-torrent-add-dialog.c
@@ -51,7 +51,8 @@ enum {
};
enum {
- FC_ICON, FC_INDEX, FC_LABEL, FC_SIZE, FC_PRIORITY, FC_ENABLED, N_FILE_COLS
+ FC_ICON, FC_INDEX, FC_LABEL, FC_SIZE, FC_PRIORITY, FC_ENABLED,
+ N_FILE_COLS
};
G_DEFINE_TYPE(TrgTorrentAddDialog, trg_torrent_add_dialog, GTK_TYPE_DIALOG)
@@ -72,10 +73,14 @@ struct _TrgTorrentAddDialogPrivate {
GtkWidget *delete_check;
};
-static void trg_torrent_add_dialog_set_property(GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec G_GNUC_UNUSED) {
+static void trg_torrent_add_dialog_set_property(GObject * object,
+ guint prop_id,
+ const GValue * value,
+ GParamSpec *
+ pspec G_GNUC_UNUSED)
+{
TrgTorrentAddDialogPrivate *priv =
- TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object);
+ TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object);
switch (prop_id) {
case PROP_FILENAME:
@@ -90,10 +95,14 @@ static void trg_torrent_add_dialog_set_property(GObject * object, guint prop_id,
}
}
-static void trg_torrent_add_dialog_get_property(GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec G_GNUC_UNUSED) {
+static void trg_torrent_add_dialog_get_property(GObject * object,
+ guint prop_id,
+ GValue * value,
+ GParamSpec *
+ pspec G_GNUC_UNUSED)
+{
TrgTorrentAddDialogPrivate *priv =
- TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object);
+ TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(object);
switch (prop_id) {
case PROP_FILENAME:
@@ -105,21 +114,25 @@ static void trg_torrent_add_dialog_get_property(GObject * object, guint prop_id,
}
}
-static void add_set_common_args(JsonObject * args, gint priority, gchar * dir) {
+static void add_set_common_args(JsonObject * args, gint priority,
+ gchar * dir)
+{
json_object_set_string_member(args, FIELD_FILE_DOWNLOAD_DIR, dir);
json_object_set_int_member(args, FIELD_BANDWIDTH_PRIORITY,
- (gint64) priority);
+ (gint64) priority);
}
-static gpointer add_files_threadfunc(gpointer data) {
+static gpointer add_files_threadfunc(gpointer data)
+{
struct add_torrent_threadfunc_args *files_thread_data =
- (struct add_torrent_threadfunc_args *) data;
+ (struct add_torrent_threadfunc_args *) data;
GSList *li;
for (li = files_thread_data->list; li; li = g_slist_next(li)) {
gchar *fileName = (gchar *) li->data;
- JsonNode *request = torrent_add(fileName, files_thread_data->flags);
+ JsonNode *request =
+ torrent_add(fileName, files_thread_data->flags);
JsonObject *args;
trg_response *response;
@@ -130,7 +143,7 @@ static gpointer add_files_threadfunc(gpointer data) {
if (files_thread_data->extraArgs)
add_set_common_args(args, files_thread_data->priority,
- files_thread_data->dir);
+ files_thread_data->dir);
response = dispatch(files_thread_data->client, request);
response->cb_data = files_thread_data->cb_data;
@@ -147,7 +160,8 @@ static gpointer add_files_threadfunc(gpointer data) {
return NULL;
}
-void launch_add_thread(struct add_torrent_threadfunc_args *args) {
+void launch_add_thread(struct add_torrent_threadfunc_args *args)
+{
GError *error = NULL;
g_thread_create(add_files_threadfunc, args, FALSE, &error);
@@ -160,12 +174,16 @@ void launch_add_thread(struct add_torrent_threadfunc_args *args) {
}
static gboolean add_file_indexes_foreachfunc(GtkTreeModel * model,
- GtkTreePath * path G_GNUC_UNUSED, GtkTreeIter * iter, gpointer data) {
+ GtkTreePath *
+ path G_GNUC_UNUSED,
+ GtkTreeIter * iter,
+ gpointer data)
+{
JsonObject *args = (JsonObject *) data;
gint priority, index, wanted;
- gtk_tree_model_get(model, iter, FC_PRIORITY, &priority, FC_ENABLED, &wanted,
- FC_INDEX, &index, -1);
+ gtk_tree_model_get(model, iter, FC_PRIORITY, &priority, FC_ENABLED,
+ &wanted, FC_INDEX, &index, -1);
if (gtk_tree_model_iter_has_child(model, iter) || index < 0)
return FALSE;
@@ -186,35 +204,43 @@ static gboolean add_file_indexes_foreachfunc(GtkTreeModel * model,
}
static void trg_torrent_add_response_cb(GtkDialog * dlg, gint res_id,
- gpointer data) {
- TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(dlg);
+ gpointer data)
+{
+ TrgTorrentAddDialogPrivate *priv =
+ TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(dlg);
guint flags = 0x00;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->paused_check)))
+ if (gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(priv->paused_check)))
flags |= TORRENT_ADD_FLAG_PAUSED;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->delete_check)))
+ if (gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(priv->delete_check)))
flags |= TORRENT_ADD_FLAG_DELETE;
if (res_id == GTK_RESPONSE_ACCEPT) {
- gint priority = gtk_combo_box_get_active(
- GTK_COMBO_BOX(priv->priority_combo)) - 1;
- gchar *dir = trg_destination_combo_get_dir(TRG_DESTINATION_COMBO
- (priv->dest_combo));
+ gint priority =
+ gtk_combo_box_get_active(GTK_COMBO_BOX(priv->priority_combo)) -
+ 1;
+ gchar *dir =
+ trg_destination_combo_get_dir(TRG_DESTINATION_COMBO
+ (priv->dest_combo));
if (g_slist_length(priv->filenames) == 1) {
- JsonNode *req = torrent_add((gchar *) priv->filenames->data, flags);
+ JsonNode *req =
+ torrent_add((gchar *) priv->filenames->data, flags);
if (req) {
JsonObject *args = node_get_arguments(req);
gtk_tree_model_foreach(GTK_TREE_MODEL(priv->store),
- add_file_indexes_foreachfunc, args);
+ add_file_indexes_foreachfunc, args);
add_set_common_args(args, priority, dir);
- dispatch_async(priv->client, req, on_generic_interactive_action,
- priv->parent);
+ dispatch_async(priv->client, req,
+ on_generic_interactive_action,
+ priv->parent);
}
g_str_slist_free(priv->filenames);
} else {
struct add_torrent_threadfunc_args *args =
- g_new(struct add_torrent_threadfunc_args, 1);
+ g_new(struct add_torrent_threadfunc_args, 1);
args->list = priv->filenames;
args->cb_data = priv->parent;
args->client = priv->client;
@@ -234,38 +260,49 @@ static void trg_torrent_add_response_cb(GtkDialog * dlg, gint res_id,
gtk_widget_destroy(GTK_WIDGET(dlg));
}
-static void set_low(GtkWidget * w G_GNUC_UNUSED, gpointer data) {
+static void set_low(GtkWidget * w G_GNUC_UNUSED, gpointer data)
+{
trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FC_PRIORITY,
- TR_PRI_LOW);
+ TR_PRI_LOW);
}
-static void set_normal(GtkWidget * w G_GNUC_UNUSED, gpointer data) {
+static void set_normal(GtkWidget * w G_GNUC_UNUSED, gpointer data)
+{
trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FC_PRIORITY,
- TR_PRI_NORMAL);
+ TR_PRI_NORMAL);
}
-static void set_high(GtkWidget * w G_GNUC_UNUSED, gpointer data) {
+static void set_high(GtkWidget * w G_GNUC_UNUSED, gpointer data)
+{
trg_files_tree_model_set_priority(GTK_TREE_VIEW(data), FC_PRIORITY,
- TR_PRI_HIGH);
+ TR_PRI_HIGH);
}
-static void set_unwanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) {
+static void set_unwanted(GtkWidget * w G_GNUC_UNUSED, gpointer data)
+{
trg_files_model_set_wanted(GTK_TREE_VIEW(data), FC_ENABLED, FALSE);
}
-static void set_wanted(GtkWidget * w G_GNUC_UNUSED, gpointer data) {
+static void set_wanted(GtkWidget * w G_GNUC_UNUSED, gpointer data)
+{
trg_files_model_set_wanted(GTK_TREE_VIEW(data), FC_ENABLED, TRUE);
}
static gboolean onViewButtonPressed(GtkWidget * w, GdkEventButton * event,
- gpointer gdata) {
+ gpointer gdata)
+{
return trg_files_tree_view_onViewButtonPressed(w, event, FC_PRIORITY,
- FC_ENABLED, G_CALLBACK(set_low), G_CALLBACK(set_normal),
- G_CALLBACK(set_high), G_CALLBACK(set_wanted),
- G_CALLBACK(set_unwanted), gdata);
+ FC_ENABLED,
+ G_CALLBACK(set_low),
+ G_CALLBACK(set_normal),
+ G_CALLBACK(set_high),
+ G_CALLBACK(set_wanted),
+ G_CALLBACK
+ (set_unwanted), gdata);
}
-GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
+GtkWidget *gtr_file_list_new(GtkTreeStore ** store)
+{
int size;
int width;
GtkWidget *view;
@@ -285,11 +322,12 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
gtk_tree_view_set_rules_hint(tree_view, TRUE);
gtk_container_set_border_width(GTK_CONTAINER(view), GUI_PAD_BIG);
g_signal_connect(view, "button-press-event",
- G_CALLBACK(onViewButtonPressed), view);
+ G_CALLBACK(onViewButtonPressed), view);
pango_context = gtk_widget_create_pango_context(view);
- pango_font_description = pango_font_description_copy(
- pango_context_get_font_description(pango_context));
+ pango_font_description =
+ pango_font_description_copy(pango_context_get_font_description
+ (pango_context));
size = pango_font_description_get_size(pango_font_description);
pango_font_description_set_size(pango_font_description, size * 0.8);
g_object_unref(G_OBJECT(pango_context));
@@ -302,18 +340,18 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
/* add file column */
col = GTK_TREE_VIEW_COLUMN(g_object_new(GTK_TYPE_TREE_VIEW_COLUMN,
- "expand", TRUE,
- "title", _("Name"), NULL));
+ "expand", TRUE,
+ "title", _("Name"), NULL));
gtk_tree_view_column_set_resizable(col, TRUE);
rend = trg_cell_renderer_file_icon_new();
gtk_tree_view_column_pack_start(col, rend, FALSE);
gtk_tree_view_column_set_attributes(col, rend, "file-name", FC_LABEL,
- "file-id", FC_INDEX, NULL);
+ "file-id", FC_INDEX, NULL);
/* add text renderer */
rend = gtk_cell_renderer_text_new();
g_object_set(rend, "ellipsize", PANGO_ELLIPSIZE_END, "font-desc",
- pango_font_description, NULL);
+ pango_font_description, NULL);
gtk_tree_view_column_pack_start(col, rend, TRUE);
gtk_tree_view_column_set_attributes(col, rend, "text", FC_LABEL, NULL);
gtk_tree_view_column_set_sort_column_id(col, FC_LABEL);
@@ -324,23 +362,26 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
title = _("Size");
rend = trg_cell_renderer_size_new();
g_object_set(rend, "alignment", PANGO_ALIGN_RIGHT, "font-desc",
- pango_font_description, "xpad", GUI_PAD, "xalign", 1.0f, "yalign",
- 0.5f, NULL);
+ pango_font_description, "xpad", GUI_PAD, "xalign", 1.0f,
+ "yalign", 0.5f, NULL);
col = gtk_tree_view_column_new_with_attributes(title, rend, NULL);
gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_GROW_ONLY);
gtk_tree_view_column_set_sort_column_id(col, FC_SIZE);
- gtk_tree_view_column_set_attributes(col, rend, "size-value", FC_SIZE, NULL);
+ gtk_tree_view_column_set_attributes(col, rend, "size-value", FC_SIZE,
+ NULL);
gtk_tree_view_append_column(tree_view, col);
/* add "enabled" column */
title = _("Download");
pango_layout = gtk_widget_create_pango_layout(view, title);
pango_layout_get_pixel_size(pango_layout, &width, NULL);
- width += 30; /* room for the sort indicator */
+ width += 30; /* room for the sort indicator */
g_object_unref(G_OBJECT(pango_layout));
rend = trg_cell_renderer_wanted_new();
- col = gtk_tree_view_column_new_with_attributes(title, rend, "wanted-value",
- FC_ENABLED, NULL);
+ col =
+ gtk_tree_view_column_new_with_attributes(title, rend,
+ "wanted-value",
+ FC_ENABLED, NULL);
gtk_tree_view_column_set_fixed_width(col, width);
gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_sort_column_id(col, FC_ENABLED);
@@ -350,22 +391,23 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
title = _("Priority");
pango_layout = gtk_widget_create_pango_layout(view, title);
pango_layout_get_pixel_size(pango_layout, &width, NULL);
- width += 30; /* room for the sort indicator */
+ width += 30; /* room for the sort indicator */
g_object_unref(G_OBJECT(pango_layout));
rend = trg_cell_renderer_priority_new();
col = gtk_tree_view_column_new_with_attributes(title, rend,
- "priority-value", FC_PRIORITY, NULL);
+ "priority-value",
+ FC_PRIORITY, NULL);
gtk_tree_view_column_set_fixed_width(col, width);
gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_sort_column_id(col, FC_PRIORITY);
gtk_tree_view_append_column(tree_view, col);
- *store = gtk_tree_store_new(N_FILE_COLS, G_TYPE_STRING, /* icon */
- G_TYPE_INT, /* index */
- G_TYPE_STRING, /* label */
- G_TYPE_INT64, /* size */
- G_TYPE_INT, /* priority */
- G_TYPE_INT); /* dl enabled */
+ *store = gtk_tree_store_new(N_FILE_COLS, G_TYPE_STRING, /* icon */
+ G_TYPE_INT, /* index */
+ G_TYPE_STRING, /* label */
+ G_TYPE_INT64, /* size */
+ G_TYPE_INT, /* priority */
+ G_TYPE_INT); /* dl enabled */
gtk_tree_view_set_model(tree_view, GTK_TREE_MODEL(*store));
g_object_unref(G_OBJECT(*store));
@@ -373,9 +415,10 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
/* create the scrolled window and stick the view in it */
scroll = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll),
- GTK_SHADOW_IN);
+ GTK_SHADOW_IN);
gtk_container_add(GTK_CONTAINER(scroll), view);
gtk_widget_set_size_request(scroll, -1, 200);
@@ -383,7 +426,8 @@ GtkWidget *gtr_file_list_new(GtkTreeStore ** store) {
return scroll;
}
-static GtkWidget *gtr_dialog_get_content_area(GtkDialog * dialog) {
+static GtkWidget *gtr_dialog_get_content_area(GtkDialog * dialog)
+{
#if GTK_CHECK_VERSION( 2,14,0 )
return gtk_dialog_get_content_area(dialog);
#else
@@ -391,18 +435,22 @@ static GtkWidget *gtr_dialog_get_content_area(GtkDialog * dialog) {
#endif
}
-static void gtr_dialog_set_content(GtkDialog * dialog, GtkWidget * content) {
+static void gtr_dialog_set_content(GtkDialog * dialog, GtkWidget * content)
+{
GtkWidget *vbox = gtr_dialog_get_content_area(dialog);
gtk_box_pack_start(GTK_BOX(vbox), content, TRUE, TRUE, 0);
gtk_widget_show_all(content);
}
-GtkWidget *gtr_priority_combo_new(void) {
+GtkWidget *gtr_priority_combo_new(void)
+{
return gtr_combo_box_new_enum(_("Low"), TR_PRI_LOW, _("Normal"),
- TR_PRI_NORMAL, _("High"), TR_PRI_HIGH, NULL);
+ TR_PRI_NORMAL, _("High"), TR_PRI_HIGH,
+ NULL);
}
-static void addTorrentFilters(GtkFileChooser * chooser) {
+static void addTorrentFilters(GtkFileChooser * chooser)
+{
GtkFileFilter *filter;
filter = gtk_file_filter_new();
@@ -417,55 +465,64 @@ static void addTorrentFilters(GtkFileChooser * chooser) {
}
static void store_add_node(GtkTreeStore * store, GtkTreeIter * parent,
- trg_torrent_file_node * node) {
+ trg_torrent_file_node * node)
+{
GtkTreeIter child;
GList *li;
if (node->name) {
gtk_tree_store_append(store, &child, parent);
- gtk_tree_store_set(store, &child, FC_LABEL, node->name, FC_ENABLED, 1,
- FC_ICON, node->children ? GTK_STOCK_DIRECTORY : GTK_STOCK_FILE,
- FC_INDEX, node->children ? -1 : node->index,
- FC_PRIORITY, TR_PRI_NORMAL,
- -1);
+ gtk_tree_store_set(store, &child, FC_LABEL, node->name, FC_ENABLED,
+ 1, FC_ICON,
+ node->
+ children ? GTK_STOCK_DIRECTORY : GTK_STOCK_FILE,
+ FC_INDEX, node->children ? -1 : node->index,
+ FC_PRIORITY, TR_PRI_NORMAL, -1);
if (!node->children) {
gtk_tree_store_set(store, &child, FC_SIZE, node->length, -1);
- trg_files_model_update_parents(GTK_TREE_MODEL(store), &child, FC_SIZE);
+ trg_files_model_update_parents(GTK_TREE_MODEL(store), &child,
+ FC_SIZE);
}
}
for (li = node->children; li; li = g_list_next(li))
store_add_node(store, node->name ? &child : NULL,
- (trg_torrent_file_node *) li->data);
+ (trg_torrent_file_node *) li->data);
}
-static void torrent_not_parsed_warning(GtkWindow * parent) {
- GtkWidget *dialog =
- gtk_message_dialog_new(
- parent,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK,
- _
- ("Unable to parse torrent file. File preferences unavailable, but you can still try uploading it."));
+static void torrent_not_parsed_warning(GtkWindow * parent)
+{
+ GtkWidget *dialog = gtk_message_dialog_new(parent,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_OK,
+ _
+ ("Unable to parse torrent file. File preferences unavailable, but you can still try uploading it."));
gtk_window_set_transient_for(GTK_WINDOW(dialog), parent);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
-static void torrent_not_found_error(GtkWindow * parent, gchar * file) {
+static void torrent_not_found_error(GtkWindow * parent, gchar * file)
+{
GtkWidget *dialog = gtk_message_dialog_new(parent,
- GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
- _("Unable to open torrent file: %s"), file);
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _
+ ("Unable to open torrent file: %s"),
+ file);
gtk_window_set_transient_for(GTK_WINDOW(dialog), parent);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
static void trg_torrent_add_dialog_set_filenames(TrgTorrentAddDialog * d,
- GSList * filenames) {
- TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(d);
+ GSList * filenames)
+{
+ TrgTorrentAddDialogPrivate *priv =
+ TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(d);
GtkButton *chooser = GTK_BUTTON(priv->source_chooser);
gint nfiles = filenames ? g_slist_length(filenames) : 0;
@@ -499,7 +556,8 @@ static void trg_torrent_add_dialog_set_filenames(TrgTorrentAddDialog * d,
trg_torrent_file_free(tor_data);
}
} else {
- torrent_not_found_error(GTK_WINDOW(priv->parent), file_name);
+ torrent_not_found_error(GTK_WINDOW(priv->parent),
+ file_name);
}
gtk_widget_set_sensitive(priv->file_list, tor_data != NULL);
@@ -517,60 +575,79 @@ static void trg_torrent_add_dialog_set_filenames(TrgTorrentAddDialog * d,
}
static void trg_torrent_add_dialog_generic_save_dir(GtkFileChooser * c,
- TrgPrefs * prefs) {
+ TrgPrefs * prefs)
+{
gchar *cwd = gtk_file_chooser_get_current_folder(c);
if (cwd) {
trg_prefs_set_string(prefs, TRG_PREFS_KEY_LAST_TORRENT_DIR, cwd,
- TRG_PREFS_GLOBAL);
+ TRG_PREFS_GLOBAL);
g_free(cwd);
}
}
static GtkWidget *trg_torrent_add_dialog_generic(GtkWindow * parent,
- TrgPrefs * prefs) {
+ TrgPrefs * prefs)
+{
GtkWidget *w = gtk_file_chooser_dialog_new(_("Add a Torrent"), parent,
- GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, NULL);
- gchar *dir = trg_prefs_get_string(prefs, TRG_PREFS_KEY_LAST_TORRENT_DIR,
- TRG_PREFS_GLOBAL);
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ GTK_STOCK_ADD,
+ GTK_RESPONSE_ACCEPT, NULL);
+ gchar *dir =
+ trg_prefs_get_string(prefs, TRG_PREFS_KEY_LAST_TORRENT_DIR,
+ TRG_PREFS_GLOBAL);
if (dir) {
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(w), dir);
g_free(dir);
}
addTorrentFilters(GTK_FILE_CHOOSER(w));
- gtk_dialog_set_alternative_button_order(GTK_DIALOG(w), GTK_RESPONSE_ACCEPT,
- GTK_RESPONSE_CANCEL, -1);
+ gtk_dialog_set_alternative_button_order(GTK_DIALOG(w),
+ GTK_RESPONSE_ACCEPT,
+ GTK_RESPONSE_CANCEL, -1);
gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(w), TRUE);
return w;
}
-static void trg_torrent_add_dialog_source_click_cb(GtkWidget * w, gpointer data) {
- TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(data);
+static void trg_torrent_add_dialog_source_click_cb(GtkWidget * w,
+ gpointer data)
+{
+ TrgTorrentAddDialogPrivate *priv =
+ TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(data);
GtkWidget *d = trg_torrent_add_dialog_generic(GTK_WINDOW(data),
- trg_client_get_prefs(priv->client));
+ trg_client_get_prefs
+ (priv->client));
if (gtk_dialog_run(GTK_DIALOG(d)) == GTK_RESPONSE_ACCEPT) {
if (priv->filenames)
g_str_slist_free(priv->filenames);
- priv->filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(d));
+ priv->filenames =
+ gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(d));
trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(d),
- trg_client_get_prefs(priv->client));
+ trg_client_get_prefs(priv->
+ client));
trg_torrent_add_dialog_set_filenames(TRG_TORRENT_ADD_DIALOG(data),
- priv->filenames);
+ priv->filenames);
}
gtk_widget_destroy(GTK_WIDGET(d));
}
static GObject *trg_torrent_add_dialog_constructor(GType type,
- guint n_construct_properties, GObjectConstructParam * construct_params) {
+ guint
+ n_construct_properties,
+ GObjectConstructParam *
+ construct_params)
+{
GObject *obj = G_OBJECT_CLASS
- (trg_torrent_add_dialog_parent_class)->constructor(type,
- n_construct_properties, construct_params);
- TrgTorrentAddDialogPrivate *priv = TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(obj);
+ (trg_torrent_add_dialog_parent_class)->constructor(type,
+ n_construct_properties,
+ construct_params);
+ TrgTorrentAddDialogPrivate *priv =
+ TRG_TORRENT_ADD_DIALOG_GET_PRIVATE(obj);
TrgPrefs *prefs = trg_client_get_prefs(priv->client);
GtkWidget *t, *l;
@@ -579,15 +656,18 @@ static GObject *trg_torrent_add_dialog_constructor(GType type,
/* window */
gtk_window_set_title(GTK_WINDOW(obj), _("Add Torrent"));
- gtk_window_set_transient_for(GTK_WINDOW(obj), GTK_WINDOW(priv->parent));
+ gtk_window_set_transient_for(GTK_WINDOW(obj),
+ GTK_WINDOW(priv->parent));
gtk_window_set_destroy_with_parent(GTK_WINDOW(obj), TRUE);
/* buttons */
gtk_dialog_add_button(GTK_DIALOG(obj), GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button(GTK_DIALOG(obj), GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT);
+ GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button(GTK_DIALOG(obj), GTK_STOCK_OPEN,
+ GTK_RESPONSE_ACCEPT);
gtk_dialog_set_alternative_button_order(GTK_DIALOG(obj),
- GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1);
+ GTK_RESPONSE_ACCEPT,
+ GTK_RESPONSE_CANCEL, -1);
gtk_dialog_set_default_response(GTK_DIALOG(obj), GTK_RESPONSE_ACCEPT);
/* workspace */
@@ -599,88 +679,94 @@ static GObject *trg_torrent_add_dialog_constructor(GType type,
priv->file_list = gtr_file_list_new(&priv->store);
gtk_widget_set_sensitive(priv->file_list, FALSE);
- priv->paused_check = gtk_check_button_new_with_mnemonic(_("Start _paused"));
- gtk_toggle_button_set_active(
- GTK_TOGGLE_BUTTON(priv->paused_check),
- trg_prefs_get_bool(prefs, TRG_PREFS_KEY_START_PAUSED,
- TRG_PREFS_GLOBAL));
+ priv->paused_check =
+ gtk_check_button_new_with_mnemonic(_("Start _paused"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->paused_check),
+ trg_prefs_get_bool(prefs,
+ TRG_PREFS_KEY_START_PAUSED,
+ TRG_PREFS_GLOBAL));
priv->delete_check = gtk_check_button_new_with_mnemonic(_
- ("Delete local .torrent file after adding"));
- gtk_toggle_button_set_active(
- GTK_TOGGLE_BUTTON(priv->delete_check),
- trg_prefs_get_bool(prefs, TRG_PREFS_KEY_DELETE_LOCAL_TORRENT,
- TRG_PREFS_GLOBAL));
+ ("Delete local .torrent file after adding"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->delete_check),
+ trg_prefs_get_bool(prefs,
+ TRG_PREFS_KEY_DELETE_LOCAL_TORRENT,
+ TRG_PREFS_GLOBAL));
priv->priority_combo = gtr_priority_combo_new();
gtk_combo_box_set_active(GTK_COMBO_BOX(priv->priority_combo), 1);
l = gtk_label_new_with_mnemonic(_("_Torrent file:"));
gtk_misc_set_alignment(GTK_MISC(l), 0.0f, 0.5f);
- gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL, 0,
- 0, 0);
+ gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL,
+ 0, 0, 0);
++col;
priv->source_chooser = gtk_button_new();
gtk_button_set_alignment(GTK_BUTTON(priv->source_chooser), 0.0f, 0.5f);
trg_torrent_add_dialog_set_filenames(TRG_TORRENT_ADD_DIALOG(obj),
- priv->filenames);
+ priv->filenames);
gtk_table_attach(GTK_TABLE(t), priv->source_chooser, col, col + 1, row,
- row + 1, ~0, 0, 0, 0);
+ row + 1, ~0, 0, 0, 0);
gtk_label_set_mnemonic_widget(GTK_LABEL(l), priv->source_chooser);
g_signal_connect(priv->source_chooser, "clicked",
- G_CALLBACK(trg_torrent_add_dialog_source_click_cb), obj);
+ G_CALLBACK(trg_torrent_add_dialog_source_click_cb),
+ obj);
++row;
col = 0;
l = gtk_label_new_with_mnemonic(_("_Destination folder:"));
gtk_misc_set_alignment(GTK_MISC(l), 0.0f, 0.5f);
- gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL, 0,
- 0, 0);
+ gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, GTK_FILL,
+ 0, 0, 0);
++col;
priv->dest_combo = trg_destination_combo_new(priv->client, NULL);
gtk_combo_box_set_active(GTK_COMBO_BOX(priv->dest_combo), 0);
- gtk_table_attach(GTK_TABLE(t), priv->dest_combo, col, col + 1, row, row + 1,
- ~0, 0, 0, 0);
+ gtk_table_attach(GTK_TABLE(t), priv->dest_combo, col, col + 1, row,
+ row + 1, ~0, 0, 0, 0);
gtk_label_set_mnemonic_widget(GTK_LABEL(l), priv->dest_combo);
++row;
col = 0;
gtk_widget_set_size_request(priv->file_list, 466u, 300u);
- gtk_table_attach_defaults(GTK_TABLE(t), priv->file_list, col, col + 2, row,
- row + 1);
+ gtk_table_attach_defaults(GTK_TABLE(t), priv->file_list, col, col + 2,
+ row, row + 1);
++row;
col = 0;
l = gtk_label_new_with_mnemonic(_("Torrent _priority:"));
gtk_misc_set_alignment(GTK_MISC(l), 0.0f, 0.5f);
- gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, ~0, 0, 0, 0);
+ gtk_table_attach(GTK_TABLE(t), l, col, col + 1, row, row + 1, ~0, 0, 0,
+ 0);
++col;
gtk_table_attach(GTK_TABLE(t), priv->priority_combo, col, col + 1, row,
- row + 1, ~0, 0, 0, 0);
+ row + 1, ~0, 0, 0, 0);
gtk_label_set_mnemonic_widget(GTK_LABEL(l), priv->priority_combo);
++row;
col = 0;
gtk_table_attach(GTK_TABLE(t), priv->paused_check, col, col + 2, row,
- row + 1, GTK_FILL, 0, 0, 0);
+ row + 1, GTK_FILL, 0, 0, 0);
++row;
col = 0;
gtk_table_attach(GTK_TABLE(t), priv->delete_check, col, col + 2, row,
- row + 1, GTK_FILL, 0, 0, 0);
+ row + 1, GTK_FILL, 0, 0, 0);
gtr_dialog_set_content(GTK_DIALOG(obj), t);
g_signal_connect(G_OBJECT(obj), "response",
- G_CALLBACK(trg_torrent_add_response_cb), priv->parent);
+ G_CALLBACK(trg_torrent_add_response_cb),
+ priv->parent);
return obj;
}
-static void trg_torrent_add_dialog_class_init(TrgTorrentAddDialogClass * klass) {
+static void trg_torrent_add_dialog_class_init(TrgTorrentAddDialogClass *
+ klass)
+{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
g_type_class_add_private(klass, sizeof(TrgTorrentAddDialogPrivate));
@@ -689,51 +775,67 @@ static void trg_torrent_add_dialog_class_init(TrgTorrentAddDialogClass * klass)
object_class->get_property = trg_torrent_add_dialog_get_property;
object_class->constructor = trg_torrent_add_dialog_constructor;
- g_object_class_install_property(
- object_class,
- PROP_FILENAME,
- g_param_spec_pointer(
- "filenames",
- "filenames",
- "filenames",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY
- | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK
- | G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property(
- object_class,
- PROP_CLIENT,
- g_param_spec_pointer(
- "client",
- "client",
- "client",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY
- | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK
- | G_PARAM_STATIC_BLURB));
-
- g_object_class_install_property(
- object_class,
- PROP_PARENT,
- g_param_spec_object(
- "parent",
- "parent",
- "parent",
- TRG_TYPE_MAIN_WINDOW,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY
- | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK
- | G_PARAM_STATIC_BLURB));
+ g_object_class_install_property(object_class,
+ PROP_FILENAME,
+ g_param_spec_pointer("filenames",
+ "filenames",
+ "filenames",
+ G_PARAM_READWRITE
+ |
+ G_PARAM_CONSTRUCT_ONLY
+ |
+ G_PARAM_STATIC_NAME
+ |
+ G_PARAM_STATIC_NICK
+ |
+ G_PARAM_STATIC_BLURB));
+
+ g_object_class_install_property(object_class,
+ PROP_CLIENT,
+ g_param_spec_pointer("client",
+ "client",
+ "client",
+ G_PARAM_READWRITE
+ |
+ G_PARAM_CONSTRUCT_ONLY
+ |
+ G_PARAM_STATIC_NAME
+ |
+ G_PARAM_STATIC_NICK
+ |
+ G_PARAM_STATIC_BLURB));
+
+ g_object_class_install_property(object_class,
+ PROP_PARENT,
+ g_param_spec_object("parent",
+ "parent",
+ "parent",
+ TRG_TYPE_MAIN_WINDOW,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY
+ |
+ G_PARAM_STATIC_NAME
+ |
+ G_PARAM_STATIC_NICK
+ |
+ G_PARAM_STATIC_BLURB));
}
-static void trg_torrent_add_dialog_init(TrgTorrentAddDialog * self) {
+static void trg_torrent_add_dialog_init(TrgTorrentAddDialog * self)
+{
}
TrgTorrentAddDialog *trg_torrent_add_dialog_new(TrgMainWindow * parent,
- TrgClient * client, GSList * filenames) {
- return g_object_new(TRG_TYPE_TORRENT_ADD_DIALOG, "filenames", filenames,
- "parent", parent, "client", client, NULL);
+ TrgClient * client,
+ GSList * filenames)
+{
+ return g_object_new(TRG_TYPE_TORRENT_ADD_DIALOG, "filenames",
+ filenames, "parent", parent, "client", client,
+ NULL);
}
-void trg_torrent_add_dialog(TrgMainWindow * win, TrgClient * client) {
+void trg_torrent_add_dialog(TrgMainWindow * win, TrgClient * client)
+{
GtkWidget *w;
GtkWidget *c;
TrgPrefs *prefs = trg_client_get_prefs(client);
@@ -741,29 +843,31 @@ void trg_torrent_add_dialog(TrgMainWindow * win, TrgClient * client) {
w = trg_torrent_add_dialog_generic(GTK_WINDOW(win), prefs);
c = gtk_check_button_new_with_mnemonic(_("Show _options dialog"));
- gtk_toggle_button_set_active(
- GTK_TOGGLE_BUTTON(c),
- trg_prefs_get_bool(prefs, TRG_PREFS_KEY_ADD_OPTIONS_DIALOG,
- TRG_PREFS_GLOBAL));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(c),
+ trg_prefs_get_bool(prefs,
+ TRG_PREFS_KEY_ADD_OPTIONS_DIALOG,
+ TRG_PREFS_GLOBAL));
gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(w), c);
if (gtk_dialog_run(GTK_DIALOG(w)) == GTK_RESPONSE_ACCEPT) {
GtkFileChooser *chooser = GTK_FILE_CHOOSER(w);
GtkToggleButton *tb =
- GTK_TOGGLE_BUTTON(gtk_file_chooser_get_extra_widget(chooser));
+ GTK_TOGGLE_BUTTON(gtk_file_chooser_get_extra_widget(chooser));
gboolean showOptions = gtk_toggle_button_get_active(tb);
GSList *l = gtk_file_chooser_get_filenames(chooser);
- trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(w), prefs);
+ trg_torrent_add_dialog_generic_save_dir(GTK_FILE_CHOOSER(w),
+ prefs);
if (showOptions) {
TrgTorrentAddDialog *dialog = trg_torrent_add_dialog_new(win,
- client, l);
+ client,
+ l);
gtk_widget_show_all(GTK_WIDGET(dialog));
} else {
struct add_torrent_threadfunc_args *args =
- g_new0(struct add_torrent_threadfunc_args, 1);
+ g_new0(struct add_torrent_threadfunc_args, 1);
args->list = l;
args->cb_data = win;