[anjuta] Add option to use the origin branch to Git Push, Pull, Rebase, and Create Patch Series commands.
- From: James Liggett <jrliggett src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjuta] Add option to use the origin branch to Git Push, Pull, Rebase, and Create Patch Series commands.
- Date: Mon, 11 May 2009 03:14:39 -0400 (EDT)
commit ebfe4c48026f8361dfeb9b76bd88ad6a48b96517
Author: James Liggett <jrliggett cox net>
Date: Sun May 10 19:41:00 2009 -0700
Add option to use the origin branch to Git Push, Pull, Rebase, and Create Patch Series commands.
Since origin is a commonly used branch for these operations, add a checkbox for it to these dialogs.
It is on by default in Rebase and Create Patch Series.
---
plugins/git/anjuta-git.glade | 106 ++++++++++++++++++++++++--
plugins/git/git-create-patch-series-dialog.c | 20 +++++-
plugins/git/git-pull-dialog.c | 16 ++++-
plugins/git/git-push-dialog.c | 81 ++++++++++++--------
plugins/git/git-rebase-dialog.c | 20 ++++-
plugins/git/git-ui-utils.c | 6 ++
plugins/git/git-ui-utils.h | 1 +
7 files changed, 204 insertions(+), 46 deletions(-)
diff --git a/plugins/git/anjuta-git.glade b/plugins/git/anjuta-git.glade
index cd61525..e76623e 100644
--- a/plugins/git/anjuta-git.glade
+++ b/plugins/git/anjuta-git.glade
@@ -2952,8 +2952,31 @@
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
- <widget class="GtkComboBox" id="rebase_branch_combo">
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <widget class="GtkComboBox" id="rebase_branch_combo">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="rebase_origin_check">
+ <property name="label" translatable="yes">Repository origin</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
@@ -3635,8 +3658,31 @@
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
- <widget class="GtkComboBox" id="patch_series_branch_combo">
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <widget class="GtkComboBox" id="patch_series_branch_combo">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="patch_series_origin_check">
+ <property name="label" translatable="yes">Repository origin</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
@@ -3816,10 +3862,32 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property>
<child>
- <widget class="GtkEntry" id="pull_url_entry">
+ <widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="width_chars">60</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <widget class="GtkEntry" id="pull_url_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">60</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="pull_origin_check">
+ <property name="label" translatable="yes">Repositiory origin</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
@@ -4037,10 +4105,32 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property>
<child>
- <widget class="GtkEntry" id="push_url_entry">
+ <widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="width_chars">60</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <widget class="GtkEntry" id="push_url_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">60</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="push_origin_check">
+ <property name="label" translatable="yes">Repository origin</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
diff --git a/plugins/git/git-create-patch-series-dialog.c b/plugins/git/git-create-patch-series-dialog.c
index b2101c8..441b969 100644
--- a/plugins/git/git-create-patch-series-dialog.c
+++ b/plugins/git/git-create-patch-series-dialog.c
@@ -28,6 +28,7 @@ static void
on_create_patch_series_dialog_response (GtkDialog *dialog, gint response_id,
GitBranchComboData *data)
{
+ GtkWidget *patch_series_origin_check;
GtkWidget *patch_series_branch_combo;
GtkWidget *patch_series_file_chooser_button;
GtkWidget *patch_series_signoff_check;
@@ -38,6 +39,8 @@ on_create_patch_series_dialog_response (GtkDialog *dialog, gint response_id,
if (response_id == GTK_RESPONSE_OK)
{
+ patch_series_origin_check = glade_xml_get_widget (data->gxml,
+ "patch_series_origin_check");
patch_series_branch_combo = glade_xml_get_widget (data->gxml,
"patch_series_branch_combo");
patch_series_file_chooser_button = glade_xml_get_widget (data->gxml,
@@ -45,9 +48,15 @@ on_create_patch_series_dialog_response (GtkDialog *dialog, gint response_id,
patch_series_signoff_check = glade_xml_get_widget (data->gxml,
"patch_series_signoff_check");
- gtk_combo_box_get_active_iter (GTK_COMBO_BOX (patch_series_branch_combo),
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (patch_series_origin_check)))
+ branch = g_strdup ("origin");
+ else
+ {
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (patch_series_branch_combo),
&iter);
- branch = git_branch_combo_model_get_branch (data->model, &iter);
+ branch = git_branch_combo_model_get_branch (data->model, &iter);
+ }
+
output_directory = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (patch_series_file_chooser_button));
format_patch_command = git_format_patch_command_new (data->plugin->project_root_directory,
@@ -80,6 +89,7 @@ create_patch_series_dialog (Git *plugin)
{
GladeXML *gxml;
GtkWidget *dialog;
+ GtkWidget *patch_series_origin_check;
GtkWidget *patch_series_branch_combo;
GtkListStore *branch_list_store;
GitBranchComboData *data;
@@ -88,6 +98,8 @@ create_patch_series_dialog (Git *plugin)
gxml = glade_xml_new (GLADE_FILE, "patch_series_dialog", NULL);
dialog = glade_xml_get_widget (gxml, "patch_series_dialog");
+ patch_series_origin_check = glade_xml_get_widget (gxml,
+ "patch_series_origin_check");
patch_series_branch_combo = glade_xml_get_widget (gxml,
"patch_series_branch_combo");
branch_list_store = git_branch_combo_model_new ();
@@ -116,6 +128,10 @@ create_patch_series_dialog (Git *plugin)
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (on_create_patch_series_dialog_response),
data);
+
+ g_signal_connect (G_OBJECT (patch_series_origin_check), "toggled",
+ G_CALLBACK (on_git_origin_check_toggled),
+ patch_series_branch_combo);
gtk_widget_show_all (dialog);
}
diff --git a/plugins/git/git-pull-dialog.c b/plugins/git/git-pull-dialog.c
index 0962a7c..1b586b9 100644
--- a/plugins/git/git-pull-dialog.c
+++ b/plugins/git/git-pull-dialog.c
@@ -45,6 +45,7 @@ static void
on_pull_dialog_response (GtkDialog *dialog, gint response_id,
GitUIData *data)
{
+ GtkWidget *pull_origin_check;
GtkWidget *pull_url_entry;
GtkWidget *pull_no_commit_check;
GtkWidget *pull_squash_check;
@@ -57,6 +58,8 @@ on_pull_dialog_response (GtkDialog *dialog, gint response_id,
if (response_id == GTK_RESPONSE_OK)
{
+ pull_origin_check = glade_xml_get_widget (data->gxml,
+ "pull_origin_check");
pull_url_entry = glade_xml_get_widget (data->gxml, "pull_url_entry");
pull_no_commit_check = glade_xml_get_widget (data->gxml,
"pull_no_commit_check");
@@ -71,7 +74,10 @@ on_pull_dialog_response (GtkDialog *dialog, gint response_id,
pull_no_follow_tags_check = glade_xml_get_widget (data->gxml,
"pull_no_follow_tags_check");
- url = gtk_editable_get_chars (GTK_EDITABLE (pull_url_entry), 0, -1);
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pull_origin_check)))
+ url = g_strdup ("origin");
+ else
+ url = gtk_editable_get_chars (GTK_EDITABLE (pull_url_entry), 0, -1);
if (!git_check_input (GTK_WIDGET (dialog), pull_url_entry, url,
_("Please enter the URL of the repository to pull"
@@ -116,15 +122,23 @@ pull_dialog (Git *plugin)
{
GladeXML *gxml;
GtkWidget *dialog;
+ GtkWidget *pull_origin_check;
+ GtkWidget *pull_url_entry;
GitUIData *data;
gxml = glade_xml_new (GLADE_FILE, "pull_dialog", NULL);
dialog = glade_xml_get_widget (gxml, "pull_dialog");
+ pull_origin_check = glade_xml_get_widget (gxml, "pull_origin_check");
+ pull_url_entry = glade_xml_get_widget (gxml, "pull_url_entry");
data = git_ui_data_new (plugin, gxml);
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (on_pull_dialog_response),
data);
+
+ g_signal_connect (G_OBJECT (pull_origin_check), "toggled",
+ G_CALLBACK (on_git_origin_check_toggled),
+ pull_url_entry);
gtk_widget_show_all (dialog);
}
diff --git a/plugins/git/git-push-dialog.c b/plugins/git/git-push-dialog.c
index 676ac34..e7b324d 100644
--- a/plugins/git/git-push-dialog.c
+++ b/plugins/git/git-push-dialog.c
@@ -45,6 +45,7 @@ static void
on_push_dialog_response (GtkDialog *dialog, gint response_id,
GitUIData *data)
{
+ GtkWidget *push_origin_check;
GtkWidget *push_url_entry;
GtkWidget *push_all_check;
GtkWidget *push_tags_check;
@@ -54,42 +55,50 @@ on_push_dialog_response (GtkDialog *dialog, gint response_id,
if (response_id == GTK_RESPONSE_OK)
{
+ push_origin_check = glade_xml_get_widget (data->gxml,
+ "push_origin_check");
push_url_entry = glade_xml_get_widget (data->gxml, "push_url_entry");
push_all_check = glade_xml_get_widget (data->gxml, "push_all_check");
push_tags_check = glade_xml_get_widget (data->gxml, "push_tags_check");
- url = gtk_editable_get_chars (GTK_EDITABLE (push_url_entry), 0, -1);
-
- if (git_check_input (GTK_WIDGET (dialog), push_url_entry, url,
- _("Please enter the URL of the repository to push to.")))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (push_origin_check)))
+ url = g_strdup ("origin");
+ else
{
- push_command = git_push_command_new (data->plugin->project_root_directory,
- url,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (push_all_check)),
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (push_tags_check)));
- progress_data = git_progress_data_new (data->plugin, _("Git: Pushing..."));
-
- g_free (url);
-
- git_create_message_view (data->plugin);
-
-
- g_signal_connect (G_OBJECT (push_command), "data-arrived",
- G_CALLBACK (on_git_command_info_arrived),
- data->plugin);
-
- g_signal_connect (G_OBJECT (push_command), "progress",
- G_CALLBACK (on_git_command_progress),
- progress_data);
-
- g_signal_connect (G_OBJECT (push_command), "command-finished",
- G_CALLBACK (on_push_command_finished),
- data->plugin);
-
- anjuta_command_start (ANJUTA_COMMAND (push_command));
+ url = gtk_editable_get_chars (GTK_EDITABLE (push_url_entry), 0, -1);
}
- else
+
+ if (!git_check_input (GTK_WIDGET (dialog), push_url_entry, url,
+ _("Please enter the URL of the repository to push to.")))
+ {
+ g_free (url);
return;
+ }
+
+ push_command = git_push_command_new (data->plugin->project_root_directory,
+ url,
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (push_all_check)),
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (push_tags_check)));
+ progress_data = git_progress_data_new (data->plugin, _("Git: Pushing..."));
+
+ g_free (url);
+
+ git_create_message_view (data->plugin);
+
+
+ g_signal_connect (G_OBJECT (push_command), "data-arrived",
+ G_CALLBACK (on_git_command_info_arrived),
+ data->plugin);
+
+ g_signal_connect (G_OBJECT (push_command), "progress",
+ G_CALLBACK (on_git_command_progress),
+ progress_data);
+
+ g_signal_connect (G_OBJECT (push_command), "command-finished",
+ G_CALLBACK (on_push_command_finished),
+ data->plugin);
+
+ anjuta_command_start (ANJUTA_COMMAND (push_command));
}
gtk_widget_destroy (GTK_WIDGET (dialog));
@@ -101,17 +110,25 @@ push_dialog (Git *plugin)
{
GladeXML *gxml;
GtkWidget *dialog;
+ GtkWidget *push_origin_check;
+ GtkWidget *push_url_entry;
GitUIData *data;
gxml = glade_xml_new (GLADE_FILE, "push_dialog", NULL);
dialog = glade_xml_get_widget (gxml, "push_dialog");
+ push_origin_check = glade_xml_get_widget (gxml, "push_origin_check");
+ push_url_entry = glade_xml_get_widget (gxml, "push_url_entry");
data = git_ui_data_new (plugin, gxml);
- g_signal_connect(G_OBJECT (dialog), "response",
- G_CALLBACK (on_push_dialog_response),
- data);
+ g_signal_connect (G_OBJECT (dialog), "response",
+ G_CALLBACK (on_push_dialog_response),
+ data);
+
+ g_signal_connect (G_OBJECT (push_origin_check), "toggled",
+ G_CALLBACK (on_git_origin_check_toggled),
+ push_url_entry);
gtk_widget_show_all (dialog);
}
diff --git a/plugins/git/git-rebase-dialog.c b/plugins/git/git-rebase-dialog.c
index c7aa012..4f775a9 100644
--- a/plugins/git/git-rebase-dialog.c
+++ b/plugins/git/git-rebase-dialog.c
@@ -29,6 +29,7 @@ on_rebase_dialog_response (GtkDialog *dialog, gint response_id,
GitBranchComboData *data)
{
GtkWidget *rebase_branch_combo;
+ GtkWidget *rebase_origin_check;
gchar *branch;
GtkTreeIter iter;
GitRebaseStartCommand *rebase_command;
@@ -38,11 +39,18 @@ on_rebase_dialog_response (GtkDialog *dialog, gint response_id,
{
rebase_branch_combo = glade_xml_get_widget (data->gxml,
"rebase_branch_combo");
+ rebase_origin_check = glade_xml_get_widget (data->gxml,
+ "rebase_origin_check");
- gtk_combo_box_get_active_iter (GTK_COMBO_BOX (rebase_branch_combo),
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rebase_origin_check)))
+ branch = g_strdup ("origin");
+ else
+ {
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (rebase_branch_combo),
&iter);
- branch = git_branch_combo_model_get_branch (data->model, &iter);
-
+ branch = git_branch_combo_model_get_branch (data->model, &iter);
+ }
+
rebase_command = git_rebase_start_command_new (data->plugin->project_root_directory,
branch);
progress_data = git_progress_data_new (data->plugin,
@@ -82,6 +90,7 @@ rebase_dialog (Git *plugin)
GladeXML *gxml;
GtkWidget *dialog;
GtkWidget *rebase_branch_combo;
+ GtkWidget *rebase_origin_check;
GtkListStore *branch_list_store;
GitBranchComboData *data;
GitBranchListCommand *list_command;
@@ -90,6 +99,7 @@ rebase_dialog (Git *plugin)
dialog = glade_xml_get_widget (gxml, "rebase_dialog");
rebase_branch_combo = glade_xml_get_widget (gxml, "rebase_branch_combo");
+ rebase_origin_check = glade_xml_get_widget (gxml, "rebase_origin_check");
branch_list_store = git_branch_combo_model_new ();
gtk_combo_box_set_model (GTK_COMBO_BOX (rebase_branch_combo),
@@ -116,6 +126,10 @@ rebase_dialog (Git *plugin)
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (on_rebase_dialog_response),
data);
+
+ g_signal_connect (G_OBJECT (rebase_origin_check), "toggled",
+ G_CALLBACK (on_git_origin_check_toggled),
+ rebase_branch_combo);
gtk_widget_show_all (dialog);
}
diff --git a/plugins/git/git-ui-utils.c b/plugins/git/git-ui-utils.c
index 81f79b1..bdd103a 100644
--- a/plugins/git/git-ui-utils.c
+++ b/plugins/git/git-ui-utils.c
@@ -385,6 +385,12 @@ git_clear_all_status_selections (GtkButton *clear_button,
anjuta_vcs_status_tree_view_unselect_all (tree_view);
}
+void
+on_git_origin_check_toggled (GtkToggleButton *button, GtkWidget *widget)
+{
+ gtk_widget_set_sensitive (widget, !gtk_toggle_button_get_active (button));
+}
+
void
git_init_whole_project (Git *plugin, GtkWidget* project, gboolean active)
{
diff --git a/plugins/git/git-ui-utils.h b/plugins/git/git-ui-utils.h
index 82ab2d5..ed8e4cc 100644
--- a/plugins/git/git-ui-utils.h
+++ b/plugins/git/git-ui-utils.h
@@ -81,6 +81,7 @@ void git_select_all_status_items (GtkButton *select_all_button,
AnjutaVcsStatusTreeView *tree_view);
void git_clear_all_status_selections (GtkButton *clear_button,
AnjutaVcsStatusTreeView *tree_view);
+void on_git_origin_check_toggled (GtkToggleButton *button, GtkWidget *widget);
void git_init_whole_project (Git *plugin, GtkWidget* project,
gboolean active);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]