[gimp] Some text tool code cleanup



commit 0ecf3b24d6b28e1fa9adf4536f1dd825ba9ea70f
Author: Michael Natterer <mitch gimp org>
Date:   Thu Jun 25 10:45:06 2009 +0200

    Some text tool code cleanup
    
    - add some local "buffer" variables to avoid writing text_tool->text_buffer
      all the time.
    - text_tool->text_buffer always exists, no need to check for it.

 app/tools/gimptexttool.c |  214 ++++++++++++++++++++--------------------------
 1 files changed, 92 insertions(+), 122 deletions(-)
---
diff --git a/app/tools/gimptexttool.c b/app/tools/gimptexttool.c
index 1a6c7c6..4340556 100644
--- a/app/tools/gimptexttool.c
+++ b/app/tools/gimptexttool.c
@@ -440,6 +440,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
   GimpTextTool      *text_tool = GIMP_TEXT_TOOL (tool);
   GimpRectangleTool *rect_tool = GIMP_RECTANGLE_TOOL (tool);
   GimpText          *text      = text_tool->text;
+  GtkTextBuffer     *buffer    = text_tool->text_buffer;
   GimpDrawable      *drawable;
 
   gimp_draw_tool_pause (GIMP_DRAW_TOOL (tool));
@@ -449,7 +450,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
       gint x1, y1;
       gint x2, y2;
 
