SF.net SVN: geany-plugins:[425] trunk/geanyvc
frlan at users.sourceforge.net
frlan at xxxxx
Mon Feb 2 16:55:48 UTC 2009
Revision: 425
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=425&view=rev
Author: frlan
Date: 2009-02-02 16:55:48 +0000 (Mon, 02 Feb 2009)
Log Message:
-----------
GeanyVC: Merged GeanyVC_menu_redesign into trunk:
* Moving file, dir and basedir (working copy) specific stuff into seperate sub menu
* Rework of plugin_init() and some cleanup
* Added feature to show original file
* Extend revert to dir and basedir of working copy
Modified Paths:
--------------
trunk/geanyvc/geanyvc.c
trunk/geanyvc/geanyvc.h
trunk/geanyvc/po/ChangeLog
trunk/geanyvc/po/de.po
trunk/geanyvc/vc_bzr.c
trunk/geanyvc/vc_cvs.c
trunk/geanyvc/vc_git.c
trunk/geanyvc/vc_hg.c
trunk/geanyvc/vc_svk.c
trunk/geanyvc/vc_svn.c
Modified: trunk/geanyvc/geanyvc.c
===================================================================
--- trunk/geanyvc/geanyvc.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/geanyvc.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -126,14 +126,14 @@
VC_COMMIT,
VC_STATUS,
VC_UPDATE,
- VC_REVERT,
+ VC_REVERT_FILE,
+ VC_REVERT_DIR,
+ VC_REVERT_BASEDIR,
COUNT_KB
};
PLUGIN_KEY_GROUP(geanyvc, COUNT_KB)
-
-GSList *
-get_commit_files_null(G_GNUC_UNUSED const gchar * dir)
+GSList *get_commit_files_null(G_GNUC_UNUSED const gchar * dir)
{
return NULL;
}
@@ -374,7 +374,8 @@
/* name should be in UTF-8, and can have a path. */
static void
-show_output(const gchar * std_output, const gchar * name, const gchar * force_encoding)
+show_output(const gchar * std_output, const gchar * name,
+ const gchar * force_encoding, GeanyFiletype *ftype)
{
gint page;
GtkNotebook *book;
@@ -386,11 +387,13 @@
doc = document_find_by_filename(name);
if (doc == NULL)
{
- doc = document_new_file(name, NULL, std_output);
+ doc = document_new_file(name, ftype, std_output);
}
else
{
sci_set_text(doc->editor->sci, std_output);
+ if(ftype)
+ document_set_filetype(doc, ftype);
book = GTK_NOTEBOOK(geany->main_widgets->notebook);
page = gtk_notebook_page_num(book, GTK_WIDGET(doc->editor->sci));
gtk_notebook_set_current_page(book, page);
@@ -439,30 +442,29 @@
{
return 0;
}
-
for (cur = largv; cur != NULL; cur = g_slist_next(cur))
{
argv = cur->data;
if (cur != g_slist_last(largv))
{
utils_spawn_sync(dir, cur->data, (gchar **) env,
- G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL |
- G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, NULL, NULL,
- &exit_code, &error);
+ G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL |
+ G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, NULL, NULL,
+ &exit_code, &error);
}
else
{
utils_spawn_sync(dir, cur->data, (gchar **) env,
- G_SPAWN_SEARCH_PATH | (std_out ? 0 :
- G_SPAWN_STDOUT_TO_DEV_NULL) |
- (std_err ? 0 : G_SPAWN_STDERR_TO_DEV_NULL), NULL, NULL,
- std_out, std_err, &exit_code, &error);
+ G_SPAWN_SEARCH_PATH | (std_out ? 0 :
+ G_SPAWN_STDOUT_TO_DEV_NULL) |
+ (std_err ? 0 : G_SPAWN_STDERR_TO_DEV_NULL), NULL, NULL,
+ std_out, std_err, &exit_code, &error);
}
if (error)
{
g_warning("geanyvc: s_spawn_sync error: %s", error->message);
ui_set_statusbar(FALSE, _("geanyvc: s_spawn_sync error: %s"),
- error->message);
+ error->message);
g_error_free(error);
}
@@ -478,8 +480,7 @@
if (!g_utf8_validate(*std_out, -1, NULL))
{
setptr(*std_out, encodings_convert_to_utf8(*std_out,
- strlen(*std_out),
- NULL));
+ strlen(*std_out), NULL));
}
if (!NZV(*std_out))
{
@@ -497,8 +498,7 @@
if (!g_utf8_validate(*std_err, -1, NULL))
{
setptr(*std_err, encodings_convert_to_utf8(*std_err,
- strlen(*std_err),
- NULL));
+ strlen(*std_err), NULL));
}
if (!NZV(*std_err))
{
@@ -626,7 +626,7 @@
else
{
name = g_strconcat(doc->file_name, ".vc.diff", NULL);
- show_output(text, name, doc->encoding);
+ show_output(text, name, doc->encoding, NULL);
g_free(text);
g_free(name);
}
@@ -638,52 +638,14 @@
}
}
-/* Make a diff from the current directory */
-static void
-vcdiff_dir_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
-{
- gchar *base_name = NULL;
- gchar *text = NULL;
- const VC_RECORD *vc;
- GeanyDocument *doc;
- doc = document_get_current();
- g_return_if_fail(doc != NULL && doc->file_name != NULL);
- if (doc->changed)
- {
- document_save_file(doc, FALSE);
- }
-
- base_name = g_path_get_dirname(doc->file_name);
-
- vc = find_vc(base_name);
- g_return_if_fail(vc);
-
- execute_command(vc, &text, NULL, base_name, VC_COMMAND_DIFF_DIR, NULL, NULL);
- if (text)
- {
- setptr(base_name, g_strconcat(base_name, ".vc.diff", NULL));
- show_output(text, base_name, NULL);
- g_free(text);
- }
- else
- {
- ui_set_statusbar(FALSE, _("No changes were made."));
- }
-
- g_free(base_name);
-}
-
-
/* Callback if menu item for the base directory was activated */
static void
-vcdiff_basedir_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
+vcdiff_dir_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, gint flags)
{
gchar *text = NULL;
- gchar *name;
- gchar *basedir;
- gchar *base_name;
+ gchar *dir;
const VC_RECORD *vc;
GeanyDocument *doc;
@@ -698,16 +660,24 @@
vc = find_vc(doc->file_name);
g_return_if_fail(vc);
- basedir = vc->get_base_dir(doc->file_name);
- g_return_if_fail(basedir);
+ if (flags & FLAG_BASEDIR)
+ {
+ dir = vc->get_base_dir(doc->file_name);
+ }
+ else if (flags & FLAG_DIR)
+ {
+ dir = g_path_get_dirname(doc->file_name);
+ }
+ else
+ return;
+ g_return_if_fail(dir);
- execute_command(vc, &text, NULL, basedir, VC_COMMAND_DIFF_DIR, NULL, NULL);
+ execute_command(vc, &text, NULL, dir, VC_COMMAND_DIFF_DIR, NULL, NULL);
if (text)
{
- base_name = g_path_get_dirname(doc->file_name);
- name = g_strconcat(base_name, ".vc.diff", NULL);
- show_output(text, name, NULL);
- g_free(base_name);
+ gchar *name;
+ name = g_strconcat(dir, ".vc.diff", NULL);
+ show_output(text, name, doc->encoding, NULL);
g_free(text);
g_free(name);
}
@@ -715,7 +685,7 @@
{
ui_set_statusbar(FALSE, _("No changes were made."));
}
- g_free(basedir);
+ g_free(dir);
}
static void
@@ -734,7 +704,7 @@
execute_command(vc, &text, NULL, doc->file_name, VC_COMMAND_BLAME, NULL, NULL);
if (text)
{
- show_output(text, "*VC-BLAME*", NULL);
+ show_output(text, "*VC-BLAME*", NULL, doc->file_type);
g_free(text);
}
else
@@ -760,7 +730,7 @@
execute_command(vc, &output, NULL, doc->file_name, VC_COMMAND_LOG_FILE, NULL, NULL);
if (output)
{
- show_output(output, "*VC-LOG*", NULL);
+ show_output(output, "*VC-LOG*", NULL, NULL);
g_free(output);
}
}
@@ -784,7 +754,7 @@
execute_command(vc, &text, NULL, base_name, VC_COMMAND_LOG_DIR, NULL, NULL);
if (text)
{
- show_output(text, "*VC-LOG*", NULL);
+ show_output(text, "*VC-LOG*", NULL, NULL);
g_free(text);
}
@@ -811,7 +781,7 @@
execute_command(vc, &text, NULL, basedir, VC_COMMAND_LOG_DIR, NULL, NULL);
if (text)
{
- show_output(text, "*VC-LOG*", NULL);
+ show_output(text, "*VC-LOG*", NULL, NULL);
g_free(text);
}
g_free(basedir);
@@ -842,15 +812,39 @@
execute_command(vc, &text, NULL, base_name, VC_COMMAND_STATUS, NULL, NULL);
if (text)
{
- show_output(text, "*VC-STATUS*", NULL);
+ show_output(text, "*VC-STATUS*", NULL, NULL);
g_free(text);
}
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)
+ {
+ gchar *name;
+ name = g_strconcat(doc->file_name, ".vc.orig", NULL);
+ show_output(output, name, doc->encoding, doc->file_type);
+ g_free(name);
+ g_free(output);
+ }
+}
+
static gboolean
-command_with_question_activated(gchar ** text, gint cmd, const gchar * question, gboolean ask)
+command_with_question_activated(gchar ** text, gint cmd, const gchar * question, gint flags)
{
GtkWidget *dialog;
gint result;
@@ -861,17 +855,27 @@
doc = document_get_current();
g_return_val_if_fail(doc != NULL && doc->file_name != NULL, FALSE);
+ dir = g_path_get_dirname(doc->file_name);
+ 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);
}
- if (ask)
+ if ((flags & FLAG_FORCE_ASK) || set_add_confirmation)
{
dialog = gtk_message_dialog_new(GTK_WINDOW(geany->main_widgets->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_YES_NO, question, doc->file_name);
+ GTK_BUTTONS_YES_NO, question,
+ (flags & (FLAG_DIR|FLAG_BASEDIR) ? dir : doc->file_name));
result = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
@@ -882,52 +886,49 @@
if (result == GTK_RESPONSE_YES)
{
- dir = g_path_get_dirname(doc->file_name);
- vc = find_vc(dir);
- g_return_val_if_fail(vc, FALSE);
-
- execute_command(vc, text, NULL, doc->file_name, cmd, NULL, NULL);
- g_free(dir);
+ if (flags & FLAG_FILE)
+ execute_command(vc, text, NULL, doc->file_name, cmd, NULL, NULL);
+ if (flags & (FLAG_DIR|FLAG_BASEDIR))
+ execute_command(vc, text, NULL, dir, cmd, NULL, NULL);
+ if (flags & FLAG_RELOAD)
+ document_reload_file(doc, NULL);
}
- return (result == GTK_RESPONSE_YES) ? TRUE : FALSE;
+ g_free(dir);
+ return (result == GTK_RESPONSE_YES);
}
static void
vcrevert_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
{
- gboolean ret;
- GeanyDocument *doc;
+ command_with_question_activated(NULL, VC_COMMAND_REVERT_FILE,
+ _("Do you really want to revert: %s?"),
+ FLAG_RELOAD | FLAG_FILE | FLAG_FORCE_ASK);
+}
- doc = document_get_current();
- g_return_if_fail(doc != NULL && doc->file_name != NULL);
-
- ret = command_with_question_activated(NULL, VC_COMMAND_REVERT_FILE,
- _("Do you really want to revert: %s?"), TRUE);
- if (ret)
- {
- document_reload_file(doc, NULL);
- }
+static void
+vcrevert_dir_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, gint flags)
+{
+ command_with_question_activated(NULL, VC_COMMAND_REVERT_DIR,
+ _("Do you really want to revert: %s?"),
+ FLAG_RELOAD | flags | 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,
- _("Do you really want to add: %s?"), set_add_confirmation);
+ _("Do you really want to add: %s?"), FLAG_FILE);
}
static void
vcremove_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer gdata)
{
- gboolean ret;
-
- ret = command_with_question_activated(NULL, VC_COMMAND_REMOVE,
- _("Do you really want to remove: %s?"), TRUE);
- if (ret)
+ if (command_with_question_activated(NULL, VC_COMMAND_REMOVE,
+ _("Do you really want to remove: %s?"),
+ FLAG_FORCE_ASK | FLAG_FILE))
{
document_remove_page(gtk_notebook_get_current_page
- (GTK_NOTEBOOK(geany->main_widgets->notebook)));
+ (GTK_NOTEBOOK(geany->main_widgets->notebook)));
}
}
@@ -946,17 +947,14 @@
document_save_file(doc, FALSE);
}
- ret = command_with_question_activated(&text, VC_COMMAND_UPDATE,
- _("Do you really want to update?"),
- set_add_confirmation);
- if (ret)
+ if (command_with_question_activated(&text, VC_COMMAND_UPDATE,
+ _("Do you really want to update?"), FLAG_FILE))
{
document_reload_file(doc, NULL);
if (NZV(text))
- show_output(text, "*VC-UPDATE*", NULL);
- if (text)
- g_free(text);
+ show_output(text, "*VC-UPDATE*", NULL, NULL);
+ g_free(text);
}
}
@@ -1430,7 +1428,7 @@
if (speller == NULL)
{
ui_set_statusbar(FALSE, _("Error initializing spell checking: %s"),
- spellcheck_error->message);
+ spellcheck_error->message);
g_error_free(spellcheck_error);
spellcheck_error = NULL;
}
@@ -1440,9 +1438,9 @@
if (spellcheck_error != NULL)
{
ui_set_statusbar(TRUE,
- _
- ("Error while setting up language for spellchecking. Please check configuration. Error message was: %s"),
- spellcheck_error->message);
+ _
+ ("Error while setting up language for spellchecking. Please check configuration. Error message was: %s"),
+ spellcheck_error->message);
g_error_free(spellcheck_error);
spellcheck_error = NULL;
}
@@ -1484,10 +1482,13 @@
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;
static GtkWidget *menu_vc_commit = NULL;
+static GtkWidget *menu_vc_show_file = NULL;
static void
update_menu_items()
@@ -1527,47 +1528,70 @@
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);
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);
}
-static void kbdiff_file(G_GNUC_UNUSED guint key_id)
+static void
+kbdiff_file(G_GNUC_UNUSED guint key_id)
{
vcdiff_file_activated(NULL, NULL);
}
-static void kbdiff_dir(G_GNUC_UNUSED guint key_id)
+static void
+kbdiff_dir(G_GNUC_UNUSED guint key_id)
{
- vcdiff_dir_activated(NULL, NULL);
+ vcdiff_dir_activated(NULL, FLAG_DIR);
}
-static void kbdiff_basedir(G_GNUC_UNUSED guint key_id)
+static void
+kbdiff_basedir(G_GNUC_UNUSED guint key_id)
{
- vcdiff_basedir_activated(NULL, NULL);
+ vcdiff_dir_activated(NULL, FLAG_BASEDIR);
}
-static void kbstatus(G_GNUC_UNUSED guint key_id)
+static void
+kbstatus(G_GNUC_UNUSED guint key_id)
{
vcstatus_activated(NULL, NULL);
}
-static void kbcommit(G_GNUC_UNUSED guint key_id)
+static void
+kbcommit(G_GNUC_UNUSED guint key_id)
{
vccommit_activated(NULL, NULL);
}
-static void kbrevert(G_GNUC_UNUSED guint key_id)
+static void
+kbrevert_file(G_GNUC_UNUSED guint key_id)
{
vcrevert_activated(NULL, NULL);
}
-static void kbupdate(G_GNUC_UNUSED guint key_id)
+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);
}
@@ -1645,8 +1669,8 @@
&& utils_mkdir(config_dir, TRUE) != 0)
{
dialogs_show_msgbox(GTK_MESSAGE_ERROR,
- _
- ("Plugin configuration directory could not be created."));
+ _
+ ("Plugin configuration directory could not be created."));
}
else
{
@@ -1889,141 +1913,250 @@
REGISTER_VC(HG, enable_hg);
}
-/* Called by Geany to initialize the plugin */
-void
-plugin_init(G_GNUC_UNUSED GeanyData * data)
+static void
+do_current_file_menu(GtkWidget ** parent_menu, GtkTooltips ** tooltips)
{
- GtkWidget *menu_vc = NULL;
- GtkWidget *menu_vc_menu = NULL;
- GtkTooltips *tooltips = NULL;
+ GtkWidget *cur_file_menu = NULL;
+ /* Menu which will hold the items in the current file menu */
+ cur_file_menu = gtk_menu_new();
- main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
+ *parent_menu = gtk_image_menu_item_new_with_mnemonic(_("Current _File"));
+ g_signal_connect((gpointer) * parent_menu, "activate", G_CALLBACK(update_menu_items), NULL);
- config_file =
- g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S,
- "VC", G_DIR_SEPARATOR_S, "VC.conf", NULL);
-
- load_config();
- registrate();
-
- tooltips = gtk_tooltips_new();
-
- menu_vc = gtk_image_menu_item_new_with_mnemonic(_("_VC"));
- gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), menu_vc);
-
- g_signal_connect((gpointer) menu_vc, "activate", G_CALLBACK(update_menu_items), NULL);
-
- menu_vc_menu = gtk_menu_new();
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_vc), menu_vc_menu);
-
- // Single file
- menu_vc_diff_file = gtk_menu_item_new_with_mnemonic(_("Diff From Current File"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_diff_file);
- gtk_tooltips_set_tip(tooltips, menu_vc_diff_file,
+ /* Diff of current file */
+ menu_vc_diff_file = gtk_menu_item_new_with_mnemonic(_("_Diff"));
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_diff_file);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_diff_file,
_("Make a diff from the current active file"), NULL);
g_signal_connect((gpointer) menu_vc_diff_file, "activate",
G_CALLBACK(vcdiff_file_activated), NULL);
- // Directory
- menu_vc_diff_dir = gtk_menu_item_new_with_mnemonic(_("Diff From Current Directory"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_diff_dir);
- gtk_tooltips_set_tip(tooltips, menu_vc_diff_dir,
- _("Make a diff from the directory of the current active file"), NULL);
+ /* Revert current file */
+ menu_vc_revert_file = gtk_menu_item_new_with_mnemonic(_("_Revert"));
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_revert_file);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_revert_file,
+ _("Restore pristine working copy file (undo local edits)."), NULL);
- g_signal_connect((gpointer) menu_vc_diff_dir, "activate",
- G_CALLBACK(vcdiff_dir_activated), NULL);
+ g_signal_connect((gpointer) menu_vc_revert_file, "activate",
+ G_CALLBACK(vcrevert_activated), NULL);
- // Base directory
- menu_vc_diff_basedir = gtk_menu_item_new_with_mnemonic(_("Diff From Base Directory"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_diff_basedir);
- gtk_tooltips_set_tip(tooltips, menu_vc_diff_basedir,
- _("Make a diff from the top VC directory"), NULL);
- g_signal_connect((gpointer) menu_vc_diff_basedir, "activate",
- G_CALLBACK(vcdiff_basedir_activated), NULL);
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), gtk_separator_menu_item_new());
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
- // Blame for current file
- menu_vc_blame = gtk_menu_item_new_with_mnemonic(_("Blame From Current File"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_blame);
- gtk_tooltips_set_tip(tooltips, menu_vc_blame,
+ /* Blame for current file */
+ menu_vc_blame = gtk_menu_item_new_with_mnemonic(_("_Blame"));
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_blame);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_blame,
_("Shows the changes made at one file per revision and author."),
NULL);
g_signal_connect((gpointer) menu_vc_blame, "activate", G_CALLBACK(vcblame_activated), NULL);
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), gtk_separator_menu_item_new());
- // Log
- menu_vc_log_file = gtk_menu_item_new_with_mnemonic(_("Log Of Current File"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_log_file);
- gtk_tooltips_set_tip(tooltips, menu_vc_log_file,
+ /* History/log of current file */
+ menu_vc_log_file = gtk_menu_item_new_with_mnemonic(_("_History"));
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_log_file);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_log_file,
_("Shows the log of the current file"), NULL);
g_signal_connect((gpointer) menu_vc_log_file, "activate",
G_CALLBACK(vclog_file_activated), NULL);
- menu_vc_log_dir = gtk_menu_item_new_with_mnemonic(_("Log Of Current Directory"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_log_dir);
- gtk_tooltips_set_tip(tooltips, menu_vc_log_dir,
+ /* 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 */
+ menu_vc_add_file = gtk_menu_item_new_with_mnemonic(_("_Add to Version Control"));
+ gtk_container_add(GTK_CONTAINER(cur_file_menu), menu_vc_add_file);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_add_file, _("Add file to repository."), NULL);
+
+ g_signal_connect((gpointer) menu_vc_add_file, "activate",
+ G_CALLBACK(vcadd_activated), NULL);
+
+ /* 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,
+ _("Remove file from repository."), NULL);
+
+ g_signal_connect((gpointer) menu_vc_remove_file, "activate",
+ G_CALLBACK(vcremove_activated), NULL);
+
+ /* connect to parent menu */
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(*parent_menu), cur_file_menu);
+}
+
+static void
+do_current_dir_menu(GtkWidget ** parent_menu, GtkTooltips ** tooltips)
+{
+ GtkWidget *cur_dir_menu = NULL;
+ /* Menu which will hold the items in the current file menu */
+ cur_dir_menu = gtk_menu_new();
+
+ *parent_menu = gtk_image_menu_item_new_with_mnemonic(_("Current _Directory"));
+ g_signal_connect((gpointer) * parent_menu, "activate", G_CALLBACK(update_menu_items), NULL);
+ /* Diff of the current dir */
+ menu_vc_diff_dir = gtk_menu_item_new_with_mnemonic(_("_Diff"));
+ gtk_container_add(GTK_CONTAINER(cur_dir_menu), menu_vc_diff_dir);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_diff_dir,
+ _("Make a diff from the directory of the current active file"), NULL);
+
+ g_signal_connect((gpointer) menu_vc_diff_dir, "activate",
+ G_CALLBACK(vcdiff_dir_activated), (gpointer)FLAG_DIR);
+
+ /* 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"));
+ gtk_container_add(GTK_CONTAINER(cur_dir_menu), menu_vc_log_dir);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_log_dir,
_("Shows the log of the current directory"), NULL);
+
+ /* connect to parent menu */
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(*parent_menu), cur_dir_menu);
+}
+
+static void
+do_basedir_menu(GtkWidget ** parent_menu, GtkTooltips ** tooltips)
+{
+ GtkWidget *basedir_menu = NULL;
+ /* Menu which will hold the items in the current file menu */
+ basedir_menu = gtk_menu_new();
+
+ *parent_menu = gtk_image_menu_item_new_with_mnemonic(_("Current _Basedirectory"));
+ g_signal_connect((gpointer) * parent_menu, "activate", G_CALLBACK(update_menu_items), NULL);
+
+ /* Complete diff of base directory */
+ menu_vc_diff_basedir = gtk_menu_item_new_with_mnemonic(_("_Diff"));
+ gtk_container_add(GTK_CONTAINER(basedir_menu), menu_vc_diff_basedir);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_diff_basedir,
+ _("Make a diff from the top VC directory"), NULL);
+
+ g_signal_connect((gpointer) menu_vc_diff_basedir, "activate",
+ G_CALLBACK(vcdiff_dir_activated), (gpointer)FLAG_BASEDIR);
+
+ /* 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);
- menu_vc_log_basedir = gtk_menu_item_new_with_mnemonic(_("Log Of Base Directory"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_log_basedir);
- gtk_tooltips_set_tip(tooltips, menu_vc_log_basedir,
+ /* Complete History/Log of base directory */
+ menu_vc_log_basedir = gtk_menu_item_new_with_mnemonic(_("_History"));
+ gtk_container_add(GTK_CONTAINER(basedir_menu), menu_vc_log_basedir);
+ gtk_tooltips_set_tip(*tooltips, menu_vc_log_basedir,
_("Shows the log of the top VC directory"), NULL);
g_signal_connect((gpointer) menu_vc_log_basedir, "activate",
G_CALLBACK(vclog_basedir_activated), NULL);
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
+ /* connect to parent menu */
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(*parent_menu), basedir_menu);
+}
- // Status
- menu_vc_status = gtk_menu_item_new_with_mnemonic(_("_Status"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_status);
- gtk_tooltips_set_tip(tooltips, menu_vc_status, _("Show status."), NULL);
+static void
+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_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_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);
+}
- g_signal_connect((gpointer) menu_vc_status, "activate",
- G_CALLBACK(vcstatus_activated), NULL);
+/* Called by Geany to initialize the plugin */
+void
+plugin_init(G_GNUC_UNUSED GeanyData * data)
+{
+ GtkWidget *menu_vc = NULL;
+ GtkWidget *menu_vc_menu = NULL;
+ GtkWidget *menu_vc_file = NULL;
+ GtkWidget *menu_vc_dir = NULL;
+ GtkWidget *menu_vc_basedir = NULL;
+ GtkTooltips *tooltips = NULL;
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
+ main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
- // Revert file
- menu_vc_revert_file = gtk_menu_item_new_with_mnemonic(_("_Revert File"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_revert_file);
- gtk_tooltips_set_tip(tooltips, menu_vc_revert_file,
- _("Restore pristine working copy file (undo local edits)."), NULL);
+ config_file =
+ g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S,
+ "VC", G_DIR_SEPARATOR_S, "VC.conf", NULL);
- g_signal_connect((gpointer) menu_vc_revert_file, "activate",
- G_CALLBACK(vcrevert_activated), NULL);
+ load_config();
+ registrate();
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
+ tooltips = gtk_tooltips_new();
- // Add file
- menu_vc_add_file = gtk_menu_item_new_with_mnemonic(_("_Add File"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_add_file);
- gtk_tooltips_set_tip(tooltips, menu_vc_add_file, _("Add file to repository."), NULL);
+ menu_vc = gtk_image_menu_item_new_with_mnemonic(_("_VC"));
+ gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), menu_vc);
- g_signal_connect((gpointer) menu_vc_add_file, "activate",
- G_CALLBACK(vcadd_activated), NULL);
+ g_signal_connect((gpointer) menu_vc, "activate", G_CALLBACK(update_menu_items), NULL);
- // Remove file
- menu_vc_remove_file = gtk_menu_item_new_with_mnemonic(_("Remove File"));
- gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_remove_file);
- gtk_tooltips_set_tip(tooltips, menu_vc_remove_file,
- _("Remove file from repository."), NULL);
+ menu_vc_menu = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_vc), menu_vc_menu);
- g_signal_connect((gpointer) menu_vc_remove_file, "activate",
- G_CALLBACK(vcremove_activated), NULL);
+ /* Create the current file Submenu */
+ do_current_file_menu(&menu_vc_file, &tooltips);
+ gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_file);
+ /* Create the current directory Submenu */
+ do_current_dir_menu(&menu_vc_dir, &tooltips);
+ gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_dir);
+ /* Create the current base directory Submenu */
+ do_basedir_menu(&menu_vc_basedir, &tooltips);
+ gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_basedir);
gtk_container_add(GTK_CONTAINER(menu_vc_menu), gtk_separator_menu_item_new());
+ /* Status of basedir */
+ menu_vc_status = gtk_menu_item_new_with_mnemonic(_("_Status"));
+ gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_status);
+ gtk_tooltips_set_tip(tooltips, menu_vc_status, _("Show status."), NULL);
- // Update
+ g_signal_connect((gpointer) menu_vc_status, "activate",
+ G_CALLBACK(vcstatus_activated), NULL);
+
+
+ /* complete update */
menu_vc_update = gtk_menu_item_new_with_mnemonic(_("Update"));
gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_update);
gtk_tooltips_set_tip(tooltips, menu_vc_update, _("Update from remote repositary."), NULL);
@@ -2031,7 +2164,8 @@
g_signal_connect((gpointer) menu_vc_update, "activate",
G_CALLBACK(vcupdate_activated), NULL);
- // Commit
+
+ /* Commit all changes */
menu_vc_commit = gtk_menu_item_new_with_mnemonic(_("_Commit"));
gtk_container_add(GTK_CONTAINER(menu_vc_menu), menu_vc_commit);
gtk_tooltips_set_tip(tooltips, menu_vc_commit, _("Commit changes."), NULL);
@@ -2039,27 +2173,17 @@
g_signal_connect((gpointer) menu_vc_commit, "activate",
G_CALLBACK(vccommit_activated), NULL);
+
gtk_widget_show_all(menu_vc);
+ gtk_widget_show_all(menu_vc_file);
+ gtk_widget_show_all(menu_vc_dir);
+ gtk_widget_show_all(menu_vc_basedir);
- /* 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_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);
+ /* initialize keybindings */
+ init_keybindings();
plugin_fields->menu_item = menu_vc;
plugin_fields->flags = PLUGIN_IS_DOCUMENT_SENSITIVE;
-
}
Modified: trunk/geanyvc/geanyvc.h
===================================================================
--- trunk/geanyvc/geanyvc.h 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/geanyvc.h 2009-02-02 16:55:48 UTC (rev 425)
@@ -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,
@@ -51,10 +52,16 @@
VC_COMMAND_STARTDIR_FILE
};
-#define P_ABS_DIRNAME "*<?geanyvcDIRNAME>*"
-#define P_ABS_FILENAME "*<?geanyvcFILENAME>*"
-#define P_BASENAME "*<?geanyvcBASE_FILENAME>*"
+#define FLAG_RELOAD (1<<0)
+#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>*"
+#define P_BASENAME "*<?geanyvcBASE_FILENAME>*"
+
/* The addresses of these strings act as enums, their contents are not used. */
Modified: trunk/geanyvc/po/ChangeLog
===================================================================
--- trunk/geanyvc/po/ChangeLog 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/po/ChangeLog 2009-02-02 16:55:48 UTC (rev 425)
@@ -1,3 +1,8 @@
+2009-01-27 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+
+ * de.po: Translation of new strings.
+
+
2008-11-07 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* de.po: Update of German translation.
Modified: trunk/geanyvc/po/de.po
===================================================================
--- trunk/geanyvc/po/de.po 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/po/de.po 2009-02-02 16:55:48 UTC (rev 425)
@@ -8,9 +8,9 @@
msgstr ""
"Project-Id-Version: geanyvc 0.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-07 20:48+0100\n"
-"PO-Revision-Date: 2008-11-07 20:53+0100\n"
-"Last-Translator: Enrico Tröger <enrico at xfce.org>\n"
+"POT-Creation-Date: 2009-01-27 23:32+0100\n"
+"PO-Revision-Date: 2009-01-27 23:37+0100\n"
+"Last-Translator: Frank Lanitz <frank at frank.uvena.de>\n"
"Language-Team: German <geany-i18n at uvena.de>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@@ -35,70 +35,70 @@
msgstr ""
"Yura Siamashka <yurand2 at gmail.com>, Frank Lanitz <frank at frank.uvena.de>"
-#: ../geanyvc.c:404
+#: ../geanyvc.c:402
msgid "Could not parse the output of command"
msgstr "Kann die Ausgabe des Befehls nicht einlesen."
-#: ../geanyvc.c:464
+#: ../geanyvc.c:462
#, c-format
msgid "geanyvc: s_spawn_sync error: %s"
msgstr "geanyvc: s_spawn_sync error: %s"
-#: ../geanyvc.c:600 ../geanyvc.c:611
+#: ../geanyvc.c:596 ../geanyvc.c:607
#, c-format
msgid "geanyvc: vcdiff_file_activated: Unable to rename '%s' to '%s'"
msgstr "geanyvc: vcdiff_file_activated: Kann »%s« nicht in »%s« umbenennen."
-#: ../geanyvc.c:637 ../geanyvc.c:672 ../geanyvc.c:716
+#: ../geanyvc.c:633 ../geanyvc.c:668 ../geanyvc.c:712
msgid "No changes were made."
msgstr "Es wurden keine Änderungen vorgenommen."
-#: ../geanyvc.c:742
+#: ../geanyvc.c:738
msgid "No history avaible"
msgstr "Keine Historie verfügbar"
-#: ../geanyvc.c:907
+#: ../geanyvc.c:900
#, c-format
msgid "Do you really want to revert: %s?"
msgstr "Möchten Sie wirklich »%s« zurücksetzen?"
-#: ../geanyvc.c:919
+#: ../geanyvc.c:908
#, c-format
msgid "Do you really want to add: %s?"
msgstr "Möchten Sie wirklich »%s« hinzufügen?"
-#: ../geanyvc.c:928
+#: ../geanyvc.c:915
#, c-format
msgid "Do you really want to remove: %s?"
msgstr "Möchten Sie wirklich »%s« entfernen?"
-#: ../geanyvc.c:953
+#: ../geanyvc.c:939
msgid "Do you really want to update?"
msgstr "Möchten Sie wirklich »%s« aktualisieren?"
-#: ../geanyvc.c:1235
+#: ../geanyvc.c:1218
msgid "Commit"
msgstr "Übertragen"
-#: ../geanyvc.c:1306
+#: ../geanyvc.c:1289
msgid "<b>Commit message:</b>"
msgstr "<b>Commitnachricht:</b>"
-#. Commit
-#: ../geanyvc.c:1319 ../geanyvc.c:2038
+#. Commit all changes
+#: ../geanyvc.c:1302 ../geanyvc.c:2109
msgid "_Commit"
msgstr "Ü_bertragen"
-#: ../geanyvc.c:1389
+#: ../geanyvc.c:1372
msgid "Nothing to commit."
msgstr "Nichts zum Übertragen."
-#: ../geanyvc.c:1435
+#: ../geanyvc.c:1418
#, c-format
msgid "Error initializing spell checking: %s"
msgstr "Fehler beim Initialisieren der Rechtschreibprüfung: %s"
-#: ../geanyvc.c:1447
+#: ../geanyvc.c:1430
#, c-format
msgid ""
"Error while setting up language for spellchecking. Please check "
@@ -107,15 +107,15 @@
"Fehler beim Auswählen der Sprache für die Rechtschreibprüfung. Bitte "
"überprüfen Sie Ihre Konfiguration. Fehlermeldung: %s"
-#: ../geanyvc.c:1652
+#: ../geanyvc.c:1642
msgid "Plugin configuration directory could not be created."
msgstr "Plugin-Konfigurationsverzeichnis konnte nicht erstellt werden."
-#: ../geanyvc.c:1685
+#: ../geanyvc.c:1675
msgid "Set Changed-flag for document tabs created by the plugin"
msgstr "Markiere vom Plugin erstelle Dokumente als geändert"
-#: ../geanyvc.c:1688
+#: ../geanyvc.c:1678
msgid ""
"If this option is activated, every new by the VC-plugin created document tab "
"will be marked as changed. Even this option is useful in some cases, it "
@@ -126,203 +126,222 @@
"der Speichern Dialog geöffnet wird. Auch wenn diese Option von Zeit zu Zeit "
"sehr nützlich sein kann, kann Sie ab und an einfach nur stören."
-#: ../geanyvc.c:1696
+#: ../geanyvc.c:1686
msgid "Confirm adding new files to a VCS"
msgstr "Hinzufügen von Dateien zur Versionsverwaltung immer bestätigen"
-#: ../geanyvc.c:1699
+#: ../geanyvc.c:1689
msgid "Shows a confirmation dialog on adding a new (created) file to VCS."
msgstr ""
"Zeigt einen Bestätigungsdialog wenn Dateien zu einem Versionskontrollsystem "
"hinzugefügt werden sollen."
-#: ../geanyvc.c:1706
+#: ../geanyvc.c:1696
msgid "Maximize commit dialog"
msgstr "Commit-Dialog maximieren"
-#: ../geanyvc.c:1707
+#: ../geanyvc.c:1697
msgid "Show commit dialog maximize."
msgstr "Commit-Dialog beim Anzeigen maximieren"
-#: ../geanyvc.c:1714
+#: ../geanyvc.c:1704
msgid "Use external diff viewer"
msgstr "Externes Diff-Programm benutzen"
-#: ../geanyvc.c:1716
+#: ../geanyvc.c:1706
msgid "Use external diff viewer for file diff."
msgstr "Externes Diff-Programm benutzen zum Vergleich von zwei Dateien."
-#: ../geanyvc.c:1722
+#: ../geanyvc.c:1712
msgid "Enable CVS"
msgstr "CVS aktivieren"
-#: ../geanyvc.c:1727
+#: ../geanyvc.c:1717
msgid "Enable GIT"
msgstr "GIT aktivieren"
-#: ../geanyvc.c:1732
+#: ../geanyvc.c:1722
msgid "Enable SVN"
msgstr "SVN aktivieren"
-#: ../geanyvc.c:1737
+#: ../geanyvc.c:1727
msgid "Enable SVK"
msgstr "SVK aktivieren"
-#: ../geanyvc.c:1742
+#: ../geanyvc.c:1732
msgid "Enable Bazaar"
msgstr "Bazaar aktivieren"
-#: ../geanyvc.c:1747
+#: ../geanyvc.c:1737
msgid "Enable Mercurial"
msgstr "Mercurial aktivieren"
-#: ../geanyvc.c:1753
+#: ../geanyvc.c:1743
msgid "Spellcheck language"
msgstr "Sprache"
-#: ../geanyvc.c:1914
-msgid "_VC"
-msgstr "_VC"
+#: ../geanyvc.c:1892
+msgid "Current _File"
+msgstr "_Aktuelle Datei"
-#. Single file
-#: ../geanyvc.c:1923
-msgid "Diff From Current File"
-msgstr "Diff von der aktuellen Datei"
+#. Diff of current file
+#. Diff of the current dir
+#. Complete diff of base directory
+#: ../geanyvc.c:1896 ../geanyvc.c:1971 ../geanyvc.c:2002
+msgid "_Diff"
+msgstr "_Unterscheide anzeigen"
-#: ../geanyvc.c:1926
+#: ../geanyvc.c:1899
msgid "Make a diff from the current active file"
msgstr "Erstellt ein Diff für die aktuelle Datei."
-#. Directory
-#: ../geanyvc.c:1932
-msgid "Diff From Current Directory"
-msgstr "Diff vom aktuellen Verzeichnis"
+#. Revert current file
+#: ../geanyvc.c:1905
+msgid "_Revert"
+msgstr "_Zurücksetzen"
-#: ../geanyvc.c:1935
-msgid "Make a diff from the directory of the current active file"
-msgstr "Erstellt ein Diff für das Verzeichnis der aktuellen Datei."
+#: ../geanyvc.c:1908
+msgid "Restore pristine working copy file (undo local edits)."
+msgstr ""
+"Stellt den ursprünglichen Zustand der Datei wieder her (verwirft lokale "
+"Änderungen)."
-#. Base directory
-#: ../geanyvc.c:1941
-msgid "Diff From Base Directory"
-msgstr "Diff vom Grundverzeichnis"
-
-#: ../geanyvc.c:1944
-msgid "Make a diff from the top VC directory"
-msgstr "Erstellt ein Diff für die gesamte Arbeitskopie"
-
#. Blame for current file
-#: ../geanyvc.c:1952
-msgid "Blame From Current File"
-msgstr "Blame von aktueller Datei"
+#: ../geanyvc.c:1918
+msgid "_Blame"
+msgstr "Ä_nderungsverfolgung"
-#: ../geanyvc.c:1955
+#: ../geanyvc.c:1921
msgid "Shows the changes made at one file per revision and author."
msgstr "Zeigt alle Änderungen einer Datei nach Autor und Revision."
-#. Log
-#: ../geanyvc.c:1963
-msgid "Log Of Current File"
-msgstr "Historie der aktuellen Datei"
+#. History/log of current file
+#. History/log of the current dir
+#. Complete History/Log of base directory
+#: ../geanyvc.c:1929 ../geanyvc.c:1981 ../geanyvc.c:2015
+msgid "_History"
+msgstr "_Versionsgeschichte"
-#: ../geanyvc.c:1966
+#: ../geanyvc.c:1932
msgid "Shows the log of the current file"
msgstr "Zeigt die Versionshistorie der aktuellen Datei an."
-#: ../geanyvc.c:1971
-msgid "Log Of Current Directory"
-msgstr "Historie vom aktuellen Verzeichnis"
+#. add current file
+#: ../geanyvc.c:1941
+msgid "_Add to Version Control"
+msgstr "Zur _Versionskontrolle hinzufügen"
+#: ../geanyvc.c:1943
+msgid "Add file to repository."
+msgstr "Fügt eine Datei zum Repositorium _hinzu."
+
+#. revert current file
+#: ../geanyvc.c:1949
+msgid "_Remove from Version Control"
+msgstr "Aus Versionskontrolle entfernen"
+
+#: ../geanyvc.c:1952
+msgid "Remove file from repository."
+msgstr "Entfernt eine Datei aus dem Repositorium."
+
+#: ../geanyvc.c:1968
+msgid "Current _Directory"
+msgstr "Aktueller _Dokumentenordner"
+
#: ../geanyvc.c:1974
+msgid "Make a diff from the directory of the current active file"
+msgstr "Erstellt ein Diff für das Verzeichnis der aktuellen Datei."
+
+#: ../geanyvc.c:1984
msgid "Shows the log of the current directory"
msgstr "Zeigt die Versionshistorie für das aktuelle Verzeichnis."
-#: ../geanyvc.c:1979
-msgid "Log Of Base Directory"
-msgstr "Historie vom aktuellen Grundverzeichnis"
+#: ../geanyvc.c:1998
+msgid "Current _Basedirectory"
+msgstr "Aktuelles _Basisverzeichnis"
-#: ../geanyvc.c:1982
+#: ../geanyvc.c:2005
+msgid "Make a diff from the top VC directory"
+msgstr "Erstellt ein Diff für die gesamte Arbeitskopie"
+
+#: ../geanyvc.c:2018
msgid "Shows the log of the top VC directory"
msgstr "Zeigt die Versionsgeschichte für die gesamte Arbeitskopie"
-#. Status
-#: ../geanyvc.c:1990
-msgid "_Status"
-msgstr "_Status"
+#: ../geanyvc.c:2032
+msgid "Show diff of file"
+msgstr "Diff von der aktuellen Datei"
-#: ../geanyvc.c:1992
-msgid "Show status."
-msgstr "Zeigt den Status der Arbeitskopie."
+#: ../geanyvc.c:2035
+msgid "Show diff of diretory"
+msgstr "Diff vom aktuellen Verzeichnis"
-#. Revert file
-#: ../geanyvc.c:2000
-msgid "_Revert File"
-msgstr "Änderungen _verwerfen"
+#: ../geanyvc.c:2037
+msgid "Show diff of basedir"
+msgstr "Diff vom Grundverzeichnis"
-#: ../geanyvc.c:2003
-msgid "Restore pristine working copy file (undo local edits)."
-msgstr ""
-"Stellt den ursprünglichen Zustand der Datei wieder her (verwirft lokale "
-"Änderungen)."
+#: ../geanyvc.c:2040
+msgid "Commit changes"
+msgstr "Änderungen übertragen"
-#. Add file
-#: ../geanyvc.c:2011
-msgid "_Add File"
-msgstr "Datei _hinzufügen"
+#: ../geanyvc.c:2042
+msgid "Show status"
+msgstr "Status der Arbeitskopie anzeigen"
-#: ../geanyvc.c:2013
-msgid "Add file to repository."
-msgstr "Fügt eine Datei zum Repositorium _hinzu."
+#: ../geanyvc.c:2044
+msgid "Revert changes"
+msgstr "Änderungen verwerfen"
-#. Remove file
-#: ../geanyvc.c:2019
-msgid "Remove File"
-msgstr "Datei entfernen"
+#: ../geanyvc.c:2046
+msgid "Update file"
+msgstr "Datei aktualisieren"
-#: ../geanyvc.c:2022
-msgid "Remove file from repository."
-msgstr "Entfernt eine Datei aus dem Repositorium."
+#: ../geanyvc.c:2071
+msgid "_VC"
+msgstr "_VC"
-#. Update
-#: ../geanyvc.c:2030
+#. Status of basedir
+#: ../geanyvc.c:2091
+msgid "_Status"
+msgstr "_Status"
+
+#: ../geanyvc.c:2093
+msgid "Show status."
+msgstr "Zeigt den Status der Arbeitskopie."
+
+#. complete update
+#: ../geanyvc.c:2100
msgid "Update"
msgstr "Aktualisieren"
-#: ../geanyvc.c:2032
+#: ../geanyvc.c:2102
msgid "Update from remote repositary."
msgstr "Aus dem Repository aktualisieren"
-#: ../geanyvc.c:2040
+#: ../geanyvc.c:2111
msgid "Commit changes."
msgstr "Änderungen übertragen."
-#: ../geanyvc.c:2049
-msgid "Show diff of file"
-msgstr "Diff von der aktuellen Datei"
+#~ msgid "Diff From Current File"
+#~ msgstr "Diff von der aktuellen Datei"
-#: ../geanyvc.c:2051
-msgid "Show diff of diretory"
-msgstr "Diff vom aktuellen Verzeichnis"
+#~ msgid "Diff From Current Directory"
+#~ msgstr "Diff vom aktuellen Verzeichnis"
-#: ../geanyvc.c:2053
-msgid "Show diff of basedir"
-msgstr "Diff vom Grundverzeichnis"
+#~ msgid "Diff From Base Directory"
+#~ msgstr "Diff vom Grundverzeichnis"
-#: ../geanyvc.c:2055
-msgid "Commit changes"
-msgstr "Änderungen übertragen"
+#~ msgid "Blame From Current File"
+#~ msgstr "Blame von aktueller Datei"
-#: ../geanyvc.c:2057
-msgid "Show status"
-msgstr "Status der Arbeitskopie anzeigen"
+#~ msgid "Log Of Base Directory"
+#~ msgstr "Historie vom aktuellen Grundverzeichnis"
-#: ../geanyvc.c:2059
-msgid "Revert changes"
-msgstr "Änderungen verwerfen"
+#~ msgid "_Add File"
+#~ msgstr "Datei _hinzufügen"
-#: ../geanyvc.c:2061
-msgid "Update file"
-msgstr "Datei aktualisieren"
+#~ msgid "Remove File"
+#~ msgstr "Datei entfernen"
#~ msgid "Diff From Current Project"
#~ msgstr "Diff vom aktuellen Projekt"
Modified: trunk/geanyvc/vc_bzr.c
===================================================================
--- trunk/geanyvc/vc_bzr.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/vc_bzr.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -37,6 +37,7 @@
static const gchar *BZR_CMD_DIFF_FILE[] = { "bzr", "diff", BASENAME, NULL };
static const gchar *BZR_CMD_DIFF_DIR[] = { "bzr", "diff", ABS_DIRNAME, NULL };
static const gchar *BZR_CMD_REVERT_FILE[] = { "bzr", "revert", BASENAME, NULL };
+static const gchar *BZR_CMD_REVERT_DIR[] = { "bzr", NULL };
static const gchar *BZR_CMD_STATUS[] = { "bzr", "status", NULL };
static const gchar *BZR_CMD_ADD[] = { "bzr", "add", BASENAME, NULL };
static const gchar *BZR_CMD_REMOVE[] = { "bzr", "remove", BASENAME, NULL };
@@ -65,6 +66,11 @@
.function = NULL},
{
.startdir = VC_COMMAND_STARTDIR_FILE,
+ .command = BZR_CMD_REVERT_DIR,
+ .env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_FILE,
.command = BZR_CMD_STATUS,
.env = NULL,
.function = NULL},
Modified: trunk/geanyvc/vc_cvs.c
===================================================================
--- trunk/geanyvc/vc_cvs.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/vc_cvs.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -34,6 +34,7 @@
static const gchar *CVS_CMD_DIFF_FILE[] = { "cvs", "diff", "-u", BASE_FILENAME, NULL };
static const gchar *CVS_CMD_DIFF_DIR[] = { "cvs", "diff", "-u", NULL };
static const gchar *CVS_CMD_REVERT_FILE[] = { "cvs", "update", "-C", BASE_FILENAME, NULL };
+static const gchar *CVS_CMD_REVERT_DIR[] = { "cvs", NULL };
static const gchar *CVS_CMD_STATUS[] = { "cvs", "status", NULL };
static const gchar *CVS_CMD_ADD[] = { "cvs", "add", BASE_FILENAME, NULL };
static const gchar *CVS_CMD_REMOVE[] = { "cvs", "remove", BASE_FILENAME, NULL };
@@ -62,6 +63,11 @@
.function = NULL},
{
.startdir = VC_COMMAND_STARTDIR_FILE,
+ .command = CVS_CMD_REVERT_DIR,
+ .env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_FILE,
.command = CVS_CMD_STATUS,
.env = NULL,
.function = NULL},
Modified: trunk/geanyvc/vc_git.c
===================================================================
--- trunk/geanyvc/vc_git.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/vc_git.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -89,6 +89,7 @@
static const gchar *GIT_CMD_DIFF_FILE[] = { "git", "diff", "HEAD", "--", BASENAME, NULL };
static const gchar *GIT_CMD_DIFF_DIR[] = { "git", "diff", "HEAD", NULL };
static const gchar *GIT_CMD_REVERT_FILE[] = { "git", "checkout", "--", BASENAME, NULL };
+static const gchar *GIT_CMD_REVERT_DIR[] = { "git", NULL };
static const gchar *GIT_CMD_STATUS[] = { "git", "status", NULL };
static const gchar *GIT_CMD_ADD[] = { "git", "add", "--", BASENAME, NULL };
static const gchar *GIT_CMD_REMOVE[] =
@@ -103,6 +104,7 @@
static const gchar *GIT_ENV_DIFF_FILE[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_DIFF_DIR[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_REVERT_FILE[] = { "PAGER=cat", NULL };
+static const gchar *GIT_ENV_REVERT_DIR[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_STATUS[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_ADD[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_REMOVE[] = { "PAGER=cat", NULL };
@@ -111,7 +113,7 @@
static const gchar *GIT_ENV_BLAME[] = { "PAGER=cat", NULL };
static const gchar *GIT_ENV_UPDATE[] = { "PAGER=cat", NULL };
-static const VC_COMMAND commands[] = {
+static const VC_COMMAND commands[VC_COMMAND_COUNT] = {
{
.startdir = VC_COMMAND_STARTDIR_FILE,
.command = GIT_CMD_DIFF_FILE,
@@ -129,6 +131,11 @@
.function = NULL},
{
.startdir = VC_COMMAND_STARTDIR_FILE,
+ .command = GIT_CMD_REVERT_DIR,
+ .env = GIT_ENV_REVERT_DIR,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_FILE,
.command = GIT_CMD_STATUS,
.env = GIT_ENV_STATUS,
.function = NULL},
Modified: trunk/geanyvc/vc_hg.c
===================================================================
--- trunk/geanyvc/vc_hg.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/vc_hg.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -37,6 +37,7 @@
static const gchar *HG_CMD_DIFF_FILE[] = { "hg", "diff", ABS_FILENAME, NULL };
static const gchar *HG_CMD_DIFF_DIR[] = { "hg", "diff", ABS_DIRNAME, NULL };
static const gchar *HG_CMD_REVERT_FILE[] = { "hg", "revert", BASENAME, NULL };
+static const gchar *HG_CMD_REVERT_DIR[] = { "hg", NULL };
static const gchar *HG_CMD_STATUS[] = { "hg", "status", NULL };
static const gchar *HG_CMD_ADD[] = { "hg", "add", BASENAME, NULL };
static const gchar *HG_CMD_REMOVE[] = { "hg", "remove", BASENAME, NULL };
@@ -65,6 +66,11 @@
.function = NULL},
{
.startdir = VC_COMMAND_STARTDIR_FILE,
+ .command = HG_CMD_REVERT_DIR,
+ .env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_FILE,
.command = HG_CMD_STATUS,
.env = NULL,
.function = NULL},
Modified: trunk/geanyvc/vc_svk.c
===================================================================
--- trunk/geanyvc/vc_svk.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/vc_svk.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -37,6 +37,7 @@
static const gchar *SVK_CMD_DIFF_FILE[] = { "svk", "diff", ABS_FILENAME, NULL };
static const gchar *SVK_CMD_DIFF_DIR[] = { "svk", "diff", ABS_DIRNAME, NULL };
static const gchar *SVK_CMD_REVERT_FILE[] = { "svk", "revert", BASENAME, NULL };
+static const gchar *SVK_CMD_REVERT_DIR[] = { "svk", NULL };
static const gchar *SVK_CMD_STATUS[] = { "svk", "status", NULL };
static const gchar *SVK_CMD_ADD[] = { "svk", "add", BASENAME, NULL };
static const gchar *SVK_CMD_REMOVE[] = { "svk", "remove", BASENAME, NULL };
@@ -65,6 +66,11 @@
.function = NULL},
{
.startdir = VC_COMMAND_STARTDIR_FILE,
+ .command = SVK_CMD_REVERT_DIR,
+ .env = NULL,
+ .function = NULL},
+ {
+ .startdir = VC_COMMAND_STARTDIR_FILE,
.command = SVK_CMD_STATUS,
.env = NULL,
.function = NULL},
Modified: trunk/geanyvc/vc_svn.c
===================================================================
--- trunk/geanyvc/vc_svn.c 2009-02-01 19:16:54 UTC (rev 424)
+++ trunk/geanyvc/vc_svn.c 2009-02-02 16:55:48 UTC (rev 425)
@@ -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 };
@@ -46,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[] = {
@@ -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