[gtksourceview] move-lines: simplify API



commit fbf572ea8f7c9b0a1be9a6b805d4fae7b678890b
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Thu Mar 30 19:44:47 2017 +0200

    move-lines: simplify API
    
    See the commit message of:
    commit 4a1bb212029d6648f1323ec420f644462865d24a

 docs/reference/porting-guide.xml |   15 ++++++++
 gtksourceview/gtksourceview.c    |   69 +++++++++----------------------------
 gtksourceview/gtksourceview.h    |    3 +-
 testsuite/test-view.c            |   32 +++++++++---------
 4 files changed, 49 insertions(+), 70 deletions(-)
---
diff --git a/docs/reference/porting-guide.xml b/docs/reference/porting-guide.xml
index ba6eaf7..f60243c 100644
--- a/docs/reference/porting-guide.xml
+++ b/docs/reference/porting-guide.xml
@@ -126,4 +126,19 @@
       </listitem>
     </itemizedlist>
   </refsect1>
+
+  <refsect1>
+    <title>GtkSourceView 3.99.4</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          The API of the
+          <link linkend="GtkSourceView-move-lines">GtkSourceView::move-lines</link>
+          keybinding signal has been simplified: the <code>copy</code> parameter
+          was deprecated and has been removed; and the <code>count</code>
+          parameter has been replaced by the <code>down</code> boolean.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </refsect1>
 </part>
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index 0108795..46cee82 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -264,8 +264,7 @@ static void         gtk_source_view_get_lines               (GtkTextView       *text_view,
 static gboolean gtk_source_view_draw                   (GtkWidget         *widget,
                                                         cairo_t           *cr);
 static void    gtk_source_view_move_lines              (GtkSourceView     *view,
-                                                        gboolean           copy,
-                                                        gint               step);
+                                                        gboolean           down);
 static void    gtk_source_view_move_words              (GtkSourceView     *view,
                                                         gint               step);
 static gboolean        gtk_source_view_key_press_event         (GtkWidget         *widget,
@@ -746,23 +745,13 @@ gtk_source_view_class_init (GtkSourceViewClass *klass)
 
        /**
         * GtkSourceView::move-lines:
-        * @view: the #GtkSourceView which received the signal
-        * @copy: %TRUE if the line should be copied, %FALSE if it should be
-        *   moved. This parameter is deprecated and will be removed in a later
-        *   version, it should be always %FALSE.
-        * @count: the number of lines to move over. Only 1 and -1 are
-        *   supported.
+        * @view: the #GtkSourceView which received the signal.
+        * @down: %TRUE to move down, %FALSE to move up.
         *
         * The ::move-lines signal is a keybinding which gets emitted
         * when the user initiates moving a line. The default binding key
         * is Alt+Up/Down arrow. And moves the currently selected lines,
-        * or the current line by @count. For the moment, only
-        * @count of -1 or 1 is valid.
-        *
-        * The @copy parameter is deprecated, it has never been used by
-        * GtkSourceView (the value is always %FALSE) and was buggy.
-        *
-        * Since: 2.10
+        * or the current line up or down by one line.
         */
        signals[MOVE_LINES] =
                g_signal_new ("move-lines",
@@ -770,9 +759,8 @@ gtk_source_view_class_init (GtkSourceViewClass *klass)
                              G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                              G_STRUCT_OFFSET (GtkSourceViewClass, move_lines),
                              NULL, NULL, NULL,
-                             G_TYPE_NONE, 2,
-                             G_TYPE_BOOLEAN,
-                             G_TYPE_INT);
+                             G_TYPE_NONE, 1,
+                             G_TYPE_BOOLEAN);
 
        /**
         * GtkSourceView::move-words:
@@ -917,27 +905,23 @@ gtk_source_view_class_init (GtkSourceViewClass *klass)
        gtk_binding_entry_add_signal (binding_set,
                                      GDK_KEY_Up,
                                      GDK_MOD1_MASK,
-                                     "move-lines", 2,
-                                     G_TYPE_BOOLEAN, FALSE,
-                                     G_TYPE_INT, -1);
+                                     "move-lines", 1,
+                                     G_TYPE_BOOLEAN, FALSE);
        gtk_binding_entry_add_signal (binding_set,
                                      GDK_KEY_KP_Up,
                                      GDK_MOD1_MASK,
-                                     "move-lines", 2,
-                                     G_TYPE_BOOLEAN, FALSE,
-                                     G_TYPE_INT, -1);
+                                     "move-lines", 1,
+                                     G_TYPE_BOOLEAN, FALSE);
        gtk_binding_entry_add_signal (binding_set,
                                      GDK_KEY_Down,
                                      GDK_MOD1_MASK,
-                                     "move-lines", 2,
-                                     G_TYPE_BOOLEAN, FALSE,
-                                     G_TYPE_INT, 1);
+                                     "move-lines", 1,
+                                     G_TYPE_BOOLEAN, TRUE);
        gtk_binding_entry_add_signal (binding_set,
                                      GDK_KEY_KP_Down,
                                      GDK_MOD1_MASK,
-                                     "move-lines", 2,
-                                     G_TYPE_BOOLEAN, FALSE,
-                                     G_TYPE_INT, 1);
+                                     "move-lines", 1,
+                                     G_TYPE_BOOLEAN, TRUE);
 
        gtk_binding_entry_add_signal (binding_set,
                                      GDK_KEY_Left,
@@ -3745,8 +3729,7 @@ remove_trailing_newline (GtkTextBuffer *buffer)
 
 static void
 gtk_source_view_move_lines (GtkSourceView *view,
-                           gboolean       copy,
-                           gint           step)
+                           gboolean       down)
 {
        GtkTextBuffer *buffer;
        GtkTextIter start;
@@ -3756,29 +3739,14 @@ gtk_source_view_move_lines (GtkSourceView *view,
        GtkTextMark *end_mark;
        gchar *text;
        gboolean initially_contains_trailing_newline;
-       gboolean down;
-
-       if (copy)
-       {
-               g_warning ("The 'copy' parameter of GtkSourceView::move-lines is deprecated.");
-       }
-
-       if (step != 1 && step != -1)
-       {
-               g_warning ("The 'count' parameter of GtkSourceView::move-lines should be either 1 or -1.");
-       }
 
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
 
-       if (step == 0 || !gtk_text_view_get_editable (GTK_TEXT_VIEW (view)))
+       if (!gtk_text_view_get_editable (GTK_TEXT_VIEW (view)))
        {
                return;
        }
 
-       /* FIXME: for now we just handle a step of one line */
-
-       down = step > 0;
-
        gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
 
        /* Get the entire lines, including the paragraph terminator. */
