[gnome-builder] plugins/vcsui: remove branch/tags nodes from tree addin



commit d0a86d06de28f77e798bfb1f63bbffbfa8bf1784
Author: Christian Hergert <chergert redhat com>
Date:   Tue Sep 13 17:02:48 2022 -0700

    plugins/vcsui: remove branch/tags nodes from tree addin
    
    We will eventually be using other UI for this (via the bottom corner of
    the workspace window) and so we don't need it in the project-tree
    directly).
    
    We do still want the code that does the status updates for the files
    within the project-tree though.

 src/plugins/vcsui/gbp-vcsui-tree-addin.c | 331 +------------------------------
 1 file changed, 4 insertions(+), 327 deletions(-)
---
diff --git a/src/plugins/vcsui/gbp-vcsui-tree-addin.c b/src/plugins/vcsui/gbp-vcsui-tree-addin.c
index 70c833698..6c8c2ffb6 100644
--- a/src/plugins/vcsui/gbp-vcsui-tree-addin.c
+++ b/src/plugins/vcsui/gbp-vcsui-tree-addin.c
@@ -23,11 +23,10 @@
 #include "config.h"
 
 #include <glib/gi18n.h>
+
 #include <libpeas/peas.h>
-#include <libide-foundry.h>
+
 #include <libide-gui.h>
-#include <libide-plugins.h>
-#include <libide-threading.h>
 #include <libide-tree.h>
 #include <libide-vcs.h>
 
@@ -37,124 +36,21 @@ struct _GbpVcsuiTreeAddin
 {
   GObject        parent_instance;
 
-  GActionMap    *actions;
-
   IdeTree       *tree;
   IdeTreeModel  *model;
   IdeVcs        *vcs;
   IdeVcsMonitor *monitor;
 };
 
