#include "ui_misc.h"
#include "ui_tabcomp.h"
#include "window.h"
+#include "metadata.h"
#ifdef HAVE_LIRC
#include "lirc.h"
layout_image_set_index(lw, 0);
}
+ if (options->metadata.confirm_on_dir_change)
+ metadata_write_queue_confirm();
+
return TRUE;
}
#include "utilops.h"
#include "view_dir.h"
#include "window.h"
+#include "metadata.h"
#include <gdk/gdkkeysyms.h> /* for keyboard values */
{
layout_bar_info_new_image(lw);
layout_bar_exif_new_image(lw);
+
+ /* this should be called here to handle the metadata edited in bars */
+ if (options->metadata.confirm_on_image_change)
+ metadata_write_queue_confirm();
}
void layout_bars_new_selection(LayoutWindow *lw, gint count)
#include "ui_utildlg.h"
#include "cache_maint.h"
#include "thumb.h"
+#include "metadata.h"
#include <gdk/gdkkeysyms.h> /* for keyboard values */
{
layout_image_full_screen_stop(NULL);
+ if (metadata_write_queue_confirm()) return;
+
if (exit_confirm_dlg()) return;
exit_program_final();
metadata_write_queue = g_list_prepend(metadata_write_queue, fd);
file_data_ref(fd);
- if (metadata_write_idle_id == -1) metadata_write_idle_id = g_idle_add(metadata_write_queue_idle_cb, NULL);
+ if (metadata_write_idle_id != -1)
+ {
+ g_source_remove(metadata_write_idle_id);
+ metadata_write_idle_id = -1;
+ }
+
+ if (options->metadata.confirm_timeout > 0)
+ {
+ metadata_write_idle_id = g_timeout_add(options->metadata.confirm_timeout * 1000, metadata_write_queue_idle_cb, NULL);
+ }
}
}
-static gboolean metadata_write_queue_idle_cb(gpointer data)
+gboolean metadata_write_queue_confirm()
{
GList *work;
GList *to_approve = NULL;
file_util_write_metadata(NULL, to_approve, NULL);
filelist_free(to_approve);
+
+ return (metadata_write_queue != NULL);
+}
+static gboolean metadata_write_queue_idle_cb(gpointer data)
+{
+ metadata_write_queue_confirm();
metadata_write_idle_id = -1;
return FALSE;
}
+
gboolean metadata_write_exif(FileData *fd, FileData *sfd)
{
gboolean success;
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(void);
+
gint metadata_write(FileData *fd, GList *keywords, const gchar *comment);