[Thoggen-cvs] SF.net SVN: thoggen: [260] trunk/thoggen
Status: Beta
Brought to you by:
tp-m
From: <tp...@us...> - 2006-11-20 11:06:11
|
Revision: 260 http://svn.sourceforge.net/thoggen/?rev=260&view=rev Author: tp-m Date: 2006-11-20 03:06:08 -0800 (Mon, 20 Nov 2006) Log Message: ----------- * NEWS: * src/th-app-window.c: (app_window_check_file_overwrite): (app_window_configure_jobs): Ask before overwriting existing files. Modified Paths: -------------- trunk/thoggen/ChangeLog trunk/thoggen/NEWS trunk/thoggen/src/th-app-window.c Modified: trunk/thoggen/ChangeLog =================================================================== --- trunk/thoggen/ChangeLog 2006-10-18 08:20:33 UTC (rev 259) +++ trunk/thoggen/ChangeLog 2006-11-20 11:06:08 UTC (rev 260) @@ -1,3 +1,11 @@ +2006-11-20 Tim-Philipp Müller <tim at centricular dot net> + + * NEWS: + * src/th-app-window.c: + (app_window_check_file_overwrite): + (app_window_configure_jobs): + Ask before overwriting existing files. + 2006-10-18 Tim-Philipp Müller <tim at centricular dot net> Patch by: Dann Frazier <dannf at debian org> Modified: trunk/thoggen/NEWS =================================================================== --- trunk/thoggen/NEWS 2006-10-18 08:20:33 UTC (rev 259) +++ trunk/thoggen/NEWS 2006-11-20 11:06:08 UTC (rev 260) @@ -3,16 +3,23 @@ =================== -------------------------------------------- + SVN +-------------------------------------------- + + * Ask before overwriting existing files + +-------------------------------------------- v0.6.0 - Procrastination -------------------------------------------- * Port to GStreamer-0.10 - * Fix pad detection for titles where the logical - audio stream number does not match the physical - number used in the mpeg stream. + * Fix pad detection for titles where the + logical audio stream number does not match + the physical number used in the mpeg stream - * New spiffy preview dialog, nicer cropping dialog + * New spiffy preview dialog, nicer cropping + dialog -------------------------------------------- v0.4.2 - Apocalypse Modified: trunk/thoggen/src/th-app-window.c =================================================================== --- trunk/thoggen/src/th-app-window.c 2006-10-18 08:20:33 UTC (rev 259) +++ trunk/thoggen/src/th-app-window.c 2006-11-20 11:06:08 UTC (rev 260) @@ -934,6 +934,70 @@ /*************************************************************************** * + * app_window_check_file_overwrite + * + * Make sure we don't accidentally overwrite files from a previous run + * (not exactly atomic etc., but should work fine for the purpose) + * + ***************************************************************************/ + +static gboolean +app_window_check_file_overwrite (ThAppWindow *appwin, GList *jobs) +{ + GtkWidget *dlg; + GString *files = NULL; + GList *l; + gint ret; + + for (l = jobs; l != NULL; l = l->next) + { + gchar *output_fn = NULL; + + g_object_get (TH_JOB (l->data), "output-fn", &output_fn, NULL); + if (output_fn && g_file_test (output_fn, G_FILE_TEST_EXISTS)) + { + gchar *display_name; + + if (files == NULL) + files = g_string_new (NULL); + + display_name = g_filename_display_name (output_fn); + g_string_append_printf (files, "%s\n", display_name); + g_free (display_name); + } + g_free (output_fn); + } + + if (files == NULL) + return TRUE; /* no files will be overwritten */ + + dlg = gtk_message_dialog_new_with_markup (GTK_WINDOW (appwin), + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_YES_NO, + _("The following files already " + "exist and will be overwritten. " + "Do you really want to continue?")); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), + "%s", files->str); + + g_string_free (files, TRUE); + + gtk_window_set_title (GTK_WINDOW (dlg), + _("Files will be overwritten - continue anyway?")); + + app_window_switch_to_fake_dialog (appwin, appwin->priv->jpd); + + ret = gtk_dialog_run (GTK_DIALOG (dlg)); + + gtk_widget_destroy (dlg); + + return (ret == GTK_RESPONSE_YES); +} + +/*************************************************************************** + * * app_window_add_fake_dialog * ***************************************************************************/ @@ -1105,6 +1169,9 @@ if (!app_window_check_free_disk_space (appwin, jobs)) return FALSE; + if (!app_window_check_file_overwrite (appwin, jobs)) + return FALSE; + return app_window_run_jobs (appwin, jobs); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |