static void git_repository_selector_finalize (GObject *object) { GitRepositorySelector *self; self = GIT_REPOSITORY_SELECTOR (object); g_free (self->priv->remote); g_free (self->priv); G_OBJECT_CLASS (git_repository_selector_parent_class)->finalize (object); }
static void git_repository_selector_grab_focus (GtkWidget *widget) { GitRepositorySelector *self; self = GIT_REPOSITORY_SELECTOR (widget); GTK_WIDGET_CLASS (git_repository_selector_parent_class)->grab_focus (widget); /* Only the URL entry can grab focus */ gtk_notebook_set_current_page (GTK_NOTEBOOK (self->priv->notebook), GIT_REPOSITORY_SELECTOR_URL); gtk_widget_grab_focus (self->priv->url_entry); }
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_ok_action_activated (GtkAction *action, GitPushPane *self) { Git *plugin; GtkTreeModel *push_branch_model; GtkTreeModel *push_tag_model; GtkToggleButton *push_all_tags_check; GtkToggleButton *push_all_check; GtkToggleAction *force_action; GList *selected_items; gboolean push_all_tags; gboolean push_all; gchar *repository; GitPushCommand *push_command; plugin = ANJUTA_PLUGIN_GIT (anjuta_dock_pane_get_plugin (ANJUTA_DOCK_PANE (self))); push_branch_model = GTK_TREE_MODEL (gtk_builder_get_object (self->priv->builder, "push_branch_model")); push_tag_model = GTK_TREE_MODEL (gtk_builder_get_object (self->priv->builder, "push_tag_model")); push_all_tags_check = GTK_TOGGLE_BUTTON (gtk_builder_get_object (self->priv->builder, "push_all_tags_check")); push_all_check = GTK_TOGGLE_BUTTON (gtk_builder_get_object (self->priv->builder, "push_all_check")); force_action = GTK_TOGGLE_ACTION (gtk_builder_get_object (self->priv->builder, "force_action")); selected_items = NULL; push_all_tags = gtk_toggle_button_get_active (push_all_tags_check); push_all = gtk_toggle_button_get_active (push_all_check); /* Check that the user has given a valid repository. In this case we only * care about checking if the selector widget is in URL mode, because even * if a remote isn't selected, it will default to origin, so we should * always get something when the selector is in Remote mode. */ repository = git_repository_selector_get_repository (GIT_REPOSITORY_SELECTOR (self->priv->repository_selector)); if (!git_pane_check_input (GTK_WIDGET (ANJUTA_PLUGIN (plugin)->shell), self->priv->repository_selector, repository, _("Please enter a URL."))) { g_free (repository); return; } if (!push_all) { /* Get selected branches */ gtk_tree_model_foreach (push_branch_model, (GtkTreeModelForeachFunc) get_selected_items, &selected_items); } /* Don't bother getting selected tags if Push all tags is checked or if * Push all branches and tags is checked */ if (!push_all && !push_all_tags) { /* Get selected tags */ gtk_tree_model_foreach (push_tag_model, (GtkTreeModelForeachFunc) get_selected_items, &selected_items); } push_command = git_push_command_new (plugin->project_root_directory, repository, selected_items, push_all, push_all_tags, gtk_toggle_action_get_active (force_action)); g_free (repository); anjuta_util_glist_strings_free (selected_items); git_pane_create_message_view (plugin); g_signal_connect (G_OBJECT (push_command), "data-arrived", G_CALLBACK (git_pane_on_command_info_arrived), plugin); g_signal_connect (G_OBJECT (push_command), "command-finished", G_CALLBACK (git_pane_report_errors), plugin); g_signal_connect (G_OBJECT (push_command), "command-finished", G_CALLBACK (git_plugin_status_changed_emit), plugin); g_signal_connect (G_OBJECT (push_command), "command-finished", G_CALLBACK (g_object_unref), NULL); anjuta_command_start (ANJUTA_COMMAND (push_command)); git_pane_remove_from_dock (GIT_PANE (self)); }