[gimp] app: add gimp_container_tree_view_name_edited() as public default callback



commit 8350ab4217c407c1e8bb7f7c5758df4fa944f0b1
Author: Michael Natterer <mitch gimp org>
Date:   Tue Nov 14 20:54:38 2017 +0100

    app: add gimp_container_tree_view_name_edited() as public default callback
    
    and use it in GimpBufferView and GimpTemplateView.

 app/widgets/gimpbufferview.c        |   61 +-------------------------------
 app/widgets/gimpcontainertreeview.c |   54 +++++++++++++++++++++++++++++
 app/widgets/gimpcontainertreeview.h |    5 +++
 app/widgets/gimptemplateview.c      |   65 ++--------------------------------
 4 files changed, 65 insertions(+), 120 deletions(-)
---
diff --git a/app/widgets/gimpbufferview.c b/app/widgets/gimpbufferview.c
index 3567e11..d1bfa76 100644
--- a/app/widgets/gimpbufferview.c
+++ b/app/widgets/gimpbufferview.c
@@ -33,7 +33,6 @@
 #include "core/gimpcontext.h"
 #include "core/gimpimage.h"
 
-#include "gimpcontainertreestore.h"
 #include "gimpcontainertreeview.h"
 #include "gimpcontainerview.h"
 #include "gimpbufferview.h"
@@ -56,10 +55,6 @@ static void   gimp_buffer_view_set_context       (GimpDocked          *docked,
 
 static void   gimp_buffer_view_activate_item     (GimpContainerEditor *editor,
                                                   GimpViewable        *viewable);
-static void   gimp_buffer_view_tree_name_edited  (GtkCellRendererText *cell,
-                                                  const gchar         *path_str,
-                                                  const gchar         *new_name,
-                                                  GimpBufferView      *view);
 
 static void   gimp_buffer_view_clipboard_changed (Gimp                *gimp,
                                                   GimpBufferView      *buffer_view);
@@ -158,8 +153,8 @@ gimp_buffer_view_new (GimpViewType     view_type,
       tree_view = GIMP_CONTAINER_TREE_VIEW (editor->view);
 
       gimp_container_tree_view_connect_name_edited (tree_view,
-                                                    G_CALLBACK (gimp_buffer_view_tree_name_edited),
-                                                    buffer_view);
+                                                    G_CALLBACK (gimp_container_tree_view_name_edited),
+                                                    tree_view);
     }
 
   frame = gtk_frame_new (NULL);
@@ -275,58 +270,6 @@ gimp_buffer_view_activate_item (GimpContainerEditor *editor,
 }
 
 static void
-gimp_buffer_view_tree_name_edited (GtkCellRendererText *cell,
-                                   const gchar         *path_str,
-                                   const gchar         *new_name,
-                                   GimpBufferView      *view)
-{
-  GimpContainerTreeView *tree_view;
-  GtkTreePath           *path;
-  GtkTreeIter            iter;
-
-  tree_view = GIMP_CONTAINER_TREE_VIEW (GIMP_CONTAINER_EDITOR (view)->view);
-
-  path = gtk_tree_path_new_from_string (path_str);
-
-  if (gtk_tree_model_get_iter (tree_view->model, &iter, path))
-    {
-      GimpViewRenderer *renderer;
-      GimpObject       *object;
-      const gchar      *old_name;
-
-      gtk_tree_model_get (tree_view->model, &iter,
-                          GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
-                          -1);
-
-      object = GIMP_OBJECT (renderer->viewable);
-
-      old_name = gimp_object_get_name (object);
-
-      if (! old_name) old_name = "";
-      if (! new_name) new_name = "";
-
-      if (strcmp (old_name, new_name))
-        {
-          gimp_object_set_name (object, new_name);
-        }
-      else
-        {
-          gchar *name = gimp_viewable_get_description (renderer->viewable,
-                                                       NULL);
-
-          gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), &iter,
-                              GIMP_CONTAINER_TREE_STORE_COLUMN_NAME, name,
-                              -1);
-          g_free (name);
-        }
-
-      g_object_unref (renderer);
-    }
-
-  gtk_tree_path_free (path);
-}
-
-static void
 gimp_buffer_view_clipboard_changed (Gimp           *gimp,
                                     GimpBufferView *buffer_view)
 {
diff --git a/app/widgets/gimpcontainertreeview.c b/app/widgets/gimpcontainertreeview.c
index f91162c..d7d73d5 100644
--- a/app/widgets/gimpcontainertreeview.c
+++ b/app/widgets/gimpcontainertreeview.c
@@ -576,6 +576,60 @@ gimp_container_tree_view_connect_name_edited (GimpContainerTreeView *tree_view,
                     data);
 }
 
