From baf66bb1af89cfb58a59eb324ef21484c5bca379 Mon Sep 17 00:00:00 2001 From: Vladimir Nadvornik Date: Sat, 2 May 2009 11:14:24 +0000 Subject: [PATCH] force the metadata dialog if it was triggered by the menu or the button --- src/layout.c | 2 +- src/layout_util.c | 4 ++-- src/main.c | 2 +- src/metadata.c | 6 +++--- src/metadata.h | 2 +- src/utilops.c | 4 ++-- src/utilops.h | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/layout.c b/src/layout.c index 8196cc7d7..ddaf54076 100644 --- a/src/layout.c +++ b/src/layout.c @@ -926,7 +926,7 @@ gboolean layout_set_fd(LayoutWindow *lw, FileData *fd) } if (options->metadata.confirm_on_dir_change && dir_changed) - metadata_write_queue_confirm(NULL, NULL); + metadata_write_queue_confirm(FALSE, NULL, NULL); return TRUE; } diff --git a/src/layout_util.c b/src/layout_util.c index 8f7f44111..d0283cac7 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -1038,7 +1038,7 @@ void layout_edit_update_all(void) static void layout_menu_metadata_write_cb(GtkAction *action, gpointer data) { - metadata_write_queue_confirm(NULL, NULL); + metadata_write_queue_confirm(TRUE, NULL, NULL); } @@ -2390,7 +2390,7 @@ void layout_bars_new_image(LayoutWindow *lw) /* this should be called here to handle the metadata edited in bars */ if (options->metadata.confirm_on_image_change) - metadata_write_queue_confirm(NULL, NULL); + metadata_write_queue_confirm(FALSE, NULL, NULL); } void layout_bars_new_selection(LayoutWindow *lw, gint count) diff --git a/src/main.c b/src/main.c index d21abd9ba..f94348afc 100644 --- a/src/main.c +++ b/src/main.c @@ -668,7 +668,7 @@ void exit_program(void) { layout_image_full_screen_stop(NULL); - if (metadata_write_queue_confirm(exit_program_write_metadata_cb, NULL)) return; + if (metadata_write_queue_confirm(FALSE, exit_program_write_metadata_cb, NULL)) return; if (exit_confirm_dlg()) return; diff --git a/src/metadata.c b/src/metadata.c index aa2ba0021..fae121df5 100644 --- a/src/metadata.c +++ b/src/metadata.c @@ -104,7 +104,7 @@ gboolean metadata_write_queue_remove_list(GList *list) } -gboolean metadata_write_queue_confirm(FileUtilDoneFunc done_func, gpointer done_data) +gboolean metadata_write_queue_confirm(gboolean force_dialog, FileUtilDoneFunc done_func, gpointer done_data) { GList *work; GList *to_approve = NULL; @@ -120,7 +120,7 @@ gboolean metadata_write_queue_confirm(FileUtilDoneFunc done_func, gpointer done_ to_approve = g_list_prepend(to_approve, file_data_ref(fd)); } - file_util_write_metadata(NULL, to_approve, NULL, done_func, done_data); + file_util_write_metadata(NULL, to_approve, NULL, force_dialog, done_func, done_data); filelist_free(to_approve); @@ -129,7 +129,7 @@ gboolean metadata_write_queue_confirm(FileUtilDoneFunc done_func, gpointer done_ static gboolean metadata_write_queue_idle_cb(gpointer data) { - metadata_write_queue_confirm(NULL, NULL); + metadata_write_queue_confirm(FALSE, NULL, NULL); metadata_write_idle_id = 0; return FALSE; } diff --git a/src/metadata.h b/src/metadata.h index a657de7fe..37fa315f3 100644 --- a/src/metadata.h +++ b/src/metadata.h @@ -21,7 +21,7 @@ gboolean metadata_write_queue_remove(FileData *fd); gboolean metadata_write_queue_remove_list(GList *list); gboolean metadata_write_perform(FileData *fd); -gboolean metadata_write_queue_confirm(FileUtilDoneFunc done_func, gpointer done_data); +gboolean metadata_write_queue_confirm(gboolean force_dialog, FileUtilDoneFunc done_func, gpointer done_data); gint metadata_queue_length(void); diff --git a/src/utilops.c b/src/utilops.c index bb24a5df5..f3849b98f 100644 --- a/src/utilops.c +++ b/src/utilops.c @@ -2619,10 +2619,10 @@ void file_util_delete(FileData *source_fd, GList *source_list, GtkWidget *parent file_util_delete_full(source_fd, source_list, parent, options->file_ops.confirm_delete ? UTILITY_PHASE_START : UTILITY_PHASE_ENTERING); } -void file_util_write_metadata(FileData *source_fd, GList *source_list, GtkWidget *parent, FileUtilDoneFunc done_func, gpointer done_data) +void file_util_write_metadata(FileData *source_fd, GList *source_list, GtkWidget *parent, gboolean force_dialog, FileUtilDoneFunc done_func, gpointer done_data) { file_util_write_metadata_full(source_fd, source_list, parent, - (options->metadata.save_in_image_file && options->metadata.confirm_write) ? UTILITY_PHASE_START : UTILITY_PHASE_ENTERING, + ((options->metadata.save_in_image_file && options->metadata.confirm_write) || force_dialog) ? UTILITY_PHASE_START : UTILITY_PHASE_ENTERING, done_func, done_data); } diff --git a/src/utilops.h b/src/utilops.h index 3908a845d..9941720ff 100644 --- a/src/utilops.h +++ b/src/utilops.h @@ -37,7 +37,7 @@ void file_util_delete(FileData *source_fd, GList *source_list, GtkWidget *parent void file_util_move(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent); void file_util_copy(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent); void file_util_rename(FileData *source_fd, GList *source_list, GtkWidget *parent); -void file_util_write_metadata(FileData *source_fd, GList *source_list, GtkWidget *parent, FileUtilDoneFunc done_func, gpointer done_data); +void file_util_write_metadata(FileData *source_fd, GList *source_list, GtkWidget *parent, gboolean force_dialog, FileUtilDoneFunc done_func, gpointer done_data); void file_util_create_dir(FileData *dir_fd, GtkWidget *parent, FileUtilDoneFunc done_func, gpointer done_data);