[evolution/kill-bonobo] Fix the "Recent Documents" menu in CompEditor.



commit 611ed0f3cfe8cfe29d8ed8e0830905cef96d9082
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Apr 24 10:19:11 2009 -0400

    Fix the "Recent Documents" menu in CompEditor.
---
 calendar/gui/dialogs/comp-editor.c |   45 ++++++++++++++++++++++++++++-------
 composer/e-composer-private.c      |    7 ++---
 2 files changed, 39 insertions(+), 13 deletions(-)

diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 9926b8c..65e5e71 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -146,7 +146,7 @@ static const gchar *ui =
 "    <menu action='view-menu'/>"
 "    <menu action='insert-menu'>"
 "      <menuitem action='attach'/>"
-"      <menuitem action='attach-recent'/>"
+"      <placeholder name='recent-placeholder'/>"
 "    </menu>"
 "    <menu action='options-menu'/>"
 "    <menu action='help-menu'>"
@@ -1193,6 +1193,40 @@ static GtkToggleActionEntry coordinated_toggle_entries[] = {
 };
 
 static void
+comp_editor_setup_recent_menu (CompEditor *editor)
+{
+	EAttachmentView *view;
+	GtkUIManager *ui_manager;
+	GtkAction *action;
+	GtkActionGroup *action_group;
+	const gchar *action_name;
+	const gchar *path;
+	guint merge_id;
+
+	ui_manager = editor->priv->manager;
+	view = E_ATTACHMENT_VIEW (editor->priv->attachment_view);
+	action_group = comp_editor_get_action_group (editor, "individual");
+	merge_id = gtk_ui_manager_new_merge_id (ui_manager);
+	path = "/main-menu/insert-menu/recent-placeholder";
+	action_name = "recent-menu";
+
+	action = e_attachment_view_recent_action_new (
+		view, action_name, _("Recent _Documents"));
+
+	if (action != NULL) {
+		gtk_action_group_add_action (action_group, action);
+		g_object_unref (action);
+
+		gtk_ui_manager_add_ui (
+			ui_manager, merge_id, path,
+			action_name, action_name,
+			GTK_UI_MANAGER_AUTO, FALSE);
+	}
+
+	gtk_ui_manager_ensure_update (ui_manager);
+}
+
+static void
 comp_editor_set_property (GObject *object,
                           guint property_id,
                           const GValue *value,
@@ -1493,7 +1527,6 @@ static void
 comp_editor_init (CompEditor *editor)
 {
 	CompEditorPrivate *priv;
-	EAttachmentView *view;
 	GtkActionGroup *action_group;
 	GtkAction *action;
 	GtkWidget *container;
@@ -1612,13 +1645,7 @@ comp_editor_init (CompEditor *editor)
 	priv->notebook = GTK_NOTEBOOK (widget);
 	gtk_widget_show (widget);
 
-	/* Add a GtkRecentAction to the "individual" action group. */
-	action_group = comp_editor_get_action_group (editor, "individual");
-	view = E_ATTACHMENT_VIEW (priv->attachment_view);
-	action = e_attachment_view_recent_action_new (
-		view, "attach-recent", _("Recent _Documents"));
-	gtk_action_group_add_action (action_group, action);
-	g_object_unref (action);
+	comp_editor_setup_recent_menu (editor);
 
 	/* DND support */
 	gtk_drag_dest_set (GTK_WIDGET (editor), GTK_DEST_DEFAULT_ALL,  drop_types, num_drop_types, GDK_ACTION_COPY|GDK_ACTION_ASK|GDK_ACTION_MOVE);
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index fd345d6..a6fe872 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -53,7 +53,7 @@ composer_setup_recent_menu (EMsgComposer *composer)
 {
 	EAttachmentView *view;
 	GtkUIManager *manager;
-	GtkAction *action = NULL;
+	GtkAction *action;
 	const gchar *action_name;
 	const gchar *path;
 	guint merge_id;
@@ -71,10 +71,9 @@ composer_setup_recent_menu (EMsgComposer *composer)
 		gtk_action_group_add_action (
 			composer->priv->composer_actions, action);
 
-		gtk_ui_manager_add_ui ( 
+		gtk_ui_manager_add_ui (
 			manager, merge_id, path,
-			action_name, 
-			action_name, 
+			action_name, action_name,
 			GTK_UI_MANAGER_AUTO, FALSE);
 	}
 



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