106 lines
4.6 KiB
Diff
106 lines
4.6 KiB
Diff
diff -up cheese-2.29.5/src/cheese-window.c.trash-menu cheese-2.29.5/src/cheese-window.c
|
|
--- cheese-2.29.5/src/cheese-window.c.trash-menu 2009-12-23 09:08:40.000000000 -0500
|
|
+++ cheese-2.29.5/src/cheese-window.c 2010-01-12 22:53:55.606104369 -0500
|
|
@@ -168,6 +168,7 @@ typedef struct
|
|
GtkActionGroup *actions_burst;
|
|
GtkActionGroup *actions_fullscreen;
|
|
GtkActionGroup *actions_wide_mode;
|
|
+ GtkActionGroup *actions_trash;
|
|
|
|
GtkUIManager *ui_manager;
|
|
|
|
@@ -610,6 +611,7 @@ cheese_window_cmd_close (GtkWidget *widg
|
|
g_object_unref (cheese_window->actions_video);
|
|
g_object_unref (cheese_window->actions_burst);
|
|
g_object_unref (cheese_window->actions_fullscreen);
|
|
+ g_object_unref (cheese_window->actions_trash);
|
|
g_object_unref (cheese_window->gconf);
|
|
|
|
g_free (cheese_window);
|
|
@@ -1091,6 +1093,39 @@ cheese_window_selection_changed_cb (GtkI
|
|
}
|
|
}
|
|
|
|
+static void
|
|
+cheese_window_thumbnails_changed (GtkTreeModel *model,
|
|
+ CheeseWindow *cheese_window)
|
|
+{
|
|
+ GtkTreeIter iter;
|
|
+
|
|
+ if (gtk_tree_model_get_iter_first (model, &iter))
|
|
+ {
|
|
+ gtk_action_group_set_sensitive (cheese_window->actions_trash, TRUE);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ gtk_action_group_set_sensitive (cheese_window->actions_trash, FALSE);
|
|
+ }
|
|
+}
|
|
+
|
|
+static void
|
|
+cheese_window_thumbnail_inserted (GtkTreeModel *model,
|
|
+ GtkTreePath *path,
|
|
+ GtkTreeIter *iter,
|
|
+ CheeseWindow *cheese_window)
|
|
+{
|
|
+ cheese_window_thumbnails_changed (model, cheese_window);
|
|
+}
|
|
+
|
|
+static void
|
|
+cheese_window_thumbnail_deleted (GtkTreeModel *model,
|
|
+ GtkTreePath *path,
|
|
+ CheeseWindow *cheese_window)
|
|
+{
|
|
+ cheese_window_thumbnails_changed (model, cheese_window);
|
|
+}
|
|
+
|
|
static gboolean
|
|
cheese_window_button_press_event_cb (GtkWidget *iconview, GdkEventButton *event,
|
|
CheeseWindow *cheese_window)
|
|
@@ -1480,8 +1515,6 @@ static const GtkActionEntry action_entri
|
|
{"Cheese", NULL, N_("_Cheese") },
|
|
|
|
{"Edit", NULL, N_("_Edit") },
|
|
- {"RemoveAll", NULL, N_("Move All to Trash"), NULL, NULL,
|
|
- G_CALLBACK (cheese_window_move_all_media_to_trash)},
|
|
|
|
{"Help", NULL, N_("_Help") },
|
|
|
|
@@ -1491,6 +1524,11 @@ static const GtkActionEntry action_entri
|
|
{"About", GTK_STOCK_ABOUT, NULL, NULL, NULL, G_CALLBACK (cheese_window_cmd_about)},
|
|
};
|
|
|
|
+static const GtkActionEntry action_entries_trash[] = {
|
|
+ {"RemoveAll", NULL, N_("Move All to Trash"), NULL, NULL,
|
|
+ G_CALLBACK (cheese_window_move_all_media_to_trash)},
|
|
+};
|
|
+
|
|
static const GtkToggleActionEntry action_entries_countdown[] = {
|
|
{"Countdown", NULL, N_("Countdown"), NULL, NULL, G_CALLBACK (cheese_window_set_countdown), FALSE},
|
|
};
|
|
@@ -1799,6 +1837,10 @@ cheese_window_create_window (CheeseWindo
|
|
"ActionsMain",
|
|
action_entries_main,
|
|
G_N_ELEMENTS (action_entries_main));
|
|
+ cheese_window->actions_trash = cheese_window_action_group_new (cheese_window,
|
|
+ "ActionsTrash",
|
|
+ action_entries_trash,
|
|
+ G_N_ELEMENTS (action_entries_trash));
|
|
cheese_window->actions_toggle = cheese_window_radio_action_group_new (cheese_window,
|
|
"ActionsRadio",
|
|
action_entries_toggle,
|
|
@@ -1918,6 +1960,13 @@ cheese_window_create_window (CheeseWindo
|
|
G_CALLBACK (cheese_window_selection_changed_cb), cheese_window);
|
|
g_signal_connect (cheese_window->thumb_view, "button_press_event",
|
|
G_CALLBACK (cheese_window_button_press_event_cb), cheese_window);
|
|
+
|
|
+ g_signal_connect (gtk_icon_view_get_model (GTK_ICON_VIEW (cheese_window->thumb_view)), "row-inserted",
|
|
+ G_CALLBACK (cheese_window_thumbnail_inserted), cheese_window);
|
|
+ g_signal_connect (gtk_icon_view_get_model (GTK_ICON_VIEW (cheese_window->thumb_view)), "row-deleted",
|
|
+ G_CALLBACK (cheese_window_thumbnail_deleted), cheese_window);
|
|
+
|
|
+ cheese_window_thumbnails_changed (gtk_icon_view_get_model (GTK_ICON_VIEW (cheese_window->thumb_view)), cheese_window);
|
|
}
|
|
|
|
void
|