summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-26 18:55:21 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-26 18:55:21 +0000
commitaff982298fb16ef8bbf32697df59965def50eb5d (patch)
tree185f87e687e7c312dd5e2835234ebaf32a326cfc
parentecf7d01164029d5b5cd139e7db8a5e8705c6fac5 (diff)
closer to gtk3 support, I think just the graph needs doing now.
-rw-r--r--src/trg-about-window.c2
-rw-r--r--src/trg-destination-combo.c4
-rw-r--r--src/trg-destination-combo.h4
-rw-r--r--src/trg-main-window.c34
-rw-r--r--src/trg-preferences-dialog.c4
-rw-r--r--src/trg-remote-prefs-dialog.c110
-rw-r--r--src/trg-stats-dialog.c2
-rw-r--r--src/trg-torrent-add-dialog.c31
-rw-r--r--src/trg-torrent-props-dialog.c14
-rw-r--r--src/util.c31
-rw-r--r--src/util.h1
11 files changed, 143 insertions, 94 deletions
diff --git a/src/trg-about-window.c b/src/trg-about-window.c
index 3e4f66d..392d2a1 100644
--- a/src/trg-about-window.c
+++ b/src/trg-about-window.c
@@ -65,7 +65,7 @@ GtkWidget *trg_about_window_new(GtkWindow * parent)
gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(dialog), "GPL2");
}
- gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog), PACKAGE_NAME);
+ gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), PACKAGE_NAME);
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog),
PACKAGE_VERSION);
gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),
diff --git a/src/trg-destination-combo.c b/src/trg-destination-combo.c
index db9fd31..2ab5048 100644
--- a/src/trg-destination-combo.c
+++ b/src/trg-destination-combo.c
@@ -128,9 +128,13 @@ static void gtk_combo_box_entry_active_changed(GtkComboBox *combo_box,
}
}
+#if GTK_CHECK_VERSION( 3, 0, 0 )
+ gtk_editable_set_editable(GTK_EDITABLE(trg_destination_combo_get_entry(TRG_DESTINATION_COMBO(combo_box))), editableEntry);
+#else
gtk_entry_set_editable(
trg_destination_combo_get_entry(TRG_DESTINATION_COMBO(combo_box)),
editableEntry);
+#endif
}
gboolean trg_destination_combo_has_text(TrgDestinationCombo *combo) {
diff --git a/src/trg-destination-combo.h b/src/trg-destination-combo.h
index a132aab..a5ce9d3 100644
--- a/src/trg-destination-combo.h
+++ b/src/trg-destination-combo.h
@@ -38,11 +38,11 @@ G_BEGIN_DECLS
#define TRG_DESTINATION_COMBO_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), TRG_TYPE_DESTINATION_COMBO, TrgDestinationComboClass))
typedef struct {
- GtkComboBoxEntry parent;
+ GtkComboBox parent;
} TrgDestinationCombo;
typedef struct {
- GtkComboBoxEntryClass parent_class;
+ GtkComboBoxClass parent_class;
} TrgDestinationComboClass;
GType trg_destination_combo_get_type(void);
diff --git a/src/trg-main-window.c b/src/trg-main-window.c
index a12fe61..d4a67e3 100644
--- a/src/trg-main-window.c
+++ b/src/trg-main-window.c
@@ -31,6 +31,9 @@
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
#include <gdk/gdkkeysyms.h>
+#if GTK_CHECK_VERSION( 3,0, 0 )
+#include <gdk/gdkkeysyms-compat.h>
+#endif
#include <curl/curl.h>
#ifdef HAVE_LIBNOTIFY
#include <libnotify/notify.h>
@@ -58,7 +61,9 @@
#include "trg-trackers-tree-view.h"
#include "trg-trackers-model.h"
#include "trg-state-selector.h"
+#ifndef TRG_NO_GRAPH
#include "trg-torrent-graph.h"
+#endif
#include "trg-torrent-move-dialog.h"
#include "trg-torrent-props-dialog.h"
#include "trg-torrent-add-url-dialog.h"
@@ -199,7 +204,9 @@ struct _TrgMainWindowPrivate {
TrgPeersModel *peersModel;
TrgPeersTreeView *peersTreeView;
+#ifndef TRG_NO_GRAPH
TrgTorrentGraph *graph;
+#endif
gint graphNotebookIndex;
GtkWidget *hpaned, *vpaned;
@@ -741,6 +748,7 @@ static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data) {
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) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win);
if (gtk_check_menu_item_get_active(w)) {
@@ -751,6 +759,7 @@ static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, gpointer win)
trg_main_window_remove_graph(TRG_MAIN_WINDOW(win));
}
}
+#endif
void trg_main_window_notebook_set_visible(TrgMainWindow *win, gboolean visible) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win);
@@ -788,10 +797,12 @@ static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) {
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))
trg_main_window_add_graph(win, FALSE);
else
priv->graphNotebookIndex = -1;
+#endif
return notebook;
}
@@ -929,8 +940,10 @@ static gboolean on_torrent_get(gpointer data, int mode) {
g_free(iconText);
}
+#ifndef TRG_NO_GRAPH
if (priv->graphNotebookIndex >= 0)
trg_torrent_graph_set_speed(priv->graph, &stats);
+#endif
if (mode != TORRENT_GET_MODE_INTERACTION)
priv->timerId = g_timeout_add_seconds(interval, trg_update_torrents_timerfunc, win);
@@ -1205,8 +1218,10 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) {
trg_main_window_torrent_scrub(win);
trg_state_selector_disconnect(priv->stateSelector);
+#ifndef TRG_NO_GRAPH
if (priv->graphNotebookIndex >= 0)
trg_torrent_graph_set_nothing(priv->graph);
+#endif
trg_torrent_model_remove_all(priv->torrentModel);
@@ -1262,8 +1277,11 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) {
*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_show_graph,
+ *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,
+#endif
*b_start_now;
TrgMenuBar *menuBar;
@@ -1281,8 +1299,11 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) {
"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, "show-graph", &b_show_graph, "up-queue",
- &b_up_queue, "down-queue", &b_down_queue, "top-queue",
+ &b_tracker_filters,
+#ifndef TRG_NO_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);
@@ -1318,15 +1339,18 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) {
G_CALLBACK(main_window_toggle_filter_dirs), win);
g_signal_connect(b_tracker_filters, "toggled",
G_CALLBACK(main_window_toggle_filter_trackers), win);
+#ifndef TRG_NO_GRAPH
g_signal_connect(b_tracker_filters, "toggled",
G_CALLBACK(trg_main_window_toggle_graph_cb), win);
+#endif
g_signal_connect(b_view_states, "toggled",
G_CALLBACK(view_states_toggled_cb), win);
g_signal_connect(b_view_stats, "activate",
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);
-
+#endif
g_signal_connect(b_props, "activate", G_CALLBACK(open_props_cb), win);
g_signal_connect(b_quit, "activate", G_CALLBACK(quit_cb), win);
@@ -1779,6 +1803,7 @@ void trg_main_window_remove_status_icon(TrgMainWindow * win) {
priv->statusIcon = NULL;
}
+#ifndef TRG_NO_GRAPH
void trg_main_window_add_graph(TrgMainWindow * win, gboolean show) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win);
@@ -1802,6 +1827,7 @@ void trg_main_window_remove_graph(TrgMainWindow * win) {
priv->graphNotebookIndex = -1;
}
}
+#endif
void trg_main_window_add_status_icon(TrgMainWindow * win) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win);
diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c
index 331f60e..1f24106 100644
--- a/src/trg-preferences-dialog.c
+++ b/src/trg-preferences-dialog.c
@@ -280,12 +280,14 @@ static void toggle_filter_trackers(GtkToggleButton * w, gpointer win) {
gtk_toggle_button_get_active(w));
}
+#ifndef TRG_NO_GRAPH
static void toggle_graph(GtkToggleButton * w, gpointer win) {
if (gtk_toggle_button_get_active(w))
trg_main_window_add_graph(TRG_MAIN_WINDOW(win), TRUE);
else
trg_main_window_remove_graph(TRG_MAIN_WINDOW(win));
}
+#endif
static void toggle_tray_icon(GtkToggleButton * w, gpointer win) {
if (gtk_toggle_button_get_active(w))
@@ -348,11 +350,13 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) {
G_CALLBACK(notebook_toggled_cb), priv->win);
hig_workarea_add_wide_control(t, &row, w);
+#ifndef TRG_NO_GRAPH
w = trgp_check_new(dlg, _("Show graph"), TRG_PREFS_KEY_SHOW_GRAPH,
TRG_PREFS_GLOBAL, GTK_TOGGLE_BUTTON(w));
g_signal_connect(G_OBJECT(w), "toggled",
G_CALLBACK(toggle_graph), priv->win);
hig_workarea_add_wide_control(t, &row, w);
+#endif
hig_workarea_add_section_title(t, &row, _("System Tray"));
diff --git a/src/trg-remote-prefs-dialog.c b/src/trg-remote-prefs-dialog.c
index 47124cb..c706b72 100644
--- a/src/trg-remote-prefs-dialog.c
+++ b/src/trg-remote-prefs-dialog.c
@@ -141,54 +141,66 @@ static GtkWidget *trg_rprefs_limitsPage(TrgRemotePrefsDialog * win,
hig_workarea_add_section_title(t, &row, _("Bandwidth"));
- tb = trg_json_widget_check_new(
- &priv->widgets, json, SGET_SPEED_LIMIT_DOWN_ENABLED, _("Limit download speed (KB/s)"), NULL);
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_SPEED_LIMIT_DOWN, tb, 0, INT_MAX, 1);
+ tb = trg_json_widget_check_new(&priv->widgets, json,
+ SGET_SPEED_LIMIT_DOWN_ENABLED, _("Limit download speed (KB/s)"),
+ NULL);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json,
+ SGET_SPEED_LIMIT_DOWN, tb, 0, INT_MAX, 1);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
- tb = trg_json_widget_check_new(&priv->widgets, json, SGET_SPEED_LIMIT_UP_ENABLED, _("Limit upload speed (KB/s)"), NULL);
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_SPEED_LIMIT_UP, tb, 0, INT_MAX, 1);
+ tb = trg_json_widget_check_new(&priv->widgets, json,
+ SGET_SPEED_LIMIT_UP_ENABLED, _("Limit upload speed (KB/s)"), NULL);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_SPEED_LIMIT_UP,
+ tb, 0, INT_MAX, 1);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
hig_workarea_add_section_title(t, &row, _("Seeding"));
- tb = trg_json_widget_check_new(
- &priv->widgets, json, SGET_SEED_RATIO_LIMITED, _("Seed ratio limit"), NULL);
- w = trg_json_widget_spin_new_double(&priv->widgets, json, SGET_SEED_RATIO_LIMIT, tb, 0, INT_MAX, 0.1);
+ tb = trg_json_widget_check_new(&priv->widgets, json,
+ SGET_SEED_RATIO_LIMITED, _("Seed ratio limit"), NULL);
+ w = trg_json_widget_spin_new_double(&priv->widgets, json,
+ SGET_SEED_RATIO_LIMIT, tb, 0, INT_MAX, 0.1);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
if (json_object_has_member(json, SGET_DOWNLOAD_QUEUE_ENABLED)) {
hig_workarea_add_section_title(t, &row, _("Queues"));
- tb = trg_json_widget_check_new(
- &priv->widgets, json, SGET_DOWNLOAD_QUEUE_ENABLED, _("Download queue size"), NULL);
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_DOWNLOAD_QUEUE_SIZE, tb, 0, INT_MAX, 1);
+ tb = trg_json_widget_check_new(&priv->widgets, json,
+ SGET_DOWNLOAD_QUEUE_ENABLED, _("Download queue size"), NULL);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json,
+ SGET_DOWNLOAD_QUEUE_SIZE, tb, 0, INT_MAX, 1);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
- tb = trg_json_widget_check_new(
- &priv->widgets, json, SGET_SEED_QUEUE_ENABLED, _("Seed queue size"), NULL);
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_SEED_QUEUE_SIZE, tb, 0, INT_MAX, 1);
+ tb = trg_json_widget_check_new(&priv->widgets, json,
+ SGET_SEED_QUEUE_ENABLED, _("Seed queue size"), NULL);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json,
+ SGET_SEED_QUEUE_SIZE, tb, 0, INT_MAX, 1);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
- tb = trg_json_widget_check_new(
- &priv->widgets, json, SGET_QUEUE_STALLED_ENABLED, _("Ignore stalled (minutes)"), NULL);
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_QUEUE_STALLED_MINUTES, tb, 0, INT_MAX, 1);
+ tb
+ = trg_json_widget_check_new(&priv->widgets, json,
+ SGET_QUEUE_STALLED_ENABLED,
+ _("Ignore stalled (minutes)"), NULL);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json,
+ SGET_QUEUE_STALLED_MINUTES, tb, 0, INT_MAX, 1);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
}
hig_workarea_add_section_title(t, &row, _("Peers"));
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_PEER_LIMIT_GLOBAL, NULL, 0, INT_MAX, 5);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json,
+ SGET_PEER_LIMIT_GLOBAL, NULL, 0, INT_MAX, 5);
hig_workarea_add_row(t, &row, _("Global peer limit"), w, w);
- w = trg_json_widget_spin_new_int(&priv->widgets, json, SGET_PEER_LIMIT_PER_TORRENT, NULL, 0, INT_MAX, 5);
+ w = trg_json_widget_spin_new_int(&priv->widgets, json,
+ SGET_PEER_LIMIT_PER_TORRENT, NULL, 0, INT_MAX, 5);
hig_workarea_add_row(t, &row, _("Per torrent peer limit"), w, w);
return t;
}
static gboolean on_port_tested(gpointer data) {
- trg_response *response = (trg_response*)data;
+ trg_response *response = (trg_response*) data;
if (TRG_IS_REMOTE_PREFS_DIALOG(response->cb_data)) {
TrgRemotePrefsDialogPrivate *priv =
TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(response->cb_data);
@@ -231,7 +243,7 @@ static void port_test_cb(GtkButton * b, gpointer data) {
}
static gboolean on_blocklist_updated(gpointer data) {
- trg_response *response = (trg_response*)data;
+ trg_response *response = (trg_response*) data;
if (TRG_IS_REMOTE_PREFS_DIALOG(response->cb_data)) {
TrgRemotePrefsDialogPrivate *priv =
TRG_REMOTE_PREFS_DIALOG_GET_PRIVATE(response->cb_data);
@@ -280,10 +292,8 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win,
t = hig_workarea_create();
- w = priv->encryption_combo = gtk_combo_box_new_text();
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("Required"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("Preferred"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("Tolerated"));
+ w = priv->encryption_combo = gtr_combo_box_new_enum(_("Required"), 0,
+ _("Preferred"), 1, _("Tolerated"), 2);
stringValue = session_get_encryption(s);
if (g_strcmp0(stringValue, "required") == 0) {
gtk_combo_box_set_active(GTK_COMBO_BOX(w), 0);
@@ -294,7 +304,8 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win,
}
hig_workarea_add_row(t, &row, _("Encryption"), w, NULL);
- w = trg_json_widget_spin_new_int(&priv->widgets, s, SGET_PEER_PORT, NULL, 0, 65535, 1);
+ w = trg_json_widget_spin_new_int(&priv->widgets, s, SGET_PEER_PORT, NULL,
+ 0, 65535, 1);
hig_workarea_add_row(t, &row, _("Peer port"), w, w);
w = priv->port_test_label = gtk_label_new(_("Port test"));
@@ -302,24 +313,31 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win,
g_signal_connect(w, "clicked", G_CALLBACK(port_test_cb), win);
hig_workarea_add_row_w(t, &row, priv->port_test_label, w, NULL);
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_PEER_PORT_RANDOM_ON_START, _("Random peer port on start"), NULL);
+ w = trg_json_widget_check_new(&priv->widgets, s,
+ SGET_PEER_PORT_RANDOM_ON_START, _("Random peer port on start"),
+ NULL);
hig_workarea_add_wide_control(t, &row, w);
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_PORT_FORWARDING_ENABLED, _("Peer port forwarding"), NULL);
+ w = trg_json_widget_check_new(&priv->widgets, s,
+ SGET_PORT_FORWARDING_ENABLED, _("Peer port forwarding"), NULL);
hig_workarea_add_wide_control(t, &row, w);
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_PEX_ENABLED, _("Peer exchange (PEX)"), NULL);
+ w = trg_json_widget_check_new(&priv->widgets, s, SGET_PEX_ENABLED,
+ _("Peer exchange (PEX)"), NULL);
hig_workarea_add_wide_control(t, &row, w);
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_DHT_ENABLED, _("Distributed Hash Table (DHT)"), NULL);
+ w = trg_json_widget_check_new(&priv->widgets, s, SGET_DHT_ENABLED,
+ _("Distributed Hash Table (DHT)"), NULL);
hig_workarea_add_wide_control(t, &row, w);
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_LPD_ENABLED, _("Local peer discovery"), NULL);
+ w = trg_json_widget_check_new(&priv->widgets, s, SGET_LPD_ENABLED,
+ _("Local peer discovery"), NULL);
hig_workarea_add_wide_control(t, &row, w);
stringValue = g_strdup_printf(_("Blocklist (%ld entries)"),
session_get_blocklist_size(s));
- tb = priv->blocklist_check = trg_json_widget_check_new(&priv->widgets, s, SGET_BLOCKLIST_ENABLED, stringValue, NULL);
+ tb = priv->blocklist_check = trg_json_widget_check_new(&priv->widgets, s,
+ SGET_BLOCKLIST_ENABLED, stringValue, NULL);
g_free((gchar *) stringValue);
w = priv->blocklist_update_button = gtk_button_new_with_label(_("Update"));
@@ -330,7 +348,8 @@ static GtkWidget *trg_rprefs_connPage(TrgRemotePrefsDialog * win,
//GtkWidget *trg_json_widget_entry_new(GList **wl, JsonObject *obj, gchar *key, GtkWidget *toggleDep);
stringValue = session_get_blocklist_url(s);
if (stringValue) {
- w = trg_json_widget_entry_new(&priv->widgets, s, SGET_BLOCKLIST_URL, NULL);
+ w = trg_json_widget_entry_new(&priv->widgets, s, SGET_BLOCKLIST_URL,
+ NULL);
hig_workarea_add_row(t, &row, _("Blocklist URL:"), w, NULL);
}
@@ -351,25 +370,30 @@ static GtkWidget *trg_rprefs_generalPage(TrgRemotePrefsDialog * win,
w = trg_json_widget_entry_new(&priv->widgets, s, SGET_DOWNLOAD_DIR, NULL);
hig_workarea_add_row(t, &row, _("Download directory"), w, NULL);
- tb = trg_json_widget_check_new(&priv->widgets, s, SGET_INCOMPLETE_DIR_ENABLED, _("Incomplete download dir"), NULL);
+ tb = trg_json_widget_check_new(&priv->widgets, s,
+ SGET_INCOMPLETE_DIR_ENABLED, _("Incomplete download dir"), NULL);
w = trg_json_widget_entry_new(&priv->widgets, s, SGET_INCOMPLETE_DIR, tb);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
- tb = trg_json_widget_check_new(&priv->widgets, s, SGET_SCRIPT_TORRENT_DONE_ENABLED, _("Torrent done script"), NULL);
- w = trg_json_widget_entry_new(&priv->widgets, s, SGET_SCRIPT_TORRENT_DONE_FILENAME, tb);
+ tb = trg_json_widget_check_new(&priv->widgets, s,
+ SGET_SCRIPT_TORRENT_DONE_ENABLED, _("Torrent done script"), NULL);
+ w = trg_json_widget_entry_new(&priv->widgets, s,
+ SGET_SCRIPT_TORRENT_DONE_FILENAME, tb);
hig_workarea_add_row_w(t, &row, tb, w, NULL);
cache_size_mb = session_get_cache_size_mb(s);
if (cache_size_mb >= 0) {
- w = trg_json_widget_spin_new_int(&priv->widgets, s, SGET_CACHE_SIZE_MB, NULL, 0,
- INT_MAX, 1);
+ w = trg_json_widget_spin_new_int(&priv->widgets, s, SGET_CACHE_SIZE_MB,
+ NULL, 0, INT_MAX, 1);
hig_workarea_add_row(t, &row, _("Cache size (MB)"), w, w);
}
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_RENAME_PARTIAL_FILES, _("Rename partial files"), NULL);
+ w = trg_json_widget_check_new(&priv->widgets, s, SGET_RENAME_PARTIAL_FILES,
+ _("Rename partial files"), NULL);
hig_workarea_add_wide_control(t, &row, w);
- w = trg_json_widget_check_new(&priv->widgets, s, SGET_TRASH_ORIGINAL_TORRENT_FILES, _
+ w = trg_json_widget_check_new(&priv->widgets, s,
+ SGET_TRASH_ORIGINAL_TORRENT_FILES, _
("Trash original torrent files"), NULL);
hig_workarea_add_wide_control(t, &row, w);
@@ -405,8 +429,7 @@ static GObject *trg_remote_prefs_dialog_constructor(GType type,
gtk_container_set_border_width(GTK_CONTAINER(object), GUI_PAD);
- gtk_dialog_set_default_response(GTK_DIALOG(object),
- GTK_RESPONSE_OK);
+ gtk_dialog_set_default_response(GTK_DIALOG(object), GTK_RESPONSE_OK);
g_signal_connect(G_OBJECT(object),
"response",
@@ -428,8 +451,7 @@ static GObject *trg_remote_prefs_dialog_constructor(GType type,
gtk_container_set_border_width(GTK_CONTAINER(notebook), GUI_PAD);
- gtk_box_pack_start(GTK_BOX(contentvbox), notebook, TRUE, TRUE,
- 0);
+ gtk_box_pack_start(GTK_BOX(contentvbox), notebook, TRUE, TRUE, 0);
return object;
}
diff --git a/src/trg-stats-dialog.c b/src/trg-stats-dialog.c
index a159434..966b9d7 100644
--- a/src/trg-stats-dialog.c
+++ b/src/trg-stats-dialog.c
@@ -308,7 +308,7 @@ static GObject *trg_stats_dialog_constructor(GType type,
GTK_TREE_MODEL(priv->model));
gtk_container_set_border_width(GTK_CONTAINER(tv), GUI_PAD);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(obj)->vbox), tv, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(gtk_bin_get_child(GTK_BIN(obj))), tv, TRUE, TRUE, 0);
dispatch_async(priv->client, session_stats(), on_stats_reply, obj);
diff --git a/src/trg-torrent-add-dialog.c b/src/trg-torrent-add-dialog.c
index 9589751..8e3880f 100644
--- a/src/trg-torrent-add-dialog.c
+++ b/src/trg-torrent-add-dialog.c
@@ -612,37 +612,6 @@ static void gtr_dialog_set_content(GtkDialog * dialog, GtkWidget * content)
gtk_widget_show_all(content);
}
-GtkWidget *gtr_combo_box_new_enum(const char *text_1, ...)
-{
- GtkWidget *w;
- GtkCellRenderer *r;
- GtkListStore *store;
- va_list vl;
- const char *text;
- va_start(vl, text_1);
-
- store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING);
-
- text = text_1;
- if (text != NULL)
- do {
- const int val = va_arg(vl, int);
- gtk_list_store_insert_with_values(store, NULL, INT_MAX, 0, val,
- 1, text, -1);
- text = va_arg(vl, const char *);
- }
- while (text != NULL);
-
- w = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
- r = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), r, TRUE);
- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(w), r, "text", 1, NULL);
-
- /* cleanup */
- g_object_unref(store);
- return w;
-}
-
GtkWidget *gtr_priority_combo_new(void)
{
return gtr_combo_box_new_enum(_("Low"), TR_PRI_LOW,
diff --git a/src/trg-torrent-props-dialog.c b/src/trg-torrent-props-dialog.c
index cf8898d..0a3954a 100644
--- a/src/trg-torrent-props-dialog.c
+++ b/src/trg-torrent-props-dialog.c
@@ -21,6 +21,7 @@
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
+#include "util.h"
#include "torrent.h"
#include "json.h"
#include "trg-client.h"
@@ -161,11 +162,7 @@ static GtkWidget *trg_props_limitsPage(TrgTorrentPropsDialog * win,
w = trg_json_widget_check_new(&priv->widgets, json, FIELD_HONORS_SESSION_LIMITS, _("Honor global limits"), NULL);
hig_workarea_add_wide_control(t, &row, w);
- w = priv->bandwidthPriorityCombo = gtk_combo_box_new_text();
- //widget_set_json_key(w, FIELD_BANDWIDTH_PRIORITY);
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("Low"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("Normal"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("High"));
+ w = priv->bandwidthPriorityCombo = gtr_combo_box_new_enum(_("Low"), 0, _("Normal"), 1, _("High"), 2);
gtk_combo_box_set_active(GTK_COMBO_BOX(w),
torrent_get_bandwidth_priority(json) + 1);
@@ -186,12 +183,7 @@ static GtkWidget *trg_props_limitsPage(TrgTorrentPropsDialog * win,
hig_workarea_add_section_title(t, &row, _("Seeding"));
- w = priv->seedRatioMode = gtk_combo_box_new_text();
- gtk_combo_box_append_text(GTK_COMBO_BOX(w), _("Use global settings"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(w),
- _("Stop seeding at ratio"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(w),
- _("Seed regardless of ratio"));
+ w = priv->seedRatioMode = gtr_combo_box_new_enum(_("Use global settings"), 0, _("Stop seeding at ratio"), 1, _("Seed regardless of ratio"), 2);
gtk_combo_box_set_active(GTK_COMBO_BOX(w),
torrent_get_seed_ratio_mode(json));
hig_workarea_add_row(t, &row, _("Seed ratio mode:"), w, NULL);
diff --git a/src/util.c b/src/util.c
index 3b4323a..e520dd6 100644
--- a/src/util.c
+++ b/src/util.c
@@ -420,3 +420,34 @@ gchar *trg_base64encode(const gchar *filename)
return b64out;
}
+
+GtkWidget *gtr_combo_box_new_enum(const char *text_1, ...)
+{
+ GtkWidget *w;
+ GtkCellRenderer *r;
+ GtkListStore *store;
+ va_list vl;
+ const char *text;
+ va_start(vl, text_1);
+
+ store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING);
+
+ text = text_1;
+ if (text != NULL)
+ do {
+ const int val = va_arg(vl, int);
+ gtk_list_store_insert_with_values(store, NULL, INT_MAX, 0, val,
+ 1, text, -1);
+ text = va_arg(vl, const char *);
+ }
+ while (text != NULL);
+
+ w = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
+ r = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), r, TRUE);
+ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(w), r, "text", 1, NULL);
+
+ /* cleanup */
+ g_object_unref(store);
+ return w;
+}
diff --git a/src/util.h b/src/util.h
index c3ff770..31fc094 100644
--- a/src/util.h
+++ b/src/util.h
@@ -71,5 +71,6 @@ GtkWidget *my_scrolledwin_new(GtkWidget * child);
gboolean is_url(gchar *string);
gboolean is_magnet(gchar *string);
gdouble json_node_really_get_double(JsonNode *node);
+GtkWidget *gtr_combo_box_new_enum(const char *text_1, ...);
#endif /* UTIL_H_ */