[gedit/wip/loader-saver] GeditDocument: update modification time
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/loader-saver] GeditDocument: update modification time
- Date: Fri, 27 Jun 2014 20:12:35 +0000 (UTC)
commit 98c5e4210c75295429611ae091b014fc3ba38b8a
Author: Sébastien Wilmet <swilmet gnome org>
Date: Fri Jun 27 22:05:12 2014 +0200
GeditDocument: update modification time
gedit/gedit-document.c | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
---
diff --git a/gedit/gedit-document.c b/gedit/gedit-document.c
index 505ec1b..8856269 100644
--- a/gedit/gedit-document.c
+++ b/gedit/gedit-document.c
@@ -1045,6 +1045,7 @@ loaded_query_info_cb (GFile *location,
GFileInfo *info;
const gchar *content_type = NULL;
gboolean read_only = FALSE;
+ GTimeVal mtime = {0, 0};
GError *error = NULL;
info = g_file_query_info_finish (location, result, &error);
@@ -1068,11 +1069,17 @@ loaded_query_info_cb (GFile *location,
read_only = !g_file_info_get_attribute_boolean (info,
G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
}
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_TIME_MODIFIED))
+ {
+ g_file_info_get_modification_time (info, &mtime);
+ }
+
g_object_unref (info);
}
set_readonly (doc, read_only);
+ doc->priv->mtime = mtime;
g_get_current_time (&doc->priv->time_of_last_save_or_load);
doc->priv->externally_modified = FALSE;
@@ -1104,7 +1111,8 @@ gedit_document_loaded_real (GeditDocument *doc)
g_file_query_info_async (location,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
- G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE,
+ G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE ","
+ G_FILE_ATTRIBUTE_TIME_MODIFIED,
G_FILE_QUERY_INFO_NONE,
G_PRIORITY_DEFAULT,
NULL,
@@ -1119,6 +1127,7 @@ saved_query_info_cb (GFile *location,
{
GFileInfo *info;
const gchar *content_type = NULL;
+ GTimeVal mtime = {0, 0};
GError *error = NULL;
info = g_file_query_info_finish (location, result, &error);
@@ -1130,14 +1139,24 @@ saved_query_info_cb (GFile *location,
error = NULL;
}
- if (info != NULL &&
- g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE))
+ if (info != NULL)
{
- content_type = g_file_info_get_attribute_string (info,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE))
+ {
+ content_type = g_file_info_get_attribute_string (info,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
+ }
+
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_TIME_MODIFIED))
+ {
+ g_file_info_get_modification_time (info, &mtime);
+ }
+
+ g_object_unref (info);
}
gedit_document_set_content_type (doc, content_type);
+ doc->priv->mtime = mtime;
g_get_current_time (&doc->priv->time_of_last_save_or_load);
doc->priv->externally_modified = FALSE;
@@ -1161,7 +1180,8 @@ gedit_document_saved_real (GeditDocument *doc)
g_object_ref (doc);
g_file_query_info_async (location,
- G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
+ G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
+ G_FILE_ATTRIBUTE_TIME_MODIFIED,
G_FILE_QUERY_INFO_NONE,
G_PRIORITY_DEFAULT,
NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]