[gthumb] Bug 594788 - Adding option for user-defined date format for renaming files



commit 2f03609370247c4124ca63b3949a3cb8d98e5fd8
Author: Matthias Hawran <matthias hawran net>
Date:   Tue Jan 12 10:29:46 2010 +0100

    Bug 594788 - Adding option for user-defined date format for renaming files

 extensions/rename_series/dlg-rename-series.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)
---
diff --git a/extensions/rename_series/dlg-rename-series.c b/extensions/rename_series/dlg-rename-series.c
index 423c9c1..01c6aac 100644
--- a/extensions/rename_series/dlg-rename-series.c
+++ b/extensions/rename_series/dlg-rename-series.c
@@ -221,6 +221,29 @@ template_eval_cb (const GMatchInfo *info,
 
 		g_free (format);
 	}
+	else if (strncmp (match, "%date", 5) == 0) {
+		GTimeVal timeval;
+		GRegex    *re;
+		char     **a;
+		char      *date = NULL;
+
+		/* Get file time info */
+		if(!gth_file_data_get_digitalization_time (template_data->file_data,&timeval))
+			timeval = *gth_file_data_get_modification_time (template_data->file_data);
+
+		/* Get input date format */
+		re = g_regex_new ("%date\\{([^}]+)\\}", 0, 0, NULL);
+		a = g_regex_split (re, match, 0);
+		if (g_strv_length (a) >= 2)
+			date = g_strstrip (a[1]);
+
+		/* Convert */
+		if ((date != NULL) && (*date != '\0'))
+			r = _g_time_val_strftime (&timeval, date);
+
+		g_strfreev (a);
+		g_regex_unref (re);
+	}
 
 	if (r != NULL)
 		g_string_append (res, r);
@@ -274,7 +297,7 @@ dlg_rename_series_update_preview (DialogData *data)
 	template_data->error = &error;
 	template_data->n = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (GET_WIDGET ("start_at_spinbutton")));
 	template_data->template = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("template_entry")));
-	re = g_regex_new ("#+|%F|%E|%N|%attr\\{[^}]+\\}", 0, 0, NULL);
+	re = g_regex_new ("#+|%F|%E|%N|%attr\\{[^}]+\\}|%date\\{[^}]+\\}", 0, 0, NULL);
 	for (scan = data->new_file_list; scan; scan = scan->next) {
 		char *new_name;
 		char *new_name2;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]