app: parse the release date for the last release.
I was mistakenly using the date of the last check, not the release date.
(cherry picked from commit d5febf6e62
)
This commit is contained in:
@ -129,6 +129,7 @@ enum
|
|||||||
PROP_DEBUG_POLICY,
|
PROP_DEBUG_POLICY,
|
||||||
PROP_CHECK_UPDATES,
|
PROP_CHECK_UPDATES,
|
||||||
PROP_CHECK_UPDATE_TIMESTAMP,
|
PROP_CHECK_UPDATE_TIMESTAMP,
|
||||||
|
PROP_LAST_RELEASE_TIMESTAMP,
|
||||||
PROP_LAST_KNOWN_RELEASE,
|
PROP_LAST_KNOWN_RELEASE,
|
||||||
|
|
||||||
/* ignored, only for backward compatibility: */
|
/* ignored, only for backward compatibility: */
|
||||||
@ -692,6 +693,13 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
|
|||||||
0, G_MAXINT64, 0,
|
0, G_MAXINT64, 0,
|
||||||
GIMP_PARAM_STATIC_STRINGS);
|
GIMP_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
|
GIMP_CONFIG_PROP_INT64 (object_class, PROP_LAST_RELEASE_TIMESTAMP,
|
||||||
|
"last-release-timestamp",
|
||||||
|
"timestamp of the last release",
|
||||||
|
LAST_RELEASE_TIMESTAMP_BLURB,
|
||||||
|
0, G_MAXINT64, 0,
|
||||||
|
GIMP_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
GIMP_CONFIG_PROP_STRING (object_class, PROP_LAST_KNOWN_RELEASE,
|
GIMP_CONFIG_PROP_STRING (object_class, PROP_LAST_KNOWN_RELEASE,
|
||||||
"last-known-release",
|
"last-known-release",
|
||||||
"last known release of GIMP",
|
"last known release of GIMP",
|
||||||
@ -1076,6 +1084,9 @@ gimp_core_config_set_property (GObject *object,
|
|||||||
case PROP_CHECK_UPDATE_TIMESTAMP:
|
case PROP_CHECK_UPDATE_TIMESTAMP:
|
||||||
core_config->check_update_timestamp = g_value_get_int64 (value);
|
core_config->check_update_timestamp = g_value_get_int64 (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_LAST_RELEASE_TIMESTAMP:
|
||||||
|
core_config->last_release_timestamp = g_value_get_int64 (value);
|
||||||
|
break;
|
||||||
case PROP_LAST_KNOWN_RELEASE:
|
case PROP_LAST_KNOWN_RELEASE:
|
||||||
core_config->last_known_release = g_value_dup_string (value);
|
core_config->last_known_release = g_value_dup_string (value);
|
||||||
break;
|
break;
|
||||||
@ -1294,6 +1305,9 @@ gimp_core_config_get_property (GObject *object,
|
|||||||
case PROP_CHECK_UPDATE_TIMESTAMP:
|
case PROP_CHECK_UPDATE_TIMESTAMP:
|
||||||
g_value_set_int64 (value, core_config->check_update_timestamp);
|
g_value_set_int64 (value, core_config->check_update_timestamp);
|
||||||
break;
|
break;
|
||||||
|
case PROP_LAST_RELEASE_TIMESTAMP:
|
||||||
|
g_value_set_int64 (value, core_config->last_release_timestamp);
|
||||||
|
break;
|
||||||
case PROP_LAST_KNOWN_RELEASE:
|
case PROP_LAST_KNOWN_RELEASE:
|
||||||
g_value_set_string (value, core_config->last_known_release);
|
g_value_set_string (value, core_config->last_known_release);
|
||||||
break;
|
break;
|
||||||
|
@ -106,6 +106,7 @@ struct _GimpCoreConfig
|
|||||||
gboolean check_updates;
|
gboolean check_updates;
|
||||||
gint64 check_update_timestamp;
|
gint64 check_update_timestamp;
|
||||||
gchar *last_known_release;
|
gchar *last_known_release;
|
||||||
|
gint64 last_release_timestamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GimpCoreConfigClass
|
struct _GimpCoreConfigClass
|
||||||
|
@ -267,6 +267,9 @@ _("The last known release version of GIMP as queried from official website.")
|
|||||||
#define LAST_OPENED_SIZE_BLURB \
|
#define LAST_OPENED_SIZE_BLURB \
|
||||||
_("How many recently opened image filenames to keep on the File menu.")
|
_("How many recently opened image filenames to keep on the File menu.")
|
||||||
|
|
||||||
|
#define LAST_RELEASE_TIMESTAMP_BLURB \
|
||||||
|
_("The timestamp for the last known release date.")
|
||||||
|
|
||||||
#define MARCHING_ANTS_SPEED_BLURB \
|
#define MARCHING_ANTS_SPEED_BLURB \
|
||||||
_("Speed of marching ants in the selection outline. This value is in " \
|
_("Speed of marching ants in the selection outline. This value is in " \
|
||||||
"milliseconds (less time indicates faster marching).")
|
"milliseconds (less time indicates faster marching).")
|
||||||
|
@ -286,7 +286,7 @@ about_dialog_add_update (GimpAboutDialog *dialog,
|
|||||||
g_list_free (children);
|
g_list_free (children);
|
||||||
|
|
||||||
/* The preferred localized date representation without the time. */
|
/* The preferred localized date representation without the time. */
|
||||||
datetime = g_date_time_new_from_unix_local (config->check_update_timestamp);
|
datetime = g_date_time_new_from_unix_local (config->last_release_timestamp);
|
||||||
date = g_date_time_format (datetime, "%x");
|
date = g_date_time_format (datetime, "%x");
|
||||||
g_date_time_unref (datetime);
|
g_date_time_unref (datetime);
|
||||||
|
|
||||||
|
@ -142,6 +142,7 @@ gimp_check_updates_callback (GObject *source,
|
|||||||
json_path_compile (path, "$['STABLE']", &error);
|
json_path_compile (path, "$['STABLE']", &error);
|
||||||
result = json_path_match (path, json_parser_get_root (parser));
|
result = json_path_match (path, json_parser_get_root (parser));
|
||||||
versions = json_array_get_object_element (json_node_get_array (result), 0);
|
versions = json_array_get_object_element (json_node_get_array (result), 0);
|
||||||
|
json_node_unref (result);
|
||||||
members = json_object_get_members (versions);
|
members = json_object_get_members (versions);
|
||||||
|
|
||||||
for (iter = members; iter; iter = iter->next)
|
for (iter = members; iter; iter = iter->next)
|
||||||
@ -151,19 +152,36 @@ gimp_check_updates_callback (GObject *source,
|
|||||||
* upstream version number or parsing. This should not happen.
|
* upstream version number or parsing. This should not happen.
|
||||||
*/
|
*/
|
||||||
if (gimp_version_break (last_version, &major, &minor, µ))
|
if (gimp_version_break (last_version, &major, &minor, µ))
|
||||||
|
{
|
||||||
|
GDateTime *datetime;
|
||||||
|
gchar *str;
|
||||||
|
|
||||||
|
str = g_strdup_printf ("$['STABLE']['%s']['date']", last_version);
|
||||||
|
json_path_compile (path, str, &error);
|
||||||
|
g_free (str);
|
||||||
|
result = json_path_match (path, json_parser_get_root (parser));
|
||||||
|
str = g_strdup_printf ("%s 00:00:00Z",
|
||||||
|
json_array_get_string_element (json_node_get_array (result),
|
||||||
|
0));
|
||||||
|
json_node_unref (result);
|
||||||
|
datetime = g_date_time_new_from_iso8601 (str, NULL);
|
||||||
|
g_free (str);
|
||||||
|
if (datetime)
|
||||||
{
|
{
|
||||||
g_object_set (config,
|
g_object_set (config,
|
||||||
"check-update-timestamp", g_get_real_time() / G_USEC_PER_SEC,
|
"check-update-timestamp", g_get_real_time() / G_USEC_PER_SEC,
|
||||||
|
"last-release-timestamp", g_date_time_to_unix (datetime),
|
||||||
"last-known-release",
|
"last-known-release",
|
||||||
(major > GIMP_MAJOR_VERSION ||
|
(major > GIMP_MAJOR_VERSION ||
|
||||||
(major == GIMP_MAJOR_VERSION && minor > GIMP_MINOR_VERSION) ||
|
(major == GIMP_MAJOR_VERSION && minor > GIMP_MINOR_VERSION) ||
|
||||||
(major == GIMP_MAJOR_VERSION && minor == GIMP_MINOR_VERSION && micro > GIMP_MICRO_VERSION)) ?
|
(major == GIMP_MAJOR_VERSION && minor == GIMP_MINOR_VERSION && micro > GIMP_MICRO_VERSION)) ?
|
||||||
last_version : NULL,
|
last_version : NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
g_date_time_unref (datetime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_list_free (members);
|
g_list_free (members);
|
||||||
json_node_unref (result);
|
|
||||||
g_object_unref (path);
|
g_object_unref (path);
|
||||||
g_object_unref (parser);
|
g_object_unref (parser);
|
||||||
g_object_unref (stream);
|
g_object_unref (stream);
|
||||||
|
Reference in New Issue
Block a user