2010-02-09 16:01:20 +00:00
|
|
|
From 2a16851e43cac594bf8983221411e19aa00082cd Mon Sep 17 00:00:00 2001
|
|
|
|
From: Matthias Clasen <mclasen@redhat.com>
|
|
|
|
Date: Tue, 9 Feb 2010 15:46:59 +0000
|
|
|
|
Subject: [PATCH] Update sensitivity of "move all to trash"
|
|
|
|
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=592663
|
|
|
|
---
|
|
|
|
src/cheese-ui.h | 7 +++++--
|
|
|
|
src/cheese-window.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
2 files changed, 53 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/src/cheese-ui.h b/src/cheese-ui.h
|
|
|
|
index 0068b73..c9c76bb 100644
|
|
|
|
--- a/src/cheese-ui.h
|
|
|
|
+++ b/src/cheese-ui.h
|
|
|
|
@@ -79,12 +79,15 @@ const GtkActionEntry action_entries_file[] = {
|
|
|
|
G_CALLBACK (cheese_cmd_file_save_as)},
|
|
|
|
{"MoveToTrash", "user-trash", N_("Move to _Trash"), "Delete", NULL,
|
|
|
|
G_CALLBACK (cheese_cmd_file_move_to_trash)},
|
|
|
|
- {"RemoveAll", NULL, N_("Move All to Trash"), NULL, NULL,
|
|
|
|
- G_CALLBACK (cheese_cmd_file_move_all_to_trash)},
|
|
|
|
{"Delete", NULL, N_("Delete"), "<shift>Delete", NULL,
|
|
|
|
G_CALLBACK (cheese_cmd_file_delete)},
|
|
|
|
};
|
|
|
|
|
|
|
|
+static const GtkActionEntry action_entries_trash[] = {
|
|
|
|
+ {"RemoveAll", NULL, N_("Move All to Trash"), NULL, NULL,
|
|
|
|
+ G_CALLBACK (cheese_cmd_file_move_all_to_trash)},
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
G_END_DECLS
|
|
|
|
|
|
|
|
#endif /* __CHEESE_UI_H__ */
|
|
|
|
diff --git a/src/cheese-window.c b/src/cheese-window.c
|
|
|
|
index e4d06fa..e1c672e 100644
|
|
|
|
--- a/src/cheese-window.c
|
|
|
|
+++ b/src/cheese-window.c
|
|
|
|
@@ -164,6 +164,7 @@ typedef struct
|
2009-08-22 07:39:39 +00:00
|
|
|
GtkActionGroup *actions_burst;
|
|
|
|
GtkActionGroup *actions_fullscreen;
|
|
|
|
GtkActionGroup *actions_wide_mode;
|
|
|
|
+ GtkActionGroup *actions_trash;
|
|
|
|
|
|
|
|
GtkUIManager *ui_manager;
|
|
|
|
|
2010-02-09 16:01:20 +00:00
|
|
|
@@ -479,6 +480,40 @@ cheese_window_selection_changed_cb (GtkIconView *iconview,
|
2009-08-22 07:39:39 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
+static void
|
|
|
|
+cheese_window_thumbnails_changed (GtkTreeModel *model,
|
|
|
|
+ CheeseWindow *cheese_window)
|
|
|
|
+{
|
2010-02-09 16:01:20 +00:00
|
|
|
+ CheeseWindowPrivate *priv = CHEESE_WINDOW_GET_PRIVATE (cheese_window);
|
2009-08-22 07:39:39 +00:00
|
|
|
+ GtkTreeIter iter;
|
|
|
|
+
|
|
|
|
+ if (gtk_tree_model_get_iter_first (model, &iter))
|
|
|
|
+ {
|
2010-02-09 16:01:20 +00:00
|
|
|
+ gtk_action_group_set_sensitive (priv->actions_trash, TRUE);
|
2009-08-22 07:39:39 +00:00
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
2010-02-09 16:01:20 +00:00
|
|
|
+ gtk_action_group_set_sensitive (priv->actions_trash, FALSE);
|
2009-08-22 07:39:39 +00:00
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+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)
|
2010-02-09 16:01:20 +00:00
|
|
|
@@ -1085,6 +1120,11 @@ setup_menubar_and_actions (CheeseWindow *cheese_window)
|
|
|
|
G_N_ELEMENTS (action_entries_file));
|
|
|
|
gtk_action_group_set_sensitive (priv->actions_file, FALSE);
|
2009-08-22 07:39:39 +00:00
|
|
|
|
2010-02-09 16:01:20 +00:00
|
|
|
+ priv->actions_trash = cheese_window_action_group_new (cheese_window,
|
|
|
|
+ "ActionsTrash",
|
|
|
|
+ action_entries_trash,
|
|
|
|
+ G_N_ELEMENTS (action_entries_trash));
|
2009-08-22 07:39:39 +00:00
|
|
|
+
|
2010-02-09 16:01:20 +00:00
|
|
|
priv->actions_photo = cheese_window_action_group_new (cheese_window,
|
|
|
|
"ActionsPhoto",
|
|
|
|
action_entries_photo,
|
|
|
|
@@ -1253,6 +1293,13 @@ cheese_window_init (CheeseWindow *cheese_window)
|
|
|
|
g_signal_connect (priv->thumb_view, "button_press_event",
|
2009-08-22 07:39:39 +00:00
|
|
|
G_CALLBACK (cheese_window_button_press_event_cb), cheese_window);
|
2010-02-09 16:01:20 +00:00
|
|
|
|
|
|
|
+ g_signal_connect (gtk_icon_view_get_model (GTK_ICON_VIEW (priv->thumb_view)), "row-inserted",
|
2009-08-22 07:39:39 +00:00
|
|
|
+ G_CALLBACK (cheese_window_thumbnail_inserted), cheese_window);
|
2010-02-09 16:01:20 +00:00
|
|
|
+ g_signal_connect (gtk_icon_view_get_model (GTK_ICON_VIEW (priv->thumb_view)), "row-deleted",
|
2009-08-22 07:39:39 +00:00
|
|
|
+ G_CALLBACK (cheese_window_thumbnail_deleted), cheese_window);
|
|
|
|
+
|
2010-02-09 16:01:20 +00:00
|
|
|
+ cheese_window_thumbnails_changed (gtk_icon_view_get_model (GTK_ICON_VIEW (priv->thumb_view)), cheese_window);
|
|
|
|
+
|
|
|
|
cheese_window_set_mode (cheese_window, CAMERA_MODE_PHOTO);
|
2009-08-22 07:39:39 +00:00
|
|
|
}
|
|
|
|
|
2010-02-09 16:01:20 +00:00
|
|
|
@@ -1331,6 +1378,7 @@ cheese_window_finalize (GObject *object)
|
|
|
|
g_object_unref (priv->actions_video);
|
|
|
|
g_object_unref (priv->actions_burst);
|
|
|
|
g_object_unref (priv->actions_fullscreen);
|
|
|
|
+ g_object_unref (priv->actions_trash);
|
|
|
|
|
|
|
|
if (G_OBJECT_CLASS (cheese_window_parent_class)->finalize)
|
|
|
|
G_OBJECT_CLASS (cheese_window_parent_class)->finalize (object);
|
|
|
|
--
|
|
|
|
1.6.6
|
|
|
|
|