mirror of
https://github.com/transmission/transmission
synced 2025-03-03 10:15:45 +00:00
fewer redundant gobject dynamic casts
This commit is contained in:
parent
104d4aa772
commit
61bc1eabd6
3 changed files with 142 additions and 109 deletions
62
gtk/filter.c
62
gtk/filter.c
|
@ -482,36 +482,40 @@ category_combo_box_new (GtkTreeModel * tmodel)
|
||||||
GtkWidget * c;
|
GtkWidget * c;
|
||||||
GtkCellRenderer * r;
|
GtkCellRenderer * r;
|
||||||
GtkTreeModel * cat_model;
|
GtkTreeModel * cat_model;
|
||||||
|
GtkCellLayout * c_cell_layout;
|
||||||
|
GtkComboBox * c_combo_box;
|
||||||
|
|
||||||
/* create the category combobox */
|
/* create the category combobox */
|
||||||
cat_model = category_filter_model_new (tmodel);
|
cat_model = category_filter_model_new (tmodel);
|
||||||
c = gtk_combo_box_new_with_model (cat_model);
|
c = gtk_combo_box_new_with_model (cat_model);
|
||||||
|
c_combo_box = GTK_COMBO_BOX (c);
|
||||||
|
c_cell_layout = GTK_CELL_LAYOUT (c);
|
||||||
g_object_unref (cat_model);
|
g_object_unref (cat_model);
|
||||||
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (c),
|
gtk_combo_box_set_row_separator_func (c_combo_box,
|
||||||
is_it_a_separator, NULL, NULL);
|
is_it_a_separator, NULL, NULL);
|
||||||
gtk_combo_box_set_active (GTK_COMBO_BOX (c), 0);
|
gtk_combo_box_set_active (c_combo_box, 0);
|
||||||
|
|
||||||
r = gtk_cell_renderer_pixbuf_new ();
|
r = gtk_cell_renderer_pixbuf_new ();
|
||||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (c), r, FALSE);
|
gtk_cell_layout_pack_start (c_cell_layout, r, FALSE);
|
||||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_cell_data_func (c_cell_layout, r,
|
||||||
render_pixbuf_func, NULL, NULL);
|
render_pixbuf_func, NULL, NULL);
|
||||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_attributes (c_cell_layout, r,
|
||||||
"pixbuf", CAT_FILTER_COL_PIXBUF,
|
"pixbuf", CAT_FILTER_COL_PIXBUF,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
r = gtk_cell_renderer_text_new ();
|
r = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (c), r, FALSE);
|
gtk_cell_layout_pack_start (c_cell_layout, r, FALSE);
|
||||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_attributes (c_cell_layout, r,
|
||||||
"text", CAT_FILTER_COL_NAME,
|
"text", CAT_FILTER_COL_NAME,
|
||||||
NULL);
|
NULL);
|
||||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_cell_data_func (c_cell_layout, r,
|
||||||
is_capital_sensitive,
|
is_capital_sensitive,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
|
|
||||||
|
|
||||||
r = number_renderer_new ();
|
r = number_renderer_new ();
|
||||||
gtk_cell_layout_pack_end (GTK_CELL_LAYOUT (c), r, TRUE);
|
gtk_cell_layout_pack_end (c_cell_layout, r, TRUE);
|
||||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_cell_data_func (c_cell_layout, r,
|
||||||
render_number_func, NULL, NULL);
|
render_number_func, NULL, NULL);
|
||||||
|
|
||||||
g_object_weak_ref (G_OBJECT (cat_model), disconnect_cat_model_callbacks, tmodel);
|
g_object_weak_ref (G_OBJECT (cat_model), disconnect_cat_model_callbacks, tmodel);
|
||||||
|
@ -788,31 +792,35 @@ activity_combo_box_new (GtkTreeModel * tmodel)
|
||||||
GtkWidget * c;
|
GtkWidget * c;
|
||||||
GtkCellRenderer * r;
|
GtkCellRenderer * r;
|
||||||
GtkTreeModel * activity_model;
|
GtkTreeModel * activity_model;
|
||||||
|
GtkComboBox * c_combo_box;
|
||||||
|
GtkCellLayout * c_cell_layout;
|
||||||
|
|
||||||
activity_model = activity_filter_model_new (tmodel);
|
activity_model = activity_filter_model_new (tmodel);
|
||||||
c = gtk_combo_box_new_with_model (activity_model);
|
c = gtk_combo_box_new_with_model (activity_model);
|
||||||
|
c_combo_box = GTK_COMBO_BOX (c);
|
||||||
|
c_cell_layout = GTK_CELL_LAYOUT (c);
|
||||||
g_object_unref (activity_model);
|
g_object_unref (activity_model);
|
||||||
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (c),
|
gtk_combo_box_set_row_separator_func (c_combo_box,
|
||||||
activity_is_it_a_separator, NULL, NULL);
|
activity_is_it_a_separator, NULL, NULL);
|
||||||
gtk_combo_box_set_active (GTK_COMBO_BOX (c), 0);
|
gtk_combo_box_set_active (c_combo_box, 0);
|
||||||
|
|
||||||
r = gtk_cell_renderer_pixbuf_new ();
|
r = gtk_cell_renderer_pixbuf_new ();
|
||||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (c), r, FALSE);
|
gtk_cell_layout_pack_start (c_cell_layout, r, FALSE);
|
||||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_attributes (c_cell_layout, r,
|
||||||
"stock-id", ACTIVITY_FILTER_COL_STOCK_ID,
|
"stock-id", ACTIVITY_FILTER_COL_STOCK_ID,
|
||||||
NULL);
|
NULL);
|
||||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_cell_data_func (c_cell_layout, r,
|
||||||
render_activity_pixbuf_func, NULL, NULL);
|
render_activity_pixbuf_func, NULL, NULL);
|
||||||
|
|
||||||
r = gtk_cell_renderer_text_new ();
|
r = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (c), r, TRUE);
|
gtk_cell_layout_pack_start (c_cell_layout, r, TRUE);
|
||||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_attributes (c_cell_layout, r,
|
||||||
"text", ACTIVITY_FILTER_COL_NAME,
|
"text", ACTIVITY_FILTER_COL_NAME,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
r = number_renderer_new ();
|
r = number_renderer_new ();
|
||||||
gtk_cell_layout_pack_end (GTK_CELL_LAYOUT (c), r, TRUE);
|
gtk_cell_layout_pack_end (c_cell_layout, r, TRUE);
|
||||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (c), r,
|
gtk_cell_layout_set_cell_data_func (c_cell_layout, r,
|
||||||
render_number_func, NULL, NULL);
|
render_number_func, NULL, NULL);
|
||||||
|
|
||||||
g_object_weak_ref (G_OBJECT (activity_model), disconnect_activity_model_callbacks, tmodel);
|
g_object_weak_ref (G_OBJECT (activity_model), disconnect_activity_model_callbacks, tmodel);
|
||||||
|
@ -963,6 +971,7 @@ gtr_filter_bar_new (tr_session * session, GtkTreeModel * tmodel, GtkTreeModel **
|
||||||
GtkWidget * s;
|
GtkWidget * s;
|
||||||
GtkWidget * activity;
|
GtkWidget * activity;
|
||||||
GtkWidget * category;
|
GtkWidget * category;
|
||||||
|
GtkBox * h_box;
|
||||||
const char * str;
|
const char * str;
|
||||||
struct filter_data * data;
|
struct filter_data * data;
|
||||||
|
|
||||||
|
@ -989,6 +998,7 @@ gtr_filter_bar_new (tr_session * session, GtkTreeModel * tmodel, GtkTreeModel **
|
||||||
|
|
||||||
|
|
||||||
h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, GUI_PAD_SMALL);
|
h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, GUI_PAD_SMALL);
|
||||||
|
h_box = GTK_BOX (h);
|
||||||
|
|
||||||
/* add the activity combobox */
|
/* add the activity combobox */
|
||||||
str = _("_Show:");
|
str = _("_Show:");
|
||||||
|
@ -996,28 +1006,28 @@ gtr_filter_bar_new (tr_session * session, GtkTreeModel * tmodel, GtkTreeModel **
|
||||||
l = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_markup_with_mnemonic (GTK_LABEL (l), str);
|
gtk_label_set_markup_with_mnemonic (GTK_LABEL (l), str);
|
||||||
gtk_label_set_mnemonic_widget (GTK_LABEL (l), w);
|
gtk_label_set_mnemonic_widget (GTK_LABEL (l), w);
|
||||||
gtk_box_pack_start (GTK_BOX (h), l, FALSE, FALSE, 0);
|
gtk_box_pack_start (h_box, l, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start (GTK_BOX (h), w, TRUE, TRUE, 0);
|
gtk_box_pack_start (h_box, w, TRUE, TRUE, 0);
|
||||||
|
|
||||||
/* add a spacer */
|
/* add a spacer */
|
||||||
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
gtk_widget_set_size_request (w, 0u, GUI_PAD_BIG);
|
gtk_widget_set_size_request (w, 0u, GUI_PAD_BIG);
|
||||||
gtk_box_pack_start (GTK_BOX (h), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (h_box, w, FALSE, FALSE, 0);
|
||||||
|
|
||||||
/* add the category combobox */
|
/* add the category combobox */
|
||||||
w = category;
|
w = category;
|
||||||
gtk_box_pack_start (GTK_BOX (h), w, TRUE, TRUE, 0);
|
gtk_box_pack_start (h_box, w, TRUE, TRUE, 0);
|
||||||
|
|
||||||
/* add a spacer */
|
/* add a spacer */
|
||||||
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
gtk_widget_set_size_request (w, 0u, GUI_PAD_BIG);
|
gtk_widget_set_size_request (w, 0u, GUI_PAD_BIG);
|
||||||
gtk_box_pack_start (GTK_BOX (h), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (h_box, w, FALSE, FALSE, 0);
|
||||||
|
|
||||||
/* add the entry field */
|
/* add the entry field */
|
||||||
s = gtk_entry_new ();
|
s = gtk_entry_new ();
|
||||||
gtk_entry_set_icon_from_stock (GTK_ENTRY (s), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR);
|
gtk_entry_set_icon_from_stock (GTK_ENTRY (s), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR);
|
||||||
g_signal_connect (s, "icon-release", G_CALLBACK (entry_clear), NULL);
|
g_signal_connect (s, "icon-release", G_CALLBACK (entry_clear), NULL);
|
||||||
gtk_box_pack_start (GTK_BOX (h), s, TRUE, TRUE, 0);
|
gtk_box_pack_start (h_box, s, TRUE, TRUE, 0);
|
||||||
|
|
||||||
g_signal_connect (s, "changed", G_CALLBACK (filter_entry_changed), data->filter_model);
|
g_signal_connect (s, "changed", G_CALLBACK (filter_entry_changed), data->filter_model);
|
||||||
selection_changed_cb (NULL, data);
|
selection_changed_cb (NULL, data);
|
||||||
|
|
78
gtk/stats.c
78
gtk/stats.c
|
@ -20,36 +20,39 @@
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
TR_RESPONSE_RESET = 1
|
TR_RESPONSE_RESET = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
struct stat_ui
|
struct stat_ui
|
||||||
{
|
{
|
||||||
GtkWidget * one_up_lb;
|
GtkLabel * one_up_lb;
|
||||||
GtkWidget * one_down_lb;
|
GtkLabel * one_down_lb;
|
||||||
GtkWidget * one_ratio_lb;
|
GtkLabel * one_ratio_lb;
|
||||||
GtkWidget * one_time_lb;
|
GtkLabel * one_time_lb;
|
||||||
GtkWidget * all_up_lb;
|
|
||||||
GtkWidget * all_down_lb;
|
GtkLabel * all_up_lb;
|
||||||
GtkWidget * all_ratio_lb;
|
GtkLabel * all_down_lb;
|
||||||
GtkWidget * all_time_lb;
|
GtkLabel * all_ratio_lb;
|
||||||
GtkWidget * all_sessions_lb;
|
GtkLabel * all_time_lb;
|
||||||
TrCore * core;
|
|
||||||
|
GtkLabel * all_sessions_lb;
|
||||||
|
|
||||||
|
TrCore * core;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setLabel (GtkWidget * w, const char * str)
|
setLabel (GtkLabel * l, const char * str)
|
||||||
{
|
{
|
||||||
gtr_label_set_text (GTK_LABEL (w), str);
|
gtr_label_set_text (l, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setLabelFromRatio (GtkWidget * w, double d)
|
setLabelFromRatio (GtkLabel * l, double d)
|
||||||
{
|
{
|
||||||
char buf[128];
|
char buf[128];
|
||||||
|
|
||||||
tr_strlratio (buf, d, sizeof (buf));
|
tr_strlratio (buf, d, sizeof (buf));
|
||||||
setLabel (w, buf);
|
setLabel (l, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -147,34 +150,43 @@ gtr_stats_dialog_new (GtkWindow * parent, TrCore * core)
|
||||||
ui->core = core;
|
ui->core = core;
|
||||||
|
|
||||||
hig_workarea_add_section_title (t, &row, _("Current Session"));
|
hig_workarea_add_section_title (t, &row, _("Current Session"));
|
||||||
l = ui->one_up_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->one_up_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->one_up_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Uploaded:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Uploaded:"), l, NULL);
|
||||||
l = ui->one_down_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->one_down_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->one_down_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Downloaded:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Downloaded:"), l, NULL);
|
||||||
l = ui->one_ratio_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->one_ratio_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->one_ratio_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Ratio:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Ratio:"), l, NULL);
|
||||||
l = ui->one_time_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->one_time_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->one_time_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Duration:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Duration:"), l, NULL);
|
||||||
hig_workarea_add_section_divider (t, &row);
|
hig_workarea_add_section_divider (t, &row);
|
||||||
hig_workarea_add_section_title (t, &row, _("Total"));
|
hig_workarea_add_section_title (t, &row, _("Total"));
|
||||||
l = ui->all_sessions_lb = gtk_label_new (_("Started %'d time"));
|
l = gtk_label_new (_("Started %'d time"));
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->all_sessions_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->all_sessions_lb, TRUE);
|
||||||
hig_workarea_add_label_w (t, row++, l);
|
hig_workarea_add_label_w (t, row++, l);
|
||||||
l = ui->all_up_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->all_up_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->all_up_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Uploaded:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Uploaded:"), l, NULL);
|
||||||
l = ui->all_down_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->all_down_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->all_down_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Downloaded:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Downloaded:"), l, NULL);
|
||||||
l = ui->all_ratio_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->all_ratio_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->all_ratio_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Ratio:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Ratio:"), l, NULL);
|
||||||
l = ui->all_time_lb = gtk_label_new (NULL);
|
l = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (l), TRUE);
|
ui->all_time_lb = GTK_LABEL (l);
|
||||||
|
gtk_label_set_single_line_mode (ui->all_time_lb, TRUE);
|
||||||
hig_workarea_add_row (t, &row, _("Duration:"), l, NULL);
|
hig_workarea_add_row (t, &row, _("Duration:"), l, NULL);
|
||||||
gtr_dialog_set_content (GTK_DIALOG (d), t);
|
gtr_dialog_set_content (GTK_DIALOG (d), t);
|
||||||
|
|
||||||
|
|
111
gtk/tr-window.c
111
gtk/tr-window.c
|
@ -51,10 +51,10 @@ typedef struct
|
||||||
GtkWidget * filter;
|
GtkWidget * filter;
|
||||||
GtkWidget * status;
|
GtkWidget * status;
|
||||||
GtkWidget * status_menu;
|
GtkWidget * status_menu;
|
||||||
GtkWidget * ul_lb;
|
GtkLabel * ul_lb;
|
||||||
GtkWidget * dl_lb;
|
GtkLabel * dl_lb;
|
||||||
GtkWidget * stats_lb;
|
GtkLabel * stats_lb;
|
||||||
GtkWidget * gutter_lb;
|
GtkLabel * gutter_lb;
|
||||||
GtkWidget * alt_speed_image;
|
GtkWidget * alt_speed_image;
|
||||||
GtkWidget * alt_speed_button;
|
GtkWidget * alt_speed_button;
|
||||||
GtkWidget * options_menu;
|
GtkWidget * options_menu;
|
||||||
|
@ -412,26 +412,28 @@ createSpeedMenu (PrivateData * p, tr_direction dir)
|
||||||
{
|
{
|
||||||
int i, n;
|
int i, n;
|
||||||
GtkWidget *w, *m;
|
GtkWidget *w, *m;
|
||||||
|
GtkMenuShell * menu_shell;
|
||||||
const int speeds_KBps[] = { 5, 10, 20, 30, 40, 50, 75, 100, 150, 200, 250, 500, 750 };
|
const int speeds_KBps[] = { 5, 10, 20, 30, 40, 50, 75, 100, 150, 200, 250, 500, 750 };
|
||||||
|
|
||||||
m = gtk_menu_new ();
|
m = gtk_menu_new ();
|
||||||
|
menu_shell = GTK_MENU_SHELL (m);
|
||||||
|
|
||||||
w = gtk_radio_menu_item_new_with_label (NULL, _("Unlimited"));
|
w = gtk_radio_menu_item_new_with_label (NULL, _("Unlimited"));
|
||||||
p->speedlimit_off_item[dir] = w;
|
p->speedlimit_off_item[dir] = w;
|
||||||
g_object_set_data (G_OBJECT (w), DIRECTION_KEY, GINT_TO_POINTER (dir));
|
g_object_set_data (G_OBJECT (w), DIRECTION_KEY, GINT_TO_POINTER (dir));
|
||||||
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (FALSE));
|
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (FALSE));
|
||||||
g_signal_connect (w, "toggled", G_CALLBACK (onSpeedToggled), p);
|
g_signal_connect (w, "toggled", G_CALLBACK (onSpeedToggled), p);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
|
|
||||||
w = gtk_radio_menu_item_new_with_label_from_widget (GTK_RADIO_MENU_ITEM (w), "");
|
w = gtk_radio_menu_item_new_with_label_from_widget (GTK_RADIO_MENU_ITEM (w), "");
|
||||||
p->speedlimit_on_item[dir] = w;
|
p->speedlimit_on_item[dir] = w;
|
||||||
g_object_set_data (G_OBJECT (w), DIRECTION_KEY, GINT_TO_POINTER (dir));
|
g_object_set_data (G_OBJECT (w), DIRECTION_KEY, GINT_TO_POINTER (dir));
|
||||||
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (TRUE));
|
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (TRUE));
|
||||||
g_signal_connect (w, "toggled", G_CALLBACK (onSpeedToggled), p);
|
g_signal_connect (w, "toggled", G_CALLBACK (onSpeedToggled), p);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
|
|
||||||
w = gtk_separator_menu_item_new ();
|
w = gtk_separator_menu_item_new ();
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
|
|
||||||
for (i=0, n=G_N_ELEMENTS (speeds_KBps); i<n; ++i)
|
for (i=0, n=G_N_ELEMENTS (speeds_KBps); i<n; ++i)
|
||||||
{
|
{
|
||||||
|
@ -441,7 +443,7 @@ createSpeedMenu (PrivateData * p, tr_direction dir)
|
||||||
g_object_set_data (G_OBJECT (w), DIRECTION_KEY, GINT_TO_POINTER (dir));
|
g_object_set_data (G_OBJECT (w), DIRECTION_KEY, GINT_TO_POINTER (dir));
|
||||||
g_object_set_data (G_OBJECT (w), SPEED_KEY, GINT_TO_POINTER (speeds_KBps[i]));
|
g_object_set_data (G_OBJECT (w), SPEED_KEY, GINT_TO_POINTER (speeds_KBps[i]));
|
||||||
g_signal_connect (w, "activate", G_CALLBACK (onSpeedSet), p);
|
g_signal_connect (w, "activate", G_CALLBACK (onSpeedSet), p);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
}
|
}
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
|
@ -479,24 +481,26 @@ static GtkWidget*
|
||||||
createRatioMenu (PrivateData * p)
|
createRatioMenu (PrivateData * p)
|
||||||
{
|
{
|
||||||
int i, n;
|
int i, n;
|
||||||
GtkWidget *m, *w;
|
GtkWidget *m, *w;
|
||||||
|
GtkMenuShell * menu_shell;
|
||||||
|
|
||||||
m = gtk_menu_new ();
|
m = gtk_menu_new ();
|
||||||
|
menu_shell = GTK_MENU_SHELL (m);
|
||||||
|
|
||||||
w = gtk_radio_menu_item_new_with_label (NULL, _("Seed Forever"));
|
w = gtk_radio_menu_item_new_with_label (NULL, _("Seed Forever"));
|
||||||
p->ratio_off_item = w;
|
p->ratio_off_item = w;
|
||||||
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (FALSE));
|
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (FALSE));
|
||||||
g_signal_connect (w, "toggled", G_CALLBACK (onRatioToggled), p);
|
g_signal_connect (w, "toggled", G_CALLBACK (onRatioToggled), p);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
|
|
||||||
w = gtk_radio_menu_item_new_with_label_from_widget (GTK_RADIO_MENU_ITEM (w), "");
|
w = gtk_radio_menu_item_new_with_label_from_widget (GTK_RADIO_MENU_ITEM (w), "");
|
||||||
p->ratio_on_item = w;
|
p->ratio_on_item = w;
|
||||||
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (TRUE));
|
g_object_set_data (G_OBJECT (w), ENABLED_KEY, GINT_TO_POINTER (TRUE));
|
||||||
g_signal_connect (w, "toggled", G_CALLBACK (onRatioToggled), p);
|
g_signal_connect (w, "toggled", G_CALLBACK (onRatioToggled), p);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
|
|
||||||
w = gtk_separator_menu_item_new ();
|
w = gtk_separator_menu_item_new ();
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
|
|
||||||
for (i=0, n=G_N_ELEMENTS (stockRatios); i<n; ++i)
|
for (i=0, n=G_N_ELEMENTS (stockRatios); i<n; ++i)
|
||||||
{
|
{
|
||||||
|
@ -505,7 +509,7 @@ createRatioMenu (PrivateData * p)
|
||||||
w = gtk_menu_item_new_with_label (buf);
|
w = gtk_menu_item_new_with_label (buf);
|
||||||
g_object_set_data (G_OBJECT (w), RATIO_KEY, GINT_TO_POINTER (i));
|
g_object_set_data (G_OBJECT (w), RATIO_KEY, GINT_TO_POINTER (i));
|
||||||
g_signal_connect (w, "activate", G_CALLBACK (onRatioSet), p);
|
g_signal_connect (w, "activate", G_CALLBACK (onRatioSet), p);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (m), w);
|
gtk_menu_shell_append (menu_shell, w);
|
||||||
}
|
}
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
|
@ -520,21 +524,22 @@ createOptionsMenu (PrivateData * p)
|
||||||
{
|
{
|
||||||
GtkWidget * m;
|
GtkWidget * m;
|
||||||
GtkWidget * top = gtk_menu_new ();
|
GtkWidget * top = gtk_menu_new ();
|
||||||
|
GtkMenuShell * menu_shell = GTK_MENU_SHELL (top);
|
||||||
|
|
||||||
m = gtk_menu_item_new_with_label (_("Limit Download Speed"));
|
m = gtk_menu_item_new_with_label (_("Limit Download Speed"));
|
||||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (m), createSpeedMenu (p, TR_DOWN));
|
gtk_menu_item_set_submenu (GTK_MENU_ITEM (m), createSpeedMenu (p, TR_DOWN));
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (top), m);
|
gtk_menu_shell_append (menu_shell, m);
|
||||||
|
|
||||||
m = gtk_menu_item_new_with_label (_("Limit Upload Speed"));
|
m = gtk_menu_item_new_with_label (_("Limit Upload Speed"));
|
||||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (m), createSpeedMenu (p, TR_UP));
|
gtk_menu_item_set_submenu (GTK_MENU_ITEM (m), createSpeedMenu (p, TR_UP));
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (top), m);
|
gtk_menu_shell_append (menu_shell, m);
|
||||||
|
|
||||||
m = gtk_separator_menu_item_new ();
|
m = gtk_separator_menu_item_new ();
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (top), m);
|
gtk_menu_shell_append (menu_shell, m);
|
||||||
|
|
||||||
m = gtk_menu_item_new_with_label (_("Stop Seeding at Ratio"));
|
m = gtk_menu_item_new_with_label (_("Stop Seeding at Ratio"));
|
||||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (m), createRatioMenu (p));
|
gtk_menu_item_set_submenu (GTK_MENU_ITEM (m), createRatioMenu (p));
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (top), m);
|
gtk_menu_shell_append (menu_shell, m);
|
||||||
|
|
||||||
gtk_widget_show_all (top);
|
gtk_widget_show_all (top);
|
||||||
return top;
|
return top;
|
||||||
|
@ -585,6 +590,7 @@ gtr_window_new (GtkApplication * app, GtkUIManager * ui_mgr, TrCore * core)
|
||||||
int i, n;
|
int i, n;
|
||||||
const char * pch;
|
const char * pch;
|
||||||
PrivateData * p;
|
PrivateData * p;
|
||||||
|
GtkWidget * ul_lb, * dl_lb;
|
||||||
GtkWidget * mainmenu, *toolbar, *filter, *list, *status;
|
GtkWidget * mainmenu, *toolbar, *filter, *list, *status;
|
||||||
GtkWidget * vbox, *w, *self, *h, *hbox, *menu;
|
GtkWidget * vbox, *w, *self, *h, *hbox, *menu;
|
||||||
GtkWindow * win;
|
GtkWindow * win;
|
||||||
|
@ -668,16 +674,18 @@ gtr_window_new (GtkApplication * app, GtkUIManager * ui_mgr, TrCore * core)
|
||||||
g_signal_connect (w, "toggled", G_CALLBACK (alt_speed_toggled_cb), p);
|
g_signal_connect (w, "toggled", G_CALLBACK (alt_speed_toggled_cb), p);
|
||||||
gtk_box_pack_start (GTK_BOX (h), w, 0, 0, 0);
|
gtk_box_pack_start (GTK_BOX (h), w, 0, 0, 0);
|
||||||
|
|
||||||
w = p->gutter_lb = gtk_label_new ("N Torrents");
|
w = gtk_label_new ("N Torrents");
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
|
p->gutter_lb = GTK_LABEL (w);
|
||||||
|
gtk_label_set_single_line_mode (p->gutter_lb, TRUE);
|
||||||
gtk_box_pack_start (GTK_BOX (h), w, 1, 1, GUI_PAD);
|
gtk_box_pack_start (GTK_BOX (h), w, 1, 1, GUI_PAD);
|
||||||
|
|
||||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, GUI_PAD);
|
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, GUI_PAD);
|
||||||
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
gtk_widget_set_size_request (w, GUI_PAD, 0u);
|
gtk_widget_set_size_request (w, GUI_PAD, 0u);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
w = p->ul_lb = gtk_label_new (NULL);
|
w = ul_lb = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
|
p->ul_lb = GTK_LABEL (w);
|
||||||
|
gtk_label_set_single_line_mode (p->ul_lb, TRUE);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
w = gtk_image_new_from_stock (GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU);
|
w = gtk_image_new_from_stock (GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
|
@ -687,8 +695,9 @@ gtr_window_new (GtkApplication * app, GtkUIManager * ui_mgr, TrCore * core)
|
||||||
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
gtk_widget_set_size_request (w, GUI_PAD, 0u);
|
gtk_widget_set_size_request (w, GUI_PAD, 0u);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
w = p->dl_lb = gtk_label_new (NULL);
|
w = dl_lb = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
|
p->dl_lb = GTK_LABEL (w);
|
||||||
|
gtk_label_set_single_line_mode (p->dl_lb, TRUE);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
w = gtk_image_new_from_stock (GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU);
|
w = gtk_image_new_from_stock (GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_MENU);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
|
@ -701,8 +710,9 @@ gtr_window_new (GtkApplication * app, GtkUIManager * ui_mgr, TrCore * core)
|
||||||
gtk_button_set_relief (GTK_BUTTON (w), GTK_RELIEF_NONE);
|
gtk_button_set_relief (GTK_BUTTON (w), GTK_RELIEF_NONE);
|
||||||
g_signal_connect (w, "clicked", G_CALLBACK (onYinYangReleased), p);
|
g_signal_connect (w, "clicked", G_CALLBACK (onYinYangReleased), p);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
w = p->stats_lb = gtk_label_new (NULL);
|
w = gtk_label_new (NULL);
|
||||||
gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
|
p->stats_lb = GTK_LABEL (w);
|
||||||
|
gtk_label_set_single_line_mode (p->stats_lb, TRUE);
|
||||||
gtk_box_pack_end (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
gtk_box_pack_end (GTK_BOX (hbox), w, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_end (GTK_BOX (h), hbox, FALSE, FALSE, 0);
|
gtk_box_pack_end (GTK_BOX (h), hbox, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
@ -727,12 +737,12 @@ gtr_window_new (GtkApplication * app, GtkUIManager * ui_mgr, TrCore * core)
|
||||||
/* this is to determine the maximum width/height for the label */
|
/* this is to determine the maximum width/height for the label */
|
||||||
int w=0, h=0;
|
int w=0, h=0;
|
||||||
PangoLayout * pango_layout;
|
PangoLayout * pango_layout;
|
||||||
pango_layout = gtk_widget_create_pango_layout (p->ul_lb, "999.99 kB/s");
|
pango_layout = gtk_widget_create_pango_layout (ul_lb, "999.99 kB/s");
|
||||||
pango_layout_get_pixel_size (pango_layout, &w, &h);
|
pango_layout_get_pixel_size (pango_layout, &w, &h);
|
||||||
gtk_widget_set_size_request (p->ul_lb, w, h);
|
gtk_widget_set_size_request (ul_lb, w, h);
|
||||||
gtk_widget_set_size_request (p->dl_lb, w, h);
|
gtk_widget_set_size_request (dl_lb, w, h);
|
||||||
gtk_misc_set_alignment (GTK_MISC (p->ul_lb), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (ul_lb), 1.0, 0.5);
|
||||||
gtk_misc_set_alignment (GTK_MISC (p->dl_lb), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (dl_lb), 1.0, 0.5);
|
||||||
g_object_unref (G_OBJECT (pango_layout));
|
g_object_unref (G_OBJECT (pango_layout));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -758,25 +768,26 @@ gtr_window_new (GtkApplication * app, GtkUIManager * ui_mgr, TrCore * core)
|
||||||
static void
|
static void
|
||||||
updateTorrentCount (PrivateData * p)
|
updateTorrentCount (PrivateData * p)
|
||||||
{
|
{
|
||||||
if (p && p->core)
|
if (p && p->core)
|
||||||
{
|
{
|
||||||
char buf[512];
|
char buf[512];
|
||||||
const int torrentCount = gtk_tree_model_iter_n_children (gtr_core_model (p->core), NULL);
|
const int torrentCount = gtk_tree_model_iter_n_children (gtr_core_model (p->core), NULL);
|
||||||
const int visibleCount = gtk_tree_model_iter_n_children (p->filter_model, NULL);
|
const int visibleCount = gtk_tree_model_iter_n_children (p->filter_model, NULL);
|
||||||
|
|
||||||
if (!torrentCount)
|
if (!torrentCount)
|
||||||
*buf = '\0';
|
*buf = '\0';
|
||||||
else if (torrentCount != visibleCount)
|
else if (torrentCount != visibleCount)
|
||||||
g_snprintf (buf, sizeof (buf),
|
g_snprintf (buf, sizeof (buf),
|
||||||
ngettext ("%1$'d of %2$'d Torrent",
|
ngettext ("%1$'d of %2$'d Torrent",
|
||||||
"%1$'d of %2$'d Torrents",
|
"%1$'d of %2$'d Torrents",
|
||||||
torrentCount),
|
torrentCount),
|
||||||
visibleCount, torrentCount);
|
visibleCount, torrentCount);
|
||||||
else
|
else
|
||||||
g_snprintf (buf, sizeof (buf),
|
g_snprintf (buf, sizeof (buf),
|
||||||
ngettext ("%'d Torrent", "%'d Torrents", torrentCount),
|
ngettext ("%'d Torrent", "%'d Torrents", torrentCount),
|
||||||
torrentCount);
|
torrentCount);
|
||||||
gtr_label_set_text (GTK_LABEL (p->gutter_lb), buf);
|
|
||||||
|
gtr_label_set_text (p->gutter_lb, buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -824,7 +835,7 @@ updateStats (PrivateData * p)
|
||||||
tr_strlratio (ratio, stats.ratio, sizeof (ratio));
|
tr_strlratio (ratio, stats.ratio, sizeof (ratio));
|
||||||
g_snprintf (buf, sizeof (buf), _("Ratio: %s"), ratio);
|
g_snprintf (buf, sizeof (buf), _("Ratio: %s"), ratio);
|
||||||
}
|
}
|
||||||
gtr_label_set_text (GTK_LABEL (p->stats_lb), buf);
|
gtr_label_set_text (p->stats_lb, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -851,10 +862,10 @@ updateSpeeds (PrivateData * p)
|
||||||
while (gtk_tree_model_iter_next (model, &iter));
|
while (gtk_tree_model_iter_next (model, &iter));
|
||||||
|
|
||||||
tr_formatter_speed_KBps (buf, down, sizeof (buf));
|
tr_formatter_speed_KBps (buf, down, sizeof (buf));
|
||||||
gtr_label_set_text (GTK_LABEL (p->dl_lb), buf);
|
gtr_label_set_text (p->dl_lb, buf);
|
||||||
|
|
||||||
tr_formatter_speed_KBps (buf, up, sizeof (buf));
|
tr_formatter_speed_KBps (buf, up, sizeof (buf));
|
||||||
gtr_label_set_text (GTK_LABEL (p->ul_lb), buf);
|
gtr_label_set_text (p->ul_lb, buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue