summaryrefslogtreecommitdiff
path: root/src/trg-menu-bar.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-04-12 10:54:29 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-04-12 10:54:29 +0000
commit42eddac0e9f0216175fef223fd9b1023ed502a6e (patch)
tree7fd853c8fdabc678bc1df0f4eb5160420347ac8e /src/trg-menu-bar.c
parentf4a194f08d0c48641f5394cd07be61931a432241 (diff)
some quite significant changes to only receive/update recently-active torrents, if enabled. also use a hash table and tree row references for lookup. hopefully performance will be much better for people with large number of torrents.
Diffstat (limited to 'src/trg-menu-bar.c')
-rw-r--r--src/trg-menu-bar.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/trg-menu-bar.c b/src/trg-menu-bar.c
index 9b81154..b86b0c7 100644
--- a/src/trg-menu-bar.c
+++ b/src/trg-menu-bar.c
@@ -31,7 +31,9 @@ enum {
PROP_REMOVE_BUTTON,
PROP_DELETE_BUTTON,
PROP_RESUME_BUTTON,
+ PROP_RESUME_ALL_BUTTON,
PROP_PAUSE_BUTTON,
+ PROP_PAUSE_ALL_BUTTON,
PROP_VERIFY_BUTTON,
PROP_REANNOUNCE_BUTTON,
PROP_PROPS_BUTTON,
@@ -60,6 +62,8 @@ struct _TrgMenuBarPrivate {
GtkWidget *mb_delete;
GtkWidget *mb_resume;
GtkWidget *mb_pause;
+ GtkWidget *mb_resume_all;
+ GtkWidget *mb_pause_all;
GtkWidget *mb_verify;
GtkWidget *mb_reannounce;
GtkWidget *mb_props;
@@ -82,6 +86,8 @@ void trg_menu_bar_connected_change(TrgMenuBar * mb, gboolean connected)
gtk_widget_set_sensitive(priv->mb_disconnect, connected);
gtk_widget_set_sensitive(priv->mb_remote_prefs, connected);
gtk_widget_set_sensitive(priv->mb_view_stats, connected);
+ gtk_widget_set_sensitive(priv->mb_resume_all, connected);
+ gtk_widget_set_sensitive(priv->mb_pause_all, connected);
}
void trg_menu_bar_torrent_actions_sensitive(TrgMenuBar * mb,
@@ -129,9 +135,15 @@ trg_menu_bar_get_property(GObject * object, guint property_id,
case PROP_RESUME_BUTTON:
g_value_set_object(value, priv->mb_resume);
break;
+ case PROP_RESUME_ALL_BUTTON:
+ g_value_set_object(value, priv->mb_resume_all);
+ break;
case PROP_PAUSE_BUTTON:
g_value_set_object(value, priv->mb_pause);
break;
+ case PROP_PAUSE_ALL_BUTTON:
+ g_value_set_object(value, priv->mb_pause_all);
+ break;
case PROP_VERIFY_BUTTON:
g_value_set_object(value, priv->mb_verify);
break;
@@ -312,6 +324,15 @@ GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBarPrivate * priv)
_("Remove and Delete"), GTK_STOCK_DELETE,
FALSE);
+ gtk_menu_shell_append(GTK_MENU_SHELL(torrentMenu), gtk_separator_menu_item_new());
+
+ priv->mb_resume_all =
+ trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("_Resume All"),
+ GTK_STOCK_MEDIA_PLAY, FALSE);
+ priv->mb_pause_all =
+ trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu), _("_Pause All"),
+ GTK_STOCK_MEDIA_PAUSE, FALSE);
+
return torrent;
}
@@ -357,11 +378,15 @@ static void trg_menu_bar_class_init(TrgMenuBarClass * klass)
"delete-button", "Delete Button");
trg_menu_bar_install_widget_prop(object_class, PROP_RESUME_BUTTON,
"resume-button", "Resume Button");
+ trg_menu_bar_install_widget_prop(object_class, PROP_RESUME_ALL_BUTTON,
+ "resume-all-button", "Resume All Button");
trg_menu_bar_install_widget_prop(object_class, PROP_VERIFY_BUTTON,
"verify-button", "Verify Button");
trg_menu_bar_install_widget_prop(object_class, PROP_REANNOUNCE_BUTTON,
"reannounce-button",
"Re-announce Button");
+ trg_menu_bar_install_widget_prop(object_class, PROP_PAUSE_ALL_BUTTON,
+ "pause-all-button", "Pause All Button");
trg_menu_bar_install_widget_prop(object_class, PROP_PAUSE_BUTTON,
"pause-button", "Pause Button");
trg_menu_bar_install_widget_prop(object_class, PROP_PROPS_BUTTON,