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); }
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); }
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)); }
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); }