@@ -3825,10 +3793,7 @@ gtk_source_view_move_lines (GtkSourceView *view,
 
        text = gtk_text_buffer_get_text (buffer, &start, &end, TRUE);
 
-       if (!copy)
-       {
-               gtk_text_buffer_delete (buffer, &start, &end);
-       }
+       gtk_text_buffer_delete (buffer, &start, &end);
 
        if (down)
        {
diff --git a/gtksourceview/gtksourceview.h b/gtksourceview/gtksourceview.h
index af5ec3f..81556f4 100644
--- a/gtksourceview/gtksourceview.h
+++ b/gtksourceview/gtksourceview.h
@@ -106,8 +106,7 @@ struct _GtkSourceViewClass
                                     GdkEvent      *event);
        void (*show_completion) (GtkSourceView *view);
        void (*move_lines) (GtkSourceView *view,
-                           gboolean       copy,
-                           gint           step);
+                           gboolean       down);
 
        void (*move_words) (GtkSourceView *view,
                            gint           step);
diff --git a/testsuite/test-view.c b/testsuite/test-view.c
index ee36d27..2495502 100644
--- a/testsuite/test-view.c
+++ b/testsuite/test-view.c
@@ -108,7 +108,7 @@ test_move_lines__move_single_line (void)
 
                set_initial_selection_for_single_line (buffer, 0, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+               g_signal_emit_by_name (view, "move-lines", TRUE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line2\n"
@@ -132,7 +132,7 @@ test_move_lines__move_single_line (void)
 
                set_initial_selection_for_single_line (buffer, 1, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+               g_signal_emit_by_name (view, "move-lines", FALSE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line2\n"
@@ -156,7 +156,7 @@ test_move_lines__move_single_line (void)
 
                set_initial_selection_for_single_line (buffer, 1, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+               g_signal_emit_by_name (view, "move-lines", TRUE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -180,7 +180,7 @@ test_move_lines__move_single_line (void)
 
                set_initial_selection_for_single_line (buffer, 1, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+               g_signal_emit_by_name (view, "move-lines", TRUE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -204,7 +204,7 @@ test_move_lines__move_single_line (void)
 
                set_initial_selection_for_single_line (buffer, 2, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+               g_signal_emit_by_name (view, "move-lines", FALSE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -228,7 +228,7 @@ test_move_lines__move_single_line (void)
 
                set_initial_selection_for_single_line (buffer, 2, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+               g_signal_emit_by_name (view, "move-lines", FALSE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -251,7 +251,7 @@ test_move_lines__move_single_line (void)
        gtk_text_buffer_get_end_iter (buffer, &end);
        gtk_text_buffer_place_cursor (buffer, &end);
 
-       g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+       g_signal_emit_by_name (view, "move-lines", TRUE);
        text = get_text (buffer);
        g_assert_cmpstr (text, ==,
                         "line1\n"
@@ -273,7 +273,7 @@ test_move_lines__move_single_line (void)
        gtk_text_buffer_get_start_iter (buffer, &start);
        gtk_text_buffer_place_cursor (buffer, &start);
 
-       g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+       g_signal_emit_by_name (view, "move-lines", FALSE);
        text = get_text (buffer);
        g_assert_cmpstr (text, ==,
                         "line1\n"
@@ -352,7 +352,7 @@ test_move_lines__move_several_lines (void)
 
                set_initial_selection_for_several_lines (buffer, 0, 1, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+               g_signal_emit_by_name (view, "move-lines", TRUE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line3\n"
@@ -378,7 +378,7 @@ test_move_lines__move_several_lines (void)
 
                set_initial_selection_for_several_lines (buffer, 1, 2, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+               g_signal_emit_by_name (view, "move-lines", FALSE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line2\n"
@@ -404,7 +404,7 @@ test_move_lines__move_several_lines (void)
 
                set_initial_selection_for_several_lines (buffer, 1, 2, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+               g_signal_emit_by_name (view, "move-lines", TRUE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -430,7 +430,7 @@ test_move_lines__move_several_lines (void)
 
                set_initial_selection_for_several_lines (buffer, 1, 2, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+               g_signal_emit_by_name (view, "move-lines", TRUE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -456,7 +456,7 @@ test_move_lines__move_several_lines (void)
 
                set_initial_selection_for_several_lines (buffer, 2, 3, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+               g_signal_emit_by_name (view, "move-lines", FALSE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -482,7 +482,7 @@ test_move_lines__move_several_lines (void)
 
                set_initial_selection_for_several_lines (buffer, 2, 3, case_num);
 
-               g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+               g_signal_emit_by_name (view, "move-lines", FALSE);
                text = get_text (buffer);
                g_assert_cmpstr (text, ==,
                                 "line1\n"
@@ -506,7 +506,7 @@ test_move_lines__move_several_lines (void)
 
        set_initial_selection_for_several_lines (buffer, 2, 3, 0);
 
-       g_signal_emit_by_name (view, "move-lines", FALSE, 1);
+       g_signal_emit_by_name (view, "move-lines", TRUE);
        text = get_text (buffer);
        g_assert_cmpstr (text, ==,
                         "line1\n"
@@ -525,7 +525,7 @@ test_move_lines__move_several_lines (void)
 
        set_initial_selection_for_several_lines (buffer, 0, 1, 0);
 
-       g_signal_emit_by_name (view, "move-lines", FALSE, -1);
+       g_signal_emit_by_name (view, "move-lines", FALSE);
        text = get_text (buffer);
        g_assert_cmpstr (text, ==,
                         "line1\n"


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