diff options
author | David King <davidk@gnome.org> | 2013-10-28 15:15:10 +0000 |
---|---|---|
committer | David King <davidk@gnome.org> | 2013-10-28 15:17:01 +0000 |
commit | 60d7c1f738ee406491a3583ed11feca4771594aa (patch) | |
tree | 477cf48516210154a6d241695010f6d16b67f3ff /src/gl-eventview.c | |
parent | 619a1c700c192cc4ebc65f82a5a31c8ea8a57406 (diff) | |
download | gnome-logs-60d7c1f738ee406491a3583ed11feca4771594aa.tar.gz |
Use the system 12/24 hour clock setting
Use the clock-format key in org.gnome.desktop.interface to control
whether timestamps are shown in 12 hour or 24 hour format.
https://bugzilla.gnome.org/show_bug.cgi?id=710728
Diffstat (limited to 'src/gl-eventview.c')
-rw-r--r-- | src/gl-eventview.c | 93 |
1 files changed, 47 insertions, 46 deletions
diff --git a/src/gl-eventview.c b/src/gl-eventview.c index 74b4208..74cf4a2 100644 --- a/src/gl-eventview.c +++ b/src/gl-eventview.c @@ -39,6 +39,7 @@ enum typedef struct { GlJournal *journal; + GlUtilClockFormat clock_format; GlEventViewFilter filter; GtkListBox *active_listbox; GlEventViewMode mode; @@ -49,6 +50,8 @@ G_DEFINE_TYPE_WITH_PRIVATE (GlEventView, gl_event_view, GTK_TYPE_STACK) static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, }; static const guint N_RESULTS = 50; +static const gchar DESKTOP_SCHEMA[] = "org.gnome.desktop.interface"; +static const gchar CLOCK_FORMAT[] = "clock-format"; static gboolean gl_event_view_search_is_case_sensitive (GlEventView *view) @@ -206,8 +209,9 @@ on_listbox_row_activated (GtkListBox *listbox, gtk_style_context_add_class (context, "detail-comm"); gtk_grid_attach (GTK_GRID (grid), label, rtl ? 1 : 0, 0, 1, 1); - time = gl_util_timestamp_to_display (result->timestamp); - label = gtk_label_new (gl_util_timestamp_to_display (result->timestamp)); + time = gl_util_timestamp_to_display (result->timestamp, + priv->clock_format); + label = gtk_label_new (time); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_label_set_selectable (GTK_LABEL (label), TRUE); context = gtk_widget_get_style_context (label); @@ -462,15 +466,17 @@ gl_event_view_class_init (GlEventViewClass *klass) } static void -insert_journal_query_devices (GlJournal *journal, +insert_journal_query_devices (GlEventView *view, const GlJournalQuery *query, GtkListBox *listbox) { + GlEventViewPrivate *priv; GList *results = NULL; GList *l; gsize n_results; - results = gl_journal_query (journal, query); + priv = gl_event_view_get_instance_private (view); + results = gl_journal_query (priv->journal, query); n_results = g_list_length (results); @@ -516,7 +522,8 @@ insert_journal_query_devices (GlJournal *journal, gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1); - time = gl_util_timestamp_to_display (result.timestamp); + time = gl_util_timestamp_to_display (result.timestamp, + priv->clock_format); label = gtk_label_new (time); context = gtk_widget_get_style_context (GTK_WIDGET (label)); gtk_style_context_add_class (context, "dim-label"); @@ -534,19 +541,21 @@ insert_journal_query_devices (GlJournal *journal, g_free (time); } - gl_journal_results_free (journal, results); + gl_journal_results_free (priv->journal, results); } static void -insert_journal_query_security (GlJournal *journal, +insert_journal_query_security (GlEventView *view, const GlJournalQuery *query, GtkListBox *listbox) { + GlEventViewPrivate *priv; GList *results = NULL; GList *l; gsize n_results; - results = gl_journal_query (journal, query); + priv = gl_event_view_get_instance_private (view); + results = gl_journal_query (priv->journal, query); n_results = g_list_length (results); @@ -604,7 +613,8 @@ insert_journal_query_security (GlJournal *journal, gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 2, 1); - time = gl_util_timestamp_to_display (result.timestamp); + time = gl_util_timestamp_to_display (result.timestamp, + priv->clock_format); label = gtk_label_new (time); context = gtk_widget_get_style_context (GTK_WIDGET (label)); gtk_style_context_add_class (context, "dim-label"); @@ -622,19 +632,21 @@ insert_journal_query_security (GlJournal *journal, g_free (time); } - gl_journal_results_free (journal, results); + gl_journal_results_free (priv->journal, results); } static void -insert_journal_query_simple (GlJournal *journal, +insert_journal_query_simple (GlEventView *view, const GlJournalQuery *query, GtkListBox *listbox) { + GlEventViewPrivate *priv; GList *results = NULL; GList *l; gsize n_results; - results = gl_journal_query (journal, query); + priv = gl_event_view_get_instance_private (view); + results = gl_journal_query (priv->journal, query); n_results = g_list_length (results); @@ -674,7 +686,8 @@ insert_journal_query_simple (GlJournal *journal, gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1); - time = gl_util_timestamp_to_display (result.timestamp); + time = gl_util_timestamp_to_display (result.timestamp, + priv->clock_format); label = gtk_label_new (time); context = gtk_widget_get_style_context (GTK_WIDGET (label)); gtk_style_context_add_class (context, "dim-label"); @@ -692,19 +705,21 @@ insert_journal_query_simple (GlJournal *journal, g_free (time); } - gl_journal_results_free (journal, results); + gl_journal_results_free (priv->journal, results); } static void -insert_journal_query_cmdline (GlJournal *journal, +insert_journal_query_cmdline (GlEventView *view, const GlJournalQuery *query, GtkListBox *listbox) { + GlEventViewPrivate *priv; GList *results = NULL; GList *l; gsize n_results; - results = gl_journal_query (journal, query); + priv = gl_event_view_get_instance_private (view); + results = gl_journal_query (priv->journal, query); n_results = g_list_length (results); @@ -755,7 +770,8 @@ insert_journal_query_cmdline (GlJournal *journal, gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 2, 1); - time = gl_util_timestamp_to_display (result.timestamp); + time = gl_util_timestamp_to_display (result.timestamp, + priv->clock_format); label = gtk_label_new (time); context = gtk_widget_get_style_context (GTK_WIDGET (label)); gtk_style_context_add_class (context, "dim-label"); @@ -773,7 +789,7 @@ insert_journal_query_cmdline (GlJournal *journal, g_free (time); } - gl_journal_results_free (journal, results); + gl_journal_results_free (priv->journal, results); } static GtkWidget * @@ -829,7 +845,6 @@ gl_event_view_list_box_new (GlEventView *view) static void gl_event_view_add_listbox_important (GlEventView *view) { - GlEventViewPrivate *priv; /* Alert or emergency priority. */ const GlJournalQuery query = { N_RESULTS, (gchar*[5]){ "PRIORITY=0", @@ -840,11 +855,9 @@ gl_event_view_add_listbox_important (GlEventView *view) GtkWidget *listbox; GtkWidget *scrolled; - priv = gl_event_view_get_instance_private (view); - listbox = gl_event_view_list_box_new (view); - insert_journal_query_cmdline (priv->journal, &query, + insert_journal_query_cmdline (view, &query, GTK_LIST_BOX (listbox)); scrolled = gtk_scrolled_window_new (NULL, NULL); @@ -876,17 +889,13 @@ gl_event_view_add_listbox_starred (GlEventView *view) static void gl_event_view_add_listbox_all (GlEventView *view) { - GlEventViewPrivate *priv; const GlJournalQuery query = { N_RESULTS, NULL }; GtkWidget *listbox; GtkWidget *scrolled; - priv = gl_event_view_get_instance_private (view); - listbox = gl_event_view_list_box_new (view); - insert_journal_query_cmdline (priv->journal, &query, - GTK_LIST_BOX (listbox)); + insert_journal_query_cmdline (view, &query, GTK_LIST_BOX (listbox)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrolled), listbox); @@ -897,14 +906,11 @@ gl_event_view_add_listbox_all (GlEventView *view) static void gl_event_view_add_listbox_applications (GlEventView *view) { - GlEventViewPrivate *priv; GCredentials *creds; uid_t uid; GtkWidget *listbox; GtkWidget *scrolled; - priv = gl_event_view_get_instance_private (view); - listbox = gl_event_view_list_box_new (view); creds = g_credentials_new (); uid = g_credentials_get_unix_user (creds, NULL); @@ -924,7 +930,7 @@ gl_event_view_add_listbox_applications (GlEventView *view) "_TRANSPORT=syslog", uid_str, NULL } }; - insert_journal_query_cmdline (priv->journal, &query, + insert_journal_query_cmdline (view, &query, GTK_LIST_BOX (listbox)); } @@ -937,8 +943,7 @@ gl_event_view_add_listbox_applications (GlEventView *view) "_TRANSPORT=stdout", "_TRANSPORT=syslog", NULL } }; - insert_journal_query_cmdline (priv->journal, &query, - GTK_LIST_BOX (listbox)); + insert_journal_query_cmdline (view, &query, GTK_LIST_BOX (listbox)); } scrolled = gtk_scrolled_window_new (NULL, NULL); @@ -952,17 +957,14 @@ gl_event_view_add_listbox_applications (GlEventView *view) static void gl_event_view_add_listbox_system (GlEventView *view) { - GlEventViewPrivate *priv; GlJournalQuery query = { N_RESULTS, (gchar *[2]){ "_TRANSPORT=kernel", NULL } }; GtkWidget *listbox; GtkWidget *scrolled; - priv = gl_event_view_get_instance_private (view); listbox = gl_event_view_list_box_new (view); - insert_journal_query_simple (priv->journal, &query, - GTK_LIST_BOX (listbox)); + insert_journal_query_simple (view, &query, GTK_LIST_BOX (listbox)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrolled), listbox); @@ -973,17 +975,14 @@ gl_event_view_add_listbox_system (GlEventView *view) static void gl_event_view_add_listbox_hardware (GlEventView *view) { - GlEventViewPrivate *priv; GlJournalQuery query = { N_RESULTS, (gchar *[2]){ "_TRANSPORT=kernel", NULL } }; GtkWidget *listbox; GtkWidget *scrolled; - priv = gl_event_view_get_instance_private (view); listbox = gl_event_view_list_box_new (view); - insert_journal_query_devices (priv->journal, &query, - GTK_LIST_BOX (listbox)); + insert_journal_query_devices (view, &query, GTK_LIST_BOX (listbox)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrolled), listbox); @@ -994,17 +993,13 @@ gl_event_view_add_listbox_hardware (GlEventView *view) static void gl_event_view_add_listbox_security (GlEventView *view) { - GlEventViewPrivate *priv; const GlJournalQuery query = { N_RESULTS, NULL }; GtkWidget *listbox; GtkWidget *scrolled; - priv = gl_event_view_get_instance_private (view); - listbox = gl_event_view_list_box_new (view); - insert_journal_query_security (priv->journal, &query, - GTK_LIST_BOX (listbox)); + insert_journal_query_security (view, &query, GTK_LIST_BOX (listbox)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrolled), listbox); @@ -1036,12 +1031,18 @@ static void gl_event_view_init (GlEventView *view) { GlEventViewPrivate *priv; + GSettings *settings; priv = gl_event_view_get_instance_private (view); priv->search_text = NULL; priv->active_listbox = NULL; priv->journal = gl_journal_new (); + /* TODO: Monitor and propagate any GSettings changes. */ + settings = g_settings_new (DESKTOP_SCHEMA); + priv->clock_format = g_settings_get_enum (settings, CLOCK_FORMAT); + g_object_unref (settings); + gl_event_view_add_listbox_important (view); gl_event_view_add_listbox_alerts (view); gl_event_view_add_listbox_starred (view); |