[gnome-builder] scroll offset



commit 58b2827fce8c9e379951c976c215f55c0de7d8bb
Author: Christian Hergert <christian hergert me>
Date:   Wed Mar 18 15:37:56 2015 -0700

    scroll offset

 configure.ac                                       |    1 -
 data/gsettings.mk                                  |    1 -
 .../org.gnome.builder.editor.gschema.xml.in        |    4 +
 .../org.gnome.builder.editor.vim.gschema.xml.in    |    8 ---
 src/editor/gb-editor-frame.c                       |    1 +
 src/preferences/gb-preferences-page-editor.c       |   15 +++++
 src/preferences/gb-preferences-page-vim.c          |   25 ++------
 src/resources/ui/gb-preferences-page-editor.ui     |   63 ++++++++++++++++++++
 src/resources/ui/gb-preferences-page-vim.ui        |   63 --------------------
 9 files changed, 88 insertions(+), 93 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index d7d22cb..186f885 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,7 +73,6 @@ AC_CONFIG_FILES([
        data/libide-1.0.pc
        data/gsettings/org.gnome.builder.editor.gschema.xml
        data/gsettings/org.gnome.builder.editor.language.gschema.xml
-       data/gsettings/org.gnome.builder.editor.vim.gschema.xml
        po/Makefile.in
 ])
 
diff --git a/data/gsettings.mk b/data/gsettings.mk
index f8c7dda..7df2292 100644
--- a/data/gsettings.mk
+++ b/data/gsettings.mk
@@ -1,6 +1,5 @@
 gsettingsschema_in_files = \
        data/gsettings/org.gnome.builder.editor.gschema.xml.in \
-       data/gsettings/org.gnome.builder.editor.vim.gschema.xml.in \
        data/gsettings/org.gnome.builder.editor.language.gschema.xml.in
 
 gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
diff --git a/data/gsettings/org.gnome.builder.editor.gschema.xml.in 
b/data/gsettings/org.gnome.builder.editor.gschema.xml.in
index 2730295..631cafb 100644
--- a/data/gsettings/org.gnome.builder.editor.gschema.xml.in
+++ b/data/gsettings/org.gnome.builder.editor.gschema.xml.in
@@ -60,5 +60,9 @@
     <key name="style-scheme-name" type="s">
       <default>"builder"</default>
     </key>
+    <key name="scroll-offset" type="i">
+      <range min="0" max="999"/>
+      <default>0</default>
+    </key>
   </schema>
 </schemalist>
diff --git a/src/editor/gb-editor-frame.c b/src/editor/gb-editor-frame.c
index e8d2219..a2976d3 100644
--- a/src/editor/gb-editor-frame.c
+++ b/src/editor/gb-editor-frame.c
@@ -202,6 +202,7 @@ gb_editor_frame_init (GbEditorFrame *self)
   settings = g_settings_new ("org.gnome.builder.editor");
   g_settings_bind (settings, "font-name", self->source_view, "font-name", G_SETTINGS_BIND_GET);
   g_settings_bind (settings, "highlight-current-line", self->source_view, "highlight-current-line", 
G_SETTINGS_BIND_GET);
+  g_settings_bind (settings, "scroll-offset", self->source_view, "scroll-offset", G_SETTINGS_BIND_GET);
   g_settings_bind (settings, "show-grid-lines", self->source_view, "show-grid-lines", G_SETTINGS_BIND_GET);
   g_settings_bind (settings, "show-line-changes", self->source_view, "show-line-changes", 
G_SETTINGS_BIND_GET);
   g_settings_bind (settings, "show-line-numbers", self->source_view, "show-line-numbers", 
G_SETTINGS_BIND_GET);
diff --git a/src/preferences/gb-preferences-page-editor.c b/src/preferences/gb-preferences-page-editor.c
index 21203b1..eb5d676 100644
--- a/src/preferences/gb-preferences-page-editor.c
+++ b/src/preferences/gb-preferences-page-editor.c
@@ -38,8 +38,10 @@ struct _GbPreferencesPageEditorPrivate
   GtkSwitch                         *smart_backspace_switch;
   GtkSwitch                         *smart_home_end_switch;
   GtkSwitch                         *show_grid_lines_switch;
+  GtkSpinButton                     *scroll_off_spin;
   GtkFontButton                     *font_button;
   GtkSourceStyleSchemeChooserButton *style_scheme_button;