-      g_signal_handlers_block_by_func (text_tool->text_buffer,
+      g_signal_handlers_block_by_func (buffer,
                                        gimp_text_tool_text_buffer_mark_set,
                                        text_tool);
 
@@ -519,7 +520,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
                   if (text && text_tool->text == text)
                     {
                       gimp_text_tool_canvas_editor (text_tool);
-                      gtk_text_buffer_set_text (text_tool->text_buffer,
+                      gtk_text_buffer_set_text (buffer,
                                                 text_tool->text->text, -1);
 
                       gimp_text_tool_update_layout (text_tool);
@@ -534,8 +535,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
 
                   offset = gimp_text_tool_xy_to_offset (text_tool, x, y);
 
-                  gtk_text_buffer_get_iter_at_offset (text_tool->text_buffer,
-                                                      &cursor, offset);
+                  gtk_text_buffer_get_iter_at_offset (buffer, &cursor, offset);
 
                   selection = cursor;
 
@@ -546,8 +546,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
                   switch (press_type)
                     {
                     case GIMP_BUTTON_PRESS_NORMAL:
-                      gtk_text_buffer_place_cursor (text_tool->text_buffer,
-                                                    &cursor);
+                      gtk_text_buffer_place_cursor (buffer, &cursor);
                       break;
 
                     case GIMP_BUTTON_PRESS_DOUBLE:
@@ -560,8 +559,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
                           ! gtk_text_iter_forward_visible_word_ends (&selection, 1))
                         gtk_text_iter_forward_to_line_end (&selection);
 
-                      gtk_text_buffer_select_range (text_tool->text_buffer,
-                                                    &cursor, &selection);
+                      gtk_text_buffer_select_range (buffer, &cursor, &selection);
                       break;
 
                     case GIMP_BUTTON_PRESS_TRIPLE:
@@ -570,8 +568,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
                       gtk_text_iter_set_line_offset (&cursor, 0);
                       gtk_text_iter_forward_to_line_end (&selection);
 
-                      gtk_text_buffer_select_range (text_tool->text_buffer,
-                                                    &cursor, &selection);
+                      gtk_text_buffer_select_range (buffer, &cursor, &selection);
                       break;
                     }
                 }
@@ -592,7 +589,7 @@ gimp_text_tool_button_press (GimpTool            *tool,
       text_tool->text = NULL;
     }
 
-  gtk_text_buffer_set_text (text_tool->text_buffer, "", -1);
+  gtk_text_buffer_set_text (buffer, "", -1);
   gimp_text_tool_connect (text_tool, NULL, NULL);
   gimp_text_tool_canvas_editor (text_tool);
 
@@ -702,26 +699,22 @@ gimp_text_tool_motion (GimpTool         *tool,
     {
       if (text_tool->layout)
         {
-          GimpItem    *item = GIMP_ITEM (text_tool->layer);
-          gdouble      x    = coords->x - gimp_item_get_offset_x (item);
-          gdouble      y    = coords->y - gimp_item_get_offset_y (item);
-          GtkTextMark *cursor_mark;
-          GtkTextMark *selection_mark;
-          GtkTextIter  cursor;
-          GtkTextIter  selection;
-          gint         cursor_offset;
-          gint         selection_offset;
-          gint         offset;
+          GimpItem      *item   = GIMP_ITEM (text_tool->layer);
+          gdouble        x      = coords->x - gimp_item_get_offset_x (item);
+          gdouble        y      = coords->y - gimp_item_get_offset_y (item);
+          GtkTextBuffer *buffer = text_tool->text_buffer;
+          GtkTextIter    cursor;
+          GtkTextIter    selection;
+          gint           cursor_offset;
+          gint           selection_offset;
+          gint           offset;
 
           offset = gimp_text_tool_xy_to_offset (text_tool, x, y);
 
-          cursor_mark    = gtk_text_buffer_get_insert (text_tool->text_buffer);
-          selection_mark = gtk_text_buffer_get_selection_bound (text_tool->text_buffer);
-
-          gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                            &cursor, cursor_mark);
-          gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                            &selection, selection_mark);
+          gtk_text_buffer_get_iter_at_mark (buffer, &cursor,
+                                            gtk_text_buffer_get_insert (buffer));
+          gtk_text_buffer_get_iter_at_mark (buffer, &selection,
+                                            gtk_text_buffer_get_selection_bound (buffer));
 
           cursor_offset    = gtk_text_iter_get_offset (&cursor);
           selection_offset = gtk_text_iter_get_offset (&selection);
@@ -732,9 +725,9 @@ gimp_text_tool_motion (GimpTool         *tool,
               GtkTextIter start;
               GtkTextIter end;
 
-              gtk_text_buffer_get_iter_at_offset (text_tool->text_buffer,
+              gtk_text_buffer_get_iter_at_offset (buffer,
                                                   &cursor, offset);
-              gtk_text_buffer_get_iter_at_offset (text_tool->text_buffer,
+              gtk_text_buffer_get_iter_at_offset (buffer,
                                                   &selection,
                                                   text_tool->select_start_offset);
 
@@ -779,8 +772,7 @@ gimp_text_tool_motion (GimpTool         *tool,
             {
               if (cursor_offset != offset)
                 {
-                  gtk_text_buffer_get_iter_at_offset (text_tool->text_buffer,
-                                                      &cursor, offset);
+                  gtk_text_buffer_get_iter_at_offset (buffer, &cursor, offset);
                 }
             }
 
@@ -789,8 +781,7 @@ gimp_text_tool_motion (GimpTool         *tool,
             {
               gimp_draw_tool_pause (GIMP_DRAW_TOOL (tool));
 
-              gtk_text_buffer_select_range (text_tool->text_buffer,
-                                            &cursor, &selection);
+              gtk_text_buffer_select_range (buffer, &cursor, &selection);
 
               gimp_draw_tool_resume (GIMP_DRAW_TOOL (tool));
             }
@@ -807,14 +798,13 @@ gimp_text_tool_key_press (GimpTool    *tool,
                           GdkEventKey *kevent,
                           GimpDisplay *display)
 {
-  GimpTextTool *text_tool = GIMP_TEXT_TOOL (tool);
-  GtkTextMark  *cursor_mark;
-  GtkTextMark  *selection_mark;
-  GtkTextIter   cursor;
-  GtkTextIter   selection;
-  GtkTextIter  *sel_start;
-  gint          x_pos  = -1;
-  gboolean      retval = TRUE;
+  GimpTextTool  *text_tool = GIMP_TEXT_TOOL (tool);
+  GtkTextBuffer *buffer    = text_tool->text_buffer;
+  GtkTextIter    cursor;
+  GtkTextIter    selection;
+  GtkTextIter   *sel_start;
+  gint           x_pos  = -1;
+  gboolean       retval = TRUE;
 
   if (display != tool->display)
     return FALSE;
@@ -836,13 +826,10 @@ gimp_text_tool_key_press (GimpTool    *tool,
       return TRUE;
     }
 
-  cursor_mark    = gtk_text_buffer_get_insert (text_tool->text_buffer);
-  selection_mark = gtk_text_buffer_get_selection_bound (text_tool->text_buffer);
-
-  gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                    &cursor, cursor_mark);
-  gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                    &selection, selection_mark);
+  gtk_text_buffer_get_iter_at_mark (buffer, &cursor,
+                                    gtk_text_buffer_get_insert (buffer));
+  gtk_text_buffer_get_iter_at_mark (buffer, &selection,
+                                    gtk_text_buffer_get_selection_bound (buffer));
 
   if (kevent->state & GDK_SHIFT_MASK)
     sel_start = &selection;
@@ -1413,12 +1400,11 @@ gimp_text_tool_move_cursor (GimpTextTool    *text_tool,
                             gint             count,
                             gboolean         extend_selection)
 {
-  GtkTextMark  *cursor_mark;
-  GtkTextMark  *selection_mark;
-  GtkTextIter   cursor;
-  GtkTextIter   selection;
-  GtkTextIter  *sel_start;
-  gint          x_pos  = -1;
+  GtkTextBuffer *buffer = text_tool->text_buffer;
+  GtkTextIter    cursor;
+  GtkTextIter    selection;
+  GtkTextIter   *sel_start;
+  gint           x_pos  = -1;
 
   g_printerr ("%s: %s count = %d, select = %s\n",
               G_STRFUNC,
@@ -1427,13 +1413,10 @@ gimp_text_tool_move_cursor (GimpTextTool    *text_tool,
               count,
               extend_selection ? "TRUE" : "FALSE");
 
-  cursor_mark    = gtk_text_buffer_get_insert (text_tool->text_buffer);
-  selection_mark = gtk_text_buffer_get_selection_bound (text_tool->text_buffer);
-
-  gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                    &cursor, cursor_mark);
-  gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                    &selection, selection_mark);
+  gtk_text_buffer_get_iter_at_mark (buffer, &cursor,
+                                    gtk_text_buffer_get_insert (buffer));
+  gtk_text_buffer_get_iter_at_mark (buffer, &selection,
+                                    gtk_text_buffer_get_selection_bound (buffer));
 
   if (extend_selection)
     sel_start = &selection;
@@ -1549,8 +1532,7 @@ gimp_text_tool_move_cursor (GimpTextTool    *text_tool,
 
         line_index -= layout_line->start_index;
 
-        gtk_text_buffer_get_iter_at_line_index (text_tool->text_buffer,
-                                                &cursor,
+        gtk_text_buffer_get_iter_at_line_index (buffer, &cursor,
                                                 line, line_index);
 
         while (trailing--)
@@ -1562,11 +1544,11 @@ gimp_text_tool_move_cursor (GimpTextTool    *text_tool,
     case GTK_MOVEMENT_BUFFER_ENDS:
       if (count < 0)
         {
-          gtk_text_buffer_get_start_iter (text_tool->text_buffer, &cursor);
+          gtk_text_buffer_get_start_iter (buffer, &cursor);
         }
       else if (count > 0)
         {
-          gtk_text_buffer_get_end_iter (text_tool->text_buffer, &cursor);
+          gtk_text_buffer_get_end_iter (buffer, &cursor);
         }
       break;
 
@@ -1602,8 +1584,7 @@ gimp_text_tool_move_cursor (GimpTextTool    *text_tool,
 
   gimp_draw_tool_pause (GIMP_DRAW_TOOL (text_tool));
 
-  gtk_text_buffer_select_range (text_tool->text_buffer,
-                                &cursor, sel_start);
+  gtk_text_buffer_select_range (buffer, &cursor, sel_start);
 
   gimp_draw_tool_resume (GIMP_DRAW_TOOL (text_tool));
 }
@@ -1652,8 +1633,9 @@ gimp_text_tool_delete_from_cursor (GimpTextTool  *text_tool,
                                    GtkDeleteType  type,
                                    gint           count)
 {
-  GtkTextIter cursor;
-  GtkTextIter end;
+  GtkTextBuffer *buffer = text_tool->text_buffer;
+  GtkTextIter    cursor;
+  GtkTextIter    end;
 
   g_printerr ("%s: %s count = %d\n",
               G_STRFUNC,
@@ -1661,18 +1643,16 @@ gimp_text_tool_delete_from_cursor (GimpTextTool  *text_tool,
                                 type)->value_name,
               count);
 
-  gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                    &cursor,
-                                    gtk_text_buffer_get_insert (text_tool->text_buffer));
-
+  gtk_text_buffer_get_iter_at_mark (buffer, &cursor,
+                                    gtk_text_buffer_get_insert (buffer));
   end = cursor;
 
   switch (type)
     {
     case GTK_DELETE_CHARS:
-      if (gtk_text_buffer_get_has_selection (text_tool->text_buffer))
+      if (gtk_text_buffer_get_has_selection (buffer))
         {
-          gtk_text_buffer_delete_selection (text_tool->text_buffer, TRUE, TRUE);
+          gtk_text_buffer_delete_selection (buffer, TRUE, TRUE);
           return;
         }
       else
@@ -1734,29 +1714,27 @@ gimp_text_tool_delete_from_cursor (GimpTextTool  *text_tool,
 
   if (! gtk_text_iter_equal (&cursor, &end))
     {
-      gtk_text_buffer_delete_interactive (text_tool->text_buffer,
-                                          &cursor, &end, TRUE);
+      gtk_text_buffer_delete_interactive (buffer, &cursor, &end, TRUE);
     }
 }
 
 static void
 gimp_text_tool_backspace (GimpTextTool *text_tool)
 {
-  if (gtk_text_buffer_get_has_selection (text_tool->text_buffer))
+  GtkTextBuffer *buffer = text_tool->text_buffer;
+
+  if (gtk_text_buffer_get_has_selection (buffer))
     {
-      gtk_text_buffer_delete_selection (text_tool->text_buffer, TRUE, TRUE);
+      gtk_text_buffer_delete_selection (buffer, TRUE, TRUE);
     }
   else
     {
-      GtkTextMark *cursor_mark;
-      GtkTextIter  cursor;
-
-      cursor_mark = gtk_text_buffer_get_insert (text_tool->text_buffer);
+      GtkTextIter cursor;
 
-      gtk_text_buffer_get_iter_at_mark (text_tool->text_buffer,
-                                        &cursor, cursor_mark);
+      gtk_text_buffer_get_iter_at_mark (buffer, &cursor,
+                                        gtk_text_buffer_get_insert (buffer));
 
-      gtk_text_buffer_backspace (text_tool->text_buffer, &cursor, TRUE, TRUE);
+      gtk_text_buffer_backspace (buffer, &cursor, TRUE, TRUE);
     }
 }
 
@@ -1875,7 +1853,7 @@ gimp_text_tool_use_editor_notify (GimpTextOptions *options,
 {
   if (options->use_editor)
     {
-      if (text_tool->text && text_tool->text_buffer)
+      if (text_tool->text)
         gimp_text_tool_editor (text_tool);
     }
   else
@@ -2289,46 +2267,41 @@ gimp_text_tool_canvas_editor (GimpTextTool *text_tool)
 static gchar *
 gimp_text_tool_canvas_editor_get_text (GimpTextTool *text_tool)
 {
-  if (text_tool->text_buffer)
-    {
-      GtkTextIter  start, end;
-      GtkTextIter  selstart, selend;
-      gchar       *string;
-      gchar       *fb;
-      gchar       *lb;
+  GtkTextIter  start, end;
+  GtkTextIter  selstart, selend;
+  gchar       *string;
+  gchar       *fb;
+  gchar       *lb;
 
-      gtk_text_buffer_get_bounds (text_tool->text_buffer, &start, &end);
-      gtk_text_buffer_get_selection_bounds (text_tool->text_buffer,
-                                            &selstart, &selend);
+  gtk_text_buffer_get_bounds (text_tool->text_buffer, &start, &end);
+  gtk_text_buffer_get_selection_bounds (text_tool->text_buffer,
+                                        &selstart, &selend);
 
-      fb = gtk_text_buffer_get_text (text_tool->text_buffer,
-                                     &start, &selstart, TRUE);
-      lb = gtk_text_buffer_get_text (text_tool->text_buffer,
-                                     &selstart, &end, TRUE);
+  fb = gtk_text_buffer_get_text (text_tool->text_buffer,
+                                 &start, &selstart, TRUE);
+  lb = gtk_text_buffer_get_text (text_tool->text_buffer,
+                                 &selstart, &end, TRUE);
 
-      if (text_tool->preedit_string)
+  if (text_tool->preedit_string)
+    {
+      if (fb == NULL)
         {
-          if (fb == NULL)
-            {
-              string = g_strconcat (text_tool->preedit_string, lb, NULL);
-            }
-          else
-            {
-              string = g_strconcat (fb, text_tool->preedit_string, lb, NULL);
-            }
+          string = g_strconcat (text_tool->preedit_string, lb, NULL);
         }
       else
         {
-          string = g_strconcat (fb, lb, NULL);
+          string = g_strconcat (fb, text_tool->preedit_string, lb, NULL);
         }
-
-      g_free (fb);
-      g_free (lb);
-
-      return string;
+    }
+  else
+    {
+      string = g_strconcat (fb, lb, NULL);
     }
 
-  return NULL;
+  g_free (fb);
+  g_free (lb);
+
+  return string;
 }
 
 
@@ -2740,10 +2713,7 @@ gimp_text_tool_preedit_changed_cb (GtkIMContext *context,
 gboolean
 gimp_text_tool_get_has_text_selection (GimpTextTool *text_tool)
 {
-  if (text_tool->text_buffer)
-    return gtk_text_buffer_get_has_selection (text_tool->text_buffer);
-  else
-    return FALSE;
+  return gtk_text_buffer_get_has_selection (text_tool->text_buffer);
 }
 
 void



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