SF.net SVN: geany-plugins:[410] branches/GeanyVC_menu_redesign
kugel- at users.sourceforge.net
kugel- at xxxxx
Fri Jan 30 01:08:23 UTC 2009
Revision: 410
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=410&view=rev
Author: kugel-
Date: 2009-01-30 01:08:23 +0000 (Fri, 30 Jan 2009)
Log Message:
-----------
revert for current dir and basedir for subversion, I hope it's ok :)
Modified Paths:
--------------
branches/GeanyVC_menu_redesign/geanyvc.c
branches/GeanyVC_menu_redesign/geanyvc.h
branches/GeanyVC_menu_redesign/vc_svn.c
Modified: branches/GeanyVC_menu_redesign/geanyvc.c
===================================================================
--- branches/GeanyVC_menu_redesign/geanyvc.c 2009-01-28 21:59:09 UTC (rev 409)
+++ branches/GeanyVC_menu_redesign/geanyvc.c 2009-01-30 01:08:23 UTC (rev 410)
@@ -126,7 +126,9 @@
VC_COMMIT,
VC_STATUS,
VC_UPDATE,
- VC_REVERT,
+ VC_REVERT_FILE,
+ VC_REVERT_DIR,
+ VC_REVERT_BASEDIR,
COUNT_KB
};
@@ -437,7 +439,6 @@
{
return 0;
}
-
for (cur = largv; cur != NULL; cur = g_slist_next(cur))
{
argv = cur->data;
@@ -861,6 +862,11 @@
vc = find_vc(dir);
g_return_val_if_fail(vc, FALSE);
+ if (flags & FLAG_BASEDIR)
+ {
+ dir = vc->get_base_dir(dir);
+ }
+
if (doc->changed)
{
document_save_file(doc, FALSE);
@@ -872,7 +878,7 @@
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO, question,
- (flags & FLAG_DIR ? dir : doc->file_name));
+ (flags & (FLAG_DIR|FLAG_BASEDIR) ? dir : doc->file_name));
result = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
@@ -885,11 +891,12 @@
{
if (flags & FLAG_FILE)
execute_command(vc, text, NULL, doc->file_name, cmd, NULL, NULL);
- if (flags & FLAG_DIR)
+ if (flags & (FLAG_DIR|FLAG_BASEDIR))
execute_command(vc, text, NULL, dir, cmd, NULL, NULL);
if (flags & FLAG_RELOAD)
document_reload_file(doc, NULL);
}
+ g_free(dir);
return (result == GTK_RESPONSE_YES);
}
@@ -902,6 +909,14 @@
}
static void
+vcrevert_dir_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, gint gdata)
+{
+ command_with_question_activated(NULL, VC_COMMAND_REVERT_DIR,
+ _("Do you really want to revert: %s?"),
+ FLAG_RELOAD | gdata | FLAG_FORCE_ASK);
+}
+
+static void
vcadd_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
{
command_with_question_activated(NULL, VC_COMMAND_ADD,
@@ -1470,6 +1485,8 @@
static GtkWidget *menu_vc_log_basedir = NULL;
static GtkWidget *menu_vc_status = NULL;
static GtkWidget *menu_vc_revert_file = NULL;
+static GtkWidget *menu_vc_revert_dir = NULL;
+static GtkWidget *menu_vc_revert_basedir = NULL;
static GtkWidget *menu_vc_add_file = NULL;
static GtkWidget *menu_vc_remove_file = NULL;
static GtkWidget *menu_vc_update = NULL;
@@ -1513,6 +1530,8 @@
gtk_widget_set_sensitive(menu_vc_status, d_have_vc);
gtk_widget_set_sensitive(menu_vc_revert_file, f_have_vc);
+ gtk_widget_set_sensitive(menu_vc_revert_dir, f_have_vc);
+ gtk_widget_set_sensitive(menu_vc_revert_basedir, f_have_vc);
gtk_widget_set_sensitive(menu_vc_remove_file, f_have_vc);
gtk_widget_set_sensitive(menu_vc_add_file, d_have_vc && !f_have_vc);
@@ -1553,12 +1572,24 @@
}
static void
-kbrevert(G_GNUC_UNUSED guint key_id)
+kbrevert_file(G_GNUC_UNUSED guint key_id)
{
vcrevert_activated(NULL, NULL);
}
static void
+kbrevert_dir(G_GNUC_UNUSED guint key_id)
+{
+ vcrevert_dir_activated(NULL, FLAG_DIR);
+}
+
+static void
+kbrevert_basedir(G_GNUC_UNUSED guint key_id)
+{
+ vcrevert_dir_activated(NULL, FLAG_BASEDIR);
+}
+
+static void
kbupdate(G_GNUC_UNUSED guint key_id)
{
vcupdate_activated(NULL, NULL);
@@ -1945,7 +1976,7 @@
g_signal_connect((gpointer) menu_vc_add_file, "activate",
G_CALLBACK(vcadd_activated), NULL);
- /* revert current file */
+ /* remove current file */
menu_vc_remove_file = gtk_menu_item_new_with_mnemonic(_("_Remove from Version Control"));
gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_remove_file);
gtk_tooltips_set_tip(*tooltips, menu_vc_remove_file,
@@ -1976,6 +2007,15 @@
g_signal_connect((gpointer) menu_vc_diff_dir, "activate",
G_CALLBACK(vcdiff_dir_activated), NULL);
+ /* Revert current dir */
+ menu_vc_revert_dir = gtk_menu_item_new_with_mnemonic(_("_Revert"));
+ gtk_container_add(GTK_CONTAINER(cur_dir_menu), menu_vc_revert_dir);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_revert_dir,
+ _("Restore original files in the current folder (undo local edits)."), NULL);
+
+ g_signal_connect((gpointer) menu_vc_revert_dir, "activate",
+ G_CALLBACK(vcrevert_dir_activated), (gpointer)FLAG_DIR);
+
gtk_container_add(GTK_CONTAINER(cur_dir_menu), gtk_separator_menu_item_new());
/* History/log of the current dir */
menu_vc_log_dir = gtk_menu_item_new_with_mnemonic(_("_History"));
@@ -2007,6 +2047,15 @@
g_signal_connect((gpointer) menu_vc_diff_basedir, "activate",
G_CALLBACK(vcdiff_basedir_activated), NULL);
+ /* Revert everything */
+ menu_vc_revert_basedir = gtk_menu_item_new_with_mnemonic(_("_Revert"));
+ gtk_container_add(GTK_CONTAINER(basedir_menu), menu_vc_revert_basedir);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_revert_basedir,
+ _("Revert any local edits."), NULL);
+
+ g_signal_connect((gpointer) menu_vc_revert_basedir, "activate",
+ G_CALLBACK(vcrevert_dir_activated), (gpointer)FLAG_BASEDIR);
+
gtk_container_add(GTK_CONTAINER(basedir_menu), gtk_separator_menu_item_new());
g_signal_connect((gpointer) menu_vc_log_dir, "activate",
G_CALLBACK(vclog_dir_activated), NULL);
@@ -2028,22 +2077,24 @@
init_keybindings(void)
{
/* init keybindins */
- keybindings_set_item(plugin_key_group, VC_DIFF_FILE, kbdiff_file,
- 0, 0, "vc_show_diff_of_file", _("Show diff of file"),
- menu_vc_diff_file);
- keybindings_set_item(plugin_key_group, VC_DIFF_DIR, kbdiff_dir, 0, 0, "vc_show_diff_of_dir",
- _("Show diff of diretory"), menu_vc_diff_dir);
+ keybindings_set_item(plugin_key_group, VC_DIFF_FILE, kbdiff_file, 0, 0,
+ "vc_show_diff_of_file", _("Show diff of file"), menu_vc_diff_file);
+ keybindings_set_item(plugin_key_group, VC_DIFF_DIR, kbdiff_dir, 0, 0,
+ "vc_show_diff_of_dir", _("Show diff of diretory"), menu_vc_diff_dir);
keybindings_set_item(plugin_key_group, VC_DIFF_BASEDIR, kbdiff_basedir, 0, 0,
- "vc_show_diff_of_basedir", _("Show diff of basedir"),
- menu_vc_diff_basedir);
- keybindings_set_item(plugin_key_group, VC_COMMIT, kbcommit, 0, 0, "vc_commit",
- _("Commit changes"), menu_vc_commit);
- keybindings_set_item(plugin_key_group, VC_STATUS, kbstatus, 0, 0, "vc_status",
- _("Show status"), menu_vc_status);
- keybindings_set_item(plugin_key_group, VC_REVERT, kbrevert, 0, 0, "vc_revert",
- _("Revert changes"), menu_vc_revert_file);
- keybindings_set_item(plugin_key_group, VC_UPDATE, kbupdate, 0, 0, "vc_update",
- _("Update file"), menu_vc_update);
+ "vc_show_diff_of_basedir", _("Show diff of basedir"), menu_vc_diff_basedir);
+ keybindings_set_item(plugin_key_group, VC_COMMIT, kbcommit, 0, 0,
+ "vc_commit", _("Commit changes"), menu_vc_commit);
+ keybindings_set_item(plugin_key_group, VC_STATUS, kbstatus, 0, 0,
+ "vc_status", _("Show status"), menu_vc_status);
+ keybindings_set_item(plugin_key_group, VC_REVERT_FILE, kbrevert_file, 0, 0,
+ "vc_revert_file", _("Revert single file"), menu_vc_revert_file);
+ keybindings_set_item(plugin_key_group, VC_REVERT_DIR, kbrevert_dir, 0, 0,
+ "vc_revert_dir", _("Revert whole directory"),menu_vc_revert_dir);
+ keybindings_set_item(plugin_key_group, VC_REVERT_BASEDIR, kbrevert_basedir, 0, 0,
+ "vc_revert_basedir", _("Revert whole tree"), menu_vc_revert_basedir);
+ keybindings_set_item(plugin_key_group, VC_UPDATE, kbupdate, 0, 0,
+ "vc_update", _("Update file"), menu_vc_update);
}
/* Called by Geany to initialize the plugin */
Modified: branches/GeanyVC_menu_redesign/geanyvc.h
===================================================================
--- branches/GeanyVC_menu_redesign/geanyvc.h 2009-01-28 21:59:09 UTC (rev 409)
+++ branches/GeanyVC_menu_redesign/geanyvc.h 2009-01-30 01:08:23 UTC (rev 410)
@@ -27,6 +27,7 @@
VC_COMMAND_DIFF_FILE,
VC_COMMAND_DIFF_DIR,
VC_COMMAND_REVERT_FILE,
+ VC_COMMAND_REVERT_DIR,
VC_COMMAND_STATUS,
VC_COMMAND_ADD,
VC_COMMAND_REMOVE,
@@ -55,6 +56,7 @@
#define FLAG_FORCE_ASK (1<<1)
#define FLAG_FILE (1<<2)
#define FLAG_DIR (1<<3)
+#define FLAG_BASEDIR (1<<4)
#define P_ABS_DIRNAME "*<?geanyvcDIRNAME>*"
#define P_ABS_FILENAME "*<?geanyvcFILENAME>*"
Modified: branches/GeanyVC_menu_redesign/vc_svn.c
===================================================================
--- branches/GeanyVC_menu_redesign/vc_svn.c 2009-01-28 21:59:09 UTC (rev 409)
+++ branches/GeanyVC_menu_redesign/vc_svn.c 2009-01-30 01:08:23 UTC (rev 410)
@@ -38,6 +38,7 @@
{ "svn", "diff", "--non-interactive", BASE_FILENAME, NULL };
static const gchar *SVN_CMD_DIFF_DIR[] = { "svn", "diff", "--non-interactive", BASE_DIRNAME, NULL };
static const gchar *SVN_CMD_REVERT_FILE[] = { "svn", "revert", BASENAME, NULL };
+static const gchar *SVN_CMD_REVERT_DIR[] = { "svn", "revert", BASE_DIRNAME, "-R", NULL };
static const gchar *SVN_CMD_STATUS[] = { "svn", "status", NULL };
static const gchar *SVN_CMD_ADD[] = { "svn", "add", BASENAME, NULL };
static const gchar *SVN_CMD_REMOVE[] = { "svn", "rm", BASENAME, NULL };
@@ -67,6 +68,11 @@
.function = NULL},
{
.startdir = VC_COMMAND_STARTDIR_FILE,
+ .command = SVN_CMD_REVERT_DIR,
+ .env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_FILE,
.command = SVN_CMD_STATUS,
.env = NULL,
.function = NULL},
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