static void
create_patch_series_dialog (Git *plugin)
{
	GtkBuilder *bxml;
	gchar *objects[] = {"patch_series_dialog", "branch_combo_model", NULL};
	GError *error;
	GtkWidget *dialog;
	GtkWidget *patch_series_origin_check;
	GtkWidget *patch_series_branch_combo;
	GtkListStore *branch_combo_model;
	GitUIData *data;
	GitBranchListCommand *list_command;
	
	bxml = gtk_builder_new ();
	error = NULL;

	if (!gtk_builder_add_objects_from_file (bxml, BUILDER_FILE, objects, 
	                                        &error))
	{
		g_warning ("Couldn't load builder file: %s", error->message);
		g_error_free (error);
	}
	
	dialog = GTK_WIDGET (gtk_builder_get_object (bxml, "patch_series_dialog"));
	patch_series_origin_check = GTK_WIDGET (gtk_builder_get_object (bxml, 
	                                              				    "patch_series_origin_check"));
	patch_series_branch_combo = GTK_WIDGET (gtk_builder_get_object (bxml, 
																    "patch_series_branch_combo"));
	branch_combo_model = GTK_LIST_STORE (gtk_builder_get_object (bxml,
	                                                             "branch_combo_model"));
	
	data = git_ui_data_new (plugin, bxml);
	
	list_command = git_branch_list_command_new (plugin->project_root_directory,
												GIT_BRANCH_TYPE_ALL);
	
	g_signal_connect (G_OBJECT (list_command), "data-arrived", 
					  G_CALLBACK (on_git_list_branch_combo_command_data_arrived), 
					  branch_combo_model);
	
	g_signal_connect (G_OBJECT (list_command), "command-finished", 
					  G_CALLBACK (on_git_list_branch_combo_command_finished), 
					  patch_series_branch_combo);
	
	anjuta_command_start (ANJUTA_COMMAND (list_command));
	
	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);
}
Пример #2
0
AnjutaDockPane *
git_push_pane_new (Git *plugin)
{
    GitPushPane *self;
    GtkListStore *push_branch_model;
    GtkListStore *push_tag_model;
    GitBranchListCommand *branch_list_command;
    GitTagListCommand *tag_list_command;

    self = g_object_new (GIT_TYPE_PUSH_PANE, "plugin", plugin, NULL);
    push_branch_model = GTK_LIST_STORE (gtk_builder_get_object (self->priv->builder,
                                        "push_branch_model"));
    push_tag_model = GTK_LIST_STORE (gtk_builder_get_object (self->priv->builder,
                                     "push_tag_model"));
    branch_list_command = git_branch_list_command_new (plugin->project_root_directory,
                          GIT_BRANCH_TYPE_LOCAL);
    tag_list_command = git_tag_list_command_new (plugin->project_root_directory);

    g_signal_connect (G_OBJECT (plugin->remotes_pane), "single-selection-changed",
                      G_CALLBACK (on_remote_selected),
                      self->priv->repository_selector);

    g_signal_connect (G_OBJECT (branch_list_command), "data-arrived",
                      G_CALLBACK (on_branch_list_command_data_arrived),
                      push_branch_model);

    g_signal_connect (G_OBJECT (tag_list_command), "data-arrived",
                      G_CALLBACK (on_tag_list_command_data_arrived),
                      push_tag_model);

    g_signal_connect (G_OBJECT (branch_list_command), "command-finished",
                      G_CALLBACK (g_object_unref),
                      NULL);

    g_signal_connect (G_OBJECT (tag_list_command), "command-finished",
                      G_CALLBACK (g_object_unref),
                      NULL);

    /* Set the contents of the selected remote label */
    on_remote_selected (plugin->remotes_pane,
                        GIT_REPOSITORY_SELECTOR (self->priv->repository_selector));

    anjuta_command_start (ANJUTA_COMMAND (branch_list_command));
    anjuta_command_start (ANJUTA_COMMAND (tag_list_command));

    return ANJUTA_DOCK_PANE (self);
}
Пример #3
0
static void
on_ref_command_finished (AnjutaCommand *command, guint return_code,
                         GitLogPane *self)
{
	Git *plugin;

	plugin = ANJUTA_PLUGIN_GIT (anjuta_dock_pane_get_plugin (ANJUTA_DOCK_PANE (self)));

	if (self->priv->refs)
		g_hash_table_unref (self->priv->refs);

	self->priv->refs = git_ref_command_get_refs (GIT_REF_COMMAND (command));

	/* Unref the previous command if it's still running. */
	if (self->priv->branch_list_command)
		g_object_unref (self->priv->branch_list_command);
	
	/* Refresh the branch display after the refs get updated */
	self->priv->branch_list_command =
		git_branch_list_command_new (plugin->project_root_directory,
		                             GIT_BRANCH_TYPE_ALL);

	g_signal_connect_object (G_OBJECT (self->priv->branch_list_command), "command-started",
	                         G_CALLBACK (on_branch_list_command_started),
	                         self, 0);

	g_signal_connect_object (G_OBJECT (self->priv->branch_list_command), "command-finished",
	                         G_CALLBACK (on_branch_list_command_finished),
	                         self, 0);

	g_signal_connect_object (G_OBJECT (self->priv->branch_list_command), "data-arrived",
	                         G_CALLBACK (on_branch_list_command_data_arrived),
	                         self, 0);

	anjuta_command_start (ANJUTA_COMMAND (self->priv->branch_list_command));
}
Пример #4
0
static void
create_branch_dialog (Git *plugin, const gchar *revision)
{
	GtkBuilder *bxml;
	gchar *objects[] = {"create_branch_dialog", "branch_combo_model", NULL};
	GError *error;
	GtkWidget *dialog;
	GtkWidget *branch_revision_radio;
	GtkWidget *branch_revision_entry;
	GtkWidget *branch_branch_radio;
	GtkWidget *branch_branch_combo;
	GtkListStore *branch_combo_model;
	GitUIData *data;
	GitBranchListCommand *branch_list_command;
	
	bxml = gtk_builder_new ();
	error = NULL;

	if (!gtk_builder_add_objects_from_file (bxml, BUILDER_FILE, objects, 
	                                        &error))
	{
		g_warning ("Couldn't load builder file: %s", error->message);
		g_error_free (error);
	}
	
	dialog = GTK_WIDGET (gtk_builder_get_object (bxml, "create_branch_dialog"));
	branch_revision_radio = GTK_WIDGET (gtk_builder_get_object (bxml, 
															    "branch_revision_radio"));
	branch_revision_entry = GTK_WIDGET (gtk_builder_get_object (bxml, 
																"branch_revision_entry"));
	branch_branch_radio = GTK_WIDGET (gtk_builder_get_object (bxml,
															  "branch_branch_radio"));
	branch_branch_combo = GTK_WIDGET (gtk_builder_get_object (bxml,
															  "branch_branch_combo"));
	branch_combo_model = GTK_LIST_STORE (gtk_builder_get_object (bxml,
																 "branch_combo_model"));
	data = git_ui_data_new (plugin, bxml);

	branch_list_command = git_branch_list_command_new (plugin->project_root_directory,
													   GIT_BRANCH_TYPE_ALL);

	g_signal_connect (G_OBJECT (branch_list_command), "data-arrived",
					  G_CALLBACK (on_git_list_branch_combo_command_data_arrived),
					  branch_combo_model);

	g_signal_connect (G_OBJECT (branch_list_command), "command-finished",
					  G_CALLBACK (on_git_list_branch_combo_command_finished),
					  branch_branch_combo);

	anjuta_command_start (ANJUTA_COMMAND (branch_list_command));
	
	g_signal_connect (G_OBJECT (dialog), "response", 
					  G_CALLBACK (on_create_branch_dialog_response), 
					  data);
	
	g_signal_connect (G_OBJECT (branch_revision_radio), "toggled",
					  G_CALLBACK (on_branch_revision_radio_toggled),
					  branch_revision_entry);

	g_signal_connect (G_OBJECT (branch_branch_radio), "toggled",
					  G_CALLBACK (on_branch_revision_radio_toggled),
					  branch_branch_combo);
	
	if (revision)
	{
		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (branch_revision_radio), 
									  TRUE);
		gtk_entry_set_text (GTK_ENTRY (branch_revision_entry), revision);
	}
	
	gtk_widget_show_all (dialog);
}