[gnome-builder] Revert "add source change monitor to document, gutter to frame"



commit 5d627a6cb06bb7e96feda84108a477d08c6136f7
Author: Christian Hergert <christian hergert me>
Date:   Fri Nov 28 14:40:00 2014 -0800

    Revert "add source change monitor to document, gutter to frame"
    
    This reverts commit 83ebc410f2c8196bf34477c2d0e9cce3dcbec6e7.

 src/app/gb-application.c                      |   26 ------------
 src/editor/gb-editor-document.c               |   50 ++---------------------
 src/editor/gb-editor-document.h               |   13 ++----
 src/editor/gb-editor-frame.c                  |   53 +++++++------------------
 src/editor/gb-source-change-gutter-renderer.c |    6 +-
 src/editor/gb-source-change-monitor.c         |    8 +---
 6 files changed, 29 insertions(+), 127 deletions(-)
---
diff --git a/src/app/gb-application.c b/src/app/gb-application.c
index 543112e..f3a5fa3 100644
--- a/src/app/gb-application.c
+++ b/src/app/gb-application.c
@@ -27,8 +27,6 @@
 
 #include "gb-application.h"
 #include "gb-editor-file-marks.h"
-#include "gb-editor-document.h"
-#include "gb-editor-frame.h"
 #include "gb-editor-workspace.h"
 #include "gb-log.h"
 #include "gb-keybindings.h"
@@ -349,30 +347,6 @@ gb_application_activate (GApplication *application)
   GbWorkbench *workbench;
   GList *list;
 
-  {
-    GbEditorDocument *document;
-    GtkSourceFile *file;
-    GFile *gfile;
-    GtkWindow *window;
-    GtkWidget *frame;
-
-    file = gtk_source_file_new ();
-    gfile = g_file_new_for_path ("src/app/gb-application.c");
-    gtk_source_file_set_location (file, gfile);
-    g_object_unref (gfile);
-
-    document = g_object_new (GB_TYPE_EDITOR_DOCUMENT, "file", file, NULL);
-    g_object_unref (file);
-
-    window = g_object_new (GTK_TYPE_WINDOW, NULL);
-    frame = g_object_new (GB_TYPE_EDITOR_FRAME,
-                          "document", document,
-                          "visible", TRUE,
-                          NULL);
-    gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (frame));
-    gtk_window_present (window);
-  }
-
   g_return_if_fail (GB_IS_APPLICATION (application));
 
   list = gtk_application_get_windows (GTK_APPLICATION (application));
diff --git a/src/editor/gb-editor-document.c b/src/editor/gb-editor-document.c
index 0c7d7d8..9d61dbb 100644
--- a/src/editor/gb-editor-document.c
+++ b/src/editor/gb-editor-document.c
@@ -25,14 +25,11 @@
 
 struct _GbEditorDocumentPrivate
 {
-  GtkSourceFile         *file;
-  GbSourceChangeMonitor *change_monitor;
-  GBinding              *file_binding;
+  GtkSourceFile *file;
 };
 
 enum {
   PROP_0,
-  PROP_CHANGE_MONITOR,
   PROP_FILE,
   PROP_STYLE_SCHEME_NAME,
   LAST_PROP
@@ -54,14 +51,6 @@ gb_editor_document_new (void)
   return g_object_new (GB_TYPE_EDITOR_DOCUMENT, NULL);
 }
 
-GbSourceChangeMonitor *
-gb_editor_document_get_change_monitor (GbEditorDocument *document)
-{
-  g_return_val_if_fail (GB_IS_EDITOR_DOCUMENT (document), NULL);
-
-  return document->priv->change_monitor;
-}
-
 GtkSourceFile *
 gb_editor_document_get_file (GbEditorDocument *document)
 {
@@ -74,27 +63,13 @@ void
 gb_editor_document_set_file (GbEditorDocument *document,
                              GtkSourceFile    *file)
 {
-  GbEditorDocumentPrivate *priv;
-
   g_return_if_fail (GB_IS_EDITOR_DOCUMENT (document));
   g_return_if_fail (!file || GTK_SOURCE_IS_FILE (file));
 
-  priv = document->priv;
-
-  if (file != priv->file)
+  if (file != document->priv->file)
     {
-      g_clear_object (&priv->file);
-      g_clear_object (&priv->file_binding);
-
-      if (file)
-        {
-          priv->file = g_object_ref (file);
-          priv->file_binding =
-            g_object_bind_property (priv->file, "location",
-                                    priv->change_monitor, "file",
-                                    G_BINDING_SYNC_CREATE);
-        }
-
+      g_clear_object (&document->priv->file);
+      document->priv->file = file ? g_object_ref (file) : NULL;
       g_object_notify_by_pspec (G_OBJECT (document), gParamSpecs [PROP_FILE]);
     }
 }
@@ -142,8 +117,6 @@ gb_editor_document_finalize (GObject *object)
   GbEditorDocumentPrivate *priv = GB_EDITOR_DOCUMENT (object)->priv;
 
   g_clear_object (&priv->file);
-  g_clear_object (&priv->file_binding);
-  g_clear_object (&priv->change_monitor);
 
   G_OBJECT_CLASS(gb_editor_document_parent_class)->finalize (object);
 }
