[gnome-logs] Pass GlRowEntry objects from model to view



commit 0a7fd4c44a7b1cae314aaec0d4048c16d636fe91
Author: Pranav Ganorkar <pranavg189 gmail com>
Date:   Fri Jun 9 15:49:15 2017 +0530

    Pass GlRowEntry objects from model to view
    
    The model array is populated with GlRowEntry objects. The view
    classes now interact with GlJournalEntry through GlRowEntry
    objects.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=709294

 src/gl-eventview.c       |    2 +-
 src/gl-eventviewdetail.c |   12 +++++++-----
 src/gl-eventviewdetail.h |    3 ++-
 src/gl-eventviewlist.c   |    4 ++--
 src/gl-eventviewlist.h   |    3 ++-
 src/gl-eventviewrow.c    |   37 +++++++++++++++++++++++++++----------
 src/gl-eventviewrow.h    |    5 +++--
 src/gl-journal-model.c   |    9 +++++++--
 8 files changed, 51 insertions(+), 24 deletions(-)
---
diff --git a/src/gl-eventview.c b/src/gl-eventview.c
index 52d511c..86ba415 100644
--- a/src/gl-eventview.c
+++ b/src/gl-eventview.c
@@ -47,7 +47,7 @@ struct _GlEventView
 typedef struct
 {
     GtkWidget *events;
-    GlJournalEntry *entry;
+    GlRowEntry *entry;
     GlUtilClockFormat clock_format;
     GlEventViewMode mode;
 } GlEventViewPrivate;
diff --git a/src/gl-eventviewdetail.c b/src/gl-eventviewdetail.c
index ab85f30..aaafad5 100644
--- a/src/gl-eventviewdetail.c
+++ b/src/gl-eventviewdetail.c
@@ -39,7 +39,7 @@ struct _GlEventViewDetail
 
 typedef struct
 {
-    GlJournalEntry *entry;
+    GlRowEntry *entry;
     GlUtilClockFormat clock_format;
     GtkWidget *grid;
     GtkWidget *comm_image;
@@ -71,6 +71,7 @@ gl_event_view_detail_create_detail (GlEventViewDetail *detail)
 {
     GlEventViewDetailPrivate *priv;
     GlJournalEntry *entry;
+    GlRowEntry *row_entry;
     gchar *str;
     gchar *str_field;
     gchar *str_message;
@@ -79,7 +80,8 @@ gl_event_view_detail_create_detail (GlEventViewDetail *detail)
 
     priv = gl_event_view_detail_get_instance_private (detail);
 
-    entry = priv->entry;
+    row_entry = priv->entry;
+    entry = gl_row_entry_get_journal_entry (row_entry);
 
     /* Force LTR direction also for RTL languages */
     gtk_widget_set_direction (priv->grid, GTK_TEXT_DIR_LTR);
@@ -427,8 +429,8 @@ gl_event_view_detail_class_init (GlEventViewDetailClass *klass)
                                                            G_PARAM_STATIC_STRINGS);
 
     obj_properties[PROP_ENTRY] = g_param_spec_object ("entry", "Entry",
-                                                      "Journal entry for this detailed view",
-                                                      GL_TYPE_JOURNAL_ENTRY,
+                                                      "Row entry for this detailed view",
+                                                      GL_TYPE_ROW_ENTRY,
                                                       G_PARAM_READWRITE |
                                                       G_PARAM_CONSTRUCT_ONLY |
                                                       G_PARAM_STATIC_STRINGS);
@@ -485,7 +487,7 @@ gl_event_view_detail_init (GlEventViewDetail *detail)
 }
 
 GtkWidget *