+  GtkAdjustment                     *scroll_off_adjustment;
 
   /* Template widgets used for filtering */
   GtkWidget                         *restore_insert_mark_container;
@@ -51,6 +53,7 @@ struct _GbPreferencesPageEditorPrivate
   GtkWidget                         *smart_backspace_container;
   GtkWidget                         *smart_home_end_container;
   GtkWidget                         *show_grid_lines_container;
+  GtkWidget                         *scroll_off_container;
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE (GbPreferencesPageEditor, gb_preferences_page_editor,
@@ -118,6 +121,9 @@ gb_preferences_page_editor_constructed (GObject *object)
   g_settings_bind (priv->settings, "show-grid-lines",
                    priv->show_grid_lines_switch, "active",
                    G_SETTINGS_BIND_DEFAULT);
+  g_settings_bind (priv->settings, "scroll-offset",
+                   priv->scroll_off_adjustment, "value",
+                   G_SETTINGS_BIND_DEFAULT);
   g_settings_bind (priv->settings, "font-name",
                    priv->font_button, "font-name",
                    G_SETTINGS_BIND_DEFAULT);
@@ -170,6 +176,8 @@ gb_preferences_page_editor_class_init (GbPreferencesPageEditorClass *klass)
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, smart_home_end_switch);
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, smart_backspace_switch);
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, show_grid_lines_switch);
+  GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, scroll_off_spin);
+  GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, scroll_off_adjustment);
 
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, restore_insert_mark_container);
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, word_completion_container);
@@ -180,6 +188,7 @@ gb_preferences_page_editor_class_init (GbPreferencesPageEditorClass *klass)
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, smart_home_end_container);
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, smart_backspace_container);
   GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, show_grid_lines_container);
+  GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageEditor, scroll_off_container);
 }
 
 static void
@@ -242,8 +251,14 @@ gb_preferences_page_editor_init (GbPreferencesPageEditor *self)
                                                self->priv->show_grid_lines_container,
                                                self->priv->show_grid_lines_switch,
                                                NULL);
+  /* To translators: This is a list of keywords for the preferences page */
   gb_preferences_page_set_keywords_for_widget (GB_PREFERENCES_PAGE (self),
+                                               _("lines margin scrolloff scroll off"),
+                                               self->priv->scroll_off_container,
+                                               self->priv->scroll_off_spin,
+                                               NULL);
   /* To translators: This is a list of keywords for the preferences page */
+  gb_preferences_page_set_keywords_for_widget (GB_PREFERENCES_PAGE (self),
                                                _("font document editor monospace"),
                                                GTK_WIDGET (self->priv->font_button),
                                                NULL);
diff --git a/src/preferences/gb-preferences-page-vim.c b/src/preferences/gb-preferences-page-vim.c
index fddbead..022bbe8 100644
--- a/src/preferences/gb-preferences-page-vim.c
+++ b/src/preferences/gb-preferences-page-vim.c
@@ -21,6 +21,7 @@
 #include <glib/gi18n.h>
 
 #include "gb-preferences-page-vim.h"
+#include "gb-widget.h"
 
 struct _GbPreferencesPageVimPrivate
 {
@@ -28,11 +29,9 @@ struct _GbPreferencesPageVimPrivate
   GSettings             *vim_settings;
 
   /* Widgets owned by Template */
-  GtkSpinButton         *scroll_off_spin;
   GtkSwitch             *vim_mode_switch;
 
   /* Template widgets used for filtering */
-  GtkWidget             *scroll_off_container;
   GtkWidget             *vim_container;
 };
 
@@ -60,10 +59,6 @@ gb_preferences_page_vim_constructed (GObject *object)
   g_action_map_add_action (G_ACTION_MAP (group), action);
   g_clear_object (&action);
 
-  action = g_settings_create_action (priv->vim_settings, "scroll-off");
-  g_action_map_add_action (G_ACTION_MAP (group), action);
-  g_clear_object (&action);
-
   gtk_widget_insert_action_group (GTK_WIDGET (vim), "settings", G_ACTION_GROUP (group));
   g_clear_object (&group);
 }
@@ -88,14 +83,9 @@ gb_preferences_page_vim_class_init (GbPreferencesPageVimClass *klass)
   object_class->finalize = gb_preferences_page_vim_finalize;
   object_class->constructed = gb_preferences_page_vim_constructed;
 
