[gtk] filechooserwidget: Only query clock-format setting once



commit 074a0014c1c0c792458c263e9cb660fcfdc662bf
Author: Timm Bäder <mail baedert org>
Date:   Tue Apr 30 06:43:42 2019 +0200

    filechooserwidget: Only query clock-format setting once
    
    We don't support that setting life-updating anyway. So, instead of
    getting the value *every time we format a time*, get it once for the
    filechooserwidget and reuse that value.

 gtk/gtkfilechooserwidget.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)
---
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index fe8b2af541..ad0ebf8991 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -348,6 +348,8 @@ struct _GtkFileChooserWidgetPrivate {
   gint sort_column;
   GtkSortType sort_order;
 
+  ClockFormat clock_format;
+
   /* Flags */
 
   guint local_only : 1;
@@ -3693,6 +3695,7 @@ settings_load (GtkFileChooserWidget *impl)
   priv->startup_mode = startup_mode;
   priv->sort_directories_first = sort_directories_first;
   priv->show_time = date_format == DATE_FORMAT_WITH_TIME;
+  priv->clock_format = g_settings_get_enum (settings, "clock-format");
 
   /* We don't call set_sort_column() here as the models may not have been
    * created yet.  The individual functions that create and set the models will
@@ -4569,13 +4572,11 @@ static char *
 my_g_format_date_for_display (GtkFileChooserWidget *impl,
                               glong                 secs)
 {
-  GtkFileChooserWidgetPrivate *priv = impl->priv;
+  GtkFileChooserWidgetPrivate *priv = gtk_file_chooser_widget_get_instance_private (impl);
   GDateTime *now, *time;
   GDateTime *now_date, *date;
-  ClockFormat clock_format;
   const gchar *format;
   gchar *date_str;
-  GSettings *settings;
   gint days_ago;
 
   time = g_date_time_new_from_unix_local (secs);
@@ -4584,9 +4585,6 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
                                 g_date_time_get_day_of_month (time),
                                 0, 0, 0);
 
-  settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (impl));
-  clock_format = g_settings_get_enum (settings, "clock-format");
-
   now = g_date_time_new_now_local ();
   now_date = g_date_time_new_local (g_date_time_get_year (now),
                                     g_date_time_get_month (now),
@@ -4598,7 +4596,7 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
     {
       if (priv->show_time)
         format = "";
-      else if (clock_format == CLOCK_FORMAT_24)
+      else if (priv->clock_format == CLOCK_FORMAT_24)
         /* Translators: see g_date_time_format() for details on the format */
         format = _("%H:%M");
       else
@@ -4636,18 +4634,14 @@ static char *
 my_g_format_time_for_display (GtkFileChooserWidget *impl,
                               glong                 secs)
 {
+  GtkFileChooserWidgetPrivate *priv = gtk_file_chooser_widget_get_instance_private (impl);
   GDateTime *time;
-  ClockFormat clock_format;
   const gchar *format;
   gchar *date_str;
-  GSettings *settings;
 
   time = g_date_time_new_from_unix_local (secs);
 
-  settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (impl));
-  clock_format = g_settings_get_enum (settings, "clock-format");
-
-  if (clock_format == CLOCK_FORMAT_24)
+  if (priv->clock_format == CLOCK_FORMAT_24)
     format = _("%H:%M");
   else
     format = _("%l:%M %p");


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