-static void
-gbp_vcsui_tree_addin_switch_branch_cb (GObject      *object,
-                                       GAsyncResult *result,
-                                       gpointer      user_data)
-{
-  IdeVcs *vcs = (IdeVcs *)object;
-  g_autoptr(GError) error = NULL;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (IDE_IS_VCS (vcs));
-  g_assert (G_IS_ASYNC_RESULT (result));
-
-  if (!ide_vcs_switch_branch_finish (vcs, result, &error))
-    g_warning ("%s", error->message);
-
-  /* TODO: Force reload of files node */
-}
-
-static void
-gbp_vcsui_tree_addin_switch_branch (GSimpleAction *action,
-                                    GVariant      *param,
-                                    gpointer       user_data)
-{
-  GbpVcsuiTreeAddin *self = user_data;
-  g_autoptr(IdeContext) context = NULL;
-  IdeBuildManager *build_manager;
-  IdeVcsBranch *branch;
-  IdeTreeNode *node;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (GBP_IS_VCSUI_TREE_ADDIN (self));
-
-  if (self->vcs == NULL ||
-      !(node = ide_tree_get_selected_node (self->tree)) ||
-      !ide_tree_node_holds (node, IDE_TYPE_VCS_BRANCH))
-    return;
-
-  branch = ide_tree_node_get_item (node);
-
-  context = ide_object_ref_context (IDE_OBJECT (self->vcs));
-
-  /* Cancel any in-flight builds */
-  build_manager = ide_build_manager_from_context (context);
-  ide_build_manager_cancel (build_manager);
-
-  ide_vcs_switch_branch_async (self->vcs,
-                               branch,
-                               NULL,
-                               gbp_vcsui_tree_addin_switch_branch_cb,
-                               g_object_ref (self));
-}
-
-static void
-gbp_vcsui_tree_addin_push_branch_cb (GObject      *object,
-                                     GAsyncResult *result,
-                                     gpointer      user_data)
-{
-  IdeVcs *vcs = (IdeVcs *)object;
-  g_autoptr(GError) error = NULL;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (IDE_IS_VCS (vcs));
-  g_assert (G_IS_ASYNC_RESULT (result));
-
-  if (!ide_vcs_push_branch_finish (vcs, result, &error))
-    ide_object_warning (vcs, "%s", error->message);
-}
-
-static void
-gbp_vcsui_tree_addin_push_branch (GSimpleAction *action,
-                                  GVariant      *param,
-                                  gpointer       user_data)
-{
-  GbpVcsuiTreeAddin *self = user_data;
-  g_autoptr(IdeContext) context = NULL;
-  IdeVcsBranch *branch;
-  IdeTreeNode *node;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (GBP_IS_VCSUI_TREE_ADDIN (self));
-
-  if (self->vcs == NULL ||
-      !(node = ide_tree_get_selected_node (self->tree)) ||
-      !ide_tree_node_holds (node, IDE_TYPE_VCS_BRANCH))
-    return;
-
-  branch = ide_tree_node_get_item (node);
-  context = ide_object_ref_context (IDE_OBJECT (self->vcs));
-
-  ide_vcs_push_branch_async (self->vcs,
-                             branch,
-                             NULL,
-                             gbp_vcsui_tree_addin_push_branch_cb,
-                             g_object_ref (self));
-}
-
 static void
 gbp_vcsui_tree_addin_load (IdeTreeAddin *addin,
                            IdeTree      *tree,
                            IdeTreeModel *model)
 {
   GbpVcsuiTreeAddin *self = (GbpVcsuiTreeAddin *)addin;
-  g_autoptr(GSimpleActionGroup) group = NULL;
-  IdeWorkbench *workbench;
   IdeVcsMonitor *monitor;
+  IdeWorkbench *workbench;
   IdeVcs *vcs;
-  static const GActionEntry actions[] = {
-    { "switch-branch", gbp_vcsui_tree_addin_switch_branch },
-    { "push-branch", gbp_vcsui_tree_addin_push_branch },
-  };
 
   g_assert (IDE_IS_MAIN_THREAD ());
   g_assert (GBP_IS_VCSUI_TREE_ADDIN (self));
@@ -164,16 +60,6 @@ gbp_vcsui_tree_addin_load (IdeTreeAddin *addin,
   self->model = model;
   self->tree = tree;
 
-  group = g_simple_action_group_new ();
-  g_action_map_add_action_entries (G_ACTION_MAP (group),
-                                   actions,
-                                   G_N_ELEMENTS (actions),
-                                   self);
-  gtk_widget_insert_action_group (GTK_WIDGET (tree),
-                                  "vcsui",
-                                  G_ACTION_GROUP (group));
-  self->actions = g_object_ref (G_ACTION_MAP (group));
-
   if ((workbench = ide_widget_get_workbench (GTK_WIDGET (tree))) &&
       (vcs = ide_workbench_get_vcs (workbench)) &&
       (monitor = ide_workbench_get_vcs_monitor (workbench)))
@@ -200,37 +86,13 @@ gbp_vcsui_tree_addin_unload (IdeTreeAddin *addin,
   g_assert (IDE_IS_TREE (tree));
   g_assert (IDE_IS_TREE_MODEL (model));
 
-  gtk_widget_insert_action_group (GTK_WIDGET (tree), "vcsui", NULL);
-
-  g_clear_object (&self->actions);
   g_clear_object (&self->monitor);
   g_clear_object (&self->vcs);
+
   self->model = NULL;
   self->tree = NULL;
 }
 
-static void
-gbp_vcsui_tree_addin_selection_changed (IdeTreeAddin *addin,
-                                        IdeTreeNode  *node)
-{
-  GbpVcsuiTreeAddin *self = (GbpVcsuiTreeAddin *)addin;
-  gboolean is_branch = FALSE;
-  GAction *action;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (GBP_IS_VCSUI_TREE_ADDIN (self));
-  g_assert (!node || IDE_IS_TREE_NODE (node));
-
-  if (node != NULL)
-    is_branch = ide_tree_node_holds (node, IDE_TYPE_VCS_BRANCH);
-
-  action = g_action_map_lookup_action (self->actions, "switch-branch");
-  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_branch);
-
-  action = g_action_map_lookup_action (self->actions, "push-branch");
-  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_branch);
-}
-
 static void
 gbp_vcsui_tree_addin_cell_data_func (IdeTreeAddin    *addin,
                                      IdeTreeNode     *node,
@@ -271,197 +133,12 @@ gbp_vcsui_tree_addin_cell_data_func (IdeTreeAddin    *addin,
   ide_tree_node_set_flags (node, flags);
 }
 
-static void
-gbp_vcsui_tree_addin_list_branches_cb (GObject      *object,
-                                       GAsyncResult *result,
-                                       gpointer      user_data)
-{
-  IdeVcs *vcs = (IdeVcs *)object;
-  g_autoptr(IdeTask) task = user_data;
-  g_autoptr(GPtrArray) branches = NULL;
-  g_autoptr(GError) error = NULL;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (IDE_IS_VCS (vcs));
-  g_assert (G_IS_ASYNC_RESULT (result));
-  g_assert (IDE_IS_TASK (task));
-
-  if ((branches = ide_vcs_list_branches_finish (vcs, result, &error)))
-    {
-      IdeTreeNode *parent = ide_task_get_task_data (task);
-
-      for (guint i = 0; i < branches->len; i++)
-        {
-          IdeVcsBranch *branch = g_ptr_array_index (branches, i);
-          g_autofree gchar *name = ide_vcs_branch_dup_name (branch);
-          g_autoptr(IdeTreeNode) child = NULL;
-
-          child = g_object_new (IDE_TYPE_TREE_NODE,
-                                "display-name", name,
-                                "icon-name", "builder-vcs-branch-symbolic",
-                                "item", branch,
-                                "tag", "vcs-branch",
-                                NULL);
-          ide_tree_node_append (parent, child);
-        }
-    }
-
-  IDE_PTR_ARRAY_SET_FREE_FUNC (branches, g_object_unref);
-
-  ide_task_return_boolean (task, TRUE);
-}
-
-static void
-gbp_vcsui_tree_addin_list_tags_cb (GObject      *object,
-                                   GAsyncResult *result,
-                                   gpointer      user_data)
-{
-  IdeVcs *vcs = (IdeVcs *)object;
-  g_autoptr(IdeTask) task = user_data;
-  g_autoptr(GPtrArray) tags = NULL;
-  g_autoptr(GError) error = NULL;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (IDE_IS_VCS (vcs));
-  g_assert (G_IS_ASYNC_RESULT (result));
-  g_assert (IDE_IS_TASK (task));
-
-  if ((tags = ide_vcs_list_tags_finish (vcs, result, &error)))
-    {
-      IdeTreeNode *parent = ide_task_get_task_data (task);
-
-      for (guint i = 0; i < tags->len; i++)
-        {
-          IdeVcsTag *tag = g_ptr_array_index (tags, i);
-          g_autofree gchar *name = ide_vcs_tag_dup_name (tag);
-          g_autoptr(IdeTreeNode) child = NULL;
-
-          child = g_object_new (IDE_TYPE_TREE_NODE,
-                                "display-name", name,
-                                "icon-name", "builder-vcs-tag-symbolic",
-                                "item", tag,
-                                "tag", "vcs-tag",
-                                NULL);
-          ide_tree_node_append (parent, child);
-        }
-    }
-
-  IDE_PTR_ARRAY_SET_FREE_FUNC (tags, g_object_unref);
-
-  ide_task_return_boolean (task, TRUE);
-}
-
-static void
-gbp_vcsui_tree_addin_build_children_async (IdeTreeAddin        *addin,
-                                           IdeTreeNode         *node,
-                                           GCancellable        *cancellable,
-                                           GAsyncReadyCallback  callback,
-                                           gpointer             user_data)
-{
-  g_autoptr(IdeTask) task = NULL;
-
-  g_assert (IDE_IS_MAIN_THREAD ());
-  g_assert (GBP_IS_VCSUI_TREE_ADDIN (addin));
-  g_assert (IDE_IS_TREE_NODE (node));
-  g_assert (!cancellable || G_IS_CANCELLABLE (cancellable));
-
-  task = ide_task_new (addin, cancellable, callback, user_data);
-  ide_task_set_source_tag (task, gbp_vcsui_tree_addin_build_children_async);
-  ide_task_set_task_data (task, g_object_ref (node), g_object_unref);
-
-  if (ide_tree_node_holds (node, IDE_TYPE_CONTEXT))
-    {
-      IdeContext *context = ide_tree_node_get_item (node);
-      IdeVcs *vcs = ide_vcs_from_context (context);
-
-      if (!IDE_IS_DIRECTORY_VCS (vcs))
-        {
-          g_autoptr(IdeTreeNode) vcs_node = NULL;
-
-          vcs_node = g_object_new (IDE_TYPE_TREE_NODE,
-                                   "children-possible", TRUE,
-                                   "display-name", _("Version Control"),
-                                   "icon-name", "builder-vcs-git-symbolic",
-                                   "is-header", TRUE,
-                                   "item", vcs,
-                                   "tag", "vcs",
-                                   NULL);
-          ide_tree_node_prepend (node, vcs_node);
-        }
-    }
-  else if (ide_tree_node_holds (node, IDE_TYPE_VCS) &&
-           ide_tree_node_is_tag (node, "vcs-branches"))
-    {
-      IdeVcs *vcs = ide_tree_node_get_item (node);
-
-      ide_vcs_list_branches_async (vcs,
-                                   cancellable,
-                                   gbp_vcsui_tree_addin_list_branches_cb,
-                                   g_steal_pointer (&task));
-      return;
-    }
-  else if (ide_tree_node_holds (node, IDE_TYPE_VCS) &&
-           ide_tree_node_is_tag (node, "vcs-tags"))
-    {
-      IdeVcs *vcs = ide_tree_node_get_item (node);
-
-      ide_vcs_list_tags_async (vcs,
-                               cancellable,
-                               gbp_vcsui_tree_addin_list_tags_cb,
-                               g_steal_pointer (&task));
-      return;
-    }
-  else if (ide_tree_node_holds (node, IDE_TYPE_VCS) &&
-           ide_tree_node_is_tag (node, "vcs"))
-    {
-      IdeVcs *vcs = ide_tree_node_get_item (node);
-      g_autoptr(IdeTreeNode) branches = NULL;
-      g_autoptr(IdeTreeNode) tags = NULL;
-
-      branches = g_object_new (IDE_TYPE_TREE_NODE,
-                               "children-possible", TRUE,
-                               "display-name", _("Branches"),
-                               "icon-name", "folder-symbolic",
-                               "expanded-icon-name", "folder-open-symbolic",
-                               "item", vcs,
-                               "tag", "vcs-branches",
-                               NULL);
-      ide_tree_node_append (node, branches);
-
-      tags = g_object_new (IDE_TYPE_TREE_NODE,
-                           "children-possible", TRUE,
-                           "display-name", _("Tags"),
-                           "icon-name", "folder-symbolic",
-                           "expanded-icon-name", "folder-open-symbolic",
-                           "item", vcs,
-                           "tag", "vcs-tags",
-                           NULL);
-      ide_tree_node_append (node, tags);
-    }
-
-  ide_task_return_boolean (task, TRUE);
-}
-
-static gboolean
-gbp_vcsui_tree_addin_build_children_finish (IdeTreeAddin  *addin,
-                                            GAsyncResult  *result,
-                                            GError       **error)
-{
-  g_assert (GBP_IS_VCSUI_TREE_ADDIN (addin));
-  g_assert (IDE_IS_TASK (result));
-
-  return ide_task_propagate_boolean (IDE_TASK (result), error);
-}
-
 static void
 tree_addin_iface_init (IdeTreeAddinInterface *iface)
 {
   iface->cell_data_func = gbp_vcsui_tree_addin_cell_data_func;
   iface->load = gbp_vcsui_tree_addin_load;
-  iface->selection_changed = gbp_vcsui_tree_addin_selection_changed;
   iface->unload = gbp_vcsui_tree_addin_unload;
-  iface->build_children_async = gbp_vcsui_tree_addin_build_children_async;
-  iface->build_children_finish = gbp_vcsui_tree_addin_build_children_finish;
 }
 
 G_DEFINE_FINAL_TYPE_WITH_CODE (GbpVcsuiTreeAddin, gbp_vcsui_tree_addin, G_TYPE_OBJECT,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]