SF.net SVN: geany-plugins:[416] branches/GeanyVC_menu_redesign

kugel- at users.sourceforge.net kugel- at xxxxx
Sat Jan 31 20:30:11 UTC 2009


Revision: 416
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=416&view=rev
Author:   kugel-
Date:     2009-01-31 20:30:11 +0000 (Sat, 31 Jan 2009)

Log Message:
-----------
Implement (the currently unused) VC_COMMAND_SHOW, which is supposed to return the base-version (i.e. unchanged version) of the current file. Working for svn, however the output isn't syntax-highlightened (FIXME, I didn't figured out how to do that)

Modified Paths:
--------------
    branches/GeanyVC_menu_redesign/geanyvc.c
    branches/GeanyVC_menu_redesign/vc_svn.c

Modified: branches/GeanyVC_menu_redesign/geanyvc.c
===================================================================
--- branches/GeanyVC_menu_redesign/geanyvc.c	2009-01-31 19:59:05 UTC (rev 415)
+++ branches/GeanyVC_menu_redesign/geanyvc.c	2009-01-31 20:30:11 UTC (rev 416)
@@ -674,7 +674,7 @@
 	{
 		gchar *name;
 		name = g_strconcat(dir, ".vc.diff", NULL);
-		show_output(text, name, NULL);
+		show_output(text, name, doc->encoding);
 		g_free(text);
 		g_free(name);
 	}
@@ -816,6 +816,27 @@
 	g_free(base_name);
 }
 
+static void
+vcshow_file_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
+{
+	gchar *output = NULL;
+	const VC_RECORD *vc;
+	GeanyDocument *doc;
+
+	doc = document_get_current();
+	g_return_if_fail(doc != NULL && doc->file_name != NULL);
+
+	vc = find_vc(doc->file_name);
+	g_return_if_fail(vc);
+
+	execute_command(vc, &output, NULL, doc->file_name, VC_COMMAND_SHOW, NULL, NULL);
+	if (output)
+	{
+		show_output(output, "*VC-ORIG*", NULL);
+		g_free(output);
+	}
+}
+
 static gboolean
 command_with_question_activated(gchar ** text, gint cmd, const gchar * question, gint flags)
 {
@@ -1461,6 +1482,7 @@
 static GtkWidget *menu_vc_remove_file = NULL;
 static GtkWidget *menu_vc_update = NULL;
 static GtkWidget *menu_vc_commit = NULL;
+static GtkWidget *menu_vc_show_file = NULL;
 
 static void
 update_menu_items()
@@ -1508,6 +1530,8 @@
 
 	gtk_widget_set_sensitive(menu_vc_update, d_have_vc);
 	gtk_widget_set_sensitive(menu_vc_commit, d_have_vc);
+	
+	gtk_widget_set_sensitive(menu_vc_show_file, f_have_vc);
 }
 
 
@@ -1935,7 +1959,16 @@
 	g_signal_connect((gpointer) menu_vc_log_file, "activate",
 			 G_CALLBACK(vclog_file_activated), NULL);
 
+	/* base version of the current file */
+	menu_vc_show_file = gtk_menu_item_new_with_mnemonic(_("_Original"));
+	gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_show_file);
+	gtk_tooltips_set_tip(*tooltips, menu_vc_log_file,
+			     _("Shows the orignal of the current file"), NULL);
 
+	g_signal_connect((gpointer) menu_vc_show_file, "activate",
+			 G_CALLBACK(vcshow_file_activated), NULL);
+
+
 	gtk_container_add(GTK_CONTAINER(cur_file_menu), gtk_separator_menu_item_new());
 
 	/* add current file */

Modified: branches/GeanyVC_menu_redesign/vc_svn.c
===================================================================
--- branches/GeanyVC_menu_redesign/vc_svn.c	2009-01-31 19:59:05 UTC (rev 415)
+++ branches/GeanyVC_menu_redesign/vc_svn.c	2009-01-31 20:30:11 UTC (rev 416)
@@ -47,7 +47,7 @@
 static const gchar *SVN_CMD_COMMIT[] =
 	{ "svn", "commit", "--non-interactive", "-m", MESSAGE, FILE_LIST, NULL };
 static const gchar *SVN_CMD_BLAME[] = { "svn", "blame", BASENAME, NULL };
-static const gchar *SVN_CMD_SHOW[] = { "svn", "cat", BASENAME, NULL };
+static const gchar *SVN_CMD_SHOW[] = { "svn", "cat", "-rBASE", BASENAME, NULL };
 static const gchar *SVN_CMD_UPDATE[] = { "svn", "up", NULL };
 
 static const VC_COMMAND commands[] = {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list