summaryrefslogtreecommitdiff
path: root/src/trg-menu-bar.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-11 16:22:12 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-11 16:22:12 +0000
commitb04162cc32df0d27397d2b0320f984ec98267b54 (patch)
tree9b3a720a94d4b35d0b5ec615406652691b35126f /src/trg-menu-bar.c
parentfccdb76b5140f0764a5e6ad035e67519b5ee6f6a (diff)
for view menu check items, set their active in an expose event so they're synced with preferences. add move up/down queue buttons (only in torrent menu for now).
Diffstat (limited to 'src/trg-menu-bar.c')
-rw-r--r--src/trg-menu-bar.c39
1 files changed, 35 insertions, 4 deletions
diff --git a/src/trg-menu-bar.c b/src/trg-menu-bar.c
index dc3523b..f8f3f1d 100644
--- a/src/trg-menu-bar.c
+++ b/src/trg-menu-bar.c
@@ -49,7 +49,9 @@ enum {
PROP_PREFS,
PROP_DIR_FILTERS,
PROP_TRACKER_FILTERS,
- PROP_VIEW_SHOW_GRAPH
+ PROP_VIEW_SHOW_GRAPH,
+ PROP_MOVE_DOWN_QUEUE,
+ PROP_MOVE_UP_QUEUE
};
G_DEFINE_TYPE(TrgMenuBar, trg_menu_bar, GTK_TYPE_MENU_BAR)
@@ -82,6 +84,8 @@ struct _TrgMenuBarPrivate {
GtkWidget *mb_directory_filters;
GtkWidget *mb_tracker_filters;
GtkWidget *mb_view_graph;
+ GtkWidget *mb_down_queue;
+ GtkWidget *mb_up_queue;
TrgPrefs *prefs;
};
@@ -112,6 +116,8 @@ void trg_menu_bar_torrent_actions_sensitive(TrgMenuBar * mb,
gtk_widget_set_sensitive(priv->mb_verify, sensitive);
gtk_widget_set_sensitive(priv->mb_reannounce, sensitive);
gtk_widget_set_sensitive(priv->mb_move, sensitive);
+ gtk_widget_set_sensitive(priv->mb_up_queue, sensitive);
+ gtk_widget_set_sensitive(priv->mb_down_queue, sensitive);
}
static void trg_menu_bar_set_property(GObject * object,
@@ -149,6 +155,12 @@ trg_menu_bar_get_property(GObject * object, guint property_id,
case PROP_DELETE_BUTTON:
g_value_set_object(value, priv->mb_delete);
break;
+ case PROP_MOVE_UP_QUEUE:
+ g_value_set_object(value, priv->mb_up_queue);
+ break;
+ case PROP_MOVE_DOWN_QUEUE:
+ g_value_set_object(value, priv->mb_down_queue);
+ break;
case PROP_MOVE_BUTTON:
g_value_set_object(value, priv->mb_move);
break;
@@ -259,12 +271,18 @@ static void view_menu_bar_toggled_dependency_cb(GtkCheckMenuItem *w, gpointer da
gtk_widget_set_sensitive(GTK_WIDGET(data), gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w)));
}
+static void trg_menu_bar_view_item_exposed(GtkWidget *w, GdkEvent *event G_GNUC_UNUSED, gpointer data)
+{
+ TrgPrefs *prefs = TRG_PREFS(data);
+ gchar *key = (gchar*)g_object_get_data(G_OBJECT(w), "conf-key");
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
+ (w), trg_prefs_get_bool(prefs, key, TRG_PREFS_GLOBAL));
+}
+
static GtkWidget *trg_menu_bar_view_item_new(TrgPrefs *prefs, gchar *key,
gchar *label, GtkWidget *dependency)
{
GtkWidget *w = gtk_check_menu_item_new_with_label(label);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
- (w), trg_prefs_get_bool(prefs, key, TRG_PREFS_GLOBAL));
g_object_set_data_full(G_OBJECT(w), "conf-key", g_strdup(key),
g_free);
@@ -276,6 +294,8 @@ static GtkWidget *trg_menu_bar_view_item_new(TrgPrefs *prefs, gchar *key,
g_signal_connect(w, "toggled",
G_CALLBACK(view_menu_item_toggled_cb), prefs);
+ g_signal_connect(w, "expose-event",
+ G_CALLBACK(trg_menu_bar_view_item_exposed), prefs);
return w;
}
@@ -396,6 +416,14 @@ GtkWidget *trg_menu_bar_torrent_menu_new(TrgMenuBarPrivate * priv)
_("Remove and Delete"), GTK_STOCK_DELETE,
FALSE);
+ priv->mb_up_queue = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu),
+ _("Move Up Queue"), GTK_STOCK_GO_UP,
+ FALSE);
+
+ priv->mb_down_queue = trg_menu_bar_item_new(GTK_MENU_SHELL(torrentMenu),
+ _("Move Down Queue"), GTK_STOCK_GO_DOWN,
+ FALSE);
+
gtk_menu_shell_append(GTK_MENU_SHELL(torrentMenu),
gtk_separator_menu_item_new());
@@ -517,9 +545,12 @@ static void trg_menu_bar_class_init(TrgMenuBarClass * klass)
"dir-filters", "Dir Filters");
trg_menu_bar_install_widget_prop(object_class, PROP_TRACKER_FILTERS,
"tracker-filters", "Tracker Filters");
-
trg_menu_bar_install_widget_prop(object_class, PROP_VIEW_SHOW_GRAPH,
"show-graph", "Show Graph");
+ trg_menu_bar_install_widget_prop(object_class, PROP_MOVE_DOWN_QUEUE,
+ "down-queue", "Down Queue");
+ trg_menu_bar_install_widget_prop(object_class, PROP_MOVE_UP_QUEUE,
+ "up-queue", "Up Queue");
g_object_class_install_property(object_class,