[gnome-builder] Add 'always' option to text wrapping setting



commit 1b4f16bdf91ff67ef935cd96b4467fed5bb25904
Author: Veli Tasalı <veli tasali gmail com>
Date:   Wed Jan 19 17:36:58 2022 +0000

    Add 'always' option to text wrapping setting

 data/gsettings/org.gnome.builder.editor.gschema.xml | 11 ++++++++---
 src/libide/editor/ide-editor-page-settings.c        |  6 +++++-
 src/libide/gui/ide-preferences-builtin.c            |  6 +++++-
 3 files changed, 18 insertions(+), 5 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.editor.gschema.xml 
b/data/gsettings/org.gnome.builder.editor.gschema.xml
index e6e58faee..38fbf800b 100644
--- a/data/gsettings/org.gnome.builder.editor.gschema.xml
+++ b/data/gsettings/org.gnome.builder.editor.gschema.xml
@@ -95,10 +95,15 @@
       <summary>Overscroll</summary>
       <description>The number of lines to scroll beyond the end of the buffer.</description>
     </key>
-    <key name="wrap-text" type="b">
-      <default>false</default>
+    <key name="wrap-text" type="s">
+      <choices>
+        <choice value="never"/>
+        <choice value="whitespace"/>
+        <choice value="always"/>
+      </choices>
+      <default>'never'</default>
       <summary>Wrap Text</summary>
-      <description>If enabled, Builder will automatically wrap text so all of the line text is 
visible.</description>
+      <description>The way to wrap a long line of text for a better visibility.</description>
     </key>
     <key name="auto-save" type="b">
       <default>true</default>
diff --git a/src/libide/editor/ide-editor-page-settings.c b/src/libide/editor/ide-editor-page-settings.c
index 00d852068..0b4e72524 100644
--- a/src/libide/editor/ide-editor-page-settings.c
+++ b/src/libide/editor/ide-editor-page-settings.c
@@ -43,7 +43,11 @@ get_wrap_mode (GValue   *value,
                GVariant *variant,
                gpointer  user_data)
 {
-  if (g_variant_get_boolean (variant))
+  const gchar *wrap_mode = g_variant_get_string (variant, NULL);
+
+  if (!g_strcmp0 (wrap_mode, "always"))
+    g_value_set_enum (value, GTK_WRAP_WORD_CHAR);
+  else if (!g_strcmp0 (wrap_mode, "whitespace"))
     g_value_set_enum (value, GTK_WRAP_WORD);
   else
     g_value_set_enum (value, GTK_WRAP_NONE);
diff --git a/src/libide/gui/ide-preferences-builtin.c b/src/libide/gui/ide-preferences-builtin.c
index 2ad7f5f50..456d6d575 100644
--- a/src/libide/gui/ide-preferences-builtin.c
+++ b/src/libide/gui/ide-preferences-builtin.c
@@ -159,10 +159,14 @@ ide_preferences_builtin_register_editor (DzlPreferences *preferences)
 
   dzl_preferences_add_list_group (preferences, "editor", "position", _("Cursor"), GTK_SELECTION_NONE, 0);
   dzl_preferences_add_switch (preferences, "editor", "position", "org.gnome.builder.editor", 
"restore-insert-mark", NULL, NULL, _("Restore cursor position"), _("Restore cursor position when a file is 
reopened"), NULL, 0);
-  dzl_preferences_add_switch (preferences, "editor", "position", "org.gnome.builder.editor", "wrap-text", 
NULL, NULL, _("Enable text wrapping"), _("Wrap text that is too wide to display"), NULL, 5);
   dzl_preferences_add_spin_button (preferences, "editor", "position", "org.gnome.builder.editor", 
"scroll-offset", NULL, _("Scroll Offset"), _("Minimum number of lines to keep above and below the cursor"), 
NULL, 10);
   dzl_preferences_add_spin_button (preferences, "editor", "position", "org.gnome.builder.editor", 
"overscroll", NULL, _("Overscroll"), _("Allow the editor to scroll past the end of the buffer"), NULL, 20);
 
+  dzl_preferences_add_list_group (preferences, "editor", "text-wrapping", _("Text Wrapping"), 
GTK_SELECTION_NONE, 0);
+  dzl_preferences_add_radio (preferences, "editor", "text-wrapping", "org.gnome.builder.editor", 
"wrap-text", NULL, "\"never\"", _("Never"), NULL, NULL, 0);
+  dzl_preferences_add_radio (preferences, "editor", "text-wrapping", "org.gnome.builder.editor", 
"wrap-text", NULL, "\"whitespace\"", _("In Between Words"), NULL, NULL, 0);
+  dzl_preferences_add_radio (preferences, "editor", "text-wrapping", "org.gnome.builder.editor", 
"wrap-text", NULL, "\"always\"", _("Always"), NULL, NULL, 0);
+
   dzl_preferences_add_list_group (preferences, "editor", "line", _("Line Information"), GTK_SELECTION_NONE, 
50);
   dzl_preferences_add_switch (preferences, "editor", "line", "org.gnome.builder.editor", 
"show-line-numbers", NULL, NULL, _("Line numbers"), _("Show line number at beginning of each line"), NULL, 0);
   dzl_preferences_add_switch (preferences, "editor", "line", "org.gnome.builder.editor", 
"show-relative-line-numbers", NULL, NULL, _("Relative line numbers"), _("Show line numbers relative to the 
cursor line"), NULL, 0);


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