Updated Spanish translation
[anjuta-git-plugin.git] / plugins / subversion / subversion-remove-dialog.c
blobc94a317400344fc21003c874b8841eeeddea5954
1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2 /*
3 * anjuta
4 * Copyright (C) James Liggett 2007 <jrliggett@cox.net>
6 * Portions based on the original Subversion plugin
7 * Copyright (C) Johannes Schmid 2005
8 *
9 * anjuta is free software.
11 * You may redistribute it and/or modify it under the terms of the
12 * GNU General Public License, as published by the Free Software
13 * Foundation; either version 2 of the License, or (at your option)
14 * any later version.
16 * anjuta is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 * See the GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with anjuta. If not, write to:
23 * The Free Software Foundation, Inc.,
24 * 51 Franklin Street, Fifth Floor
25 * Boston, MA 02110-1301, USA.
28 #include "subversion-remove-dialog.h"
30 static void
31 on_remove_command_finished (AnjutaCommand *command, guint return_code,
32 Subversion *plugin)
34 AnjutaStatus *status;
36 status = anjuta_shell_get_status (ANJUTA_PLUGIN (plugin)->shell,
37 NULL);
39 anjuta_status (status, _("Subversion: File will be removed on next "
40 "commit."), 5);
42 report_errors (command, return_code);
44 svn_remove_command_destroy (SVN_REMOVE_COMMAND (command));
47 static void
48 on_remove_path_browse_button_clicked (GtkButton *button,
49 SubversionData *data)
51 GtkWidget *subversion_remove;
52 GtkWidget *remove_path_entry;
53 GtkWidget *file_chooser_dialog;
54 gchar *selected_path;
56 subversion_remove = glade_xml_get_widget (data->gxml, "subversion_remove");
57 remove_path_entry = glade_xml_get_widget (data->gxml,
58 "remove_path_entry");
59 file_chooser_dialog = gtk_file_chooser_dialog_new ("Select file or folder",
60 GTK_WINDOW (subversion_remove),
61 GTK_FILE_CHOOSER_ACTION_OPEN,
62 GTK_STOCK_CANCEL,
63 GTK_RESPONSE_CANCEL,
64 GTK_STOCK_OPEN,
65 GTK_RESPONSE_ACCEPT,
66 NULL);
68 if (gtk_dialog_run (GTK_DIALOG (file_chooser_dialog)) == GTK_RESPONSE_ACCEPT)
70 selected_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser_dialog));
71 gtk_entry_set_text (GTK_ENTRY (remove_path_entry), selected_path);
72 g_free (selected_path);
75 gtk_widget_destroy (GTK_WIDGET (file_chooser_dialog));
78 static void
79 on_subversion_remove_response(GtkDialog* dialog, gint response,
80 SubversionData* data)
82 switch (response)
84 case GTK_RESPONSE_OK:
86 GtkWidget* fileentry = glade_xml_get_widget(data->gxml, "remove_path_entry");
87 GtkWidget* force = glade_xml_get_widget(data->gxml, "subversion_force");
88 GtkWidget *remove_log_view;
89 const gchar* filename = gtk_entry_get_text(GTK_ENTRY(fileentry));
90 gchar *log;
91 SvnRemoveCommand *remove_command;
93 remove_log_view = glade_xml_get_widget (data->gxml,
94 "remove_log_view");
95 log = get_log_from_textview (remove_log_view);
97 if (!check_filename(dialog, filename))
98 break;
101 remove_command = svn_remove_command_new ((gchar *) filename, log,
102 gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (force)));
104 g_signal_connect (G_OBJECT (remove_command), "command-finished",
105 G_CALLBACK (on_remove_command_finished),
106 data->plugin);
108 anjuta_command_start (ANJUTA_COMMAND (remove_command));
110 subversion_data_free(data);
111 gtk_widget_destroy (GTK_WIDGET(dialog));
112 break;
114 default:
116 subversion_data_free(data);
117 gtk_widget_destroy (GTK_WIDGET(dialog));
122 static void
123 subversion_remove_dialog(GtkAction* action, Subversion* plugin, gchar *filename)
125 GladeXML* gxml;
126 GtkWidget* dialog;
127 GtkWidget* remove_path_entry;
128 GtkWidget *remove_path_browse_button;
129 SubversionData* data;
131 gxml = glade_xml_new(GLADE_FILE, "subversion_remove", NULL);
133 dialog = glade_xml_get_widget(gxml, "subversion_remove");
134 remove_path_entry = glade_xml_get_widget(gxml, "remove_path_entry");
135 remove_path_browse_button = glade_xml_get_widget (gxml,
136 "remove_path_browse_button");
137 if (remove_path_entry)
138 gtk_entry_set_text(GTK_ENTRY(remove_path_entry), filename);
140 data = subversion_data_new(plugin, gxml);
141 g_signal_connect(G_OBJECT(dialog), "response",
142 G_CALLBACK(on_subversion_remove_response), data);
144 g_signal_connect (G_OBJECT (remove_path_browse_button), "clicked",
145 G_CALLBACK (on_remove_path_browse_button_clicked),
146 data);
148 gtk_widget_show(dialog);
152 void
153 on_menu_subversion_remove (GtkAction *action, Subversion *plugin)
155 subversion_remove_dialog (action, plugin, plugin->current_editor_filename);
159 void
160 on_fm_subversion_remove (GtkAction *action, Subversion *plugin)
162 subversion_remove_dialog (action, plugin, plugin->fm_current_filename);