[gnome-logs] Pass GlRowEntry objects from model to view
- From: Jonathan Kang <jonathankang src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-logs] Pass GlRowEntry objects from model to view
- Date: Thu, 29 Jun 2017 07:57:56 +0000 (UTC)
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]