@@ -158,10 +131,6 @@ gb_editor_document_get_property (GObject    *object,
 
   switch (prop_id)
     {
-    case PROP_CHANGE_MONITOR:
-      g_value_set_object (value, gb_editor_document_get_change_monitor (self));
-      break;
-
     case PROP_FILE:
       g_value_set_object (value, gb_editor_document_get_file (self));
       break;
@@ -209,15 +178,6 @@ gb_editor_document_class_init (GbEditorDocumentClass *klass)
   text_buffer_class->mark_set = gb_editor_document_mark_set;
   text_buffer_class->changed = gb_editor_document_changed;
 
-  gParamSpecs [PROP_CHANGE_MONITOR] =
-    g_param_spec_object ("change-monitor",
-                         _("Change Monitor"),
-                         _("The change monitor for the backing file."),
-                         GB_TYPE_SOURCE_CHANGE_MONITOR,
-                         (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (object_class, PROP_CHANGE_MONITOR,
-                                   gParamSpecs [PROP_CHANGE_MONITOR]);
-
   gParamSpecs [PROP_FILE] =
     g_param_spec_object ("file",
                          _("File"),
@@ -252,6 +212,6 @@ static void
 gb_editor_document_init (GbEditorDocument *document)
 {
   document->priv = gb_editor_document_get_instance_private (document);
+
   document->priv->file = gtk_source_file_new ();
-  document->priv->change_monitor = gb_source_change_monitor_new (GTK_TEXT_BUFFER (document));
 }
diff --git a/src/editor/gb-editor-document.h b/src/editor/gb-editor-document.h
index 80d8eda..a03ad1d 100644
--- a/src/editor/gb-editor-document.h
+++ b/src/editor/gb-editor-document.h
@@ -21,8 +21,6 @@
 
 #include <gtksourceview/gtksourcebuffer.h>
 
-#include "gb-source-change-monitor.h"
-
 G_BEGIN_DECLS
 
 #define GB_TYPE_EDITOR_DOCUMENT            (gb_editor_document_get_type())
@@ -52,12 +50,11 @@ struct _GbEditorDocumentClass
   void (*cursor_moved) (GbEditorDocument *document);
 };
 
-GbEditorDocument      *gb_editor_document_new                (void);
-GType                  gb_editor_document_get_type           (void) G_GNUC_CONST;
-GtkSourceFile         *gb_editor_document_get_file           (GbEditorDocument *document);
-void                   gb_editor_document_set_file           (GbEditorDocument *document,
-                                                              GtkSourceFile    *file);
-GbSourceChangeMonitor *gb_editor_document_get_change_monitor (GbEditorDocument *document);
+GbEditorDocument *gb_editor_document_new      (void);
+GType             gb_editor_document_get_type (void) G_GNUC_CONST;
+GtkSourceFile    *gb_editor_document_get_file (GbEditorDocument *document);
+void              gb_editor_document_set_file (GbEditorDocument *document,
+                                               GtkSourceFile    *file);
 
 G_END_DECLS
 
diff --git a/src/editor/gb-editor-frame.c b/src/editor/gb-editor-frame.c
index 50da2bf..8a4c880 100644
--- a/src/editor/gb-editor-frame.c
+++ b/src/editor/gb-editor-frame.c
@@ -22,7 +22,6 @@
 
 #include "gb-editor-frame.h"
 #include "gb-log.h"
-#include "gb-source-change-gutter-renderer.h"
 #include "gb-source-search-highlighter.h"
 #include "gb-source-view.h"
 #include "gd-tagged-entry.h"
@@ -31,25 +30,24 @@
 struct _GbEditorFramePrivate
 {
   /* Widgets owned by GtkBuilder */
-  GtkSpinner                   *busy_spinner;
-  GbSourceChangeGutterRenderer *diff_renderer;
-  NautilusFloatingBar          *floating_bar;
-  GtkButton                    *forward_search;
-  GtkButton                    *backward_search;
-  GtkScrolledWindow            *scrolled_window;
-  GtkRevealer                  *search_revealer;
-  GdTaggedEntry                *search_entry;
-  GdTaggedEntryTag             *search_entry_tag;
-  GbSourceView                 *source_view;
+  GtkSpinner                *busy_spinner;
+  NautilusFloatingBar       *floating_bar;
+  GtkButton                 *forward_search;
+  GtkButton                 *backward_search;
+  GtkScrolledWindow         *scrolled_window;
+  GtkRevealer               *search_revealer;
+  GdTaggedEntry             *search_entry;
+  GdTaggedEntryTag          *search_entry_tag;
+  GbSourceView              *source_view;
 
   /* Objects owned by GbEditorFrame */
-  GbEditorDocument             *document;
-  GtkSourceSearchContext       *search_context;
-  GtkSourceSearchSettings      *search_settings;
-  GbSourceSearchHighlighter    *search_highlighter;
+  GbEditorDocument          *document;
+  GtkSourceSearchContext    *search_context;
+  GtkSourceSearchSettings   *search_settings;
+  GbSourceSearchHighlighter *search_highlighter;
 
   /* Signal handler identifiers */
-  gulong                        cursor_moved_handler;
+  gulong                     cursor_moved_handler;
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE (GbEditorFrame, gb_editor_frame, GTK_TYPE_OVERLAY)
@@ -241,7 +239,6 @@ gb_editor_frame_connect (GbEditorFrame    *frame,
                          GbEditorDocument *document)
 {
   GbEditorFramePrivate *priv;
-  GbSourceChangeMonitor *monitor;
 
   ENTRY;
 
@@ -256,11 +253,6 @@ gb_editor_frame_connect (GbEditorFrame    *frame,
   gtk_text_view_set_buffer (GTK_TEXT_VIEW (priv->source_view),
                             GTK_TEXT_BUFFER (priv->document));
 
-  monitor = gb_editor_document_get_change_monitor (document);
-  g_object_set (priv->diff_renderer,
-                "change-monitor", monitor,
-                NULL);
-
   priv->search_settings = g_object_new (GTK_SOURCE_TYPE_SEARCH_SETTINGS,
                                         NULL);
 
@@ -482,28 +474,11 @@ gb_editor_frame_finalize (GObject *object)
 static void
 gb_editor_frame_constructed (GObject *object)
 {
-  GbSourceChangeMonitor *monitor = NULL;
   GbEditorFramePrivate *priv = GB_EDITOR_FRAME (object)->priv;
-  GtkSourceGutter *gutter;
   GbEditorFrame *frame = GB_EDITOR_FRAME (object);
 
   G_OBJECT_CLASS (gb_editor_frame_parent_class)->constructed (object);
 
-  if (priv->document)
-    monitor = gb_editor_document_get_change_monitor (priv->document);
-
-  gutter = gtk_source_view_get_gutter (GTK_SOURCE_VIEW (priv->source_view),
-                                       GTK_TEXT_WINDOW_LEFT);
-  priv->diff_renderer = g_object_new (GB_TYPE_SOURCE_CHANGE_GUTTER_RENDERER,
-                                      "change-monitor", monitor,
-                                      "size", 2,
-                                      "visible", TRUE,
-                                      "xpad", 1,
-                                      NULL);
-  gtk_source_gutter_insert (gutter,
-                            GTK_SOURCE_GUTTER_RENDERER (priv->diff_renderer),
-                            0);
-
   g_signal_connect_object (priv->source_view,
                            "focus-in-event",
                            G_CALLBACK (gb_editor_frame_on_focus_in_event),
diff --git a/src/editor/gb-source-change-gutter-renderer.c b/src/editor/gb-source-change-gutter-renderer.c
index 4f040b8..b79f424 100644
--- a/src/editor/gb-source-change-gutter-renderer.c
+++ b/src/editor/gb-source-change-gutter-renderer.c
@@ -90,8 +90,6 @@ gb_source_change_gutter_renderer_set_change_monitor (GbSourceChangeGutterRendere
                         G_CALLBACK (on_changed),
                         renderer);
     }
-
-  gtk_source_gutter_renderer_queue_draw (GTK_SOURCE_GUTTER_RENDERER (renderer));
 }
 
 static void
@@ -198,7 +196,9 @@ gb_source_change_gutter_renderer_class_init (GbSourceChangeGutterRendererClass *
                          _("Change Monitor"),
                          _("The change monitor for the gutter renderer."),
                          GB_TYPE_SOURCE_CHANGE_MONITOR,
-                         (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+                         (G_PARAM_READWRITE |
+                          G_PARAM_CONSTRUCT_ONLY |
+                          G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (object_class, PROP_CHANGE_MONITOR,
                                    gParamSpecs [PROP_CHANGE_MONITOR]);
 }
diff --git a/src/editor/gb-source-change-monitor.c b/src/editor/gb-source-change-monitor.c
index 0805bc2..cb27e79 100644
--- a/src/editor/gb-source-change-monitor.c
+++ b/src/editor/gb-source-change-monitor.c
@@ -484,16 +484,12 @@ gb_source_change_monitor_set_buffer (GbSourceChangeMonitor *monitor,
     {
       g_signal_handler_disconnect (priv->buffer, priv->changed_handler);
       priv->changed_handler = 0;
-      g_object_remove_weak_pointer (G_OBJECT (priv->buffer),
-                                    (gpointer *)&priv->buffer);
+      g_clear_object (&priv->buffer);
     }
 
   if (buffer)
     {
-      priv->buffer = buffer;
-      g_object_add_weak_pointer (G_OBJECT (priv->buffer),
-                                 (gpointer *)&priv->buffer);
-
+      priv->buffer = g_object_ref (buffer);
       priv->changed_handler =
         g_signal_connect_object (priv->buffer,
                                  "changed",


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