summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/trg-client.c30
-rw-r--r--src/trg-client.h13
-rw-r--r--src/trg-main-window.c1213
-rw-r--r--src/trg-preferences-dialog.c12
-rw-r--r--src/trg-prefs.c3
-rw-r--r--src/trg-prefs.h2
6 files changed, 537 insertions, 736 deletions
diff --git a/src/trg-client.c b/src/trg-client.c
index 5de32a9..0d4b069 100644
--- a/src/trg-client.c
+++ b/src/trg-client.c
@@ -52,8 +52,9 @@ typedef struct _TrgClientPrivate TrgClientPrivate;
struct _TrgClientPrivate {
char *session_id;
gboolean activeOnlyUpdate;
- gint failCount;
- gint interval;
+ guint failCount;
+ guint interval;
+ guint min_interval;
gint64 updateSerial;
JsonObject *session;
gboolean ssl;
@@ -208,6 +209,11 @@ int trg_client_populate_with_settings(TrgClient * tc)
if (priv->interval < 1)
priv->interval = TRG_INTERVAL_DEFAULT;
+ priv->min_interval =
+ trg_prefs_get_int(prefs, TRG_PREFS_KEY_MINUPDATE_INTERVAL, TRG_PREFS_PROFILE);
+ if (priv->interval < 1)
+ priv->interval = TRG_INTERVAL_DEFAULT;
+
priv->username =
trg_prefs_get_string(prefs, TRG_PREFS_KEY_USERNAME, TRG_PREFS_PROFILE);
@@ -338,13 +344,13 @@ void trg_client_updatelock(TrgClient *tc)
g_mutex_lock(priv->updateMutex);
}
-gint trg_client_get_failcount(TrgClient *tc)
+guint trg_client_get_failcount(TrgClient *tc)
{
TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
return priv->failCount;
}
-gint trg_client_inc_failcount(TrgClient *tc)
+guint trg_client_inc_failcount(TrgClient *tc)
{
TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
return ++(priv->failCount);
@@ -374,14 +380,26 @@ void trg_client_set_activeonlyupdate(TrgClient *tc, gboolean activeOnlyUpdate)
priv->activeOnlyUpdate = activeOnlyUpdate;
}
-gint trg_client_get_interval(TrgClient *tc)
+guint trg_client_get_minimised_interval(TrgClient *tc)
+{
+ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
+ return priv->min_interval;
+}
+
+guint trg_client_get_interval(TrgClient *tc)
{
TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
return priv->interval;
}
-void trg_client_set_interval(TrgClient *tc, gint interval)
+void trg_client_set_interval(TrgClient *tc, guint interval)
{
TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
priv->interval = interval;
}
+
+void trg_client_set_minimised_interval(TrgClient *tc, guint interval)
+{
+ TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc);
+ priv->min_interval = interval;
+}
diff --git a/src/trg-client.h b/src/trg-client.h
index bd21a2e..e531d4c 100644
--- a/src/trg-client.h
+++ b/src/trg-client.h
@@ -91,16 +91,15 @@ gboolean trg_client_get_activeonlyupdate(TrgClient *tc);
gboolean trg_client_is_connected(TrgClient *tc);
void trg_client_updateunlock(TrgClient *tc);
void trg_client_updatelock(TrgClient *tc);
-gint trg_client_inc_failcount(TrgClient *tc);
-gint trg_client_get_failcount(TrgClient *tc);
+guint trg_client_inc_failcount(TrgClient *tc);
+guint trg_client_get_failcount(TrgClient *tc);
void trg_client_reset_failcount(TrgClient *tc);
void trg_client_inc_serial(TrgClient *tc);
-gint trg_client_get_interval(TrgClient *tc);
-void trg_client_set_interval(TrgClient *tc, gint interval);
+guint trg_client_get_interval(TrgClient *tc);
+guint trg_client_get_minimised_interval(TrgClient *tc);
+void trg_client_set_interval(TrgClient *tc, guint interval);
+void trg_client_set_minimised_interval(TrgClient *tc, guint interval);
void trg_client_set_activeonlyupdate(TrgClient *tc, gboolean activeOnlyUpdate);
-void trg_client_set_connid(TrgClient *tc, gint connid);
-gint trg_client_get_connid(TrgClient *tc);
-gint trg_client_new_profile(TrgClient *tc);
G_END_DECLS
diff --git a/src/trg-main-window.c b/src/trg-main-window.c
index 7f63866..87a7cda 100644
--- a/src/trg-main-window.c
+++ b/src/trg-main-window.c
@@ -69,23 +69,19 @@
#include "trg-remote-prefs-dialog.h"
#include "trg-preferences-dialog.h"
-static void update_selected_torrent_notebook(TrgMainWindow * win,
- gint mode, gint64 id);
-static void torrent_event_notification(TrgTorrentModel * model,
- gchar * icon, gchar * desc,
- gint tmout, gchar * prefKey,
- GtkTreeIter * iter, gpointer data);
-static void on_torrent_completed(TrgTorrentModel * model,
- GtkTreeIter * iter, gpointer data);
+static void update_selected_torrent_notebook(TrgMainWindow * win, gint mode,
+ gint64 id);
+static void torrent_event_notification(TrgTorrentModel * model, gchar * icon,
+ gchar * desc, gint tmout, gchar * prefKey, GtkTreeIter * iter,
+ gpointer data);
+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);
@@ -104,92 +100,75 @@ 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);
+ GtkTreeSelection * selection, gchar * question_single,
+ gchar * question_multi, gchar * action_stock);
static GtkWidget *my_scrolledwin_new(GtkWidget * child);
static void view_stats_toggled_cb(GtkWidget * w, gpointer data);
static void trg_widget_set_visible(GtkWidget * w, gboolean visible);
static void view_states_toggled_cb(GtkCheckMenuItem * w, gpointer data);
static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data);
static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win);
-static void on_session_get(JsonObject * response, int status,
- gpointer data);
-static void on_torrent_get(JsonObject * response,
- int mode, int status, gpointer data);
+static void on_session_get(JsonObject * response, int status, gpointer data);
+static void on_torrent_get(JsonObject * response, int mode, int status,
+ gpointer data);
static void on_torrent_get_first(JsonObject * response, int status,
- gpointer data);
+ gpointer data);
static void on_torrent_get_active(JsonObject * response, int status,
- gpointer data);
+ gpointer data);
static void on_torrent_get_update(JsonObject * response, int status,
- gpointer data);
+ gpointer data);
static void on_torrent_get_interactive(JsonObject * response, int status,
- gpointer data);
+ 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);
+ GtkTreeIter * iter, gpointer data);
static TrgTorrentTreeView
- * trg_main_window_torrent_tree_view_new(TrgMainWindow * win,
- GtkTreeModel * model);
+* trg_main_window_torrent_tree_view_new(TrgMainWindow * win,
+ GtkTreeModel * model);
static gboolean trg_dialog_error_handler(TrgMainWindow * win,
- JsonObject * response,
- int status);
+ JsonObject * response, int status);
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);
static void status_icon_activated(GtkStatusIcon * icon, gpointer data);
static void clear_filter_entry_cb(GtkWidget * w, gpointer data);
-static gboolean torrent_tv_key_press_event(GtkWidget * w,
- GdkEventKey * key,
- gpointer data);
+static gboolean torrent_tv_key_press_event(GtkWidget * w, GdkEventKey * key,
+ gpointer data);
static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, char *text,
- char *stock_id, gboolean sensitive,
- GCallback cb, gpointer cbdata);
+ 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 void trg_status_icon_view_menu(GtkStatusIcon * icon,
- GdkEventButton * event,
- gpointer data);
+ GdkEventButton * event, 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);
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);
-static void status_bar_text_pushed(GtkStatusbar * statusbar,
- guint context_id, gchar * text,
- gpointer user_data);
+ gpointer userdata);
+static void status_bar_text_pushed(GtkStatusbar * statusbar, guint context_id,
+ gchar * text, gpointer user_data);
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) \
@@ -232,44 +211,40 @@ struct _TrgMainWindowPrivate {
};
enum {
- PROP_0,
- PROP_CLIENT
+ PROP_0, PROP_CLIENT
};
-static void trg_main_window_init(TrgMainWindow * self G_GNUC_UNUSED)
-{
+static void trg_main_window_init(TrgMainWindow * self G_GNUC_UNUSED) {
}
-GtkTreeModel *trg_main_window_get_torrent_model(TrgMainWindow * win)
-{
+GtkTreeModel *trg_main_window_get_torrent_model(TrgMainWindow * win) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win);
return GTK_TREE_MODEL(priv->torrentModel);
}
-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)) {
+ if (id >= 0 && 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_peers_model_update(priv->peersModel, 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_client_get_serial(client),
+ t, mode);
} else if (id < 0) {
trg_main_window_torrent_scrub(win);
trg_toolbar_torrent_actions_sensitive(priv->toolBar, FALSE);
@@ -279,31 +254,28 @@ static void update_selected_torrent_notebook(TrgMainWindow * win,
priv->selectedTorrentId = id;
}
-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;
NotifyNotification *notify;
- if (!priv->statusIcon
- || !gtk_status_icon_is_embedded(priv->statusIcon))
+ if (!priv->statusIcon || !gtk_status_icon_is_embedded(priv->statusIcon))
return;
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
- );
+ );
#if !defined(NOTIFY_VERSION_MINOR) || (NOTIFY_VERSION_MAJOR == 0 && NOTIFY_VERSION_MINOR < 7)
notify_notification_attach_to_status_icon(notify, priv->statusIcon);
@@ -317,48 +289,40 @@ static void torrent_event_notification(TrgTorrentModel * model,
notify_notification_show(notify, NULL);
}
-static void on_torrent_completed(TrgTorrentModel * model,
- GtkTreeIter * iter, gpointer data)
-{
+static void on_torrent_completed(TrgTorrentModel * model, GtkTreeIter * iter,
+ gpointer data) {
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);
}
-static void on_torrent_addremove(TrgTorrentModel * model, gpointer data)
-{
+static void on_torrent_addremove(TrgTorrentModel * model, gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
trg_state_selector_update(priv->stateSelector);
}
-static void on_torrent_added(TrgTorrentModel * model,
- GtkTreeIter * iter, gpointer data)
-{
+static void on_torrent_added(TrgTorrentModel * model, GtkTreeIter * iter,
+ gpointer data) {
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);
}
-static gboolean delete_event(GtkWidget * w,
- GdkEvent * event G_GNUC_UNUSED,
- gpointer data G_GNUC_UNUSED)
-{
+static gboolean delete_event(GtkWidget * w, GdkEvent * event 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);
int width, height;
gtk_window_get_size(GTK_WINDOW(w), &width, &height);
- trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT,
- height, TRG_PREFS_GLOBAL);
- trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH,
- width, TRG_PREFS_GLOBAL);
+ trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT, height,
+ TRG_PREFS_GLOBAL);
+ trg_prefs_set_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH, width,
+ TRG_PREFS_GLOBAL);
trg_tree_view_persist(TRG_TREE_VIEW(priv->peersTreeView));
trg_tree_view_persist(TRG_TREE_VIEW(priv->filesTreeView));
trg_tree_view_persist(TRG_TREE_VIEW(priv->torrentTreeView));
@@ -368,64 +332,50 @@ 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 =
- trg_torrent_props_dialog_new(GTK_WINDOW(data),
- priv->torrentTreeView,
- priv->client);
+ TrgTorrentPropsDialog *dialog = trg_torrent_props_dialog_new(
+ GTK_WINDOW(data), 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)
-{
+static void torrent_tv_onRowActivated(GtkTreeView * treeview,
+ 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);
+ TrgTorrentAddUrlDialog *dlg = trg_torrent_add_url_dialog_new(win,
+ 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);
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);
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);
- dispatch_async(priv->client,
- torrent_pause(NULL),
- on_generic_interactive_action, data);
+ dispatch_async(priv->client, torrent_pause(NULL),
+ 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);
@@ -435,16 +385,17 @@ gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris)
for (i = 0; uris[i]; i++)
filesList = g_slist_append(filesList, uris[i]);
- if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, TRG_PREFS_GLOBAL)) {
+ if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_ADD_OPTIONS_DIALOG,
+ TRG_PREFS_GLOBAL)) {
gdk_threads_enter();
- TrgTorrentAddDialog *dialog =
- trg_torrent_add_dialog_new(win, client, filesList);
+ TrgTorrentAddDialog *dialog = trg_torrent_add_dialog_new(win, client,
+ filesList);
gtk_widget_show_all(GTK_WIDGET(dialog));
gdk_threads_leave();
} 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;
@@ -459,42 +410,35 @@ gboolean trg_add_from_filename(TrgMainWindow * win, gchar ** uris)
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);
- dispatch_async(priv->client,
- torrent_start(NULL),
- on_generic_interactive_action, data);
+ dispatch_async(priv->client, torrent_start(NULL),
+ 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);
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_main_window_conn_changed(TRG_MAIN_WINDOW(data), FALSE);
trg_status_bar_push_connection_msg(priv->statusBar, "Disconnected.");
}
-static void connect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data)
-{
+static void connect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data) {
TrgMainWindowPrivate *priv;
GtkWidget *dialog;
int populate_result;
priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
- populate_result =
- trg_client_populate_with_settings(priv->client);
+ populate_result = trg_client_populate_with_settings(priv->client);
if (populate_result < 0) {
gchar *msg;
@@ -508,66 +452,51 @@ static void connect_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data)
break;
}
- dialog =
- gtk_message_dialog_new(GTK_WINDOW(data),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK, "%s", msg);
+ dialog = gtk_message_dialog_new(GTK_WINDOW(data),
+ GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK, "%s", msg);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
return;
}
- trg_status_bar_push_connection_msg(priv->statusBar,
- _("Connecting..."));
+ trg_status_bar_push_connection_msg(priv->statusBar, _("Connecting..."));
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);
- TrgRemotePrefsDialog *dlg =
- trg_remote_prefs_dialog_get_instance(TRG_MAIN_WINDOW(data),
- priv->client);
+ TrgRemotePrefsDialog *dlg = trg_remote_prefs_dialog_get_instance(
+ TRG_MAIN_WINDOW(data), priv->client);
gtk_widget_show_all(GTK_WIDGET(dlg));
}
-static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * win)
-{
+static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * win) {
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();
- 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_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);
@@ -575,39 +504,32 @@ static TrgToolbar *trg_main_window_toolbar_new(TrgMainWindow * 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_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);
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);
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 gint confirm_action_dialog(GtkWindow * win,
- GtkTreeSelection * selection,
- gchar * question_single,
- gchar * question_multi,
- gchar * action_stock)
-{
+ GtkTreeSelection * selection, gchar * question_single,
+ gchar * question_multi, gchar * action_stock) {
TrgMainWindowPrivate *priv;
gint selectCount;
gint response;
@@ -627,123 +549,98 @@ static gint confirm_action_dialog(GtkWindow * win,
firstNode = g_list_first(list);
gtk_tree_model_get_iter(GTK_TREE_MODEL
- (priv->sortedTorrentModel),
- &firstIter, firstNode->data);
+ (priv->sortedTorrentModel), &firstIter, firstNode->data);
gtk_tree_model_get(GTK_TREE_MODEL
- (priv->sortedTorrentModel),
- &firstIter, TORRENT_COLUMN_NAME, &name, -1);
+ (priv->sortedTorrentModel), &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);
+ dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(win),
+ 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);
+ dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(win),
+ 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_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_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 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);
- TrgTorrentMoveDialog *dlg =
- trg_torrent_move_dialog_new(TRG_MAIN_WINDOW(data), priv->client,
- priv->torrentTreeView);
+ TrgTorrentMoveDialog *dlg = trg_torrent_move_dialog_new(
+ TRG_MAIN_WINDOW(data), priv->client, priv->torrentTreeView);
gtk_widget_show_all(GTK_WIDGET(dlg));
}
-static void remove_cb(GtkWidget * w G_GNUC_UNUSED, gpointer data)
-{
+static void remove_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 (confirm_action_dialog
- (GTK_WINDOW(data), selection,
- _("<big><b>Remove torrent \"%s\"?</b></big>"),
- _("<big><b>Remove %d torrents?</b></big>"),
- GTK_STOCK_REMOVE) == GTK_RESPONSE_ACCEPT)
- dispatch_async(priv->client,
- torrent_remove(ids,
- FALSE),
- on_generic_interactive_action, data);
+ if (confirm_action_dialog(GTK_WINDOW(data), selection,
+ _("<big><b>Remove torrent \"%s\"?</b></big>"),
+ _("<big><b>Remove %d torrents?</b></big>"), GTK_STOCK_REMOVE)
+ == GTK_RESPONSE_ACCEPT)
+ dispatch_async(priv->client, torrent_remove(ids, FALSE),
+ 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 (confirm_action_dialog
- (GTK_WINDOW(data), selection,
- _("<big><b>Remove and delete torrent \"%s\"?</b></big>"),
- _("<big><b>Remove and delete %d torrents?</b></big>"),
- GTK_STOCK_DELETE) == GTK_RESPONSE_ACCEPT)
- dispatch_async(priv->client,
- torrent_remove(ids,
- TRUE),
- on_generic_interactive_action, data);
+ if (confirm_action_dialog(GTK_WINDOW(data), selection,
+ _("<big><b>Remove and delete torrent \"%s\"?</b></big>"),
+ _("<big><b>Remove and delete %d torrents?</b></big>"),
+ GTK_STOCK_DELETE) == GTK_RESPONSE_ACCEPT)
+ dispatch_async(priv->client, torrent_remove(ids, TRUE),
+ on_generic_interactive_action, data);
else
json_array_unref(ids);
}
-static
-GtkWidget *my_scrolledwin_new(GtkWidget * child)
-{
+static GtkWidget *my_scrolledwin_new(GtkWidget * child) {
GtkWidget *scrolled_win = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(scrolled_win), child);
return scrolled_win;
}
-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));
}
@@ -751,31 +648,25 @@ static void view_stats_toggled_cb(GtkWidget * w, gpointer data)
/* gtk_widget_set_sensitive() was introduced in 2.18, we can have a minimum of
* 2.16 otherwise. */
-static void trg_widget_set_visible(GtkWidget * w, gboolean visible)
-{
+static void trg_widget_set_visible(GtkWidget * w, gboolean visible) {
if (visible)
gtk_widget_show(w);
else
gtk_widget_hide(w);
}
-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));
}
-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);
@@ -783,34 +674,30 @@ GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win)
gtk_widget_set_size_request(notebook, -1, 185);
- priv->genDetails =
- trg_general_panel_new(GTK_TREE_MODEL(priv->torrentModel));
+ priv->genDetails
+ = trg_general_panel_new(GTK_TREE_MODEL(priv->torrentModel));
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
- GTK_WIDGET(priv->genDetails),
- gtk_label_new(_("General")));
+ GTK_WIDGET(priv->genDetails), 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->filesTreeView = trg_files_tree_view_new(priv->filesModel, win,
+ 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")));
if (trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SHOW_GRAPH, TRG_PREFS_GLOBAL))
trg_main_window_add_graph(win, FALSE);
@@ -820,8 +707,7 @@ GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win)
return notebook;
}
-void on_session_set(JsonObject * response, int status, gpointer data)
-{
+void on_session_set(JsonObject * response, int status, gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
if (status == CURLE_OK || status == FAIL_RESPONSE_UNSUCCESSFUL)
@@ -834,9 +720,7 @@ void on_session_set(JsonObject * response, int status, gpointer data)
response_unref(response);
}
-static void on_session_get(JsonObject * response, int status,
- gpointer data)
-{
+static void on_session_get(JsonObject * response, int status, gpointer data) {
TrgMainWindow *win = TRG_MAIN_WINDOW(data);
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
TrgClient *client = priv->client;
@@ -856,15 +740,15 @@ static void on_session_get(JsonObject * response, int status,
float version;
if (session_get_version(newSession, &version)) {
if (version < TRANSMISSION_MIN_SUPPORTED) {
- gchar *msg =
- g_strdup_printf(_
- ("This application supports Transmission %.2f and later, you have %.2f."),
-TRANSMISSION_MIN_SUPPORTED, version);
+ gchar
+ *msg =
+ 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);
@@ -875,16 +759,14 @@ TRANSMISSION_MIN_SUPPORTED, version);
trg_status_bar_connect(priv->statusBar, newSession);
trg_main_window_conn_changed(win, TRUE);
- dispatch_async(client, torrent_get(-1), on_torrent_get_first,
- data);
+ dispatch_async(client, torrent_get(-1), on_torrent_get_first, data);
}
trg_client_set_session(client, newSession);
trg_trackers_tree_view_new_connection(priv->trackersTreeView, client);
json_object_ref(newSession);
- out:
- gdk_threads_leave();
+ out: gdk_threads_leave();
response_unref(response);
}
@@ -892,14 +774,17 @@ TRANSMISSION_MIN_SUPPORTED, version);
* The callback for a torrent-get response.
*/
-static void
-on_torrent_get(JsonObject * response, int mode, int status, gpointer data)
-{
+static void on_torrent_get(JsonObject * response, int mode, int status,
+ gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
TrgClient *client = priv->client;
trg_torrent_model_update_stats stats;
+ guint interval =
+ gtk_widget_get_visible(GTK_WIDGET(data)) ? trg_client_get_interval(
+ client) : trg_client_get_minimised_interval(client);
+
/* Disconnected between request and response callback */
if (!trg_client_is_connected(client)) {
response_unref(response);
@@ -912,22 +797,18 @@ on_torrent_get(JsonObject * response, int mode, int status, gpointer data)
if (status != CURLE_OK) {
if (trg_client_inc_failcount(client) >= TRG_MAX_RETRIES) {
trg_main_window_conn_changed(TRG_MAIN_WINDOW(data), FALSE);
- trg_dialog_error_handler(TRG_MAIN_WINDOW(data),
- response, status);
+ trg_dialog_error_handler(TRG_MAIN_WINDOW(data), response, status);
} else {
const gchar *msg;
gchar *statusBarMsg;
msg = make_error_message(response, status);
- statusBarMsg =
- g_strdup_printf(_("Request %d/%d failed: %s"),
- trg_client_get_failcount(client), TRG_MAX_RETRIES, msg);
- trg_status_bar_push_connection_msg(priv->statusBar,
- statusBarMsg);
+ statusBarMsg = g_strdup_printf(_("Request %d/%d failed: %s"),
+ trg_client_get_failcount(client), TRG_MAX_RETRIES, msg);
+ trg_status_bar_push_connection_msg(priv->statusBar, statusBarMsg);
g_free((gpointer) msg);
g_free(statusBarMsg);
- g_timeout_add_seconds(trg_client_get_interval(client),
- trg_update_torrents_timerfunc, data);
+ g_timeout_add_seconds(interval, trg_update_torrents_timerfunc, data);
}
gdk_threads_leave();
trg_client_updateunlock(client);
@@ -940,11 +821,10 @@ on_torrent_get(JsonObject * response, int mode, int status, gpointer data)
trg_client_inc_serial(client);
- trg_torrent_model_update(priv->torrentModel, client,
- response, &stats, mode);
+ trg_torrent_model_update(priv->torrentModel, client, response, &stats, mode);
update_selected_torrent_notebook(TRG_MAIN_WINDOW(data), mode,
- priv->selectedTorrentId);
+ priv->selectedTorrentId);
trg_status_bar_update(priv->statusBar, &stats, client);
@@ -952,64 +832,56 @@ on_torrent_get(JsonObject * response, int mode, int status, gpointer data)
trg_torrent_graph_set_speed(priv->graph, &stats);
if (mode != TORRENT_GET_MODE_INTERACTION)
- g_timeout_add_seconds(trg_client_get_interval(client),
- trg_update_torrents_timerfunc, data);
+ g_timeout_add_seconds(interval, trg_update_torrents_timerfunc, data);
gdk_threads_leave();
trg_client_updateunlock(client);
response_unref(response);
}
-static void
-on_torrent_get_active(JsonObject * response, int status, gpointer data)
-{
+static void on_torrent_get_active(JsonObject * response, int status,
+ gpointer data) {
on_torrent_get(response, TORRENT_GET_MODE_ACTIVE, status, data);
}
-static void
-on_torrent_get_first(JsonObject * response, int status, gpointer data)
-{
+static void on_torrent_get_first(JsonObject * response, int status,
+ gpointer data) {
on_torrent_get(response, TORRENT_GET_MODE_FIRST, status, data);
}
static void on_torrent_get_interactive(JsonObject * response, int status,
- gpointer data)
-{
+ gpointer data) {
on_torrent_get(response, TORRENT_GET_MODE_INTERACTION, status, data);
}
static void on_torrent_get_update(JsonObject * response, int status,
- gpointer data)
-{
+ gpointer data) {
on_torrent_get(response, TORRENT_GET_MODE_UPDATE, status, data);
}
-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;
if (trg_client_is_connected(tc))
- dispatch_async(tc,
- torrent_get(trg_client_get_activeonlyupdate(tc) ? -2 : -1),
- trg_client_get_activeonlyupdate(tc) ? on_torrent_get_active :
- on_torrent_get_update, data);
+ dispatch_async(
+ tc,
+ torrent_get(trg_client_get_activeonlyupdate(tc) ? -2 : -1),
+ trg_client_get_activeonlyupdate(tc) ? on_torrent_get_active
+ : on_torrent_get_update, 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));
gtk_widget_destroy(aboutDialog);
}
-static gboolean
-trg_torrent_tree_view_visible_func(GtkTreeModel * model,
- GtkTreeIter * iter, gpointer data)
-{
+static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model,
+ GtkTreeIter * iter, gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
guint flags;
@@ -1023,23 +895,20 @@ 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;
- gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json,
- -1);
+ gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json, -1);
- if (!torrent_has_tracker
- (json,
- trg_state_selector_get_url_host_regex
- (priv->stateSelector), text))
+ if (!torrent_has_tracker(json,
+ trg_state_selector_get_url_host_regex(priv->stateSelector),
+ text))
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);
JsonObject *json = NULL;
- gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json,
- -1);
+ gtk_tree_model_get(model, iter, TORRENT_COLUMN_JSON, &json, -1);
if (g_strcmp0(text, torrent_get_download_dir(json)))
return FALSE;
} else if (!(flags & criteria)) {
@@ -1068,29 +937,23 @@ trg_torrent_tree_view_visible_func(GtkTreeModel * model,
return visible;
}
-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, JsonObject * response,
- int status)
-{
+static gboolean trg_dialog_error_handler(TrgMainWindow * win,
+ JsonObject * response, int status) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win);
if (status != CURLE_OK) {
@@ -1099,10 +962,8 @@ trg_dialog_error_handler(TrgMainWindow * win, JsonObject * response,
msg = make_error_message(response, status);
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);
+ dialog = gtk_message_dialog_new(GTK_WINDOW(win), 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);
@@ -1113,9 +974,8 @@ trg_dialog_error_handler(TrgMainWindow * win, JsonObject * response,
}
}
-static gboolean
-torrent_selection_changed(GtkTreeSelection * selection, gpointer data)
-{
+static gboolean torrent_selection_changed(GtkTreeSelection * selection,
+ gpointer data) {
TrgMainWindow *win = TRG_MAIN_WINDOW(data);
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
GList *selectionList;
@@ -1133,11 +993,10 @@ torrent_selection_changed(GtkTreeSelection * selection, gpointer data)
if (firstNode) {
GtkTreeIter iter;
- if (gtk_tree_model_get_iter
- (priv->sortedTorrentModel, &iter,
- (GtkTreePath *) firstNode->data)) {
- gtk_tree_model_get(GTK_TREE_MODEL(priv->sortedTorrentModel),
- &iter, TORRENT_COLUMN_ID, &id, -1);
+ if (gtk_tree_model_get_iter(priv->sortedTorrentModel, &iter,
+ (GtkTreePath *) firstNode->data)) {
+ gtk_tree_model_get(GTK_TREE_MODEL(priv->sortedTorrentModel), &iter,
+ TORRENT_COLUMN_ID, &id, -1);
}
}
@@ -1149,10 +1008,8 @@ torrent_selection_changed(GtkTreeSelection * selection, gpointer data)
return TRUE;
}
-void
-on_generic_interactive_action(JsonObject * response, int status,
- gpointer data)
-{
+void on_generic_interactive_action(JsonObject * response, int status,
+ gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
TrgClient *tc = priv->client;
@@ -1171,7 +1028,7 @@ on_generic_interactive_action(JsonObject * response, int status,
id = -1;
dispatch_async(priv->client, torrent_get(id),
- on_torrent_get_interactive, data);
+ on_torrent_get_interactive, data);
}
}
@@ -1179,8 +1036,7 @@ on_generic_interactive_action(JsonObject * response, int status,
}
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_list_store_clear(GTK_LIST_STORE(priv->filesModel));
@@ -1188,35 +1044,31 @@ 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));
}
-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));
#if GTK_CHECK_VERSION( 2,16,0 )
- g_object_set(priv->filterEntryClearButton,
- "secondary-icon-sensitive", clearSensitive, NULL);
+ g_object_set(priv->filterEntryClearButton, "secondary-icon-sensitive",
+ clearSensitive, NULL);
#else
gtk_widget_set_sensitive(priv->filterEntryClearButton, clearSensitive);
#endif
}
-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;
@@ -1226,9 +1078,9 @@ 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->genDetails), connected);;
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->trackersTreeView), connected);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->genDetails), connected);
+ ;
if (!connected) {
gtk_list_store_clear(GTK_LIST_STORE(priv->torrentModel));
@@ -1242,10 +1094,8 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected)
trg_client_status_change(tc, 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:
@@ -1256,10 +1106,8 @@ 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:
@@ -1270,94 +1118,77 @@ 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)
-{
- GObject *b_connect, *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;
+static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) {
+ GObject *b_connect, *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;
TrgMenuBar *menuBar;
menuBar = trg_menu_bar_new(win);
- g_object_get(menuBar,
- "connect-button", &b_connect,
- "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, NULL);
+ g_object_get(menuBar, "connect-button", &b_connect, "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,
+ NULL);
g_signal_connect(b_connect, "activate", G_CALLBACK(connect_cb), win);
g_signal_connect(b_disconnect, "activate",
- G_CALLBACK(disconnect_cb), win);
+ 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);
+ 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);
+ win);
g_signal_connect(b_verify, "activate", G_CALLBACK(verify_cb), win);
g_signal_connect(b_reannounce, "activate", G_CALLBACK(reannounce_cb),
- win);
+ 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_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_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_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);
g_signal_connect(b_props, "activate", G_CALLBACK(open_props_cb), win);
g_signal_connect(b_quit, "activate", G_CALLBACK(quit_cb), win);
return menuBar;
}
-static void status_icon_activated(GtkStatusIcon * icon G_GNUC_UNUSED,
- gpointer data)
-{
+static void status_icon_activated(GtkStatusIcon * icon G_GNUC_UNUSED, gpointer data) {
gtk_window_deiconify(GTK_WINDOW(data));
gtk_window_present(GTK_WINDOW(data));
}
-static void clear_filter_entry_cb(GtkWidget * w,
- gpointer data G_GNUC_UNUSED)
-{
+static void clear_filter_entry_cb(GtkWidget * w, gpointer data G_GNUC_UNUSED) {
gtk_entry_set_text(GTK_ENTRY(w), "");
}
-static gboolean torrent_tv_key_press_event(GtkWidget * w,
- GdkEventKey * key,
- gpointer data)
-{
+static gboolean torrent_tv_key_press_event(GtkWidget * w, GdkEventKey * key,
+ gpointer data) {
if (key->keyval == GDK_Delete) {
if (key->state & GDK_SHIFT_MASK)
delete_cb(w, data);
@@ -1367,16 +1198,13 @@ static gboolean torrent_tv_key_press_event(GtkWidget * w,
return FALSE;
}
-static
-GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, char *text,
- char *stock_id, gboolean sensitive,
- GCallback cb, gpointer cbdata)
-{
+static GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, char *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);
@@ -1385,8 +1213,7 @@ GtkWidget *trg_imagemenuitem_new(GtkMenuShell * shell, char *text,
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);
@@ -1412,15 +1239,13 @@ 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);
@@ -1433,8 +1258,7 @@ static GtkWidget *limit_item_new(TrgMainWindow * win, GtkWidget * menu,
item = gtk_check_menu_item_new_with_label(speed);
/* Yeah, I know it's unsafe to cast from a float to an int, but its safe here */
- 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);
@@ -1443,9 +1267,7 @@ 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;
@@ -1455,27 +1277,28 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title,
if (ids)
get_torrent_data(trg_client_get_torrent_table(client),
- priv->selectedTorrentId,
- &current, &iter);
+ priv->selectedTorrentId, &current, &iter);
else
current = trg_client_get_session(client);
- limit = json_object_get_boolean_member(current, enabledKey) ?
- json_object_get_int_member(current, speedKey) : -1;
+ limit
+ = 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_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_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);
@@ -1483,8 +1306,7 @@ 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);
@@ -1511,10 +1333,8 @@ static GtkWidget *limit_menu_new(TrgMainWindow * win, gchar * title,
return toplevel;
}
-static void
-trg_torrent_tv_view_menu(GtkWidget * treeview,
- GdkEventButton * event, gpointer data)
-{
+static void trg_torrent_tv_view_menu(GtkWidget * treeview,
+ GdkEventButton * event, gpointer data) {
GtkWidget *menu;
JsonArray *ids;
@@ -1522,52 +1342,40 @@ 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_DELETE, TRUE, G_CALLBACK(delete_cb),
- data);
-
- 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_STOCK_DELETE, TRUE, G_CALLBACK(delete_cb), data);
+
+ 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 void
-trg_status_icon_view_menu(GtkStatusIcon * icon G_GNUC_UNUSED,
- GdkEventButton * event, gpointer data)
-{
+static void trg_status_icon_view_menu(GtkStatusIcon * icon G_GNUC_UNUSED,
+ GdkEventButton * event, gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
gboolean connected = trg_client_is_connected(priv->client);
GtkWidget *menu;
@@ -1576,64 +1384,57 @@ trg_status_icon_view_menu(GtkStatusIcon * icon G_GNUC_UNUSED,
if (!connected) {
trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Connect"),
- GTK_STOCK_CONNECT, !connected,
- G_CALLBACK(connect_cb), data);
+ GTK_STOCK_CONNECT, !connected, G_CALLBACK(connect_cb), data);
} else {
trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Disconnect"),
- GTK_STOCK_DISCONNECT, connected,
- G_CALLBACK(disconnect_cb), data);
+ GTK_STOCK_DISCONNECT, connected, G_CALLBACK(disconnect_cb),
+ data);
- trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add"),
- GTK_STOCK_ADD, connected, G_CALLBACK(add_cb),
- data);
+ trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add"), GTK_STOCK_ADD,
+ connected, G_CALLBACK(add_cb), data);
trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Add from URL"),
- GTK_STOCK_ADD, connected,
- G_CALLBACK(add_url_cb), data);
-
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),
- limit_menu_new(TRG_MAIN_WINDOW(data),
- _("Down Limit"),
- SGET_SPEED_LIMIT_DOWN_ENABLED,
- SGET_SPEED_LIMIT_DOWN, NULL));
- gtk_menu_shell_append(GTK_MENU_SHELL(menu),
- limit_menu_new(TRG_MAIN_WINDOW(data),
- _("Up Limit"),
- SGET_SPEED_LIMIT_UP_ENABLED,
- SGET_SPEED_LIMIT_UP, NULL));
+ GTK_STOCK_ADD, connected, G_CALLBACK(add_url_cb), data);
+
+ gtk_menu_shell_append(
+ GTK_MENU_SHELL(menu),
+ limit_menu_new(TRG_MAIN_WINDOW(data), _("Down Limit"),
+ SGET_SPEED_LIMIT_DOWN_ENABLED, SGET_SPEED_LIMIT_DOWN,
+ NULL));
+ gtk_menu_shell_append(
+ GTK_MENU_SHELL(menu),
+ limit_menu_new(TRG_MAIN_WINDOW(data), _("Up Limit"),
+ SGET_SPEED_LIMIT_UP_ENABLED, SGET_SPEED_LIMIT_UP, NULL));
trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Resume All"),
- GTK_STOCK_MEDIA_PLAY, connected,
- G_CALLBACK(resume_all_cb), data);
+ GTK_STOCK_MEDIA_PLAY, connected, G_CALLBACK(resume_all_cb),
+ data);
trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Pause All"),
- GTK_STOCK_MEDIA_PAUSE, connected,
- G_CALLBACK(pause_all_cb), data);
+ GTK_STOCK_MEDIA_PAUSE, connected, G_CALLBACK(pause_all_cb),
+ data);
}
- 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());
trg_imagemenuitem_new(GTK_MENU_SHELL(menu), _("Quit"), GTK_STOCK_QUIT,
- TRUE, G_CALLBACK(quit_cb), data);
+ TRUE, G_CALLBACK(quit_cb), data);
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 gboolean trg_status_icon_popup_menu_cb(GtkStatusIcon * icon,
- gpointer userdata)
-{
+ gpointer userdata) {
trg_status_icon_view_menu(icon, NULL, userdata);
return TRUE;
}
static gboolean status_icon_button_press_event(GtkStatusIcon * icon,
- GdkEventButton * event,
- gpointer data)
-{
+ GdkEventButton * event, gpointer data) {
+ TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
trg_status_icon_view_menu(icon, event, data);
return TRUE;
@@ -1642,10 +1443,8 @@ static gboolean status_icon_button_press_event(GtkStatusIcon * icon,
}
}
-static gboolean
-torrent_tv_button_pressed_cb(GtkWidget * treeview, GdkEventButton * event,
- gpointer userdata)
-{
+static gboolean torrent_tv_button_pressed_cb(GtkWidget * treeview,
+ GdkEventButton * event, gpointer userdata) {
GtkTreeSelection *selection;
GtkTreePath *path;
@@ -1653,9 +1452,7 @@ torrent_tv_button_pressed_cb(GtkWidget * treeview, GdkEventButton * event,
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);
@@ -1672,16 +1469,13 @@ torrent_tv_button_pressed_cb(GtkWidget * treeview, GdkEventButton * event,
}
static gboolean torrent_tv_popup_menu_cb(GtkWidget * treeview,
- gpointer userdata)
-{
+ gpointer userdata) {
trg_torrent_tv_view_menu(treeview, NULL, userdata);
return TRUE;
}
-static void status_bar_text_pushed(GtkStatusbar * statusbar,
- guint context_id, gchar * text,
- gpointer user_data)
-{
+static void status_bar_text_pushed(GtkStatusbar * statusbar, guint context_id,
+ gchar * text, gpointer user_data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(user_data);
if (priv->statusIcon)
@@ -1689,27 +1483,23 @@ static void status_bar_text_pushed(GtkStatusbar * statusbar,
}
static gboolean window_state_event(GtkWidget * widget,
- GdkEventWindowState * event,
- gpointer trayIcon)
-{
+ GdkEventWindowState * event, gpointer trayIcon) {
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));
}
return TRUE;
}
-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);
if (priv->statusIcon)
@@ -1718,16 +1508,13 @@ void trg_main_window_remove_status_icon(TrgMainWindow * win)
priv->statusIcon = NULL;
}
-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);
@@ -1735,19 +1522,17 @@ 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;
}
}
-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);
if (!priv->icon)
@@ -1755,27 +1540,22 @@ 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);
}
-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 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;
@@ -1787,17 +1567,16 @@ 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);
prefs = trg_client_get_prefs(priv->client);
theme = gtk_icon_theme_get_default();
- priv->icon =
- gtk_icon_theme_load_icon(theme, PACKAGE_NAME, 48,
- GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+ priv->icon = gtk_icon_theme_load_icon(theme, PACKAGE_NAME, 48,
+ GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
notify_init(PACKAGE_NAME);
if (priv->icon)
@@ -1807,88 +1586,85 @@ static GObject *trg_main_window_constructor(GType type,
gtk_window_set_title(GTK_WINDOW(self), PACKAGE_NAME);
gtk_window_set_default_size(GTK_WINDOW(self), 1000, 600);
g_signal_connect(G_OBJECT(self), "delete-event",
- G_CALLBACK(delete_event), NULL);
+ 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);
priv->torrentModel = trg_torrent_model_new();
- trg_client_set_torrent_table(priv->client, get_torrent_table(priv->torrentModel));
+ trg_client_set_torrent_table(priv->client,
+ 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);
g_signal_connect(priv->torrentModel, "torrent-addremove",
- G_CALLBACK(on_torrent_addremove), self);
+ G_CALLBACK(on_torrent_addremove), self);
- priv->filteredTorrentModel =
- gtk_tree_model_filter_new(GTK_TREE_MODEL(priv->torrentModel),
- NULL);
+ priv->filteredTorrentModel = gtk_tree_model_filter_new(
+ GTK_TREE_MODEL(priv->torrentModel), 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->sortedTorrentModel =
- gtk_tree_model_sort_new_with_model(priv->filteredTorrentModel);
+ priv->sortedTorrentModel = gtk_tree_model_sort_new_with_model(
+ priv->filteredTorrentModel);
- priv->torrentTreeView =
- trg_main_window_torrent_tree_view_new(self,
- priv->sortedTorrentModel);
+ priv->torrentTreeView = trg_main_window_torrent_tree_view_new(self,
+ priv->sortedTorrentModel);
g_signal_connect(priv->torrentTreeView, "key-press-event",
- G_CALLBACK(torrent_tv_key_press_event), self);
+ G_CALLBACK(torrent_tv_key_press_event), self);
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);
#if GTK_CHECK_VERSION( 2,16,0 )
w = gtk_entry_new();
- gtk_entry_set_icon_from_stock(GTK_ENTRY(w),
- GTK_ENTRY_ICON_SECONDARY,
- GTK_STOCK_CLEAR);
+ gtk_entry_set_icon_from_stock(GTK_ENTRY(w), GTK_ENTRY_ICON_SECONDARY,
+ GTK_STOCK_CLEAR);
g_signal_connect(w, "icon-release",
- G_CALLBACK(clear_filter_entry_cb), w);
+ G_CALLBACK(clear_filter_entry_cb), w);
gtk_box_pack_start(GTK_BOX(toolbarHbox), w, FALSE, FALSE, 0);
g_object_set(w, "secondary-icon-sensitive", FALSE, NULL);
priv->filterEntryClearButton = priv->filterEntry = w;
#else
priv->filterEntry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(toolbarHbox), priv->filterEntry, FALSE,
- FALSE, 0);
+ FALSE, 0);
w = gtk_button_new();
gtk_button_set_relief(GTK_BUTTON(w), GTK_RELIEF_NONE);
gtk_button_set_image(GTK_BUTTON(w),
- gtk_image_new_from_stock(GTK_STOCK_CLEAR,
- GTK_ICON_SIZE_MENU));
+ gtk_image_new_from_stock(GTK_STOCK_CLEAR,
+ GTK_ICON_SIZE_MENU));
gtk_box_pack_start(GTK_BOX(toolbarHbox), w, FALSE, FALSE, 0);
g_signal_connect_swapped(w, "clicked",
- G_CALLBACK(clear_filter_entry_cb),
- priv->filterEntry);
+ G_CALLBACK(clear_filter_entry_cb),
+ priv->filterEntry);
priv->filterEntryClearButton = w;
#endif
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);
+ gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(toolbarHbox), FALSE,
+ FALSE, 0);
priv->vpaned = gtk_vpaned_new();
priv->hpaned = gtk_hpaned_new();
@@ -1896,26 +1672,24 @@ 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->stateSelectorScroller =
- my_scrolledwin_new(GTK_WIDGET(priv->stateSelector));
+ priv->stateSelectorScroller = my_scrolledwin_new(
+ GTK_WIDGET(priv->stateSelector));
gtk_paned_pack1(GTK_PANED(priv->hpaned), priv->stateSelectorScroller,
- FALSE, FALSE);
+ FALSE, FALSE);
- gtk_paned_pack2(GTK_PANED(priv->hpaned),
- my_scrolledwin_new(GTK_WIDGET
- (priv->torrentTreeView)), TRUE,
- TRUE);
+ gtk_paned_pack2(GTK_PANED(priv->hpaned), my_scrolledwin_new(GTK_WIDGET
+ (priv->torrentTreeView)), TRUE, TRUE);
g_signal_connect(G_OBJECT(priv->stateSelector),
- "torrent-state-changed",
- G_CALLBACK(torrent_state_selection_changed),
- priv->filteredTorrentModel);
+ "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);
+ tray = trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY,
+ TRG_PREFS_GLOBAL);
if (tray)
trg_main_window_add_status_icon(self);
else
@@ -1923,16 +1697,14 @@ static GObject *trg_main_window_constructor(GType type,
priv->statusBar = trg_status_bar_new();
g_signal_connect(priv->statusBar, "text-pushed",
- G_CALLBACK(status_bar_text_pushed), self);
- gtk_box_pack_start(GTK_BOX(outerVbox), GTK_WIDGET(priv->statusBar),
- FALSE, FALSE, 2);
+ G_CALLBACK(status_bar_text_pushed), self);
+ 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);
- height =
- trg_prefs_get_int(prefs,
- TRG_PREFS_KEY_WINDOW_HEIGHT, TRG_PREFS_GLOBAL);
+ width = trg_prefs_get_int(prefs, TRG_PREFS_KEY_WINDOW_WIDTH,
+ TRG_PREFS_GLOBAL);
+ height = trg_prefs_get_int(prefs, TRG_PREFS_KEY_WINDOW_HEIGHT,
+ TRG_PREFS_GLOBAL);
if (width > 0 && height > 0)
gtk_window_set_default_size(GTK_WINDOW(self), width, height);
@@ -1940,8 +1712,7 @@ static GObject *trg_main_window_constructor(GType type,
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));
@@ -1950,34 +1721,32 @@ 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_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));
}
-void auto_connect_if_required(TrgMainWindow * win, TrgClient * tc)
-{
+void auto_connect_if_required(TrgMainWindow * win, TrgClient * tc) {
TrgPrefs *prefs = trg_client_get_prefs(tc);
- gchar *host =
- trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME, TRG_PREFS_PROFILE);
+ gchar *host = trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME,
+ 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))
+ if (len > 0 && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_AUTO_CONNECT,
+ TRG_PREFS_PROFILE))
connect_cb(NULL, win);
}
}
-TrgMainWindow *trg_main_window_new(TrgClient * tc)
-{
+TrgMainWindow *trg_main_window_new(TrgClient * tc) {
return g_object_new(TRG_TYPE_MAIN_WINDOW, "trg-client", tc, NULL);
}
diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c
index f6fd187..1fa8988 100644
--- a/src/trg-preferences-dialog.c
+++ b/src/trg-preferences-dialog.c
@@ -262,6 +262,12 @@ static void interval_changed_cb(GtkWidget * w, gpointer data) {
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w)));
}
+static void mininterval_changed_cb(GtkWidget * w, gpointer data) {
+ trg_client_set_minimised_interval(TRG_CLIENT(data),
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w)));
+}
+
+
static void toggle_filter_trackers(GtkToggleButton * w, gpointer win) {
TrgStateSelector *selector = trg_main_window_get_state_selector(
TRG_MAIN_WINDOW(win));
@@ -560,6 +566,12 @@ static GtkWidget *trg_prefs_serverPage(TrgPreferencesDialog *dlg) {
tc);
hig_workarea_add_row(t, &row, _("Update interval:"), w, NULL);
+ w = trgp_spin_new(dlg, TRG_PREFS_KEY_MINUPDATE_INTERVAL, 1, 240, 1,
+ TRG_PREFS_PROFILE);
+ g_signal_connect(w, "value-changed", G_CALLBACK(mininterval_changed_cb),
+ tc);
+ hig_workarea_add_row(t, &row, _("Minimised update interval:"), w, NULL);
+
w = trgp_check_new(dlg, _("Automatically connect"),
TRG_PREFS_KEY_AUTO_CONNECT, TRG_PREFS_PROFILE);
hig_workarea_add_wide_control(t, &row, w);
diff --git a/src/trg-prefs.c b/src/trg-prefs.c
index bd26928..9a507b1 100644
--- a/src/trg-prefs.c
+++ b/src/trg-prefs.c
@@ -70,7 +70,8 @@ static void trg_prefs_create_defaults(TrgPrefs *p) {
trg_prefs_add_default_string(p, TRG_PREFS_KEY_PROFILE_NAME,
_(TRG_PROFILE_NAME_DEFAULT));
trg_prefs_add_default_int(p, TRG_PREFS_KEY_PORT, 9091);
- trg_prefs_add_default_int(p, TRG_PREFS_KEY_UPDATE_INTERVAL, 3);
+ trg_prefs_add_default_int(p, TRG_PREFS_KEY_UPDATE_INTERVAL, TRG_INTERVAL_DEFAULT);
+ trg_prefs_add_default_int(p, TRG_PREFS_KEY_MINUPDATE_INTERVAL, TRG_MININTERVAL_DEFAULT);
trg_prefs_add_default_bool(p, TRG_PREFS_KEY_FILTER_DIRS, TRUE);
trg_prefs_add_default_bool(p, TRG_PREFS_KEY_FILTER_TRACKERS, TRUE);
diff --git a/src/trg-prefs.h b/src/trg-prefs.h
index 1ae07f5..af4a2ca 100644
--- a/src/trg-prefs.h
+++ b/src/trg-prefs.h
@@ -27,6 +27,7 @@
#define TRG_PREFS_DEFAULT_DIR_MODE 448
#define TRG_PORT_DEFAULT 9091
#define TRG_INTERVAL_DEFAULT 3
+#define TRG_MININTERVAL_DEFAULT 4
#define TRG_PROFILE_NAME_DEFAULT "Default"
#define TRG_PREFS_KEY_PROFILE_ID "profile-id"
@@ -34,6 +35,7 @@
#define TRG_PREFS_KEY_PROFILE_NAME "profile-name"
#define TRG_PREFS_KEY_HOSTNAME "hostname"
#define TRG_PREFS_KEY_PORT "port"
+#define TRG_PREFS_KEY_MINUPDATE_INTERVAL "min-update-interval"
#define TRG_PREFS_KEY_USERNAME "username"
#define TRG_PREFS_KEY_PASSWORD "password"
#define TRG_PREFS_KEY_AUTO_CONNECT "auto-connect"