summaryrefslogtreecommitdiff
path: root/libnautilus-private
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-private')
-rw-r--r--libnautilus-private/apps_nautilus_preferences.schemas.in15
-rw-r--r--libnautilus-private/nautilus-directory.c3
-rw-r--r--libnautilus-private/nautilus-file.c13
-rw-r--r--libnautilus-private/nautilus-global-preferences.c15
-rw-r--r--libnautilus-private/nautilus-global-preferences.h8
5 files changed, 54 insertions, 0 deletions
diff --git a/libnautilus-private/apps_nautilus_preferences.schemas.in b/libnautilus-private/apps_nautilus_preferences.schemas.in
index 4728e8da5..62f283e1e 100644
--- a/libnautilus-private/apps_nautilus_preferences.schemas.in
+++ b/libnautilus-private/apps_nautilus_preferences.schemas.in
@@ -629,6 +629,21 @@
</schema>
<schema>
+ <key>/schemas/apps/nautilus/preferences/date_format</key>
+ <applyto>/apps/nautilus/preferences/date_format</applyto>
+ <owner>nautilus</owner>
+ <type>string</type>
+ <default>locale</default>
+ <locale name="C">
+ <short>Date Format</short>
+ <long>
+ The format of file dates. Possible values are "locale",
+ "iso", and "informal".
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/nautilus/preferences/hide_built_in_bookmarks</key>
<applyto>/apps/nautilus/preferences/hide_built_in_bookmarks</applyto>
<owner>nautilus</owner>
diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c
index 9a8e5913f..b958b5cdb 100644
--- a/libnautilus-private/nautilus-directory.c
+++ b/libnautilus-private/nautilus-directory.c
@@ -304,6 +304,9 @@ add_preferences_callbacks (void)
eel_preferences_add_callback (NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS,
async_data_preference_changed_callback,
NULL);
+ eel_preferences_add_callback (NAUTILUS_PREFERENCES_DATE_FORMAT,
+ async_data_preference_changed_callback,
+ NULL);
}
char *
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 0e35a68d1..cf6c6f1ea 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -111,6 +111,8 @@ enum {
LAST_SIGNAL
};
+static int date_format_pref;
+
static guint signals[LAST_SIGNAL];
static GObjectClass *parent_class = NULL;
@@ -3018,6 +3020,13 @@ nautilus_file_fit_date_as_string (NautilusFile *file,
}
file_time = localtime (&file_time_raw);
+
+ if (date_format_pref == NAUTILUS_DATE_FORMAT_LOCALE) {
+ return eel_strdup_strftime ("%c", file_time);
+ } else if (date_format_pref == NAUTILUS_DATE_FORMAT_ISO) {
+ return eel_strdup_strftime ("%Y-%m-%d %H:%M:%S", file_time);
+ }
+
file_date = eel_g_date_new_tm (file_time);
today = g_date_new ();
@@ -6014,6 +6023,10 @@ nautilus_file_class_init (NautilusFileClass *class)
G_TYPE_NONE, 0);
g_type_class_add_private (class, sizeof (NautilusFileDetails));
+
+
+ eel_preferences_add_auto_enum (NAUTILUS_PREFERENCES_DATE_FORMAT,
+ &date_format_pref);
}
static GnomeVFSFileInfo *
diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c
index 5770cfe32..839b93b8a 100644
--- a/libnautilus-private/nautilus-global-preferences.c
+++ b/libnautilus-private/nautilus-global-preferences.c
@@ -204,6 +204,14 @@ static EelEnumerationEntry standard_font_size_entries[] = {
{ NULL }
};
+/* These are not translated, because the text is not used in the ui */
+static EelEnumerationEntry date_format_entries[] = {
+ { "locale", "Locale Default", NAUTILUS_DATE_FORMAT_LOCALE },
+ { "iso", "ISO Format", NAUTILUS_DATE_FORMAT_ISO },
+ { "informal", "Informal", NAUTILUS_DATE_FORMAT_INFORMAL },
+ { NULL }
+};
+
/* These enumerations are used in the preferences dialog to
* populate widgets and route preferences changes between the
* storage (GConf) and the displayed values.
@@ -218,6 +226,7 @@ static EelEnumerationInfo enumerations[] = {
{ "search_bar_type", search_bar_type_enum_entries },
{ "speed_tradeoff", speed_tradeoff_enum_entries },
{ "standard_font_size", standard_font_size_entries },
+ { "date_format", date_format_entries },
{ NULL }
};
@@ -403,6 +412,12 @@ static const PreferenceDefault preference_defaults[] = {
PREFERENCE_BOOLEAN,
GINT_TO_POINTER (TRUE)
},
+ { NAUTILUS_PREFERENCES_DATE_FORMAT,
+ PREFERENCE_STRING,
+ "locale",
+ NULL, NULL,
+ "date_format"
+ },
/* Home URI */
{ NAUTILUS_PREFERENCES_HOME_URI,
diff --git a/libnautilus-private/nautilus-global-preferences.h b/libnautilus-private/nautilus-global-preferences.h
index e726ff61e..814361702 100644
--- a/libnautilus-private/nautilus-global-preferences.h
+++ b/libnautilus-private/nautilus-global-preferences.h
@@ -59,6 +59,14 @@ G_BEGIN_DECLS
#define NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES "/desktop/gnome/file_views/show_hidden_files"
#define NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES "/desktop/gnome/file_views/show_backup_files"
#define NAUTILUS_PREFERENCES_SHOW_SPECIAL_FLAGS "preferences/show_special_flags"
+#define NAUTILUS_PREFERENCES_DATE_FORMAT "preferences/date_format"
+
+typedef enum
+{
+ NAUTILUS_DATE_FORMAT_LOCALE,
+ NAUTILUS_DATE_FORMAT_ISO,
+ NAUTILUS_DATE_FORMAT_INFORMAL
+} NautilusDateFormat;
/* Sidebar panels */
#define NAUTILUS_PREFERENCES_TREE_SHOW_ONLY_DIRECTORIES "sidebar_panels/tree/show_only_directories"