57#define DT_IOP_ORDER_INFO (dt_get_debug_flags() & DT_DEBUG_IOPORDER)
141static void _collect_item(
void *user_data,
const int num,
const char *operation,
142 const gboolean enabled,
const char *multi_name)
146 if(
strcmp(operation,
"mask_manager") == 0)
return;
148 char name[512] = { 0 };
153 if(
strcmp(multi_name,
"0") == 0)
171 const gboolean enabled,
const char *multi_name)
176 if(multi_name && *multi_name &&
g_strcmp0(multi_name,
" ") != 0 &&
g_strcmp0(multi_name,
"0") != 0)
201#undef DT_IOP_ORDER_INFO
const dt_collection_sort_t items[]
static gchar * dt_string_replace(const char *string, const char *to_replace)
static void _collect_item(void *user_data, const int num, const char *operation, const gboolean enabled, const char *multi_name)
void dt_history_set_operation_name_resolver(dt_history_operation_name_resolver_t resolver)
char * dt_history_get_items_as_string(const int32_t imgid)
char * dt_history_item_as_string(const char *name, gboolean enabled)
static void _collect_item_string(void *user_data, const int num, const char *operation, const gboolean enabled, const char *multi_name)
void dt_history_delete_on_image_ext(int32_t imgid, gboolean undo)
static dt_history_operation_name_resolver_t _operation_name_resolver
GList * dt_history_get_items(const int32_t imgid, gboolean enabled)
static void _remove_preset_flag(const int32_t imgid)
const char * dt_history_operation_name(const char *operation)
Resolve operation through the installed resolver, or return it unchanged.
void dt_history_delete_on_image(int32_t imgid)
void dt_history_item_free(gpointer data)
void dt_history_changed(const dt_history_change_t what)
Raise it. Internal to this code.
Everything the history, styles and presets code says to the outside world: messages for the user,...
const char *(* dt_history_operation_name_resolver_t)(const char *operation)
Turns an operation string ("exposure", "colorbalancergb") into the name a user should read.
void dt_history_repository_foreach_last_item(const int32_t imgid, const gboolean enabled, dt_history_repository_item_cb cb, void *user_data)
gboolean dt_history_repository_delete_all_for_image(const int32_t imgid)
void dt_history_repository_foreach_item(const int32_t imgid, dt_history_repository_item_cb cb, void *user_data)
void dt_history_snapshot_undo_create(const int32_t imgid, int *snap_id, int *history_end)
void dt_history_snapshot_undo_lt_history_data_free(gpointer data)
dt_undo_lt_history_t * dt_history_snapshot_item_init(void)
void dt_history_snapshot_undo_pop(gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, dt_undo_action_t action, GList **imgs)
void dt_image_cache_write_release(dt_image_t *img, dt_image_cache_write_mode_t mode)
dt_image_t * dt_image_cache_get(const int32_t imgid, char mode)
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
static void dt_free_gpointer(gpointer ptr)
void dt_mipmap_cache_remove(const int32_t imgid, const gboolean flush_disk)
void dt_thumbnail_notify_image_changed(int32_t imgid, gboolean refresh_filmstrip)
void dt_undo_end_group(dt_undo_t *self)
void dt_undo_start_group(dt_undo_t *self, dt_undo_type_t type)
void dt_undo_record(dt_undo_t *self, gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, void(*undo)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item, dt_undo_action_t action, GList **imgs), void(*free_data)(gpointer data))
dt_undo_t * dt_undo_get_global(void)
gchar * dt_util_glist_to_str(const gchar *separator, GList *items)