anjuta r4674 - in trunk: . plugins/message-view



Author: sgranjoux
Date: Sun Feb  1 19:46:51 2009
New Revision: 4674
URL: http://svn.gnome.org/viewvc/anjuta?rev=4674&view=rev

Log:
	* plugins/message-view/plugin.c,
	plugins/message-view/message-view.c,
	plugins/message-view/message-view.h,
	plugins/message-view/anjuta-message-manager.ui:
	Fix #567728 â Copypasting build errors, messages and warnings


Modified:
   trunk/ChangeLog
   trunk/plugins/message-view/anjuta-message-manager.ui
   trunk/plugins/message-view/message-view.c
   trunk/plugins/message-view/message-view.h
   trunk/plugins/message-view/plugin.c

Modified: trunk/plugins/message-view/anjuta-message-manager.ui
==============================================================================
--- trunk/plugins/message-view/anjuta-message-manager.ui	(original)
+++ trunk/plugins/message-view/anjuta-message-manager.ui	Sun Feb  1 19:46:51 2009
@@ -17,6 +17,7 @@
 		</menu>
 	</popup>
 	<popup name="PopupMessageView">
+		<menuitem name="CopyMessage" action="ActionMessageCopy" />
 		<menuitem name="NextMessage" action="ActionMessageNext" />
 		<menuitem name="PrevMessage" action="ActionMessagePrev" />
 		<menuitem name="SaveMessage" action="ActionMessageSave" />

Modified: trunk/plugins/message-view/message-view.c
==============================================================================
--- trunk/plugins/message-view/message-view.c	(original)
+++ trunk/plugins/message-view/message-view.c	Sun Feb  1 19:46:51 2009
@@ -1189,6 +1189,45 @@
 	}
 }
 
+void message_view_copy(MessageView* view)
+{
+	GtkTreeIter iter;
+	GtkTreeModel *model;
+	GtkTreeSelection *select;
+	GtkTreePath *path;
+
+	model = view->privat->model;
+	select = gtk_tree_view_get_selection (GTK_TREE_VIEW
+					      (view->privat->tree_view));
+	
+	if (gtk_tree_selection_get_selected (select, &model, &iter))
+	{
+		Message *message;
+		const gchar *text;
+		GtkClipboard *clipboard;
+		
+		gtk_tree_model_get (model, &iter, COLUMN_MESSAGE, &message, -1); 
+		
+		if (message->details && (*message->details != '\0'))
+		{
+			text = message->details;
+		}
+		else if (message->summary && (*message->summary != '\0'))
+		{
+			text = message->summary;
+		}
+		else
+		{
+			/* No message */
+			return;
+		}
+		
+		clipboard = gtk_widget_get_clipboard (GTK_WIDGET (view), GDK_SELECTION_CLIPBOARD);
+	
+		gtk_clipboard_set_text (clipboard, text, -1);
+	}
+}
+
 /* Preferences notifications */
 static void
 pref_change_color (MessageView *mview, IAnjutaMessageViewType type,

Modified: trunk/plugins/message-view/message-view.h
==============================================================================
--- trunk/plugins/message-view/message-view.h	(original)
+++ trunk/plugins/message-view/message-view.h	Sun Feb  1 19:46:51 2009
@@ -63,6 +63,7 @@
 void message_view_next(MessageView* view);
 void message_view_previous(MessageView* view);
 void message_view_save(MessageView* view);
+void message_view_copy(MessageView* view);
 gboolean message_view_serialize (MessageView *view,
 								 AnjutaSerializer *serializer);
 gboolean message_view_deserialize (MessageView *view,

Modified: trunk/plugins/message-view/plugin.c
==============================================================================
--- trunk/plugins/message-view/plugin.c	(original)
+++ trunk/plugins/message-view/plugin.c	Sun Feb  1 19:46:51 2009
@@ -56,6 +56,14 @@
 		message_view_previous(view);
 }
 
+static void on_copy_message(GtkAction* menuitem, MessageViewPlugin *plugin)
+{
+	AnjutaMsgman* msgman = ANJUTA_MSGMAN(plugin->msgman);
+	MessageView* view = anjuta_msgman_get_current_view(msgman);
+	if (view != NULL)
+		message_view_copy(view);
+}
+
 static void on_save_message(GtkAction* menuitem, MessageViewPlugin *plugin)
 {
 	AnjutaMsgman* msgman = ANJUTA_MSGMAN(plugin->msgman);
@@ -66,6 +74,10 @@
 
 static GtkActionEntry actions_goto[] = {
   { "ActionMenuGoto", NULL, N_("_Goto"), NULL, NULL, NULL},
+  { "ActionMessageCopy", GTK_STOCK_COPY,
+    N_("_Copy Message"), NULL,
+	N_("Copy message"),
+    G_CALLBACK (on_copy_message)},
   { "ActionMessageNext", ANJUTA_STOCK_NEXT_MESSAGE,
     N_("_Next Message"), "<control><alt>n",
 	N_("Next message"),
@@ -87,12 +99,15 @@
 								   "ActionMessageNext");
 	GtkAction* action_prev = anjuta_ui_get_action (ui, "ActionGroupGotoMessages",
 								   "ActionMessagePrev");
+	GtkAction* action_copy = anjuta_ui_get_action (ui, "ActionGroupGotoMessages",
+								   "ActionMessageCopy");
 	gboolean sensitive = (anjuta_msgman_get_current_view(msgman) != NULL);
 	if (sensitive)
 		anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
 								 GTK_WIDGET(msgman), NULL);
 	g_object_set (G_OBJECT (action_next), "sensitive", sensitive, NULL);
 	g_object_set (G_OBJECT (action_prev), "sensitive", sensitive, NULL);
+	g_object_set (G_OBJECT (action_copy), "sensitive", sensitive, NULL);
 }
 
 static gpointer parent_class;
@@ -208,8 +223,11 @@
 								   "ActionMessageNext");
 	GtkAction* action_prev = anjuta_ui_get_action (ui, "ActionGroupGotoMessages",
 								   "ActionMessagePrev");
+	GtkAction* action_copy = anjuta_ui_get_action (ui, "ActionGroupGotoMessages",
+								   "ActionMessageCopy");
 	g_object_set (G_OBJECT (action_next), "sensitive", FALSE, NULL);
 	g_object_set (G_OBJECT (action_prev), "sensitive", FALSE, NULL);
+	g_object_set (G_OBJECT (action_copy), "sensitive", FALSE, NULL);
 	
 #if 0
 	/* Connect to save and load session */



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