From 5ce8878764a47f0ff9f98f5bc7cc50858229fd72 Mon Sep 17 00:00:00 2001
From: Robert Fewell <14uBobIT@gmail.com>
Date: Wed, 16 Nov 2016 19:13:50 +0000
Subject: [PATCH] Add an unset option to date-format
Added an option of "No Fancy Date Format" to date-format so it can be
the default. In this position, the format returned is that of what ever
the preference date is set to.
---
src/gnome-utils/gnc-date-format.c | 2 +-
src/gnome-utils/gtkbuilder/gnc-date-format.glade | 7 +++++--
src/libqof/qof/gnc-date.c | 8 ++++++++
src/libqof/qof/gnc-date.h | 3 ++-
src/libqof/qof/test/test-gnc-date.c | 3 +++
5 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/gnome-utils/gnc-date-format.c b/src/gnome-utils/gnc-date-format.c
index 27fabba750..f5c4696650 100644
--- a/src/gnome-utils/gnc-date-format.c
+++ b/src/gnome-utils/gnc-date-format.c
@@ -188,7 +188,7 @@ gnc_date_format_init (GNCDateFormat *gdf)
priv->sample_label = GTK_WIDGET(gtk_builder_get_object (builder, "sample_label"));
/* Set initial format to gnucash default */
- gnc_date_format_set_format(gdf, qof_date_format_get());
+ gnc_date_format_set_format(gdf, QOF_DATE_FORMAT_UNSET);
/* pull in the dialog and table widgets and play the reconnect game */
dialog = GTK_WIDGET(gtk_builder_get_object (builder, "GNC Date Format"));
diff --git a/src/gnome-utils/gtkbuilder/gnc-date-format.glade b/src/gnome-utils/gtkbuilder/gnc-date-format.glade
index 6e7469d083..6c2dbb47d5 100644
--- a/src/gnome-utils/gtkbuilder/gnc-date-format.glade
+++ b/src/gnome-utils/gtkbuilder/gnc-date-format.glade
@@ -305,14 +305,17 @@
ISO (2001-12-31)
- UTC
+ Locale
- Locale
+ UTC - Coordinated Universal Time
Custom
+
+ No Fancy Date Format
+
diff --git a/src/libqof/qof/gnc-date.c b/src/libqof/qof/gnc-date.c
index 5f4133c6b1..d23d197aae 100644
--- a/src/libqof/qof/gnc-date.c
+++ b/src/libqof/qof/gnc-date.c
@@ -456,6 +456,8 @@ gnc_date_dateformat_to_string(QofDateFormat format)
return "locale";
case QOF_DATE_FORMAT_CUSTOM:
return "custom";
+ case QOF_DATE_FORMAT_UNSET:
+ return "unset";
default:
return NULL;
}
@@ -481,6 +483,8 @@ gnc_date_string_to_dateformat(const char* fmt_str, QofDateFormat *format)
*format = QOF_DATE_FORMAT_LOCALE;
else if (!strcmp(fmt_str, "custom"))
*format = QOF_DATE_FORMAT_CUSTOM;
+ else if (!strcmp(fmt_str, "unset"))
+ *format = QOF_DATE_FORMAT_UNSET;
else
return TRUE;
@@ -769,6 +773,8 @@ const gchar *qof_date_format_get_string(QofDateFormat df)
return "%Y-%m-%dT%H:%M:%SZ";
case QOF_DATE_FORMAT_ISO:
return "%Y-%m-%d";
+ case QOF_DATE_FORMAT_UNSET: // use global
+ return qof_date_format_get_string (dateFormat);
case QOF_DATE_FORMAT_LOCALE:
default:
break;
@@ -798,6 +804,8 @@ const gchar *qof_date_text_format_get_string(QofDateFormat df)
return "%Y-%m-%dT%H:%M:%SZ";
case QOF_DATE_FORMAT_ISO:
return "%Y-%b-%d";
+ case QOF_DATE_FORMAT_UNSET: // use global
+ return qof_date_text_format_get_string (dateFormat);
case QOF_DATE_FORMAT_LOCALE:
default:
break;
diff --git a/src/libqof/qof/gnc-date.h b/src/libqof/qof/gnc-date.h
index 51fa35366b..acdbe65efd 100644
--- a/src/libqof/qof/gnc-date.h
+++ b/src/libqof/qof/gnc-date.h
@@ -122,7 +122,8 @@ typedef enum
QOF_DATE_FORMAT_ISO, /**< ISO: yyyy-mm-dd */
QOF_DATE_FORMAT_LOCALE, /**< Take from locale information */
QOF_DATE_FORMAT_UTC, /**< UTC: 2004-12-12T23:39:11Z */
- QOF_DATE_FORMAT_CUSTOM /**< Used by the check printing code */
+ QOF_DATE_FORMAT_CUSTOM, /**< Used by the check printing code */
+ QOF_DATE_FORMAT_UNSET /**< No Fancy Date Format, use Global */
} QofDateFormat;
#define DATE_FORMAT_FIRST QOF_DATE_FORMAT_US
diff --git a/src/libqof/qof/test/test-gnc-date.c b/src/libqof/qof/test/test-gnc-date.c
index fa3625d9cc..6aefd3f8d0 100644
--- a/src/libqof/qof/test/test-gnc-date.c
+++ b/src/libqof/qof/test/test-gnc-date.c
@@ -361,6 +361,7 @@ test_gnc_date_dateformat_to_string (void)
g_assert_cmpstr (gnc_date_dateformat_to_string (QOF_DATE_FORMAT_UTC), ==, "utc");
g_assert_cmpstr (gnc_date_dateformat_to_string (QOF_DATE_FORMAT_LOCALE), ==, "locale");
g_assert_cmpstr (gnc_date_dateformat_to_string (QOF_DATE_FORMAT_CUSTOM), ==, "custom");
+ g_assert_cmpstr (gnc_date_dateformat_to_string (QOF_DATE_FORMAT_UNSET), ==, "unset");
}
/* gnc_date_string_to_dateformat
@@ -387,6 +388,8 @@ test_gnc_date_string_to_dateformat (void)
g_assert_cmpint (fmt, ==, QOF_DATE_FORMAT_LOCALE);
g_assert (!gnc_date_string_to_dateformat ("custom", &fmt));
g_assert_cmpint (fmt, ==, QOF_DATE_FORMAT_CUSTOM);
+ g_assert (!gnc_date_string_to_dateformat ("unset", &fmt));
+ g_assert_cmpint (fmt, ==, QOF_DATE_FORMAT_UNSET);
fmt = 123;
g_assert (gnc_date_string_to_dateformat ("", &fmt));
g_assert_cmpint (fmt, ==, 123);