[gtk+/wip/matthiasc/filechooser] file chooser: Clean up enum handling
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/filechooser] file chooser: Clean up enum handling
- Date: Fri, 3 Jul 2015 06:17:31 +0000 (UTC)
commit a740aaf8a60e7ee9789a7a8c51a56e89fa0ce223
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Jul 2 14:47:30 2015 -0700
file chooser: Clean up enum handling
Use g_settings_get_set_enum to handle the clock and date format
settings.
gtk/gtkfilechooserprivate.h | 20 ++++++++++--------
gtk/gtkfilechooserwidget.c | 47 ++++++++++++++++++++++--------------------
2 files changed, 36 insertions(+), 31 deletions(-)
---
diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h
index e7b7053..2280da9 100644
--- a/gtk/gtkfilechooserprivate.h
+++ b/gtk/gtkfilechooserprivate.h
@@ -35,16 +35,18 @@
G_BEGIN_DECLS
-#define SETTINGS_KEY_LOCATION_MODE "location-mode"
-#define SETTINGS_KEY_SHOW_HIDDEN "show-hidden"
-#define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column"
-#define SETTINGS_KEY_SORT_COLUMN "sort-column"
-#define SETTINGS_KEY_SORT_ORDER "sort-order"
-#define SETTINGS_KEY_WINDOW_POSITION "window-position"
-#define SETTINGS_KEY_WINDOW_SIZE "window-size"
-#define SETTINGS_KEY_SIDEBAR_WIDTH "sidebar-width"
-#define SETTINGS_KEY_STARTUP_MODE "startup-mode"
+#define SETTINGS_KEY_LOCATION_MODE "location-mode"
+#define SETTINGS_KEY_SHOW_HIDDEN "show-hidden"
+#define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column"
+#define SETTINGS_KEY_SORT_COLUMN "sort-column"
+#define SETTINGS_KEY_SORT_ORDER "sort-order"
+#define SETTINGS_KEY_WINDOW_POSITION "window-position"
+#define SETTINGS_KEY_WINDOW_SIZE "window-size"
+#define SETTINGS_KEY_SIDEBAR_WIDTH "sidebar-width"
+#define SETTINGS_KEY_STARTUP_MODE "startup-mode"
#define SETTINGS_KEY_SORT_DIRECTORIES_FIRST "sort-directories-first"
+#define SETTINGS_KEY_CLOCK_FORMAT "clock-format"
+#define SETTINGS_KEY_DATE_FORMAT "date-format"
#define GTK_FILE_CHOOSER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_FILE_CHOOSER,
GtkFileChooserIface))
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index e545254..83d6ec0 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -201,6 +201,16 @@ typedef enum {
STARTUP_MODE_CWD
} StartupMode;
+typedef enum {
+ CLOCK_FORMAT_24,
+ CLOCK_FORMAT_12
+} ClockFormat;
+
+typedef enum {
+ DATE_FORMAT_REGULAR,
+ DATE_FORMAT_WITH_TIME
+} DateFormat;
+
struct _GtkFileChooserWidgetPrivate {
GtkFileChooserAction action;
@@ -3366,8 +3376,7 @@ settings_load (GtkFileChooserWidget *impl)
gboolean show_hidden;
gboolean show_size_column;
gboolean sort_directories_first;
- gchar *date_format;
- gboolean show_time;
+ DateFormat date_format;
gint sort_column;
GtkSortType sort_order;
StartupMode startup_mode;
@@ -3383,9 +3392,7 @@ settings_load (GtkFileChooserWidget *impl)
sidebar_width = g_settings_get_int (settings, SETTINGS_KEY_SIDEBAR_WIDTH);
startup_mode = g_settings_get_enum (settings, SETTINGS_KEY_STARTUP_MODE);
sort_directories_first = g_settings_get_boolean (settings, SETTINGS_KEY_SORT_DIRECTORIES_FIRST);
- date_format = g_settings_get_string (settings, "date-format");
- show_time = g_strcmp0 (date_format, "with-time") == 0;
- g_free (date_format);
+ date_format = g_settings_get_enum (settings, SETTINGS_KEY_DATE_FORMAT);
gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (impl), show_hidden);
@@ -3396,7 +3403,7 @@ settings_load (GtkFileChooserWidget *impl)
priv->sort_order = sort_order;
priv->startup_mode = startup_mode;
priv->sort_directories_first = sort_directories_first;
- priv->show_time = show_time;
+ priv->show_time = date_format == DATE_FORMAT_WITH_TIME;
/* 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
@@ -3412,7 +3419,6 @@ settings_save (GtkFileChooserWidget *impl)
{
GtkFileChooserWidgetPrivate *priv = impl->priv;
GSettings *settings;
- const gchar *date_format;
settings = _gtk_file_chooser_get_settings_for_widget (GTK_WIDGET (impl));
@@ -3427,9 +3433,7 @@ settings_save (GtkFileChooserWidget *impl)
g_settings_set_enum (settings, SETTINGS_KEY_SORT_ORDER, priv->sort_order);
g_settings_set_int (settings, SETTINGS_KEY_SIDEBAR_WIDTH,
gtk_paned_get_position (GTK_PANED (priv->browse_widgets_hpaned)));
-
- date_format = priv->show_time ? "with-time" : "regular";
- g_settings_set_string (settings, "date-format", date_format);
+ g_settings_set_enum (settings, SETTINGS_KEY_DATE_FORMAT, priv->show_time ? DATE_FORMAT_WITH_TIME :
DATE_FORMAT_REGULAR);
/* Now apply the settings */
g_settings_apply (settings);
@@ -4156,8 +4160,7 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
GtkFileChooserWidgetPrivate *priv = impl->priv;
GDateTime *now, *time;
GTimeSpan time_diff;
- gchar *clock_format;
- gboolean use_24;
+ ClockFormat clock_format;
const gchar *format;
gchar *date_str;
GSettings *settings;
@@ -4165,9 +4168,7 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
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_string (settings, "clock-format");
- use_24 = g_strcmp0 (clock_format, "24h") == 0;
- g_free (clock_format);
+ clock_format = g_settings_get_enum (settings, "clock-format");
now = g_date_time_new_now_local ();
time_diff = g_date_time_difference (now, time);
@@ -4177,8 +4178,10 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
{
if (priv->show_time)
format = "";
+ else if (clock_format == CLOCK_FORMAT_24)
+ format = _("%H:%M");
else
- format = use_24 ? _("%H:%M") : _("%l:%M %p");
+ format = _("%l:%M %p");
}
else if (time_diff >= 0 && time_diff < 2 * G_TIME_SPAN_DAY)
{
@@ -4219,8 +4222,7 @@ my_g_format_time_for_display (GtkFileChooserWidget *impl,
glong secs)
{
GDateTime *time;
- gchar *clock_format;
- gboolean use_24;
+ ClockFormat clock_format;
const gchar *format;
gchar *date_str;
GSettings *settings;
@@ -4228,11 +4230,12 @@ my_g_format_time_for_display (GtkFileChooserWidget *impl,
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_string (settings, "clock-format");
- use_24 = g_strcmp0 (clock_format, "24h") == 0;
- g_free (clock_format);
+ clock_format = g_settings_get_enum (settings, "clock-format");
- format = use_24 ? _("%H:%M") : _("%l:%M %p");
+ if (clock_format == CLOCK_FORMAT_24)
+ format = _("%H:%M");
+ else
+ format = _("%l:%M %p");
date_str = g_date_time_format (time, format);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]