From 19ad0589a0aefc571271decc45296974bb9fdba5 Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Thu, 12 Jan 2012 08:40:24 +0000 Subject: fix memory leak on response from first response from server (HTTP conflict with session id). --- src/installer.nsi | 26 + src/trg-client.c | 8 +- src/trg-file-parser.c | 3 +- src/trg-files-model.c | 24 +- src/trg-files-tree-view.c | 2 +- src/trg-main-window.c | 1535 +++++++++++++++++++++++----------------- src/trg-preferences-dialog.c | 3 +- src/trg-remote-prefs-dialog.c | 6 +- src/trg-status-bar.c | 4 +- src/trg-status-bar.h | 4 +- src/trg-torrent-props-dialog.c | 6 +- src/trg-tree-view.c | 33 +- 12 files changed, 982 insertions(+), 672 deletions(-) (limited to 'src') diff --git a/src/installer.nsi b/src/installer.nsi index 349863a..371e591 100644 --- a/src/installer.nsi +++ b/src/installer.nsi @@ -107,6 +107,10 @@ Section $(NAME_SecTransmissionRemoteGTK) SecTransmissionRemoteGTK File "C:\MinGW\msys\1.0\lib\locale\uk\LC_MESSAGES\transmission-remote-gtk.mo" + SetOutPath $INSTDIR\share\locale\fr\LC_MESSAGES + + File "C:\MinGW\msys\1.0\lib\locale\fr\LC_MESSAGES\transmission-remote-gtk.mo" + SetOutPath $INSTDIR\share\locale\ru\LC_MESSAGES File "C:\MinGW\msys\1.0\lib\locale\ru\LC_MESSAGES\transmission-remote-gtk.mo" @@ -244,6 +248,17 @@ Section $(NAME_SecGlibGtkEtc) SecGlibGtkEtc File "..\..\gtk-2.24-win32-bin\share\locale\uk\LC_MESSAGES\gdk-pixbuf.mo" File "..\..\gtk-2.24-win32-bin\share\locale\uk\LC_MESSAGES\atk10.mo" + SetOutPath $INSTDIR\share\locale\fr\LC_MESSAGES + + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\libiconv.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\gtk20.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\gtk20-properties.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\glib20.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\gettext-tools.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\gettext-runtime.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\gdk-pixbuf.mo" + File "..\..\gtk-2.24-win32-bin\share\locale\fr\LC_MESSAGES\atk10.mo" + SetOutPath $INSTDIR\share\locale\ru\LC_MESSAGES File "..\..\gtk-2.24-win32-bin\share\locale\ru\LC_MESSAGES\libiconv.mo" @@ -462,6 +477,15 @@ Section "Uninstall" Delete "$INSTDIR\share\locale\ru\LC_MESSAGES\gtk20.mo" Delete "$INSTDIR\share\locale\ru\LC_MESSAGES\libiconv.mo" Delete "$INSTDIR\share\locale\ru\LC_MESSAGES\transmission-remote-gtk.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\atk10.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\gdk-pixbuf.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\gettext-runtime.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\gettext-tools.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\glib20.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\gtk20-properties.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\gtk20.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\libiconv.mo" + Delete "$INSTDIR\share\locale\fr\LC_MESSAGES\transmission-remote-gtk.mo" Delete "$INSTDIR\share\locale\uk\LC_MESSAGES\atk10.mo" Delete "$INSTDIR\share\locale\uk\LC_MESSAGES\gdk-pixbuf.mo" Delete "$INSTDIR\share\locale\uk\LC_MESSAGES\gettext-runtime.mo" @@ -505,6 +529,8 @@ Section "Uninstall" RMDir "$INSTDIR\share\themes" RMDir "$INSTDIR\share\locale\uk\LC_MESSAGES" RMDir "$INSTDIR\share\locale\uk" + RMDir "$INSTDIR\share\locale\fr\LC_MESSAGES" + RMDir "$INSTDIR\share\locale\fr" RMDir "$INSTDIR\share\locale\ru\LC_MESSAGES" RMDir "$INSTDIR\share\locale\ru" RMDir "$INSTDIR\share\locale\pl\LC_MESSAGES" diff --git a/src/trg-client.c b/src/trg-client.c index 42237ff..a2c09b8 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -620,13 +620,15 @@ trg_response *dispatch_str(TrgClient * client, gchar * req) trg_http_perform(client, req, response); g_free(req); - if (response->status != CURLE_OK) - return response; + if (response->status == CURLE_OK) + response->obj = trg_deserialize(response, &decode_error); - response->obj = trg_deserialize(response, &decode_error); g_free(response->raw); response->raw = NULL; + if (response->status != CURLE_OK) + return response; + if (decode_error) { g_error("JSON decoding error: %s", decode_error->message); g_error_free(decode_error); diff --git a/src/trg-file-parser.c b/src/trg-file-parser.c index 7cf9b89..a4854bb 100644 --- a/src/trg-file-parser.c +++ b/src/trg-file-parser.c @@ -83,8 +83,7 @@ static trg_files_tree_node if (isFile) { target_node->length = (gint64) file_length_node->val.i; - while (lastIter) - { + while (lastIter) { lastIter->length = target_node->length; lastIter = lastIter->parent; } diff --git a/src/trg-files-model.c b/src/trg-files-model.c index b3688f1..4363a25 100644 --- a/src/trg-files-model.c +++ b/src/trg-files-model.c @@ -315,9 +315,8 @@ gboolean trg_files_model_update_foreach(GtkListStore * model, return FALSE; } -struct FirstUpdateThreadData -{ - TrgFilesModel * model; +struct FirstUpdateThreadData { + TrgFilesModel *model; JsonArray *files; gint n_items; trg_files_tree_node *top_node; @@ -328,7 +327,8 @@ struct FirstUpdateThreadData static gboolean trg_files_model_applytree_idlefunc(gpointer data) { - struct FirstUpdateThreadData* args = (struct FirstUpdateThreadData*)data; + struct FirstUpdateThreadData *args = + (struct FirstUpdateThreadData *) data; TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(args->model); if (args->torrent_id == priv->torrentId) { @@ -345,7 +345,8 @@ static gboolean trg_files_model_applytree_idlefunc(gpointer data) static gpointer trg_files_model_buildtree_threadfunc(gpointer data) { - struct FirstUpdateThreadData* args = (struct FirstUpdateThreadData*)data; + struct FirstUpdateThreadData *args = + (struct FirstUpdateThreadData *) data; TrgFilesModelPrivate *priv = TRG_FILES_MODEL_GET_PRIVATE(args->model); trg_files_tree_node *lastNode = NULL; GList *li; @@ -357,8 +358,8 @@ static gpointer trg_files_model_buildtree_threadfunc(gpointer data) lastNode = trg_file_parser_node_insert(args->top_node, lastNode, - file, args->n_items++, priv->wanted, - priv->priorities); + file, args->n_items++, + priv->wanted, priv->priorities); } g_list_free(args->filesList); @@ -386,7 +387,8 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, * putting it into GTK models. */ if (mode == TORRENT_GET_MODE_FIRST || priv->n_items != filesListLength) { - struct FirstUpdateThreadData *futd = g_new0(struct FirstUpdateThreadData, 1); + struct FirstUpdateThreadData *futd = + g_new0(struct FirstUpdateThreadData, 1); gtk_tree_store_clear(GTK_TREE_STORE(model)); json_array_ref(files); @@ -395,7 +397,8 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, futd->filesList = filesList; futd->torrent_id = priv->torrentId; futd->model = model; - futd->idle_add = filesListLength > TRG_FILES_MODEL_CREATE_THREAD_IF_GT; + futd->idle_add = + filesListLength > TRG_FILES_MODEL_CREATE_THREAD_IF_GT; /* If this update has more than a given number of files, build up the * simple tree in a thread, then g_idle_add a function whichs @@ -405,7 +408,8 @@ void trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, * for. Just do it in the main loop. */ if (futd->idle_add) { - g_thread_create(trg_files_model_buildtree_threadfunc, futd, FALSE, NULL); + g_thread_create(trg_files_model_buildtree_threadfunc, futd, + FALSE, NULL); } else { trg_files_model_buildtree_threadfunc(futd); trg_files_model_applytree_idlefunc(futd); diff --git a/src/trg-files-tree-view.c b/src/trg-files-tree-view.c index 8b0db27..38c8521 100644 --- a/src/trg-files-tree-view.c +++ b/src/trg-files-tree-view.c @@ -162,7 +162,7 @@ static gboolean view_onButtonPressed(GtkWidget * treeview, { gboolean handled = trg_files_tree_view_onViewButtonPressed(treeview, event, - -1, //FILESCOL_PRIORITY, + -1, //FILESCOL_PRIORITY, FILESCOL_WANTED, G_CALLBACK(set_low), G_CALLBACK(set_normal), diff --git a/src/trg-main-window.c b/src/trg-main-window.c index e4bea05..bee6e82 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -83,24 +83,30 @@ /* The rather large main window class, which glues everything together. */ static void update_selected_torrent_notebook(TrgMainWindow * win, - gint mode, gint64 id); + gint mode, gint64 id); #ifdef HAVE_LIBNOTIFY -static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, - gchar * desc, gint tmout, gchar * prefKey, GtkTreeIter * iter, - gpointer data); +static void torrent_event_notification(TrgTorrentModel * model, + gchar * icon, gchar * desc, + gint tmout, gchar * prefKey, + GtkTreeIter * iter, gpointer data); #endif static void connchange_whatever_statusicon(TrgMainWindow * win, - gboolean connected); + gboolean connected); static void update_whatever_statusicon(TrgMainWindow * win, - const gchar * speedLabel, trg_torrent_model_update_stats * stats); -static void on_torrent_completed(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data); + const gchar * speedLabel, + trg_torrent_model_update_stats * + stats); +static void on_torrent_completed(TrgTorrentModel * model, + GtkTreeIter * iter, gpointer data); static void on_torrent_added(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data); -static gboolean delete_event(GtkWidget * w, GdkEvent * event, gpointer data); + gpointer data); +static gboolean delete_event(GtkWidget * w, GdkEvent * event, + gpointer data); static void destroy_window(GtkWidget * w, gpointer data); static void torrent_tv_onRowActivated(GtkTreeView * treeview, - GtkTreePath * path, GtkTreeViewColumn * col, gpointer userdata); + GtkTreePath * path, + GtkTreeViewColumn * col, + gpointer userdata); static void add_url_cb(GtkWidget * w, gpointer data); static void add_cb(GtkWidget * w, gpointer data); static void disconnect_cb(GtkWidget * w, gpointer data); @@ -117,8 +123,11 @@ static void pause_all_cb(GtkWidget * w, gpointer data); static void move_cb(GtkWidget * w, gpointer data); static void delete_cb(GtkWidget * w, gpointer data); static void open_props_cb(GtkWidget * w, gpointer data); -static gint confirm_action_dialog(GtkWindow * win, GtkTreeSelection * selection, - gchar * question_single, gchar * question_multi, gchar * action_stock); +static gint confirm_action_dialog(GtkWindow * win, + GtkTreeSelection * selection, + gchar * question_single, + gchar * question_multi, + gchar * action_stock); static void view_stats_toggled_cb(GtkWidget * w, gpointer data); static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data); static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data); @@ -132,54 +141,65 @@ static gboolean on_torrent_get_interactive(gpointer data); static gboolean trg_update_torrents_timerfunc(gpointer data); static void open_about_cb(GtkWidget * w, GtkWindow * parent); static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, - GtkTreeIter * iter, gpointer data); -static TrgTorrentTreeView -* trg_main_window_torrent_tree_view_new(TrgMainWindow * win, - GtkTreeModel * model); + GtkTreeIter * iter, + gpointer data); +static TrgTorrentTreeView * +trg_main_window_torrent_tree_view_new(TrgMainWindow * win, + GtkTreeModel * model); static gboolean trg_dialog_error_handler(TrgMainWindow * win, - trg_response * response); + trg_response * response); static gboolean torrent_selection_changed(GtkTreeSelection * selection, - gpointer data); + gpointer data); static void trg_main_window_torrent_scrub(TrgMainWindow * win); static void entry_filter_changed_cb(GtkWidget * w, gpointer data); static void torrent_state_selection_changed(TrgStateSelector * selector, - guint flag, gpointer data); + guint flag, gpointer data); static void trg_main_window_conn_changed(TrgMainWindow * win, - gboolean connected); -static void trg_main_window_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec); -static void trg_main_window_set_property(GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec); + gboolean connected); +static void trg_main_window_get_property(GObject * object, + guint property_id, GValue * value, + GParamSpec * pspec); +static void trg_main_window_set_property(GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec); static void quit_cb(GtkWidget * w, gpointer data); static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win); #ifndef HAVE_LIBAPPINDICATOR static void status_icon_activated(GtkStatusIcon * icon, gpointer data); static gboolean trg_status_icon_popup_menu_cb(GtkStatusIcon * icon, - gpointer userdata); + gpointer userdata); static gboolean status_icon_button_press_event(GtkStatusIcon * icon, - GdkEventButton * event, gpointer data); + GdkEventButton * event, + gpointer data); #endif static void clear_filter_entry_cb(GtkEntry * entry, - GtkEntryIconPosition icon_pos, GdkEvent * event, gpointer user_data); + GtkEntryIconPosition icon_pos, + GdkEvent * event, gpointer user_data); static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, - const gchar * text, char *stock_id, gboolean sensitive, GCallback cb, - gpointer cbdata); + const gchar * text, char *stock_id, + gboolean sensitive, GCallback cb, + gpointer cbdata); static void set_limit_cb(GtkWidget * w, gpointer data); static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, - gint64 currentLimit, gfloat limit); + gint64 currentLimit, gfloat limit); static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, - gchar * enabledKey, gchar * speedKey, JsonArray * ids); + gchar * enabledKey, gchar * speedKey, + JsonArray * ids); static void trg_torrent_tv_view_menu(GtkWidget * treeview, - GdkEventButton * event, gpointer data); + GdkEventButton * event, + gpointer data); static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, - const gchar * msg); + const gchar * msg); static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, - GdkEventButton * event, gpointer userdata); + GdkEventButton * event, + gpointer userdata); static gboolean torrent_tv_popup_menu_cb(GtkWidget * treeview, - gpointer userdata); + gpointer userdata); static gboolean is_ready_for_torrent_action(TrgMainWindow * win); static gboolean window_state_event(GtkWidget * widget, - GdkEventWindowState * event, gpointer trayIcon); + GdkEventWindowState * event, + gpointer trayIcon); G_DEFINE_TYPE(TrgMainWindow, trg_main_window, GTK_TYPE_WINDOW) #define TRG_MAIN_WINDOW_GET_PRIVATE(o) \ @@ -193,7 +213,7 @@ struct _TrgMainWindowPrivate { TrgStatusBar *statusBar; GtkWidget *iconStatusItem, *iconDownloadingItem, *iconSeedingItem, - *iconSepItem; + *iconSepItem; #ifdef HAVE_LIBAPPINDICATOR AppIndicator *appIndicator; #else @@ -241,7 +261,8 @@ enum { PROP_0, PROP_CLIENT, PROP_MINIMISE_ON_START }; -static void reset_connect_args(TrgMainWindow * win) { +static void reset_connect_args(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (priv->args) { g_strfreev(priv->args); @@ -249,37 +270,39 @@ static void reset_connect_args(TrgMainWindow * win) { } } -static void trg_main_window_init(TrgMainWindow * self G_GNUC_UNUSED) { +static void trg_main_window_init(TrgMainWindow * self G_GNUC_UNUSED) +{ } -gint trg_mw_get_selected_torrent_id(TrgMainWindow * win) { +gint trg_mw_get_selected_torrent_id(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); return priv->selectedTorrentId; } -static void update_selected_torrent_notebook(TrgMainWindow * win, gint mode, - gint64 id) { +static void update_selected_torrent_notebook(TrgMainWindow * win, + gint mode, gint64 id) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *client = priv->client; JsonObject *t; GtkTreeIter iter; if (id >= 0 - && get_torrent_data(trg_client_get_torrent_table(client), id, &t, - &iter)) { + && get_torrent_data(trg_client_get_torrent_table(client), id, &t, + &iter)) { trg_toolbar_torrent_actions_sensitive(priv->toolBar, TRUE); trg_menu_bar_torrent_actions_sensitive(priv->menuBar, TRUE); trg_general_panel_update(priv->genDetails, t, &iter); trg_trackers_model_update(priv->trackersModel, - trg_client_get_serial(client), t, mode); - trg_files_model_update(priv->filesModel, trg_client_get_serial(client), - t, mode); + trg_client_get_serial(client), t, mode); + trg_files_model_update(priv->filesModel, + trg_client_get_serial(client), t, mode); trg_peers_model_update(priv->peersModel, - TRG_TREE_VIEW(priv->peersTreeView), - trg_client_get_serial(client), t, mode); + TRG_TREE_VIEW(priv->peersTreeView), + trg_client_get_serial(client), t, mode); - if (mode == TORRENT_GET_MODE_FIRST - ) + if (mode == TORRENT_GET_MODE_FIRST) gtk_tree_view_expand_all(GTK_TREE_VIEW(priv->filesTreeView)); } else if (id < 0) { @@ -290,9 +313,11 @@ static void update_selected_torrent_notebook(TrgMainWindow * win, gint mode, } #ifdef HAVE_LIBNOTIFY -static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, - gchar * desc, gint tmout, gchar * prefKey, GtkTreeIter * iter, - gpointer data) { +static void torrent_event_notification(TrgTorrentModel * model, + gchar * icon, gchar * desc, + gint tmout, gchar * prefKey, + GtkTreeIter * iter, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgPrefs *prefs = trg_client_get_prefs(priv->client); gchar *name; @@ -301,20 +326,20 @@ static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, if (!trg_prefs_get_bool(prefs, prefKey, TRG_PREFS_NOFLAGS)) return; - gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_NAME, &name, - -1); + gtk_tree_model_get(GTK_TREE_MODEL(model), iter, TORRENT_COLUMN_NAME, + &name, -1); notify = notify_notification_new(name, desc, icon #if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7) - , NULL + , NULL #endif - ); + ); #ifndef HAVE_LIBAPPINDICATOR #if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7) if (priv->statusIcon && gtk_status_icon_is_embedded(priv->statusIcon)) - notify_notification_attach_to_status_icon(notify, - priv->statusIcon); + notify_notification_attach_to_status_icon(notify, + priv->statusIcon); #endif #endif @@ -327,42 +352,49 @@ static void torrent_event_notification(TrgTorrentModel * model, gchar * icon, } #endif -static void on_torrent_completed(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data) { +static void on_torrent_completed(TrgTorrentModel * model, + GtkTreeIter * iter, gpointer data) +{ #ifdef HAVE_LIBNOTIFY torrent_event_notification(model, GTK_STOCK_APPLY, - _("This torrent has completed."), - TORRENT_COMPLETE_NOTIFY_TMOUT, TRG_PREFS_KEY_COMPLETE_NOTIFY, iter, - data); + _("This torrent has completed."), + TORRENT_COMPLETE_NOTIFY_TMOUT, + TRG_PREFS_KEY_COMPLETE_NOTIFY, iter, data); #endif } static void on_torrent_added(TrgTorrentModel * model, GtkTreeIter * iter, - gpointer data) { + gpointer data) +{ #ifdef HAVE_LIBNOTIFY torrent_event_notification(model, GTK_STOCK_ADD, - _("This torrent has been added."), TORRENT_ADD_NOTIFY_TMOUT, - TRG_PREFS_KEY_ADD_NOTIFY, iter, data); + _("This torrent has been added."), + TORRENT_ADD_NOTIFY_TMOUT, + TRG_PREFS_KEY_ADD_NOTIFY, iter, data); #endif } static gboolean delete_event(GtkWidget * w, GdkEvent * event G_GNUC_UNUSED, - gpointer data G_GNUC_UNUSED) { + gpointer data G_GNUC_UNUSED) +{ return FALSE; } -static void destroy_window(GtkWidget * w, gpointer data G_GNUC_UNUSED) { +static void destroy_window(GtkWidget * w, gpointer data G_GNUC_UNUSED) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(w); TrgPrefs *prefs = trg_client_get_prefs(priv->client); trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT, priv->height, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH, priv->width, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); trg_prefs_set_int(prefs, TRG_PREFS_KEY_NOTEBOOK_PANED_POS, - gtk_paned_get_position(GTK_PANED(priv->vpaned)), TRG_PREFS_GLOBAL); + gtk_paned_get_position(GTK_PANED(priv->vpaned)), + TRG_PREFS_GLOBAL); trg_prefs_set_int(prefs, TRG_PREFS_KEY_STATES_PANED_POS, - gtk_paned_get_position(GTK_PANED(priv->hpaned)), TRG_PREFS_GLOBAL); + gtk_paned_get_position(GTK_PANED(priv->hpaned)), + TRG_PREFS_GLOBAL); trg_tree_view_persist(TRG_TREE_VIEW(priv->peersTreeView), FALSE); trg_tree_view_persist(TRG_TREE_VIEW(priv->filesTreeView), FALSE); @@ -373,7 +405,8 @@ static void destroy_window(GtkWidget * w, gpointer data G_GNUC_UNUSED) { gtk_main_quit(); } -static void open_props_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void open_props_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgTorrentPropsDialog *dialog; @@ -381,51 +414,61 @@ static void open_props_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { return; dialog = trg_torrent_props_dialog_new(GTK_WINDOW(data), - priv->torrentTreeView, priv->client); + priv->torrentTreeView, + priv->client); gtk_widget_show_all(GTK_WIDGET(dialog)); } static void torrent_tv_onRowActivated(GtkTreeView * treeview, - GtkTreePath * path G_GNUC_UNUSED, GtkTreeViewColumn * col G_GNUC_UNUSED, - gpointer userdata) { + GtkTreePath * path G_GNUC_UNUSED, + GtkTreeViewColumn * + col G_GNUC_UNUSED, gpointer userdata) +{ open_props_cb(GTK_WIDGET(treeview), userdata); } -static void add_url_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void add_url_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindow *win = TRG_MAIN_WINDOW(data); TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgTorrentAddUrlDialog *dlg = trg_torrent_add_url_dialog_new(win, - priv->client); + priv-> + client); gtk_widget_show_all(GTK_WIDGET(dlg)); } -static void add_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void add_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) trg_torrent_add_dialog(TRG_MAIN_WINDOW(data), priv->client); } -static void pause_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void pause_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, - torrent_pause(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_pause(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void pause_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void pause_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, torrent_pause(NULL), - on_generic_interactive_action, data); + on_generic_interactive_action, data); } -gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) { +gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *client = priv->client; TrgPrefs *prefs = trg_client_get_prefs(client); @@ -436,14 +479,15 @@ gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) { filesList = g_slist_append(filesList, uris[i]); if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, - TRG_PREFS_GLOBAL)) { - TrgTorrentAddDialog *dialog = trg_torrent_add_dialog_new(win, client, - filesList); + TRG_PREFS_GLOBAL)) { + TrgTorrentAddDialog *dialog = + trg_torrent_add_dialog_new(win, client, + filesList); 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 = filesList; args->cb_data = win; args->client = client; @@ -453,31 +497,35 @@ gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris) { launch_add_thread(args); } - g_free(uris); // launch_add_thread() or trg_torrent_add_dialog() will free the filenames and fileList; + g_free(uris); // launch_add_thread() or trg_torrent_add_dialog() will free the filenames and fileList; priv->args = NULL; return TRUE; } -static void resume_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void resume_all_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, torrent_start(NULL), - on_generic_interactive_action, data); + on_generic_interactive_action, data); } -static void resume_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void resume_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, - torrent_start(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_start(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void disconnect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void disconnect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); trg_client_inc_connid(priv->client); @@ -485,7 +533,8 @@ static void disconnect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { trg_status_bar_reset(priv->statusBar); } -void connect_cb(GtkWidget * w, gpointer data) { +void connect_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgPrefs *prefs = trg_client_get_prefs(priv->client); JsonObject *currentProfile = trg_prefs_get_profile(prefs); @@ -519,162 +568,187 @@ void connect_cb(GtkWidget * w, gpointer data) { } dialog = gtk_message_dialog_new(GTK_WINDOW(data), - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, "%s", msg); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s", msg); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); reset_connect_args(TRG_MAIN_WINDOW(data)); return; } - trg_status_bar_push_connection_msg(priv->statusBar, _("Connecting...")); + trg_status_bar_push_connection_msg(priv->statusBar, + _("Connecting...")); trg_client_inc_connid(priv->client); dispatch_async(priv->client, session_get(), on_session_get, data); } -static void open_local_prefs_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void open_local_prefs_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - GtkWidget *dlg = trg_preferences_dialog_get_instance(TRG_MAIN_WINDOW(data), - priv->client); + GtkWidget *dlg = + trg_preferences_dialog_get_instance(TRG_MAIN_WINDOW(data), + priv->client); gtk_widget_show_all(dlg); } -static void open_remote_prefs_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void open_remote_prefs_cb(GtkWidget * w G_GNUC_UNUSED, + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) gtk_widget_show_all(GTK_WIDGET - (trg_remote_prefs_dialog_get_instance - (TRG_MAIN_WINDOW(data), priv->client))); + (trg_remote_prefs_dialog_get_instance + (TRG_MAIN_WINDOW(data), priv->client))); } -static void main_window_toggle_filter_dirs(GtkCheckMenuItem * w, gpointer win) { +static void main_window_toggle_filter_dirs(GtkCheckMenuItem * w, + gpointer win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (gtk_widget_is_sensitive(GTK_WIDGET(w))) trg_state_selector_set_show_dirs(priv->stateSelector, - gtk_check_menu_item_get_active(w)); + gtk_check_menu_item_get_active + (w)); } static void main_window_toggle_filter_trackers(GtkCheckMenuItem * w, - gpointer win) { + gpointer win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (gtk_widget_is_sensitive(GTK_WIDGET(w))) trg_state_selector_set_show_trackers(priv->stateSelector, - gtk_check_menu_item_get_active(w)); + gtk_check_menu_item_get_active + (w)); } -static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * win) { +static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GObject *b_connect, *b_disconnect, *b_add, *b_resume, *b_pause; - GObject *b_remove, *b_delete, *b_props, *b_local_prefs, *b_remote_prefs; + GObject *b_remove, *b_delete, *b_props, *b_local_prefs, + *b_remote_prefs; TrgToolbar *toolBar = trg_toolbar_new(win, prefs); - g_object_get(toolBar, "connect-button", &b_connect, "disconnect-button", - &b_disconnect, "add-button", &b_add, "resume-button", &b_resume, - "pause-button", &b_pause, "delete-button", &b_delete, - "remove-button", &b_remove, "props-button", &b_props, - "remote-prefs-button", &b_remote_prefs, "local-prefs-button", - &b_local_prefs, NULL); + g_object_get(toolBar, "connect-button", &b_connect, + "disconnect-button", &b_disconnect, "add-button", &b_add, + "resume-button", &b_resume, "pause-button", &b_pause, + "delete-button", &b_delete, "remove-button", &b_remove, + "props-button", &b_props, "remote-prefs-button", + &b_remote_prefs, "local-prefs-button", &b_local_prefs, + NULL); g_signal_connect(b_connect, "clicked", G_CALLBACK(connect_cb), win); - g_signal_connect(b_disconnect, "clicked", G_CALLBACK(disconnect_cb), win); + g_signal_connect(b_disconnect, "clicked", G_CALLBACK(disconnect_cb), + win); g_signal_connect(b_add, "clicked", G_CALLBACK(add_cb), win); g_signal_connect(b_resume, "clicked", G_CALLBACK(resume_cb), win); g_signal_connect(b_pause, "clicked", G_CALLBACK(pause_cb), win); g_signal_connect(b_delete, "clicked", G_CALLBACK(delete_cb), win); g_signal_connect(b_remove, "clicked", G_CALLBACK(remove_cb), win); g_signal_connect(b_props, "clicked", G_CALLBACK(open_props_cb), win); - g_signal_connect(b_local_prefs, "clicked", G_CALLBACK(open_local_prefs_cb), - win); + g_signal_connect(b_local_prefs, "clicked", + G_CALLBACK(open_local_prefs_cb), win); g_signal_connect(b_remote_prefs, "clicked", - G_CALLBACK(open_remote_prefs_cb), win); + G_CALLBACK(open_remote_prefs_cb), win); return toolBar; } -static void reannounce_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void reannounce_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (trg_client_is_connected(priv->client)) dispatch_async(priv->client, - torrent_reannounce(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_reannounce(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void verify_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void verify_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) dispatch_async(priv->client, - torrent_verify(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_verify(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void start_now_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void start_now_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) dispatch_async(priv->client, - torrent_start_now(build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + torrent_start_now(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void up_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void up_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_up( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_up(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void top_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void top_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_top( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_top(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void bottom_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void bottom_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_bottom( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_bottom(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static void down_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void down_queue_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (priv->queuesEnabled - && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) - dispatch_async( - priv->client, - torrent_queue_move_down( - build_json_id_array(priv->torrentTreeView)), - on_generic_interactive_action, data); + && is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) + dispatch_async(priv->client, + torrent_queue_move_down(build_json_id_array + (priv->torrentTreeView)), + on_generic_interactive_action, data); } -static gint confirm_action_dialog(GtkWindow * win, GtkTreeSelection * selection, - gchar * question_single, gchar * question_multi, gchar * action_stock) { +static gint confirm_action_dialog(GtkWindow * win, + GtkTreeSelection * selection, + gchar * question_single, + gchar * question_multi, + gchar * action_stock) +{ TrgMainWindowPrivate *priv; gint selectCount; gint response; @@ -694,52 +768,65 @@ static gint confirm_action_dialog(GtkWindow * win, GtkTreeSelection * selection, firstNode = g_list_first(list); gtk_tree_model_get_iter(GTK_TREE_MODEL - (priv->filteredTorrentModel), &firstIter, firstNode->data); + (priv->filteredTorrentModel), &firstIter, + firstNode->data); gtk_tree_model_get(GTK_TREE_MODEL(priv->filteredTorrentModel), - &firstIter, TORRENT_COLUMN_NAME, &name, -1); + &firstIter, TORRENT_COLUMN_NAME, &name, -1); g_list_foreach(list, (GFunc) gtk_tree_path_free, NULL); g_list_free(list); dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, question_single, name); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + question_single, name); g_free(name); } else if (selectCount > 1) { dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, question_multi, selectCount); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + question_multi, + selectCount); } else { return 0; } gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, action_stock, GTK_RESPONSE_ACCEPT, NULL); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL); + GTK_RESPONSE_CANCEL, action_stock, + GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), + GTK_RESPONSE_CANCEL); gtk_dialog_set_alternative_button_order(GTK_DIALOG(dialog), - GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1); + GTK_RESPONSE_ACCEPT, + GTK_RESPONSE_CANCEL, -1); response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); return response; } -static gboolean is_ready_for_torrent_action(TrgMainWindow * win) { +static gboolean is_ready_for_torrent_action(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - return priv->selectedTorrentId >= 0 && trg_client_is_connected(priv->client); + return priv->selectedTorrentId >= 0 + && trg_client_is_connected(priv->client); } -static void move_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void move_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); if (is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) gtk_widget_show_all(GTK_WIDGET - (trg_torrent_move_dialog_new - (TRG_MAIN_WINDOW(data), priv->client, - priv->torrentTreeView))); + (trg_torrent_move_dialog_new + (TRG_MAIN_WINDOW(data), priv->client, + priv->torrentTreeView))); } -static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); GtkTreeSelection *selection; JsonArray *ids; @@ -747,65 +834,75 @@ static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { if (!is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) return; - selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(priv->torrentTreeView)); + selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->torrentTreeView)); ids = build_json_id_array(priv->torrentTreeView); if (confirm_action_dialog(GTK_WINDOW(data), selection, _ - ("Remove torrent \"%s\"?"), - _("Remove %d torrents?"), GTK_STOCK_REMOVE) - == GTK_RESPONSE_ACCEPT) + ("Remove torrent \"%s\"?"), + _("Remove %d torrents?"), + GTK_STOCK_REMOVE) + == GTK_RESPONSE_ACCEPT) dispatch_async(priv->client, torrent_remove(ids, FALSE), - on_generic_interactive_action, data); + on_generic_interactive_action, data); else json_array_unref(ids); } -static void delete_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void delete_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ TrgMainWindowPrivate *priv; GtkTreeSelection *selection; JsonArray *ids; priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(priv->torrentTreeView)); + selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->torrentTreeView)); ids = build_json_id_array(priv->torrentTreeView); if (!is_ready_for_torrent_action(TRG_MAIN_WINDOW(data))) return; if (confirm_action_dialog(GTK_WINDOW(data), selection, _ - ("Remove and delete torrent \"%s\"?"), _ - ("Remove and delete %d torrents?"), - GTK_STOCK_DELETE) == GTK_RESPONSE_ACCEPT) + ("Remove and delete torrent \"%s\"?"), + _ + ("Remove and delete %d torrents?"), + GTK_STOCK_DELETE) == GTK_RESPONSE_ACCEPT) dispatch_async(priv->client, torrent_remove(ids, TRUE), - on_generic_interactive_action, data); + on_generic_interactive_action, data); else json_array_unref(ids); } -static void view_stats_toggled_cb(GtkWidget * w, gpointer data) { +static void view_stats_toggled_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - TrgStatsDialog *dlg = trg_stats_dialog_get_instance(TRG_MAIN_WINDOW(data), - priv->client); + TrgStatsDialog *dlg = + trg_stats_dialog_get_instance(TRG_MAIN_WINDOW(data), + priv->client); gtk_widget_show_all(GTK_WIDGET(dlg)); } -static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data) { +static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); trg_widget_set_visible(priv->stateSelectorScroller, - gtk_check_menu_item_get_active(w)); + gtk_check_menu_item_get_active(w)); } -static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data) { +static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - trg_widget_set_visible(priv->notebook, gtk_check_menu_item_get_active(w)); + trg_widget_set_visible(priv->notebook, + gtk_check_menu_item_get_active(w)); } #ifndef TRG_NO_GRAPH -static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, gpointer win) { +static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, + gpointer win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (!gtk_widget_is_sensitive(GTK_WIDGET(w))) { @@ -820,49 +917,59 @@ static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, gpointer win) } #endif -void trg_main_window_notebook_set_visible(TrgMainWindow * win, gboolean visible) { +void trg_main_window_notebook_set_visible(TrgMainWindow * win, + gboolean visible) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); trg_widget_set_visible(priv->notebook, visible); } -static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) { +static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GtkWidget *notebook = priv->notebook = gtk_notebook_new(); GtkWidget *genScrolledWin = gtk_scrolled_window_new(NULL, NULL); - priv->genDetails = trg_general_panel_new(GTK_TREE_MODEL(priv->torrentModel), - priv->client); + priv->genDetails = + trg_general_panel_new(GTK_TREE_MODEL(priv->torrentModel), + priv->client); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(genScrolledWin), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW - (genScrolledWin), GTK_WIDGET(priv->genDetails)); + (genScrolledWin), + GTK_WIDGET(priv->genDetails)); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), genScrolledWin, - gtk_label_new(_("General"))); + gtk_label_new(_("General"))); priv->trackersModel = trg_trackers_model_new(); - priv->trackersTreeView = trg_trackers_tree_view_new(priv->trackersModel, - priv->client, win); + priv->trackersTreeView = + trg_trackers_tree_view_new(priv->trackersModel, priv->client, win); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - my_scrolledwin_new(GTK_WIDGET - (priv->trackersTreeView)), gtk_label_new(_("Trackers"))); + my_scrolledwin_new(GTK_WIDGET + (priv->trackersTreeView)), + gtk_label_new(_("Trackers"))); priv->filesModel = trg_files_model_new(); priv->filesTreeView = trg_files_tree_view_new(priv->filesModel, win, - priv->client); + priv->client); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - my_scrolledwin_new(GTK_WIDGET - (priv->filesTreeView)), gtk_label_new(_("Files"))); + my_scrolledwin_new(GTK_WIDGET + (priv->filesTreeView)), + gtk_label_new(_("Files"))); priv->peersModel = trg_peers_model_new(); priv->peersTreeView = trg_peers_tree_view_new(prefs, priv->peersModel); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), - my_scrolledwin_new(GTK_WIDGET - (priv->peersTreeView)), gtk_label_new(_("Peers"))); + my_scrolledwin_new(GTK_WIDGET + (priv->peersTreeView)), + gtk_label_new(_("Peers"))); #ifndef TRG_NO_GRAPH - if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_GRAPH, TRG_PREFS_GLOBAL)) + if (trg_prefs_get_bool + (prefs, TRG_PREFS_KEY_SHOW_GRAPH, TRG_PREFS_GLOBAL)) trg_main_window_add_graph(win, FALSE); else priv->graphNotebookIndex = -1; @@ -871,15 +978,16 @@ static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) { return notebook; } -gboolean on_session_set(gpointer data) { +gboolean on_session_set(gpointer data) +{ trg_response *response = (trg_response *) data; - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); if (response->status == CURLE_OK - || response->status == FAIL_RESPONSE_UNSUCCESSFUL - ) + || response->status == FAIL_RESPONSE_UNSUCCESSFUL) dispatch_async(priv->client, session_get(), on_session_get, - response->cb_data); + response->cb_data); trg_dialog_error_handler(TRG_MAIN_WINDOW(response->cb_data), response); trg_response_free(response); @@ -887,17 +995,19 @@ gboolean on_session_set(gpointer data) { return FALSE; } -static gboolean hasEnabledChanged(JsonObject *a, JsonObject *b, - const gchar *key) +static gboolean hasEnabledChanged(JsonObject * a, JsonObject * b, + const gchar * key) { return json_object_get_boolean_member(a, key) != - json_object_get_boolean_member(b, key); + json_object_get_boolean_member(b, key); } -static gboolean on_session_get(gpointer data) { +static gboolean on_session_get(gpointer data) +{ trg_response *response = (trg_response *) data; TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgClient *client = priv->client; gboolean isConnected = trg_client_is_connected(client); JsonObject *lastSession = trg_client_get_session(client); @@ -916,15 +1026,17 @@ static gboolean on_session_get(gpointer data) { } if (session_get_version(newSession, &version) == 0 - || version < TRANSMISSION_MIN_SUPPORTED) { + || version < TRANSMISSION_MIN_SUPPORTED) { gchar *msg = - g_strdup_printf( - _ - ("This application supports Transmission %.2f and later, you have %.2f."), - TRANSMISSION_MIN_SUPPORTED, version); + g_strdup_printf(_ + ("This application supports Transmission %.2f and later, you have %.2f."), +TRANSMISSION_MIN_SUPPORTED, version); GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(win), - GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", - msg); + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "%s", + msg); gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -939,13 +1051,16 @@ static gboolean on_session_get(gpointer data) { if (newSession) { gboolean reloadAliases = lastSession - && g_strcmp0(session_get_download_dir(lastSession), - session_get_download_dir(newSession)); + && g_strcmp0(session_get_download_dir(lastSession), + session_get_download_dir(newSession)); gboolean refreshSpeed = lastSession - && - (hasEnabledChanged(lastSession, newSession, SGET_ALT_SPEED_ENABLED) - || hasEnabledChanged(lastSession, newSession, SGET_SPEED_LIMIT_DOWN_ENABLED) - || hasEnabledChanged(lastSession, newSession, SGET_SPEED_LIMIT_UP_ENABLED)); + && + (hasEnabledChanged + (lastSession, newSession, SGET_ALT_SPEED_ENABLED) + || hasEnabledChanged(lastSession, newSession, + SGET_SPEED_LIMIT_DOWN_ENABLED) + || hasEnabledChanged(lastSession, newSession, + SGET_SPEED_LIMIT_UP_ENABLED)); trg_client_set_session(client, newSession); @@ -954,15 +1069,17 @@ static gboolean on_session_get(gpointer data) { if (refreshSpeed) trg_status_bar_update_speed(priv->statusBar, - trg_torrent_model_get_stats(priv->torrentModel), - priv->client); + trg_torrent_model_get_stats(priv-> + torrentModel), + priv->client); } if (!isConnected) { trg_main_window_conn_changed(win, TRUE); - trg_trackers_tree_view_new_connection(priv->trackersTreeView, client); + trg_trackers_tree_view_new_connection(priv->trackersTreeView, + client); dispatch_async(client, torrent_get(TORRENT_GET_TAG_MODE_FULL), - on_torrent_get_first, win); + on_torrent_get_first, win); } trg_response_free(response); @@ -971,7 +1088,8 @@ static gboolean on_session_get(gpointer data) { } static void connchange_whatever_statusicon(TrgMainWindow * win, - gboolean connected) { + gboolean connected) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); const gchar *display = connected ? _("Connected") : _("Disconnected"); @@ -994,7 +1112,10 @@ static void connchange_whatever_statusicon(TrgMainWindow * win, } static void update_whatever_statusicon(TrgMainWindow * win, - const gchar * speedLabel, trg_torrent_model_update_stats * stats) { + const gchar * speedLabel, + trg_torrent_model_update_stats * + stats) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); gtk_widget_set_visible(priv->iconSeedingItem, stats != NULL); @@ -1003,19 +1124,20 @@ static void update_whatever_statusicon(TrgMainWindow * win, if (stats) { gchar *downloadingLabel = g_strdup_printf(_("Downloading %d"), - stats->down); - gchar *seedingLabel = g_strdup_printf(_("Seeding %d"), stats->seeding); + stats->down); + gchar *seedingLabel = + g_strdup_printf(_("Seeding %d"), stats->seeding); gtk_menu_item_set_label(GTK_MENU_ITEM(priv->iconSeedingItem), - seedingLabel); + seedingLabel); gtk_menu_item_set_label(GTK_MENU_ITEM(priv->iconDownloadingItem), - downloadingLabel); + downloadingLabel); g_free(downloadingLabel); g_free(seedingLabel); } if (priv->iconStatusItem) gtk_menu_item_set_label(GTK_MENU_ITEM - (priv->iconStatusItem), speedLabel); + (priv->iconStatusItem), speedLabel); #ifndef HAVE_LIBAPPINDICATOR if (priv->statusIcon) @@ -1027,10 +1149,12 @@ static void update_whatever_statusicon(TrgMainWindow * win, * The callback for a torrent-get response. */ -static gboolean on_torrent_get(gpointer data, int mode) { +static gboolean on_torrent_get(gpointer data, int mode) +{ trg_response *response = (trg_response *) data; TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgClient *client = priv->client; TrgPrefs *prefs = trg_client_get_prefs(client); trg_torrent_model_update_stats *stats; @@ -1045,28 +1169,35 @@ static gboolean on_torrent_get(gpointer data, int mode) { trg_client_updatelock(client); interval = - gtk_widget_get_visible(GTK_WIDGET(win)) ? trg_prefs_get_int(prefs, - TRG_PREFS_KEY_UPDATE_INTERVAL, TRG_PREFS_CONNECTION) : - trg_prefs_get_int(prefs, TRG_PREFS_KEY_MINUPDATE_INTERVAL, + gtk_widget_get_visible(GTK_WIDGET(win)) ? trg_prefs_get_int(prefs, + TRG_PREFS_KEY_UPDATE_INTERVAL, + TRG_PREFS_CONNECTION) + : trg_prefs_get_int(prefs, TRG_PREFS_KEY_MINUPDATE_INTERVAL, TRG_PREFS_CONNECTION); if (interval < 1) interval = TRG_INTERVAL_DEFAULT; if (response->status != CURLE_OK) { - gint64 max_retries = trg_prefs_get_int(prefs, TRG_PREFS_KEY_RETRIES, - TRG_PREFS_CONNECTION); + gint64 max_retries = + trg_prefs_get_int(prefs, TRG_PREFS_KEY_RETRIES, + TRG_PREFS_CONNECTION); if (trg_client_inc_failcount(client) >= max_retries) { trg_main_window_conn_changed(win, FALSE); trg_dialog_error_handler(win, response); } else { - gchar *msg = make_error_message(response->obj, response->status); - gchar *statusBarMsg = g_strdup_printf(_("Request %d/%d failed: %s"), - trg_client_get_failcount(client), max_retries, msg); - trg_status_bar_push_connection_msg(priv->statusBar, statusBarMsg); + gchar *msg = + make_error_message(response->obj, response->status); + gchar *statusBarMsg = + g_strdup_printf(_("Request %d/%d failed: %s"), + trg_client_get_failcount(client), + max_retries, msg); + trg_status_bar_push_connection_msg(priv->statusBar, + statusBarMsg); g_free(msg); g_free(statusBarMsg); priv->timerId = g_timeout_add_seconds(interval, - trg_update_torrents_timerfunc, win); + trg_update_torrents_timerfunc, + win); } trg_client_updateunlock(client); trg_response_free(response); @@ -1076,35 +1207,41 @@ static gboolean on_torrent_get(gpointer data, int mode) { trg_client_reset_failcount(client); trg_client_inc_serial(client); - stats = trg_torrent_model_update(priv->torrentModel, client, response->obj, - mode); + stats = + trg_torrent_model_update(priv->torrentModel, client, response->obj, + mode); update_selected_torrent_notebook(win, mode, priv->selectedTorrentId); trg_status_bar_update(priv->statusBar, stats, client); update_whatever_statusicon(win, - trg_status_bar_get_speed_text(priv->statusBar), stats); + trg_status_bar_get_speed_text(priv-> + statusBar), + stats); #ifndef TRG_NO_GRAPH if (priv->graphNotebookIndex >= 0) trg_torrent_graph_set_speed(priv->graph, stats); #endif - if (mode != TORRENT_GET_MODE_INTERACTION - ) + if (mode != TORRENT_GET_MODE_INTERACTION) priv->timerId = g_timeout_add_seconds(interval, - trg_update_torrents_timerfunc, win); + trg_update_torrents_timerfunc, + win); trg_client_updateunlock(client); trg_response_free(response); return FALSE; } -static gboolean on_torrent_get_active(gpointer data) { +static gboolean on_torrent_get_active(gpointer data) +{ return on_torrent_get(data, TORRENT_GET_MODE_ACTIVE); } -static gboolean on_torrent_get_first(gpointer data) { +static gboolean on_torrent_get_first(gpointer data) +{ trg_response *response = (trg_response *) data; - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); gboolean result = on_torrent_get(data, TORRENT_GET_MODE_FIRST); @@ -1115,45 +1252,49 @@ static gboolean on_torrent_get_first(gpointer data) { return result; } -static gboolean on_torrent_get_interactive(gpointer data) { +static gboolean on_torrent_get_interactive(gpointer data) +{ return on_torrent_get(data, TORRENT_GET_MODE_INTERACTION); } -static gboolean on_torrent_get_update(gpointer data) { +static gboolean on_torrent_get_update(gpointer data) +{ return on_torrent_get(data, TORRENT_GET_MODE_UPDATE); } -static gboolean trg_update_torrents_timerfunc(gpointer data) { +static gboolean trg_update_torrents_timerfunc(gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgClient *tc = priv->client; TrgPrefs *prefs = trg_client_get_prefs(tc); if (trg_client_is_connected(tc)) { gboolean activeOnly = trg_prefs_get_bool(prefs, - TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, TRG_PREFS_CONNECTION) - && (!trg_prefs_get_bool(prefs, - TRG_PREFS_ACTIVEONLY_FULLSYNC_ENABLED, - TRG_PREFS_CONNECTION) - || (trg_client_get_serial(tc) - % trg_prefs_get_int(prefs, + TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, + TRG_PREFS_CONNECTION) + && (!trg_prefs_get_bool(prefs, + TRG_PREFS_ACTIVEONLY_FULLSYNC_ENABLED, + TRG_PREFS_CONNECTION) + || (trg_client_get_serial(tc) + % trg_prefs_get_int(prefs, TRG_PREFS_ACTIVEONLY_FULLSYNC_EVERY, TRG_PREFS_CONNECTION) != 0)); - dispatch_async( - tc, - torrent_get( - activeOnly ? TORRENT_GET_TAG_MODE_UPDATE : - TORRENT_GET_TAG_MODE_FULL), - activeOnly ? on_torrent_get_active : on_torrent_get_update, - data); + dispatch_async(tc, + torrent_get(activeOnly ? TORRENT_GET_TAG_MODE_UPDATE + : TORRENT_GET_TAG_MODE_FULL), + activeOnly ? on_torrent_get_active : + on_torrent_get_update, data); if (trg_client_get_serial(tc) % SESSION_UPDATE_DIVISOR == 0) - dispatch_async(priv->client, session_get(), on_session_get, data); + dispatch_async(priv->client, session_get(), on_session_get, + data); } return FALSE; } -static void open_about_cb(GtkWidget * w G_GNUC_UNUSED, GtkWindow * parent) { +static void open_about_cb(GtkWidget * w G_GNUC_UNUSED, GtkWindow * parent) +{ GtkWidget *aboutDialog = trg_about_window_new(parent); gtk_dialog_run(GTK_DIALOG(aboutDialog)); @@ -1161,7 +1302,9 @@ static void open_about_cb(GtkWidget * w G_GNUC_UNUSED, GtkWindow * parent) { } static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, - GtkTreeIter * iter, gpointer data) { + GtkTreeIter * iter, + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); guint flags; @@ -1174,26 +1317,28 @@ static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, if (criteria != 0) { if (criteria & FILTER_FLAG_TRACKER) { - gchar *text = trg_state_selector_get_selected_text( - priv->stateSelector); + gchar *text = + trg_state_selector_get_selected_text(priv->stateSelector); JsonObject *json = NULL; gboolean matchesTracker; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json, -1); + gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json, + -1); matchesTracker = (!json - || !torrent_has_tracker( - json, - trg_state_selector_get_url_host_regex( - priv->stateSelector), text)); + || !torrent_has_tracker(json, + trg_state_selector_get_url_host_regex + (priv-> + stateSelector), + text)); g_free(text); if (matchesTracker) return FALSE; } else if (criteria & FILTER_FLAG_DIR) { - gchar *text = trg_state_selector_get_selected_text( - priv->stateSelector); + gchar *text = + trg_state_selector_get_selected_text(priv->stateSelector); gchar *dd; int cmp; - gtk_tree_model_get(model, iter, TORRENT_COLUMN_DOWNLOADDIR_SHORT, - &dd, -1); + gtk_tree_model_get(model, iter, + TORRENT_COLUMN_DOWNLOADDIR_SHORT, &dd, -1); cmp = g_strcmp0(text, dd); g_free(dd); g_free(text); @@ -1226,29 +1371,34 @@ static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, return visible; } -void trg_main_window_reload_dir_aliases(TrgMainWindow * win) { +void trg_main_window_reload_dir_aliases(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); trg_torrent_model_reload_dir_aliases(priv->client, GTK_TREE_MODEL - (priv->torrentModel)); + (priv->torrentModel)); } -static TrgTorrentTreeView * trg_main_window_torrent_tree_view_new( - TrgMainWindow * win, GtkTreeModel * model) { +static TrgTorrentTreeView + *trg_main_window_torrent_tree_view_new(TrgMainWindow * win, + GtkTreeModel * model) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - TrgTorrentTreeView *torrentTreeView = trg_torrent_tree_view_new( - trg_client_get_prefs(priv->client), model); + TrgTorrentTreeView *torrentTreeView = + trg_torrent_tree_view_new(trg_client_get_prefs(priv->client), + model); - GtkTreeSelection *selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(torrentTreeView)); + GtkTreeSelection *selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(torrentTreeView)); g_signal_connect(G_OBJECT(selection), "changed", - G_CALLBACK(torrent_selection_changed), win); + G_CALLBACK(torrent_selection_changed), win); return torrentTreeView; } static gboolean trg_dialog_error_handler(TrgMainWindow * win, - trg_response * response) { + trg_response * response) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (response->status != CURLE_OK) { @@ -1259,7 +1409,8 @@ static gboolean trg_dialog_error_handler(TrgMainWindow * win, trg_status_bar_clear_indicators(priv->statusBar); trg_status_bar_push_connection_msg(priv->statusBar, msg); dialog = gtk_message_dialog_new(GTK_WINDOW(win), GTK_DIALOG_MODAL, - GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", msg); + GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, + "%s", msg); gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -1271,7 +1422,8 @@ static gboolean trg_dialog_error_handler(TrgMainWindow * win, } static gboolean torrent_selection_changed(GtkTreeSelection * selection, - gpointer data) { + gpointer data) +{ TrgMainWindow *win = TRG_MAIN_WINDOW(data); TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); GList *selectionList; @@ -1290,9 +1442,9 @@ static gboolean torrent_selection_changed(GtkTreeSelection * selection, if (firstNode) { GtkTreeIter iter; if (gtk_tree_model_get_iter(priv->filteredTorrentModel, &iter, - (GtkTreePath *) firstNode->data)) { + (GtkTreePath *) firstNode->data)) { gtk_tree_model_get(priv->filteredTorrentModel, &iter, - TORRENT_COLUMN_ID, &id, -1); + TORRENT_COLUMN_ID, &id, -1); } } @@ -1304,10 +1456,12 @@ static gboolean torrent_selection_changed(GtkTreeSelection * selection, return TRUE; } -gboolean on_generic_interactive_action(gpointer data) { +gboolean on_generic_interactive_action(gpointer data) +{ trg_response *response = (trg_response *) data; TrgMainWindow *win = TRG_MAIN_WINDOW(response->cb_data); - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); + TrgMainWindowPrivate *priv = + TRG_MAIN_WINDOW_GET_PRIVATE(response->cb_data); TrgClient *tc = priv->client; TrgPrefs *prefs = trg_client_get_prefs(tc); @@ -1318,14 +1472,15 @@ gboolean on_generic_interactive_action(gpointer data) { gint64 id; if (json_object_has_member(response->obj, PARAM_TAG)) id = json_object_get_int_member(response->obj, PARAM_TAG); - else if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, - TRG_PREFS_CONNECTION)) + else if (trg_prefs_get_bool + (prefs, TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, + TRG_PREFS_CONNECTION)) id = TORRENT_GET_TAG_MODE_UPDATE; else id = TORRENT_GET_TAG_MODE_FULL; dispatch_async(tc, torrent_get(id), on_torrent_get_interactive, - win); + win); } } @@ -1334,7 +1489,8 @@ gboolean on_generic_interactive_action(gpointer data) { } static -void trg_main_window_torrent_scrub(TrgMainWindow * win) { +void trg_main_window_torrent_scrub(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); gtk_tree_store_clear(GTK_TREE_STORE(priv->filesModel)); @@ -1342,31 +1498,35 @@ void trg_main_window_torrent_scrub(TrgMainWindow * win) { gtk_list_store_clear(GTK_LIST_STORE(priv->peersModel)); trg_general_panel_clear(priv->genDetails); trg_trackers_model_set_no_selection(TRG_TRACKERS_MODEL - (priv->trackersModel)); + (priv->trackersModel)); trg_toolbar_torrent_actions_sensitive(priv->toolBar, FALSE); trg_menu_bar_torrent_actions_sensitive(priv->menuBar, FALSE); } -static void entry_filter_changed_cb(GtkWidget * w, gpointer data) { +static void entry_filter_changed_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gboolean clearSensitive = gtk_entry_get_text_length(GTK_ENTRY(w)) > 0; gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER - (priv->filteredTorrentModel)); + (priv->filteredTorrentModel)); - g_object_set(priv->filterEntry, "secondary-icon-sensitive", clearSensitive, - NULL); + g_object_set(priv->filterEntry, "secondary-icon-sensitive", + clearSensitive, NULL); } -static void torrent_state_selection_changed( - TrgStateSelector * selector G_GNUC_UNUSED, guint flag G_GNUC_UNUSED, - gpointer data) { +static void torrent_state_selection_changed(TrgStateSelector * + selector G_GNUC_UNUSED, + guint flag G_GNUC_UNUSED, + gpointer data) +{ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(data)); } static -void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { +void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *tc = priv->client; @@ -1376,7 +1536,8 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { gtk_widget_set_sensitive(GTK_WIDGET(priv->torrentTreeView), connected); gtk_widget_set_sensitive(GTK_WIDGET(priv->peersTreeView), connected); gtk_widget_set_sensitive(GTK_WIDGET(priv->filesTreeView), connected); - gtk_widget_set_sensitive(GTK_WIDGET(priv->trackersTreeView), connected); + gtk_widget_set_sensitive(GTK_WIDGET(priv->trackersTreeView), + connected); gtk_widget_set_sensitive(GTK_WIDGET(priv->genDetails), connected); if (!connected) { @@ -1397,8 +1558,10 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { connchange_whatever_statusicon(win, connected); } -static void trg_main_window_get_property(GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) { +static void trg_main_window_get_property(GObject * object, + guint property_id, GValue * value, + GParamSpec * pspec) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(object); switch (property_id) { case PROP_CLIENT: @@ -1413,8 +1576,11 @@ static void trg_main_window_get_property(GObject * object, guint property_id, } } -static void trg_main_window_set_property(GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec) { +static void trg_main_window_set_property(GObject * object, + guint property_id, + const GValue * value, + GParamSpec * pspec) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(object); switch (property_id) { case PROP_CLIENT: @@ -1429,23 +1595,25 @@ static void trg_main_window_set_property(GObject * object, guint property_id, } } -static void quit_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) { +static void quit_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) +{ gtk_widget_destroy(GTK_WIDGET(data)); } -static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { +static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - GObject *b_disconnect, *b_add, *b_resume, *b_pause, *b_verify, *b_remove, - *b_delete, *b_props, *b_local_prefs, *b_remote_prefs, *b_about, - *b_view_states, *b_view_notebook, *b_view_stats, *b_add_url, - *b_quit, *b_move, *b_reannounce, *b_pause_all, *b_resume_all, - *b_dir_filters, *b_tracker_filters, *b_up_queue, *b_down_queue, - *b_top_queue, *b_bottom_queue, + GObject *b_disconnect, *b_add, *b_resume, *b_pause, *b_verify, + *b_remove, *b_delete, *b_props, *b_local_prefs, *b_remote_prefs, + *b_about, *b_view_states, *b_view_notebook, *b_view_stats, + *b_add_url, *b_quit, *b_move, *b_reannounce, *b_pause_all, + *b_resume_all, *b_dir_filters, *b_tracker_filters, *b_up_queue, + *b_down_queue, *b_top_queue, *b_bottom_queue, #ifndef TRG_NO_GRAPH - *b_show_graph, + *b_show_graph, #endif - *b_start_now; + *b_start_now; TrgMenuBar *menuBar; GtkAccelGroup *accel_group; @@ -1453,63 +1621,72 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { accel_group = gtk_accel_group_new(); menuBar = trg_menu_bar_new(win, trg_client_get_prefs(priv->client), - accel_group); + accel_group); g_object_get(menuBar, "disconnect-button", &b_disconnect, "add-button", - &b_add, "add-url-button", &b_add_url, "resume-button", &b_resume, - "resume-all-button", &b_resume_all, "pause-button", &b_pause, - "pause-all-button", &b_pause_all, "delete-button", &b_delete, - "remove-button", &b_remove, "move-button", &b_move, "verify-button", - &b_verify, "reannounce-button", &b_reannounce, "props-button", - &b_props, "remote-prefs-button", &b_remote_prefs, - "local-prefs-button", &b_local_prefs, "view-notebook-button", - &b_view_notebook, "view-states-button", &b_view_states, - "view-stats-button", &b_view_stats, "about-button", &b_about, - "quit-button", &b_quit, "dir-filters", &b_dir_filters, - "tracker-filters", &b_tracker_filters, + &b_add, "add-url-button", &b_add_url, "resume-button", + &b_resume, "resume-all-button", &b_resume_all, + "pause-button", &b_pause, "pause-all-button", + &b_pause_all, "delete-button", &b_delete, "remove-button", + &b_remove, "move-button", &b_move, "verify-button", + &b_verify, "reannounce-button", &b_reannounce, + "props-button", &b_props, "remote-prefs-button", + &b_remote_prefs, "local-prefs-button", &b_local_prefs, + "view-notebook-button", &b_view_notebook, + "view-states-button", &b_view_states, "view-stats-button", + &b_view_stats, "about-button", &b_about, "quit-button", + &b_quit, "dir-filters", &b_dir_filters, "tracker-filters", + &b_tracker_filters, #ifndef TRG_NO_GRAPH - "show-graph", &b_show_graph, + "show-graph", &b_show_graph, #endif - "up-queue", &b_up_queue, "down-queue", &b_down_queue, "top-queue", - &b_top_queue, "bottom-queue", &b_bottom_queue, "start-now", - &b_start_now, NULL); + "up-queue", &b_up_queue, "down-queue", &b_down_queue, + "top-queue", &b_top_queue, "bottom-queue", + &b_bottom_queue, "start-now", &b_start_now, NULL); - g_signal_connect(b_disconnect, "activate", G_CALLBACK(disconnect_cb), win); + g_signal_connect(b_disconnect, "activate", G_CALLBACK(disconnect_cb), + win); g_signal_connect(b_add, "activate", G_CALLBACK(add_cb), win); g_signal_connect(b_add_url, "activate", G_CALLBACK(add_url_cb), win); g_signal_connect(b_resume, "activate", G_CALLBACK(resume_cb), win); - g_signal_connect(b_resume_all, "activate", G_CALLBACK(resume_all_cb), win); + g_signal_connect(b_resume_all, "activate", G_CALLBACK(resume_all_cb), + win); g_signal_connect(b_pause, "activate", G_CALLBACK(pause_cb), win); - g_signal_connect(b_pause_all, "activate", G_CALLBACK(pause_all_cb), win); + g_signal_connect(b_pause_all, "activate", G_CALLBACK(pause_all_cb), + win); g_signal_connect(b_verify, "activate", G_CALLBACK(verify_cb), win); - g_signal_connect(b_reannounce, "activate", G_CALLBACK(reannounce_cb), win); + g_signal_connect(b_reannounce, "activate", G_CALLBACK(reannounce_cb), + win); g_signal_connect(b_delete, "activate", G_CALLBACK(delete_cb), win); g_signal_connect(b_remove, "activate", G_CALLBACK(remove_cb), win); g_signal_connect(b_up_queue, "activate", G_CALLBACK(up_queue_cb), win); - g_signal_connect(b_down_queue, "activate", G_CALLBACK(down_queue_cb), win); - g_signal_connect(b_top_queue, "activate", G_CALLBACK(top_queue_cb), win); - g_signal_connect(b_bottom_queue, "activate", G_CALLBACK(bottom_queue_cb), - win); - g_signal_connect(b_start_now, "activate", G_CALLBACK(start_now_cb), win); + g_signal_connect(b_down_queue, "activate", G_CALLBACK(down_queue_cb), + win); + g_signal_connect(b_top_queue, "activate", G_CALLBACK(top_queue_cb), + win); + g_signal_connect(b_bottom_queue, "activate", + G_CALLBACK(bottom_queue_cb), win); + g_signal_connect(b_start_now, "activate", G_CALLBACK(start_now_cb), + win); g_signal_connect(b_move, "activate", G_CALLBACK(move_cb), win); g_signal_connect(b_about, "activate", G_CALLBACK(open_about_cb), win); - g_signal_connect(b_local_prefs, "activate", G_CALLBACK(open_local_prefs_cb), - win); + g_signal_connect(b_local_prefs, "activate", + G_CALLBACK(open_local_prefs_cb), win); g_signal_connect(b_remote_prefs, "activate", - G_CALLBACK(open_remote_prefs_cb), win); + G_CALLBACK(open_remote_prefs_cb), win); g_signal_connect(b_view_notebook, "toggled", - G_CALLBACK(view_notebook_toggled_cb), win); + G_CALLBACK(view_notebook_toggled_cb), win); g_signal_connect(b_dir_filters, "toggled", - G_CALLBACK(main_window_toggle_filter_dirs), win); + G_CALLBACK(main_window_toggle_filter_dirs), win); g_signal_connect(b_tracker_filters, "toggled", - G_CALLBACK(main_window_toggle_filter_trackers), win); + G_CALLBACK(main_window_toggle_filter_trackers), win); g_signal_connect(b_view_states, "toggled", - G_CALLBACK(view_states_toggled_cb), win); + G_CALLBACK(view_states_toggled_cb), win); g_signal_connect(b_view_stats, "activate", - G_CALLBACK(view_stats_toggled_cb), win); + G_CALLBACK(view_stats_toggled_cb), win); #ifndef TRG_NO_GRAPH g_signal_connect(b_show_graph, "toggled", - G_CALLBACK(trg_main_window_toggle_graph_cb), win); + G_CALLBACK(trg_main_window_toggle_graph_cb), win); #endif g_signal_connect(b_props, "activate", G_CALLBACK(open_props_cb), win); g_signal_connect(b_quit, "activate", G_CALLBACK(quit_cb), win); @@ -1521,7 +1698,8 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { #ifndef HAVE_LIBAPPINDICATOR static void status_icon_activated(GtkStatusIcon * icon G_GNUC_UNUSED, - gpointer data) { + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gtk_window_deiconify(GTK_WINDOW(data)); @@ -1529,28 +1707,34 @@ static void status_icon_activated(GtkStatusIcon * icon G_GNUC_UNUSED, if (priv->timerId > 0) { g_source_remove(priv->timerId); - dispatch_async(priv->client, torrent_get(TORRENT_GET_TAG_MODE_FULL), - on_torrent_get_first, data); + dispatch_async(priv->client, + torrent_get(TORRENT_GET_TAG_MODE_FULL), + on_torrent_get_first, data); } } static gboolean trg_status_icon_popup_menu_cb(GtkStatusIcon * icon, - gpointer userdata) { + gpointer userdata) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(userdata); - gtk_menu_popup(priv->iconMenu, NULL, NULL, gtk_status_icon_position_menu, - priv->statusIcon, 0, gtk_get_current_event_time()); + gtk_menu_popup(priv->iconMenu, NULL, NULL, + gtk_status_icon_position_menu, priv->statusIcon, 0, + gtk_get_current_event_time()); return TRUE; } static gboolean status_icon_button_press_event(GtkStatusIcon * icon, - GdkEventButton * event, gpointer data) { + GdkEventButton * event, + gpointer data) +{ if (event->type == GDK_BUTTON_PRESS && event->button == 3) { TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gtk_menu_popup(priv->iconMenu, NULL, NULL, - gtk_status_icon_position_menu, priv->statusIcon, event->button, - gdk_event_get_time((GdkEvent *) event)); + gtk_status_icon_position_menu, priv->statusIcon, + event->button, + gdk_event_get_time((GdkEvent *) event)); return TRUE; } else { return FALSE; @@ -1559,18 +1743,22 @@ static gboolean status_icon_button_press_event(GtkStatusIcon * icon, #endif static void clear_filter_entry_cb(GtkEntry * entry, - GtkEntryIconPosition icon_pos, GdkEvent * event, gpointer user_data) { + GtkEntryIconPosition icon_pos, + GdkEvent * event, gpointer user_data) +{ gtk_entry_set_text(entry, ""); } static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, - const gchar * text, char *stock_id, gboolean sensitive, GCallback cb, - gpointer cbdata) { + const gchar * text, char *stock_id, + gboolean sensitive, GCallback cb, + gpointer cbdata) +{ GtkWidget *item = gtk_image_menu_item_new_with_label(stock_id); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(item), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (item), TRUE); + (item), TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(item), text); g_signal_connect(item, "activate", cb, cbdata); gtk_widget_set_sensitive(item, sensitive); @@ -1579,7 +1767,8 @@ static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, return item; } -static void set_limit_cb(GtkWidget * w, gpointer data) { +static void set_limit_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); GtkWidget *parent = gtk_widget_get_parent(w); @@ -1605,13 +1794,15 @@ static void set_limit_cb(GtkWidget * w, gpointer data) { json_object_set_boolean_member(args, enabledKey, speed >= 0); if (limitIds) - dispatch_async(priv->client, req, on_generic_interactive_action, data); + dispatch_async(priv->client, req, on_generic_interactive_action, + data); else dispatch_async(priv->client, req, on_session_set, data); } static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, - gint64 currentLimit, gfloat limit) { + gint64 currentLimit, gfloat limit) +{ char speed[32]; GtkWidget *item; gboolean active = limit < 0 ? FALSE : (currentLimit == (gint64) limit); @@ -1620,7 +1811,8 @@ static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, item = gtk_check_menu_item_new_with_label(speed); - g_object_set_data(G_OBJECT(item), "limit", GINT_TO_POINTER((gint) limit)); + g_object_set_data(G_OBJECT(item), "limit", + GINT_TO_POINTER((gint) limit)); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), active); g_signal_connect(item, "activate", G_CALLBACK(set_limit_cb), win); @@ -1629,7 +1821,9 @@ static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu, } static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, - gchar * enabledKey, gchar * speedKey, JsonArray * ids) { + gchar * enabledKey, gchar * speedKey, + JsonArray * ids) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgClient *client = priv->client; JsonObject *current = NULL; @@ -1639,28 +1833,28 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, if (ids) get_torrent_data(trg_client_get_torrent_table(client), - priv->selectedTorrentId, ¤t, &iter); + priv->selectedTorrentId, ¤t, &iter); else current = trg_client_get_session(client); limit = - json_object_get_boolean_member(current, enabledKey) ? json_object_get_int_member( - current, speedKey) : - -1; + json_object_get_boolean_member(current, + enabledKey) ? + json_object_get_int_member(current, speedKey) : -1; toplevel = gtk_image_menu_item_new_with_label(GTK_STOCK_NETWORK); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(toplevel), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM - (toplevel), TRUE); + (toplevel), TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(toplevel), title); menu = gtk_menu_new(); g_object_set_data_full(G_OBJECT(menu), "speedKey", g_strdup(speedKey), - g_free); - g_object_set_data_full(G_OBJECT(menu), "enabledKey", g_strdup(enabledKey), - g_free); + g_free); + g_object_set_data_full(G_OBJECT(menu), "enabledKey", + g_strdup(enabledKey), g_free); g_object_set_data_full(G_OBJECT(menu), "limit-ids", ids, - (GDestroyNotify) json_array_unref); + (GDestroyNotify) json_array_unref); item = gtk_check_menu_item_new_with_label(_("No Limit")); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), limit < 0); @@ -1668,7 +1862,8 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, g_signal_connect(item, "activate", G_CALLBACK(set_limit_cb), win); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); limit_item_new(win, menu, limit, 0); limit_item_new(win, menu, limit, 5); @@ -1695,25 +1890,25 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title, return toplevel; } -static void exec_cmd_cb(GtkWidget * w, gpointer data) { +static void exec_cmd_cb(GtkWidget * w, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); JsonObject *cmd_obj = (JsonObject *) g_object_get_data(G_OBJECT(w), - "cmd-object"); - GtkTreeSelection *selection = gtk_tree_view_get_selection( - GTK_TREE_VIEW(priv->torrentTreeView)); + "cmd-object"); + GtkTreeSelection *selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->torrentTreeView)); GtkTreeModel *model; GList *selectedRows = gtk_tree_selection_get_selected_rows(selection, - &model); + &model); GError *cmd_error = NULL; gchar *cmd_line = NULL; gchar **argv = NULL; - cmd_line = build_remote_exec_cmd( - priv->client, - model, - selectedRows, - json_object_get_string_member(cmd_obj, - TRG_PREFS_KEY_EXEC_COMMANDS_SUBKEY_CMD)); + cmd_line = build_remote_exec_cmd(priv->client, + model, + selectedRows, + json_object_get_string_member(cmd_obj, + TRG_PREFS_KEY_EXEC_COMMANDS_SUBKEY_CMD)); g_debug("Exec: %s", cmd_line); @@ -1725,7 +1920,7 @@ static void exec_cmd_cb(GtkWidget * w, gpointer data) { g_shell_parse_argv(cmd_line, NULL, &argv, NULL); g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, - &cmd_error); + &cmd_error); g_list_foreach(selectedRows, (GFunc) gtk_tree_path_free, NULL); g_list_free(selectedRows); @@ -1737,8 +1932,10 @@ static void exec_cmd_cb(GtkWidget * w, gpointer data) { if (cmd_error) { GtkWidget *dialog = gtk_message_dialog_new(GTK_WINDOW(data), - GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", - cmd_error->message); + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, "%s", + cmd_error->message); gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); @@ -1747,7 +1944,8 @@ static void exec_cmd_cb(GtkWidget * w, gpointer data) { } static void trg_torrent_tv_view_menu(GtkWidget * treeview, - GdkEventButton * event, gpointer data) { + GdkEventButton * event, gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); TrgPrefs *prefs = trg_client_get_prefs(priv->client); GtkWidget *menu; @@ -1759,24 +1957,32 @@ static void trg_torrent_tv_view_menu(GtkWidget * treeview, ids = build_json_id_array(TRG_TORRENT_TREE_VIEW(treeview)); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Properties"), - GTK_STOCK_PROPERTIES, TRUE, G_CALLBACK(open_props_cb), data); + GTK_STOCK_PROPERTIES, TRUE, + G_CALLBACK(open_props_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Resume"), - GTK_STOCK_MEDIA_PLAY, TRUE, G_CALLBACK(resume_cb), data); + GTK_STOCK_MEDIA_PLAY, TRUE, + G_CALLBACK(resume_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Pause"), - GTK_STOCK_MEDIA_PAUSE, TRUE, G_CALLBACK(pause_cb), data); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Verify"), GTK_STOCK_REFRESH, - TRUE, G_CALLBACK(verify_cb), data); + GTK_STOCK_MEDIA_PAUSE, TRUE, + G_CALLBACK(pause_cb), data); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Verify"), + GTK_STOCK_REFRESH, TRUE, G_CALLBACK(verify_cb), + data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Re-announce"), - GTK_STOCK_REFRESH, TRUE, G_CALLBACK(reannounce_cb), data); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move"), GTK_STOCK_HARDDISK, - TRUE, G_CALLBACK(move_cb), data); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Remove"), GTK_STOCK_REMOVE, - TRUE, G_CALLBACK(remove_cb), data); + GTK_STOCK_REFRESH, TRUE, + G_CALLBACK(reannounce_cb), data); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move"), + GTK_STOCK_HARDDISK, TRUE, G_CALLBACK(move_cb), + data); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Remove"), + GTK_STOCK_REMOVE, TRUE, G_CALLBACK(remove_cb), + data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Remove & Delete"), - GTK_STOCK_CLEAR, TRUE, G_CALLBACK(delete_cb), data); + GTK_STOCK_CLEAR, TRUE, G_CALLBACK(delete_cb), + data); cmds = trg_prefs_get_array(prefs, TRG_PREFS_KEY_EXEC_COMMANDS, - TRG_PREFS_CONNECTION); + TRG_PREFS_CONNECTION); n_cmds = json_array_get_length(cmds); if (n_cmds > 0) { @@ -1786,71 +1992,84 @@ static void trg_torrent_tv_view_menu(GtkWidget * treeview, if (n_cmds < 3) { gtk_menu_shell_append(GTK_MENU_SHELL(menu), - gtk_separator_menu_item_new()); + gtk_separator_menu_item_new()); cmds_shell = GTK_MENU_SHELL(menu); } else { GtkImageMenuItem *cmds_menu = - GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label - (GTK_STOCK_EXECUTE)); + GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_label + (GTK_STOCK_EXECUTE)); gtk_image_menu_item_set_use_stock(cmds_menu, TRUE); gtk_image_menu_item_set_always_show_image(cmds_menu, TRUE); - gtk_menu_item_set_label(GTK_MENU_ITEM(cmds_menu), _("Actions")); + gtk_menu_item_set_label(GTK_MENU_ITEM(cmds_menu), + _("Actions")); cmds_shell = GTK_MENU_SHELL(gtk_menu_new()); gtk_menu_item_set_submenu(GTK_MENU_ITEM(cmds_menu), - GTK_WIDGET(cmds_shell)); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(cmds_menu)); + GTK_WIDGET(cmds_shell)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + GTK_WIDGET(cmds_menu)); } for (cmds_li = cmds_list; cmds_li; cmds_li = g_list_next(cmds_li)) { - JsonObject *cmd_obj = json_node_get_object( - (JsonNode *) cmds_li->data); + JsonObject *cmd_obj = json_node_get_object((JsonNode *) + cmds_li->data); const gchar *cmd_label = json_object_get_string_member(cmd_obj, - "label"); + "label"); GtkWidget *item = trg_imagemenuitem_new(cmds_shell, cmd_label, - GTK_STOCK_EXECUTE, TRUE, G_CALLBACK - (exec_cmd_cb), data); + GTK_STOCK_EXECUTE, + TRUE, + G_CALLBACK + (exec_cmd_cb), data); g_object_set_data(G_OBJECT(item), "cmd-object", cmd_obj); } g_list_free(cmds_list); } - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); if (priv->queuesEnabled) { trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Start Now"), - GTK_STOCK_MEDIA_PLAY, TRUE, G_CALLBACK(start_now_cb), data); + GTK_STOCK_MEDIA_PLAY, TRUE, + G_CALLBACK(start_now_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move Up Queue"), - GTK_STOCK_GO_UP, TRUE, G_CALLBACK(up_queue_cb), data); + GTK_STOCK_GO_UP, TRUE, + G_CALLBACK(up_queue_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Move Down Queue"), - GTK_STOCK_GO_DOWN, TRUE, G_CALLBACK(down_queue_cb), data); + GTK_STOCK_GO_DOWN, TRUE, + G_CALLBACK(down_queue_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Bottom Of Queue"), - GTK_STOCK_GOTO_BOTTOM, TRUE, G_CALLBACK(bottom_queue_cb), data); + GTK_STOCK_GOTO_BOTTOM, TRUE, + G_CALLBACK(bottom_queue_cb), data); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Top Of Queue"), - GTK_STOCK_GOTO_TOP, TRUE, G_CALLBACK(top_queue_cb), data); + GTK_STOCK_GOTO_TOP, TRUE, + G_CALLBACK(top_queue_cb), data); gtk_menu_shell_append(GTK_MENU_SHELL(menu), - gtk_separator_menu_item_new()); + gtk_separator_menu_item_new()); } - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(TRG_MAIN_WINDOW(data), _("Down Limit"), - FIELD_DOWNLOAD_LIMITED, FIELD_DOWNLOAD_LIMIT, ids)); - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(TRG_MAIN_WINDOW(data), _("Up Limit"), - FIELD_UPLOAD_LIMITED, FIELD_UPLOAD_LIMIT, ids)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(TRG_MAIN_WINDOW(data), + _("Down Limit"), + FIELD_DOWNLOAD_LIMITED, + FIELD_DOWNLOAD_LIMIT, ids)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(TRG_MAIN_WINDOW(data), + _("Up Limit"), + FIELD_UPLOAD_LIMITED, + FIELD_UPLOAD_LIMIT, ids)); gtk_widget_show_all(menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, - (event != NULL) ? event->button : 0, - gdk_event_get_time((GdkEvent *) event)); - } + (event != NULL) ? event->button : 0, + gdk_event_get_time((GdkEvent *) event)); +} static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, - const gchar * msg) { + const gchar * msg) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); gboolean connected = trg_client_is_connected(priv->client); @@ -1863,13 +2082,15 @@ static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, gtk_menu_shell_append(GTK_MENU_SHELL(menu), priv->iconStatusItem); if (connected) { - priv->iconDownloadingItem = gtk_menu_item_new_with_label( - _("Updating...")); + priv->iconDownloadingItem = + gtk_menu_item_new_with_label(_("Updating...")); gtk_widget_set_visible(priv->iconDownloadingItem, FALSE); gtk_widget_set_sensitive(priv->iconDownloadingItem, FALSE); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), priv->iconDownloadingItem); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + priv->iconDownloadingItem); - priv->iconSeedingItem = gtk_menu_item_new_with_label(_("Updating...")); + priv->iconSeedingItem = + gtk_menu_item_new_with_label(_("Updating...")); gtk_widget_set_visible(priv->iconSeedingItem, FALSE); gtk_widget_set_sensitive(priv->iconSeedingItem, FALSE); gtk_menu_shell_append(GTK_MENU_SHELL(menu), priv->iconSeedingItem); @@ -1882,45 +2103,48 @@ static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, connect = gtk_image_menu_item_new_with_label(GTK_STOCK_CONNECT); gtk_image_menu_item_set_use_stock(GTK_IMAGE_MENU_ITEM(connect), TRUE); gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(connect), - TRUE); + TRUE); gtk_menu_item_set_label(GTK_MENU_ITEM(connect), _("Connect")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(connect), - trg_menu_bar_file_connect_menu_new(win, prefs)); + trg_menu_bar_file_connect_menu_new(win, + prefs)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), connect); if (connected) { trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Disconnect"), - GTK_STOCK_DISCONNECT, connected, G_CALLBACK(disconnect_cb), - win); + GTK_STOCK_DISCONNECT, connected, + G_CALLBACK(disconnect_cb), win); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add"), GTK_STOCK_ADD, - connected, G_CALLBACK(add_cb), win); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add"), + GTK_STOCK_ADD, connected, G_CALLBACK(add_cb), + win); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add from URL"), - GTK_STOCK_ADD, connected, G_CALLBACK(add_url_cb), win); + GTK_STOCK_ADD, connected, + G_CALLBACK(add_url_cb), win); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Resume All"), - GTK_STOCK_MEDIA_PLAY, connected, G_CALLBACK(resume_all_cb), - win); + GTK_STOCK_MEDIA_PLAY, connected, + G_CALLBACK(resume_all_cb), win); trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Pause All"), - GTK_STOCK_MEDIA_PAUSE, connected, G_CALLBACK(pause_all_cb), - win); - - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(win, _("Down Limit"), - SGET_SPEED_LIMIT_DOWN_ENABLED, SGET_SPEED_LIMIT_DOWN, - NULL)); - gtk_menu_shell_append( - GTK_MENU_SHELL(menu), - limit_menu_new(win, _("Up Limit"), SGET_SPEED_LIMIT_UP_ENABLED, - SGET_SPEED_LIMIT_UP, NULL)); + GTK_STOCK_MEDIA_PAUSE, connected, + G_CALLBACK(pause_all_cb), win); + + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(win, _("Down Limit"), + SGET_SPEED_LIMIT_DOWN_ENABLED, + SGET_SPEED_LIMIT_DOWN, NULL)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + limit_menu_new(win, _("Up Limit"), + SGET_SPEED_LIMIT_UP_ENABLED, + SGET_SPEED_LIMIT_UP, NULL)); } - gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new()); - trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Quit"), GTK_STOCK_QUIT, TRUE, - G_CALLBACK(quit_cb), win); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), + gtk_separator_menu_item_new()); + trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Quit"), GTK_STOCK_QUIT, + TRUE, G_CALLBACK(quit_cb), win); gtk_widget_show_all(menu); @@ -1928,7 +2152,9 @@ static GtkMenu *trg_status_icon_view_menu(TrgMainWindow * win, } static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, - GdkEventButton * event, gpointer userdata) { + GdkEventButton * event, + gpointer userdata) +{ GtkTreeSelection *selection; GtkTreePath *path; @@ -1936,7 +2162,8 @@ static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), - (gint) event->x, (gint) event->y, &path, NULL, NULL, NULL)) { + (gint) event->x, (gint) event->y, + &path, NULL, NULL, NULL)) { if (!gtk_tree_selection_path_is_selected(selection, path)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); @@ -1953,24 +2180,27 @@ static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview, } static gboolean torrent_tv_popup_menu_cb(GtkWidget * treeview, - gpointer userdata) { + gpointer userdata) +{ trg_torrent_tv_view_menu(treeview, NULL, userdata); return TRUE; } static gboolean window_state_event(GtkWidget * widget, - GdkEventWindowState * event, gpointer trayIcon) { + GdkEventWindowState * event, + gpointer trayIcon) +{ #ifndef HAVE_LIBAPPINDICATOR TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(widget); TrgPrefs *prefs = trg_client_get_prefs(priv->client); - if (priv->statusIcon && event->changed_mask == GDK_WINDOW_STATE_ICONIFIED - && (event->new_window_state == GDK_WINDOW_STATE_ICONIFIED - || event->new_window_state - == (GDK_WINDOW_STATE_ICONIFIED - | GDK_WINDOW_STATE_MAXIMIZED)) - && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, - TRG_PREFS_GLOBAL)) { + if (priv->statusIcon + && event->changed_mask == GDK_WINDOW_STATE_ICONIFIED + && (event->new_window_state == GDK_WINDOW_STATE_ICONIFIED + || event->new_window_state == + (GDK_WINDOW_STATE_ICONIFIED | GDK_WINDOW_STATE_MAXIMIZED)) + && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, + TRG_PREFS_GLOBAL)) { gtk_widget_hide(GTK_WIDGET(widget)); } @@ -1980,11 +2210,12 @@ static gboolean window_state_event(GtkWidget * widget, #endif } -void trg_main_window_remove_status_icon(TrgMainWindow * win) { +void trg_main_window_remove_status_icon(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); #ifdef HAVE_LIBAPPINDICATOR if (priv->appIndicator) - g_object_unref(G_OBJECT(priv->appIndicator)); + g_object_unref(G_OBJECT(priv->appIndicator)); priv->appIndicator = NULL; #else @@ -1997,13 +2228,16 @@ void trg_main_window_remove_status_icon(TrgMainWindow * win) { } #ifndef TRG_NO_GRAPH -void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) { +void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); - priv->graph = trg_torrent_graph_new(gtk_widget_get_style(priv->notebook)); - priv->graphNotebookIndex = gtk_notebook_append_page( - GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(priv->graph), - gtk_label_new(_("Graph"))); + priv->graph = + trg_torrent_graph_new(gtk_widget_get_style(priv->notebook)); + priv->graphNotebookIndex = + gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), + GTK_WIDGET(priv->graph), + gtk_label_new(_("Graph"))); if (show) gtk_widget_show_all(priv->notebook); @@ -2011,27 +2245,29 @@ void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) { trg_torrent_graph_start(priv->graph); } -void trg_main_window_remove_graph(TrgMainWindow * win) { +void trg_main_window_remove_graph(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); if (priv->graphNotebookIndex >= 0) { gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), - priv->graphNotebookIndex); + priv->graphNotebookIndex); priv->graphNotebookIndex = -1; } } #endif -void trg_main_window_add_status_icon(TrgMainWindow * win) { +void trg_main_window_add_status_icon(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); #ifdef HAVE_LIBAPPINDICATOR if ((priv->appIndicator = - app_indicator_new(PACKAGE_NAME, PACKAGE_NAME, - APP_INDICATOR_CATEGORY_APPLICATION_STATUS))) { + app_indicator_new(PACKAGE_NAME, PACKAGE_NAME, + APP_INDICATOR_CATEGORY_APPLICATION_STATUS))) { app_indicator_set_status(priv->appIndicator, - APP_INDICATOR_STATUS_ACTIVE); + APP_INDICATOR_STATUS_ACTIVE); app_indicator_set_menu(priv->appIndicator, - trg_status_icon_view_menu(win, NULL)); + trg_status_icon_view_menu(win, NULL)); } #else if (!priv->icon) @@ -2039,35 +2275,42 @@ void trg_main_window_add_status_icon(TrgMainWindow * win) { priv->statusIcon = gtk_status_icon_new_from_pixbuf(priv->icon); gtk_status_icon_set_screen(priv->statusIcon, - gtk_window_get_screen(GTK_WINDOW(win))); + gtk_window_get_screen(GTK_WINDOW(win))); g_signal_connect(priv->statusIcon, "activate", - G_CALLBACK(status_icon_activated), win); + G_CALLBACK(status_icon_activated), win); g_signal_connect(priv->statusIcon, "button-press-event", - G_CALLBACK(status_icon_button_press_event), win); + G_CALLBACK(status_icon_button_press_event), win); g_signal_connect(priv->statusIcon, "popup-menu", - G_CALLBACK(trg_status_icon_popup_menu_cb), win); + G_CALLBACK(trg_status_icon_popup_menu_cb), win); gtk_status_icon_set_visible(priv->statusIcon, TRUE); #endif - connchange_whatever_statusicon(win, trg_client_is_connected(priv->client)); + connchange_whatever_statusicon(win, + trg_client_is_connected(priv->client)); } -TrgStateSelector *trg_main_window_get_state_selector(TrgMainWindow * win) { +TrgStateSelector *trg_main_window_get_state_selector(TrgMainWindow * win) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); return priv->stateSelector; } static gboolean trg_main_window_config_event(GtkWidget * widget, - GdkEvent * event, gpointer user_data G_GNUC_UNUSED) { + GdkEvent * event, + gpointer user_data + G_GNUC_UNUSED) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(widget); priv->width = event->configure.width; priv->height = event->configure.height; return FALSE; } -static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, - gpointer data) { +static void trg_client_session_updated_cb(TrgClient * tc, + JsonObject * session, + gpointer data) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); gboolean queuesEnabled; @@ -2075,9 +2318,9 @@ static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, if (json_object_has_member(session, SGET_DOWNLOAD_QUEUE_ENABLED)) { queuesEnabled = json_object_get_boolean_member(session, - SGET_DOWNLOAD_QUEUE_ENABLED) - || json_object_get_boolean_member(session, - SGET_SEED_QUEUE_ENABLED); + SGET_DOWNLOAD_QUEUE_ENABLED) + || json_object_get_boolean_member(session, + SGET_SEED_QUEUE_ENABLED); } else { queuesEnabled = FALSE; } @@ -2085,7 +2328,7 @@ static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, if (priv->queuesEnabled != queuesEnabled) { trg_menu_bar_set_supports_queues(priv->menuBar, queuesEnabled); trg_state_selector_set_queues_enabled(priv->stateSelector, - queuesEnabled); + queuesEnabled); } priv->queuesEnabled = queuesEnabled; @@ -2094,17 +2337,19 @@ static void trg_client_session_updated_cb(TrgClient * tc, JsonObject * session, /* Drag & Drop support */ static GtkTargetEntry target_list[] = { /* datatype (string), restrictions on DnD (GtkTargetFlags), datatype (int) */ -{ "text/uri-list", GTK_TARGET_OTHER_APP | GTK_TARGET_OTHER_WIDGET, 0 } }; + {"text/uri-list", GTK_TARGET_OTHER_APP | GTK_TARGET_OTHER_WIDGET, 0} +}; static guint n_targets = G_N_ELEMENTS(target_list); static void on_dropped_file(GtkWidget * widget, GdkDragContext * context, - gint x, gint y, GtkSelectionData * data, guint info, guint time, - gpointer user_data) { + gint x, gint y, GtkSelectionData * data, + guint info, guint time, gpointer user_data) +{ TrgMainWindow *win = user_data; if ((gtk_selection_data_get_length(data) >= 0) - && (gtk_selection_data_get_format(data) == 8)) { + && (gtk_selection_data_get_format(data) == 8)) { if (gdk_drag_context_get_actions(context) == GDK_ACTION_MOVE) { gchar **uri_list = gtk_selection_data_get_uris(data); guint num_files = g_strv_length(uri_list); @@ -2112,7 +2357,8 @@ static void on_dropped_file(GtkWidget * widget, GdkDragContext * context, int i; for (i = 0; i < num_files; i++) - file_list[i] = g_filename_from_uri(uri_list[i], NULL, NULL); + file_list[i] = + g_filename_from_uri(uri_list[i], NULL, NULL); g_strfreev(uri_list); gtk_drag_finish(context, TRUE, FALSE, time); @@ -2124,7 +2370,10 @@ static void on_dropped_file(GtkWidget * widget, GdkDragContext * context, } static GObject *trg_main_window_constructor(GType type, - guint n_construct_properties, GObjectConstructParam * construct_params) { + guint n_construct_properties, + GObjectConstructParam * + construct_params) +{ TrgMainWindow *self; TrgMainWindowPrivate *priv; GtkWidget *w; @@ -2136,9 +2385,9 @@ static GObject *trg_main_window_constructor(GType type, TrgPrefs *prefs; self = TRG_MAIN_WINDOW(G_OBJECT_CLASS - (trg_main_window_parent_class)->constructor - (type, n_construct_properties, - construct_params)); + (trg_main_window_parent_class)->constructor + (type, n_construct_properties, + construct_params)); priv = TRG_MAIN_WINDOW_GET_PRIVATE(self); priv->queuesEnabled = TRUE; @@ -2148,7 +2397,8 @@ static GObject *trg_main_window_constructor(GType type, theme = gtk_icon_theme_get_default(); register_my_icons(theme); priv->icon = gtk_icon_theme_load_icon(theme, PACKAGE_NAME, 48, - GTK_ICON_LOOKUP_USE_BUILTIN, NULL); + GTK_ICON_LOOKUP_USE_BUILTIN, + NULL); #ifdef HAVE_LIBNOTIFY notify_init(PACKAGE_NAME); @@ -2159,69 +2409,72 @@ static GObject *trg_main_window_constructor(GType type, gtk_window_set_title(GTK_WINDOW(self), _("Transmission Remote")); gtk_window_set_default_size(GTK_WINDOW(self), 1000, 600); - g_signal_connect(G_OBJECT(self), "delete-event", G_CALLBACK(delete_event), - NULL); + g_signal_connect(G_OBJECT(self), "delete-event", + G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(self), "destroy", G_CALLBACK(destroy_window), - NULL); + NULL); g_signal_connect(G_OBJECT(self), "window-state-event", - G_CALLBACK(window_state_event), NULL); + G_CALLBACK(window_state_event), NULL); g_signal_connect(G_OBJECT(self), "configure-event", - G_CALLBACK(trg_main_window_config_event), NULL); + G_CALLBACK(trg_main_window_config_event), NULL); priv->torrentModel = trg_torrent_model_new(); trg_client_set_torrent_table(priv->client, - get_torrent_table(priv->torrentModel)); + get_torrent_table(priv->torrentModel)); g_signal_connect(priv->torrentModel, "torrent-completed", - G_CALLBACK(on_torrent_completed), self); + G_CALLBACK(on_torrent_completed), self); g_signal_connect(priv->torrentModel, "torrent-added", - G_CALLBACK(on_torrent_added), self); + G_CALLBACK(on_torrent_added), self); - priv->sortedTorrentModel = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL - (priv->torrentModel)); + priv->sortedTorrentModel = + gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL + (priv->torrentModel)); - priv->filteredTorrentModel = trg_sortable_filtered_model_new( - GTK_TREE_SORTABLE - (priv->sortedTorrentModel), NULL); + priv->filteredTorrentModel = + trg_sortable_filtered_model_new(GTK_TREE_SORTABLE + (priv->sortedTorrentModel), NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER - (priv->filteredTorrentModel), trg_torrent_tree_view_visible_func, - self, NULL); + (priv->filteredTorrentModel), + trg_torrent_tree_view_visible_func, + self, NULL); priv->torrentTreeView = trg_main_window_torrent_tree_view_new(self, - priv->filteredTorrentModel); + priv-> + filteredTorrentModel); g_signal_connect(priv->torrentTreeView, "popup-menu", - G_CALLBACK(torrent_tv_popup_menu_cb), self); + G_CALLBACK(torrent_tv_popup_menu_cb), self); g_signal_connect(priv->torrentTreeView, "button-press-event", - G_CALLBACK(torrent_tv_button_pressed_cb), self); + G_CALLBACK(torrent_tv_button_pressed_cb), self); g_signal_connect(priv->torrentTreeView, "row-activated", - G_CALLBACK(torrent_tv_onRowActivated), self); + G_CALLBACK(torrent_tv_onRowActivated), self); outerVbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(self), outerVbox); priv->menuBar = trg_main_window_menu_bar_new(self); - gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->menuBar), FALSE, - FALSE, 0); + gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->menuBar), + FALSE, FALSE, 0); toolbarHbox = gtk_hbox_new(FALSE, 0); priv->toolBar = trg_main_window_toolbar_new(self); - gtk_box_pack_start(GTK_BOX(toolbarHbox), GTK_WIDGET(priv->toolBar), TRUE, - TRUE, 0); + gtk_box_pack_start(GTK_BOX(toolbarHbox), GTK_WIDGET(priv->toolBar), + TRUE, TRUE, 0); w = gtk_entry_new(); gtk_entry_set_icon_from_stock(GTK_ENTRY(w), GTK_ENTRY_ICON_SECONDARY, - GTK_STOCK_CLEAR); + GTK_STOCK_CLEAR); g_signal_connect(w, "icon-release", G_CALLBACK(clear_filter_entry_cb), - NULL); + NULL); gtk_box_pack_start(GTK_BOX(toolbarHbox), w, FALSE, FALSE, 0); g_object_set(w, "secondary-icon-sensitive", FALSE, NULL); priv->filterEntry = w; g_signal_connect(G_OBJECT(priv->filterEntry), "changed", - G_CALLBACK(entry_filter_changed_cb), self); + G_CALLBACK(entry_filter_changed_cb), self); gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(toolbarHbox), FALSE, - FALSE, 0); + FALSE, 0); priv->vpaned = gtk_vpaned_new(); priv->hpaned = gtk_hpaned_new(); @@ -2229,24 +2482,27 @@ static GObject *trg_main_window_constructor(GType type, gtk_paned_pack1(GTK_PANED(priv->vpaned), priv->hpaned, TRUE, TRUE); priv->stateSelector = trg_state_selector_new(priv->client, - priv->torrentModel); - priv->stateSelectorScroller = my_scrolledwin_new( - GTK_WIDGET(priv->stateSelector)); - gtk_paned_pack1(GTK_PANED(priv->hpaned), priv->stateSelectorScroller, FALSE, - FALSE); + priv->torrentModel); + priv->stateSelectorScroller = + my_scrolledwin_new(GTK_WIDGET(priv->stateSelector)); + gtk_paned_pack1(GTK_PANED(priv->hpaned), priv->stateSelectorScroller, + FALSE, FALSE); gtk_paned_pack2(GTK_PANED(priv->hpaned), my_scrolledwin_new(GTK_WIDGET - (priv->torrentTreeView)), TRUE, TRUE); + (priv-> + torrentTreeView)), + TRUE, TRUE); - g_signal_connect(G_OBJECT(priv->stateSelector), "torrent-state-changed", - G_CALLBACK(torrent_state_selection_changed), - priv->filteredTorrentModel); + g_signal_connect(G_OBJECT(priv->stateSelector), + "torrent-state-changed", + G_CALLBACK(torrent_state_selection_changed), + priv->filteredTorrentModel); priv->notebook = trg_main_window_notebook_new(self); gtk_paned_pack2(GTK_PANED(priv->vpaned), priv->notebook, FALSE, FALSE); tray = trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (tray) trg_main_window_add_status_icon(self); else @@ -2254,18 +2510,18 @@ static GObject *trg_main_window_constructor(GType type, priv->statusBar = trg_status_bar_new(self, priv->client); g_signal_connect(priv->client, "session-updated", - G_CALLBACK(trg_client_session_updated_cb), self); + G_CALLBACK(trg_client_session_updated_cb), self); - gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->statusBar), FALSE, - FALSE, 2); + gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->statusBar), + FALSE, FALSE, 2); width = trg_prefs_get_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); height = trg_prefs_get_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); pos = trg_prefs_get_int(prefs, TRG_PREFS_KEY_NOTEBOOK_PANED_POS, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (width > 0 && height > 0) gtk_window_set_default_size(GTK_WINDOW(self), width, height); @@ -2277,17 +2533,17 @@ static GObject *trg_main_window_constructor(GType type, gtk_widget_show_all(GTK_WIDGET(self)); - trg_widget_set_visible( - priv->stateSelectorScroller, - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_STATE_SELECTOR, - TRG_PREFS_GLOBAL)); - trg_widget_set_visible( - priv->notebook, - trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_NOTEBOOK, - TRG_PREFS_GLOBAL)); + trg_widget_set_visible(priv->stateSelectorScroller, + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_SHOW_STATE_SELECTOR, + TRG_PREFS_GLOBAL)); + trg_widget_set_visible(priv->notebook, + trg_prefs_get_bool(prefs, + TRG_PREFS_KEY_SHOW_NOTEBOOK, + TRG_PREFS_GLOBAL)); pos = trg_prefs_get_int(prefs, TRG_PREFS_KEY_STATES_PANED_POS, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL); if (pos > 0) gtk_paned_set_position(GTK_PANED(priv->hpaned), pos); @@ -2296,20 +2552,21 @@ static GObject *trg_main_window_constructor(GType type, /* Drag and Drop */ gtk_drag_dest_set(GTK_WIDGET(self), // widget that will accept a drop - GTK_DEST_DEFAULT_ALL, // default actions for dest on DnD - target_list, // lists of target to support - n_targets, // size of list - GDK_ACTION_MOVE // what to do with data after dropped - // | GDK_ACTION_COPY ... seems that file managers only need ACTION_MOVE, not ACTION_COPY - ); + GTK_DEST_DEFAULT_ALL, // default actions for dest on DnD + target_list, // lists of target to support + n_targets, // size of list + GDK_ACTION_MOVE // what to do with data after dropped + // | GDK_ACTION_COPY ... seems that file managers only need ACTION_MOVE, not ACTION_COPY + ); //g_signal_connect (priv->torrentTreeView, "drag-motion",G_CALLBACK (drag_motion_handl), NULL); - g_signal_connect(self, "drag-data-received", G_CALLBACK(on_dropped_file), - self); + g_signal_connect(self, "drag-data-received", + G_CALLBACK(on_dropped_file), self); return G_OBJECT(self); } -static void trg_main_window_class_init(TrgMainWindowClass * klass) { +static void trg_main_window_class_init(TrgMainWindowClass * klass) +{ GObjectClass *object_class = G_OBJECT_CLASS(klass); g_type_class_add_private(klass, sizeof(TrgMainWindowPrivate)); @@ -2318,42 +2575,51 @@ static void trg_main_window_class_init(TrgMainWindowClass * klass) { object_class->get_property = trg_main_window_get_property; object_class->set_property = trg_main_window_set_property; - g_object_class_install_property( - object_class, - PROP_CLIENT, - g_param_spec_pointer( - "trg-client", - "TClient", - "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_MINIMISE_ON_START, - g_param_spec_boolean( - "min-on-start", - "Min On Start", - "Min On Start", - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY - | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK - | G_PARAM_STATIC_BLURB)); -} - -void auto_connect_if_required(TrgMainWindow * win, gchar ** args) { + g_object_class_install_property(object_class, + PROP_CLIENT, + g_param_spec_pointer("trg-client", + "TClient", + "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_MINIMISE_ON_START, + g_param_spec_boolean("min-on-start", + "Min On Start", + "Min On Start", + FALSE, + G_PARAM_READWRITE + | + G_PARAM_CONSTRUCT_ONLY + | + G_PARAM_STATIC_NAME + | + G_PARAM_STATIC_NICK + | + G_PARAM_STATIC_BLURB)); +} + +void auto_connect_if_required(TrgMainWindow * win, gchar ** args) +{ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); gchar *host = trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME, - TRG_PREFS_PROFILE); + TRG_PREFS_PROFILE); if (host) { gint len = strlen(host); g_free(host); if (len > 0 - && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_AUTO_CONNECT, - TRG_PREFS_PROFILE)) { + && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_AUTO_CONNECT, + TRG_PREFS_PROFILE)) { priv->args = args; connect_cb(NULL, win); return; @@ -2364,7 +2630,8 @@ void auto_connect_if_required(TrgMainWindow * win, gchar ** args) { g_strfreev(args); } -TrgMainWindow *trg_main_window_new(TrgClient * tc, gboolean minonstart) { - return g_object_new(TRG_TYPE_MAIN_WINDOW, "trg-client", tc, "min-on-start", - minonstart, NULL); +TrgMainWindow *trg_main_window_new(TrgClient * tc, gboolean minonstart) +{ + return g_object_new(TRG_TYPE_MAIN_WINDOW, "trg-client", tc, + "min-on-start", minonstart, NULL); } diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c index 89ea325..4c774ec 100644 --- a/src/trg-preferences-dialog.c +++ b/src/trg-preferences-dialog.c @@ -385,7 +385,8 @@ static void trgp_double_special_dependent(GtkWidget * widget, (priv->fullUpdateCheck) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (priv->fullUpdateCheck))); + (priv-> + fullUpdateCheck))); } static GtkWidget *trg_prefs_generalPage(TrgPreferencesDialog * dlg) diff --git a/src/trg-remote-prefs-dialog.c b/src/trg-remote-prefs-dialog.c index 8c921e4..8f866ea 100644 --- a/src/trg-remote-prefs-dialog.c +++ b/src/trg-remote-prefs-dialog.c @@ -159,10 +159,12 @@ static void trg_remote_prefs_double_special_dependent(GtkWidget * widget, gtk_widget_set_sensitive(GTK_WIDGET(data), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (priv->alt_time_check)) + (priv-> + alt_time_check)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON - (priv->alt_check))); + (priv-> + alt_check))); } static void trg_rprefs_time_widget_savefunc(GtkWidget * w, diff --git a/src/trg-status-bar.c b/src/trg-status-bar.c index 0ec8272..3ac4792 100644 --- a/src/trg-status-bar.c +++ b/src/trg-status-bar.c @@ -170,8 +170,8 @@ void trg_status_bar_session_update(TrgStatusBar * sb, JsonObject * session) } void trg_status_bar_update_speed(TrgStatusBar * sb, - trg_torrent_model_update_stats * stats, - TrgClient * client) + trg_torrent_model_update_stats * stats, + TrgClient * client) { TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); JsonObject *session = trg_client_get_session(client); diff --git a/src/trg-status-bar.h b/src/trg-status-bar.h index bbbdf19..876330d 100644 --- a/src/trg-status-bar.h +++ b/src/trg-status-bar.h @@ -62,6 +62,6 @@ void trg_status_bar_reset(TrgStatusBar * sb); void trg_status_bar_clear_indicators(TrgStatusBar * sb); const gchar *trg_status_bar_get_speed_text(TrgStatusBar * s); void trg_status_bar_update_speed(TrgStatusBar * sb, - trg_torrent_model_update_stats * stats, - TrgClient * client); + trg_torrent_model_update_stats * stats, + TrgClient * client); #endif /* TRG_STATUS_BAR_H_ */ diff --git a/src/trg-torrent-props-dialog.c b/src/trg-torrent-props-dialog.c index 89e5102..05ebaa8 100644 --- a/src/trg-torrent-props-dialog.c +++ b/src/trg-torrent-props-dialog.c @@ -137,12 +137,10 @@ trg_torrent_props_response_cb(GtkDialog * dlg, gint res_id, json_object_set_int_member(args, FIELD_SEED_RATIO_MODE, gtk_combo_box_get_active(GTK_COMBO_BOX - (priv-> - seedRatioMode))); + (priv->seedRatioMode))); json_object_set_int_member(args, FIELD_BANDWIDTH_PRIORITY, gtk_combo_box_get_active(GTK_COMBO_BOX - (priv-> - bandwidthPriorityCombo)) + (priv->bandwidthPriorityCombo)) - 1); trg_json_widgets_save(priv->widgets, args); diff --git a/src/trg-tree-view.c b/src/trg-tree-view.c index 54c5cf5..4265c7d 100644 --- a/src/trg-tree-view.c +++ b/src/trg-tree-view.c @@ -313,7 +313,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "text", - desc->model_column, + desc-> + model_column, NULL); break; @@ -322,7 +323,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "speed-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_EPOCH: @@ -330,7 +332,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "epoch-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_ETA: @@ -338,7 +341,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "eta-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_SIZE: @@ -346,7 +350,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "size-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_PROG: @@ -354,7 +359,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_RATIO: @@ -362,7 +368,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "ratio-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_WANTED: @@ -387,7 +394,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "priority-value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_NUMGTZERO: @@ -395,7 +403,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", - desc->model_column, + desc-> + model_column, NULL); break; case TRG_COLTYPE_NUMGTEQZERO: @@ -403,7 +412,8 @@ static void trg_tree_view_add_column_after(TrgTreeView * tv, column = gtk_tree_view_column_new_with_attributes(desc->header, renderer, "value", - desc->model_column, + desc-> + model_column, NULL); break; } @@ -557,7 +567,8 @@ void trg_tree_view_setup_columns(TrgTreeView * tv) json_node_get_string ((JsonNode *) - cli->data)); + cli-> + data)); if (desc) { gint64 width = json_node_get_int((JsonNode *) wli->data); trg_tree_view_add_column(tv, desc, width); -- cgit v1.2.3