+gboolean
+gimp_container_tree_view_name_edited (GtkCellRendererText   *cell,
+                                      const gchar           *path_str,
+                                      const gchar           *new_name,
+                                      GimpContainerTreeView *tree_view)
+{
+  GtkTreePath *path;
+  GtkTreeIter  iter;
+  gboolean     changed = FALSE;
+
+  path = gtk_tree_path_new_from_string (path_str);
+
+  if (gtk_tree_model_get_iter (tree_view->model, &iter, path))
+    {
+      GimpViewRenderer *renderer;
+      GimpObject       *object;
+      const gchar      *old_name;
+
+      gtk_tree_model_get (tree_view->model, &iter,
+                          GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
+                          -1);
+
+      object = GIMP_OBJECT (renderer->viewable);
+
+      old_name = gimp_object_get_name (object);
+
+      if (! old_name) old_name = "";
+      if (! new_name) new_name = "";
+
+      if (strcmp (old_name, new_name))
+        {
+          gimp_object_set_name (object, new_name);
+
+          changed = TRUE;
+        }
+      else
+        {
+          gchar *name = gimp_viewable_get_description (renderer->viewable,
+                                                       NULL);
+
+          gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), &iter,
+                              GIMP_CONTAINER_TREE_STORE_COLUMN_NAME, name,
+                              -1);
+          g_free (name);
+        }
+
+      g_object_unref (renderer);
+    }
+
+  gtk_tree_path_free (path);
+
+  return changed;
+}
+
 
 /*  GimpContainerView methods  */
 
diff --git a/app/widgets/gimpcontainertreeview.h b/app/widgets/gimpcontainertreeview.h
index 5ad9ec9..5af2d4a 100644
--- a/app/widgets/gimpcontainertreeview.h
+++ b/app/widgets/gimpcontainertreeview.h
@@ -131,6 +131,11 @@ void        gimp_container_tree_view_connect_name_edited
                                               (GimpContainerTreeView *tree_view,
                                                GCallback              callback,
                                                gpointer               data);
+gboolean    gimp_container_tree_view_name_edited
+                                              (GtkCellRendererText   *cell,
+                                               const gchar           *path_str,
+                                               const gchar           *new_name,
+                                               GimpContainerTreeView *tree_view);
 
 
 #endif  /*  __GIMP_CONTAINER_TREE_VIEW_H__  */
diff --git a/app/widgets/gimptemplateview.c b/app/widgets/gimptemplateview.c
index f7db851..a6f7cdf 100644
--- a/app/widgets/gimptemplateview.c
+++ b/app/widgets/gimptemplateview.c
@@ -36,7 +36,6 @@
 #include "core/gimpimage.h"
 #include "core/gimptemplate.h"
 
-#include "gimpcontainertreestore.h"
 #include "gimpcontainertreeview.h"
 #include "gimpcontainerview.h"
 #include "gimpmenufactory.h"
@@ -49,12 +48,8 @@
 #include "gimp-intl.h"
 
 
-static void gimp_template_view_activate_item    (GimpContainerEditor *editor,
-                                                 GimpViewable        *viewable);
-static void gimp_template_view_tree_name_edited (GtkCellRendererText *cell,
-                                                 const gchar         *path_str,
-                                                 const gchar         *new_name,
-                                                 GimpTemplateView    *view);
+static void   gimp_template_view_activate_item (GimpContainerEditor *editor,
+                                                GimpViewable        *viewable);
 
 
 G_DEFINE_TYPE (GimpTemplateView, gimp_template_view,
@@ -122,8 +117,8 @@ gimp_template_view_new (GimpViewType     view_type,
       tree_view = GIMP_CONTAINER_TREE_VIEW (editor->view);
 
       gimp_container_tree_view_connect_name_edited (tree_view,
-                                                    G_CALLBACK (gimp_template_view_tree_name_edited),
-                                                    template_view);
+                                                    G_CALLBACK (gimp_container_tree_view_name_edited),
+                                                    tree_view);
     }
 
   template_view->create_button =
@@ -182,55 +177,3 @@ gimp_template_view_activate_item (GimpContainerEditor *editor,
       gtk_button_clicked (GTK_BUTTON (view->create_button));
     }
 }
-
-static void
-gimp_template_view_tree_name_edited (GtkCellRendererText *cell,
-                                     const gchar         *path_str,
-                                     const gchar         *new_name,
-                                     GimpTemplateView    *view)
-{
-  GimpContainerTreeView *tree_view;
-  GtkTreePath           *path;
-  GtkTreeIter            iter;
-
-  tree_view = GIMP_CONTAINER_TREE_VIEW (GIMP_CONTAINER_EDITOR (view)->view);
-
-  path = gtk_tree_path_new_from_string (path_str);
-
-  if (gtk_tree_model_get_iter (tree_view->model, &iter, path))
-    {
-      GimpViewRenderer *renderer;
-      GimpObject       *object;
-      const gchar      *old_name;
-
-      gtk_tree_model_get (tree_view->model, &iter,
-                          GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
-                          -1);
-
-      object = GIMP_OBJECT (renderer->viewable);
-
-      old_name = gimp_object_get_name (object);
-
-      if (! old_name) old_name = "";
-      if (! new_name) new_name = "";
-
-      if (strcmp (old_name, new_name))
-        {
-          gimp_object_set_name (object, new_name);
-        }
-      else
-        {
-          gchar *name = gimp_viewable_get_description (renderer->viewable,
-                                                       NULL);
-
-          gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), &iter,
-                              GIMP_CONTAINER_TREE_STORE_COLUMN_NAME, name,
-                              -1);
-          g_free (name);
-        }
-
-      g_object_unref (renderer);
-    }
-
-  gtk_tree_path_free (path);
-}


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