-gl_event_view_detail_new (GlJournalEntry *entry,
+gl_event_view_detail_new (GlRowEntry *entry,
                           GlUtilClockFormat clock_format)
 {
     return g_object_new (GL_TYPE_EVENT_VIEW_DETAIL, "entry", entry,
diff --git a/src/gl-eventviewdetail.h b/src/gl-eventviewdetail.h
index 7998b9d..333aa8c 100644
--- a/src/gl-eventviewdetail.h
+++ b/src/gl-eventviewdetail.h
@@ -24,12 +24,13 @@
 G_BEGIN_DECLS
 
 #include "gl-journal.h"
+#include "gl-journal-model.h"
 #include "gl-util.h"
 
 #define GL_TYPE_EVENT_VIEW_DETAIL (gl_event_view_detail_get_type ())
 G_DECLARE_FINAL_TYPE (GlEventViewDetail, gl_event_view_detail, GL, EVENT_VIEW_DETAIL, GtkBin)
 
-GtkWidget * gl_event_view_detail_new (GlJournalEntry *result, GlUtilClockFormat clock_format);
+GtkWidget * gl_event_view_detail_new (GlRowEntry *result, GlUtilClockFormat clock_format);
 
 G_END_DECLS
 
diff --git a/src/gl-eventviewlist.c b/src/gl-eventviewlist.c
index 6d96cf5..ae16419 100644
--- a/src/gl-eventviewlist.c
+++ b/src/gl-eventviewlist.c
@@ -41,7 +41,7 @@ struct _GlEventViewList
 typedef struct
 {
     GlJournalModel *journal_model;
-    GlJournalEntry *entry;
+    GlRowEntry *entry;
     GlUtilClockFormat clock_format;
     GtkListBox *entries_box;
     GtkSizeGroup *category_sizegroup;
@@ -189,7 +189,7 @@ on_listbox_row_activated (GtkListBox *listbox,
     }
 }
 
-GlJournalEntry *
+GlRowEntry *
 gl_event_view_list_get_detail_entry (GlEventViewList *view)
 {
     GlEventViewListPrivate *priv;
diff --git a/src/gl-eventviewlist.h b/src/gl-eventviewlist.h
index 9c96870..8a39eb2 100644
--- a/src/gl-eventviewlist.h
+++ b/src/gl-eventviewlist.h
@@ -23,6 +23,7 @@
 
 #include "gl-application.h"
 #include "gl-journal.h"
+#include "gl-journal-model.h"
 
 G_BEGIN_DECLS
 
@@ -30,7 +31,7 @@ G_BEGIN_DECLS
 G_DECLARE_FINAL_TYPE (GlEventViewList, gl_event_view_list, GL, EVENT_VIEW_LIST, GtkListBox)
 
 GtkWidget * gl_event_view_list_new (void);
-GlJournalEntry *gl_event_view_list_get_detail_entry (GlEventViewList *view);
+GlRowEntry *gl_event_view_list_get_detail_entry (GlEventViewList *view);
 gboolean gl_event_view_list_handle_search_event (GlEventViewList *view,
                                                  GAction *action,
                                                  GdkEvent *event);
diff --git a/src/gl-eventviewrow.c b/src/gl-eventviewrow.c
index bbf4141..399fb8e 100644
--- a/src/gl-eventviewrow.c
+++ b/src/gl-eventviewrow.c
@@ -43,7 +43,7 @@ typedef struct
 {
     GlEventViewRowCategory category;
     GlUtilClockFormat clock_format;
-    GlJournalEntry *entry;
+    GlRowEntry *entry;
     GtkWidget *category_label;
     GtkWidget *message_label;
     GtkWidget *time_label;
@@ -57,30 +57,45 @@ const gchar *
 gl_event_view_row_get_command_line (GlEventViewRow *row)
 {
     GlEventViewRowPrivate *priv;
+    GlRowEntry *row_entry;
+    GlJournalEntry *entry;
 
     priv = gl_event_view_row_get_instance_private (row);
 
-    return gl_journal_entry_get_command_line (priv->entry);
+    row_entry = priv->entry;
+    entry = gl_row_entry_get_journal_entry (row_entry);
+
+    return gl_journal_entry_get_command_line (entry);
 }
 
 guint64
 gl_event_view_row_get_timestamp (GlEventViewRow *row)
 {
     GlEventViewRowPrivate *priv;
+    GlRowEntry *row_entry;
+    GlJournalEntry *entry;
 
     priv = gl_event_view_row_get_instance_private (row);
 
-    return gl_journal_entry_get_timestamp (priv->entry);
+    row_entry = priv->entry;
+    entry = gl_row_entry_get_journal_entry (row_entry);
+
+    return gl_journal_entry_get_timestamp (entry);
 }
 
 const gchar *
 gl_event_view_row_get_message (GlEventViewRow *row)
 {
     GlEventViewRowPrivate *priv;
+    GlRowEntry *row_entry;
+    GlJournalEntry *entry;
 
     priv = gl_event_view_row_get_instance_private (row);
 
-    return gl_journal_entry_get_message (priv->entry);
+    row_entry = priv->entry;
+    entry = gl_row_entry_get_journal_entry (row_entry);
+
+    return gl_journal_entry_get_message (entry);
 }
 
 GtkWidget *
@@ -257,14 +272,16 @@ gl_event_view_row_constructed (GObject *object)
     gboolean rtl;
     GlEventViewRowCategory category;
     GlUtilClockFormat tmp_clock_format;
-    GlJournalEntry *tmp_entry;
+    GlRowEntry *tmp_entry;
     GlJournalEntry *entry;
+    GlRowEntry *row_entry;
     GDateTime *now;
     GlEventViewRow *row = GL_EVENT_VIEW_ROW (object);
     GlEventViewRowPrivate *priv;
 
     priv = gl_event_view_row_get_instance_private (row);
-    entry = priv->entry;
+    row_entry = priv->entry;
+    entry = gl_row_entry_get_journal_entry (row_entry);
 
     rtl = (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL);
 
@@ -374,8 +391,8 @@ gl_event_view_row_class_init (GlEventViewRowClass *klass)
                                                            G_PARAM_STATIC_STRINGS);
 
     obj_properties[PROP_ENTRY] = g_param_spec_object ("entry", "Entry",
-                                                      "Journal entry for this row",
-                                                      GL_TYPE_JOURNAL_ENTRY,
+                                                      "Row entry for this row",
+                                                      GL_TYPE_ROW_ENTRY,
                                                       G_PARAM_READWRITE |
                                                       G_PARAM_CONSTRUCT_ONLY |
                                                       G_PARAM_STATIC_STRINGS);
@@ -391,7 +408,7 @@ gl_event_view_row_init (GlEventViewRow *row)
      * at _init() time the construct-only properties have not been set. */
 }
 
-GlJournalEntry *
+GlRowEntry *
 gl_event_view_row_get_entry (GlEventViewRow *row)
 {
     GlEventViewRowPrivate *priv;
@@ -404,7 +421,7 @@ gl_event_view_row_get_entry (GlEventViewRow *row)
 }
 
 GtkWidget *
-gl_event_view_row_new (GlJournalEntry *entry,
+gl_event_view_row_new (GlRowEntry *entry,
                        GlUtilClockFormat clock_format,
                        GlEventViewRowCategory category)
 {
diff --git a/src/gl-eventviewrow.h b/src/gl-eventviewrow.h
index 63ffcd4..eb52c69 100644
--- a/src/gl-eventviewrow.h
+++ b/src/gl-eventviewrow.h
@@ -24,6 +24,7 @@
 G_BEGIN_DECLS
 
 #include "gl-journal.h"
+#include "gl-journal-model.h"
 #include "gl-util.h"
 
 /*
@@ -43,8 +44,8 @@ typedef enum
 #define GL_TYPE_EVENT_VIEW_ROW (gl_event_view_row_get_type ())
 G_DECLARE_FINAL_TYPE (GlEventViewRow, gl_event_view_row, GL, EVENT_VIEW_ROW, GtkListBoxRow)
 
-GtkWidget * gl_event_view_row_new (GlJournalEntry *entry, GlUtilClockFormat clock_format, 
GlEventViewRowCategory category);
-GlJournalEntry * gl_event_view_row_get_entry (GlEventViewRow *row);
+GtkWidget * gl_event_view_row_new (GlRowEntry *entry, GlUtilClockFormat clock_format, GlEventViewRowCategory 
category);
+GlRowEntry * gl_event_view_row_get_entry (GlEventViewRow *row);
 const gchar * gl_event_view_row_get_command_line (GlEventViewRow *row);
 const gchar * gl_event_view_row_get_message (GlEventViewRow *row);
 guint64 gl_event_view_row_get_timestamp (GlEventViewRow *row);
diff --git a/src/gl-journal-model.c b/src/gl-journal-model.c
index 802fc4a..83e3b25 100644
--- a/src/gl-journal-model.c
+++ b/src/gl-journal-model.c
@@ -89,6 +89,7 @@ gl_journal_model_fetch_idle (gpointer user_data)
 {
     GlJournalModel *model = user_data;
     GlJournalEntry *entry;
+    GlRowEntry *row_entry;
     guint last;
 
     g_assert (model->n_entries_to_fetch > 0);
@@ -99,7 +100,11 @@ gl_journal_model_fetch_idle (gpointer user_data)
         if (search_in_entry (entry, model))
         {
             model->n_entries_to_fetch--;
-            g_ptr_array_add (model->entries, entry);
+
+            row_entry = gl_row_entry_new ();
+            row_entry->journal_entry = entry;
+
+            g_ptr_array_add (model->entries, row_entry);
 
             if (model->query->order == GL_SORT_ORDER_ASCENDING_TIME)
             {
@@ -194,7 +199,7 @@ gl_journal_model_dispose (GObject *object)
 static GType
 gl_journal_model_get_item_type (GListModel *list)
 {
-  return GL_TYPE_JOURNAL_ENTRY;
+  return GL_TYPE_ROW_ENTRY;
 }
 
 static guint


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