-  gtk_widget_class_set_template_from_resource (widget_class,
-                                               "/org/gnome/builder/ui/gb-preferences-page-vim.ui");
-
-  gtk_widget_class_bind_template_child_private (widget_class, GbPreferencesPageVim, scroll_off_spin);
-  gtk_widget_class_bind_template_child_private (widget_class, GbPreferencesPageVim, vim_mode_switch);
-
-  gtk_widget_class_bind_template_child_private (widget_class, GbPreferencesPageVim, scroll_off_container);
-  gtk_widget_class_bind_template_child_private (widget_class, GbPreferencesPageVim, vim_container);
+  GB_WIDGET_CLASS_TEMPLATE (widget_class, "gb-preferences-page-vim.ui");
+  GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageVim, vim_mode_switch);
+  GB_WIDGET_CLASS_BIND_PRIVATE (widget_class, GbPreferencesPageVim, vim_container);
 }
 
 static void
@@ -105,12 +95,7 @@ gb_preferences_page_vim_init (GbPreferencesPageVim *self)
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
-  gb_preferences_page_set_keywords_for_widget (GB_PREFERENCES_PAGE (self),
-                                               _("lines margin scrolloff scroll off"),
-                                               self->priv->scroll_off_container,
-                                               self->priv->scroll_off_spin,
-                                               NULL);
-
+  /* To translators: This is a list of keywords for the preferences page */
   gb_preferences_page_set_keywords_for_widget (GB_PREFERENCES_PAGE (self),
                                                _("vim modal"),
                                                self->priv->vim_container,
diff --git a/src/resources/ui/gb-preferences-page-editor.ui b/src/resources/ui/gb-preferences-page-editor.ui
index 0614f9a..74ff67f 100644
--- a/src/resources/ui/gb-preferences-page-editor.ui
+++ b/src/resources/ui/gb-preferences-page-editor.ui
@@ -114,6 +114,18 @@
               </packing>
             </child>
             <child>
+              <object class="GtkSpinButton" id="scroll_off_spin">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="valign">center</property>
+                <property name="adjustment">scroll_off_adjustment</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">10</property>
+              </packing>
+            </child>
+            <child>
               <object class="GtkBox" id="restore_insert_mark_container">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
@@ -509,6 +521,50 @@
                 <property name="top_attach">9</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkBox" id="scroll_off_container">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Scroll Offset&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                    <property name="xalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="label" translatable="yes">Minimal number of lines to keep above and 
below the cursor.</property>
+                    <property name="xalign">0</property>
+                    <style>
+                      <class name="dim-label"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">10</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -529,4 +585,11 @@
       </object>
     </child>
   </template>
+  <object class="GtkAdjustment" id="scroll_off_adjustment">
+    <property name="lower">0</property>
+    <property name="upper">999</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">1</property>
+    <property name="value">0</property>
+  </object>
 </interface>
diff --git a/src/resources/ui/gb-preferences-page-vim.ui b/src/resources/ui/gb-preferences-page-vim.ui
index 569107b..509986f 100644
--- a/src/resources/ui/gb-preferences-page-vim.ui
+++ b/src/resources/ui/gb-preferences-page-vim.ui
@@ -28,18 +28,6 @@
               </packing>
             </child>
             <child>
-              <object class="GtkSpinButton" id="scroll_off_spin">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="valign">center</property>
-                <property name="adjustment">scroll_off_adjustment</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-            <child>
               <object class="GtkBox" id="vim_container">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
@@ -83,50 +71,6 @@
                 <property name="top_attach">0</property>
               </packing>
             </child>
-            <child>
-              <object class="GtkBox" id="scroll_off_container">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="hexpand">True</property>
-                <property name="orientation">vertical</property>
-                <child>
-                  <object class="GtkLabel">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="hexpand">True</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Scroll Offset&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                    <property name="xalign">0</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="hexpand">True</property>
-                   <property name="label" translatable="yes">Minimal number of lines to keep above and below 
the cursor.</property>
-                    <property name="xalign">0</property>
-                    <style>
-                      <class name="dim-label"/>
-                    </style>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -137,11 +81,4 @@
       </object>
     </child>
   </template>
-  <object class="GtkAdjustment" id="scroll_off_adjustment">
-    <property name="lower">0</property>
-    <property name="upper">999</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">1</property>
-    <property name="value">0</property>
-  </object>
 </interface>


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