[evolution] Mark CompEditor as changed when attachments are added or removed.



commit f23d7c5fa097a3df630dd36a3c19e659280c726a
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon May 4 17:01:29 2009 -0400

    Mark CompEditor as changed when attachments are added or removed.
---
 calendar/gui/dialogs/comp-editor.c |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 68b240c..4af998e 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -182,6 +182,14 @@ enum {
 
 static guint comp_editor_signals[LAST_SIGNAL] = { 0 };
 
+static void
+attachment_store_changed_cb (CompEditor *editor)
+{
+	/* Mark the editor as changed so it prompts about unsaved
+           changes on close */
+	comp_editor_set_changed (editor, TRUE);
+}
+
 static GSList *
 get_attachment_list (CompEditor *editor)
 {
@@ -1513,6 +1521,7 @@ comp_editor_init (CompEditor *editor)
 {
 	CompEditorPrivate *priv;
 	EAttachmentView *view;
+	EAttachmentStore *store;
 	GdkDragAction drag_actions;
 	GtkTargetList *target_list;
 	GtkTargetEntry *targets;
@@ -1646,6 +1655,18 @@ comp_editor_init (CompEditor *editor)
 
 	gtk_window_set_type_hint (
 		GTK_WINDOW (editor), GDK_WINDOW_TYPE_HINT_NORMAL);
+
+	/* Listen for attachment store changes. */
+
+	store = e_attachment_view_get_store (view);
+
+	g_signal_connect_swapped (
+		store, "row-deleted",
+		G_CALLBACK (attachment_store_changed_cb), editor);
+
+	g_signal_connect_swapped (
+		store, "row-inserted",
+		G_CALLBACK (attachment_store_changed_cb), editor);
 }
 
 static gboolean
@@ -1698,14 +1719,6 @@ prompt_and_save_changes (CompEditor *editor, gboolean send)
 	}
 }
 
-static void
-attachment_store_changed_cb (CompEditor *editor)
-{
-	/* Mark the editor as changed so it prompts about unsaved
-           changes on close */
-	comp_editor_set_changed (editor, TRUE);
-}
-
 /* Menu callbacks */
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]