1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2 /*
3 * git-shell-test
4 * Copyright (C) James Liggett 2010 <jrliggett@cox.net>
5 *
6 * git-shell-test is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * git-shell-test is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 * See the GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #include "git-unstage-pane.h"
21
22 void
on_unstage_button_clicked(GtkAction * action,Git * plugin)23 on_unstage_button_clicked (GtkAction *action, Git *plugin)
24 {
25 GList *paths;
26 GitResetFilesCommand *reset_command;
27
28 paths = git_status_pane_get_checked_commit_items (GIT_STATUS_PANE (plugin->status_pane),
29 ANJUTA_VCS_STATUS_ALL);
30
31 if (paths)
32 {
33 reset_command = git_reset_files_command_new (plugin->project_root_directory,
34 GIT_RESET_FILES_HEAD,
35 paths);
36
37 anjuta_util_glist_strings_free (paths);
38
39 g_signal_connect (G_OBJECT (reset_command), "command-finished",
40 G_CALLBACK (git_pane_report_errors),
41 plugin);
42
43
44 g_signal_connect (G_OBJECT (reset_command), "command-finished",
45 G_CALLBACK (g_object_unref),
46 NULL);
47
48 anjuta_command_start (ANJUTA_COMMAND (reset_command));
49 }
50 else
51 anjuta_util_dialog_error (NULL, _("No staged files selected."));
52 }
53
54 void
on_git_status_unstage_activated(GtkAction * action,Git * plugin)55 on_git_status_unstage_activated (GtkAction *action, Git *plugin)
56 {
57 gchar *path;
58 GList *paths;
59 GitResetFilesCommand *reset_command;
60
61 path = git_status_pane_get_selected_commit_path (GIT_STATUS_PANE (plugin->status_pane));
62
63 if (path)
64 {
65 paths = g_list_append (NULL, path);
66
67 reset_command = git_reset_files_command_new (plugin->project_root_directory,
68 GIT_RESET_FILES_HEAD,
69 paths);
70
71 g_signal_connect (G_OBJECT (reset_command), "command-finished",
72 G_CALLBACK (git_pane_report_errors),
73 plugin);
74
75 g_signal_connect (G_OBJECT (reset_command), "command-finished",
76 G_CALLBACK (g_object_unref),
77 NULL);
78
79 anjuta_util_glist_strings_free (paths);
80
81 anjuta_command_start (ANJUTA_COMMAND (reset_command));
82 }
83 }
84