Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
history_actions.c File Reference
#include "common/history_actions.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/exif.h"
#include "common/history.h"
#include "common/history_snapshot.h"
#include "common/image.h"
#include "common/image_cache.h"
#include "common/mipmap_cache.h"
#include "common/styles.h"
#include "common/tags.h"
#include "common/undo.h"
#include "control/conf.h"
#include "control/control.h"
#include "develop/dev_history.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "dtgtk/thumbtable.h"
#include "gui/hist_dialog.h"
+ Include dependency graph for history_actions.c:

Data Structures

struct  dt_history_load_params_t
 
struct  dt_history_delete_params_t
 
struct  dt_history_style_params_t
 

Typedefs

typedef gboolean(* dt_history_action_fn) (const int32_t imgid, void *user_data)
 
typedef struct dt_history_load_params_t dt_history_load_params_t
 
typedef struct dt_history_delete_params_t dt_history_delete_params_t
 
typedef struct dt_history_style_params_t dt_history_style_params_t
 

Functions

static void _history_action_finalize_list (const GList *list, const gboolean changed)
 
static gboolean _history_action_on_list_with_undo (const GList *list, dt_history_action_fn action, void *user_data, const gboolean use_undo)
 
static gboolean _history_action_on_list (const GList *list, dt_history_action_fn action, void *user_data)
 
static GList * _get_user_mod_list (dt_develop_t *dev_src, GList *ops, gboolean copy_full)
 Build a module list to copy based on selected history indices.
 
static int _history_copy_and_paste_on_image_merge (int32_t imgid, int32_t dest_imgid, GList *ops, const gboolean copy_full, const dt_history_merge_strategy_t mode)
 Copy/merge history between images using the merge pipeline.
 
gboolean dt_history_copy_and_paste_on_image (const int32_t imgid, const int32_t dest_imgid, GList *ops, const gboolean copy_full, const dt_history_merge_strategy_t mode)
 
gboolean dt_history_copy (int32_t imgid)
 
gboolean dt_history_copy_parts (int32_t imgid)
 
static gboolean _history_paste_apply (const int32_t imgid, void *user_data)
 
gboolean dt_history_paste_on_image (const int32_t imgid)
 
gboolean dt_history_paste_on_list (const GList *list)
 
gboolean dt_history_paste_parts_prepare (void)
 
static gboolean _history_paste_parts_apply (const int32_t imgid, void *user_data)
 
gboolean dt_history_paste_parts_on_image (const int32_t imgid)
 
gboolean dt_history_paste_parts_on_list (const GList *list)
 
static gboolean _history_compress_apply (const int32_t imgid, void *user_data)
 
void dt_history_compress_on_image (const int32_t imgid)
 
int dt_history_compress_on_list (const GList *imgs)
 
static gboolean _history_load_and_apply_apply (const int32_t imgid, void *user_data)
 
int dt_history_load_and_apply (const int32_t imgid, gchar *filename, int history_only)
 
int dt_history_load_and_apply_on_image (int32_t imgid, gchar *filename, int history_only)
 
int dt_history_load_and_apply_on_list (gchar *filename, const GList *list)
 
static gboolean _history_delete_apply (const int32_t imgid, void *user_data)
 
gboolean dt_history_delete_on_list (const GList *list, gboolean undo)
 
static gboolean _history_style_apply (const int32_t imgid, void *user_data)
 
gboolean dt_history_style_on_image (const int32_t imgid, const char *name, const gboolean duplicate)
 
gboolean dt_history_style_on_list (const GList *list, const char *name, const gboolean duplicate)
 

Typedef Documentation

◆ dt_history_action_fn

typedef gboolean(* dt_history_action_fn) (const int32_t imgid, void *user_data)

◆ dt_history_delete_params_t

◆ dt_history_load_params_t

◆ dt_history_style_params_t

Function Documentation

◆ _get_user_mod_list()

static GList * _get_user_mod_list ( dt_develop_t dev_src,
GList *  ops,
gboolean  copy_full 
)
static

Build a module list to copy based on selected history indices.

When ops is NULL, builds a list from the full history depending on copy_full.

Parameters
dev_srcSource develop context.
opsOptional list of history indices (as GPOINTER_TO_UINT).
copy_fullWhether to include disabled/default items.
Returns
Newly-allocated list of modules to copy.

References DT_DEBUG_HISTORY, DT_DEBUG_PARAMS, dt_dev_history_get_first_item_by_module(), dt_history_module_skip_copy(), dt_iop_is_hidden(), dt_print(), h, dt_develop_t::history, dt_develop_t::iop, dt_iop_module_t::multi_priority, dt_dev_history_item_t::num, and dt_iop_module_t::op.

Referenced by _history_copy_and_paste_on_image_merge().

◆ _history_action_finalize_list()

static void _history_action_finalize_list ( const GList *  list,
const gboolean  changed 
)
static

◆ _history_action_on_list()

static gboolean _history_action_on_list ( const GList *  list,
dt_history_action_fn  action,
void user_data 
)
static

◆ _history_action_on_list_with_undo()

static gboolean _history_action_on_list_with_undo ( const GList *  list,
dt_history_action_fn  action,
void user_data,
const gboolean  use_undo 
)
static

◆ _history_compress_apply()

◆ _history_copy_and_paste_on_image_merge()

static int _history_copy_and_paste_on_image_merge ( int32_t  imgid,
int32_t  dest_imgid,
GList *  ops,
const gboolean  copy_full,
const dt_history_merge_strategy_t  mode 
)
static

Copy/merge history between images using the merge pipeline.

Builds a source dev, resolves the module list, and dispatches to dt_history_merge().

Parameters
imgidSource image id.
dest_imgidDestination image id.
opsOptional list of history indices to copy.
copy_fullWhether to copy the full history.
modeMerge strategy.
Returns
0 on success, non-zero on failure.

References _get_user_mod_list(), dt_conf_get_bool(), dt_dev_cleanup(), dt_dev_init(), dt_dev_merge_history_into_image(), dt_dev_reload_history_items(), dt_dev_replace_history_on_image(), DT_HISTORY_MERGE_REPLACE, FALSE, and TRUE.

Referenced by dt_history_copy_and_paste_on_image().

◆ _history_delete_apply()

◆ _history_load_and_apply_apply()

◆ _history_paste_apply()

◆ _history_paste_parts_apply()

◆ _history_style_apply()

◆ dt_history_compress_on_image()

void dt_history_compress_on_image ( const int32_t  imgid)

◆ dt_history_compress_on_list()

int dt_history_compress_on_list ( const GList *  imgs)

compress history stack

References _history_action_on_list(), and _history_compress_apply().

Referenced by compress_history_callback().

◆ dt_history_copy()

gboolean dt_history_copy ( int32_t  imgid)

copy history from imgid and pasts on selected images, merge or overwrite...

References dt_history_copy_item_t::copied_imageid, dt_view_manager_t::copy_paste, darktable, FALSE, TRUE, and darktable_t::view_manager.

Referenced by copy_callback(), and dt_history_copy_parts().

◆ dt_history_copy_and_paste_on_image()

◆ dt_history_copy_parts()

gboolean dt_history_copy_parts ( int32_t  imgid)

◆ dt_history_delete_on_list()

gboolean dt_history_delete_on_list ( const GList *  list,
gboolean  undo 
)

delete historystack of selected images

References _history_action_on_list_with_undo(), and _history_delete_apply().

Referenced by delete_history_callback().

◆ dt_history_load_and_apply()

int dt_history_load_and_apply ( const int32_t  imgid,
gchar *  filename,
int  history_only 
)

load a dt file and applies to specified image

References _history_load_and_apply_apply().

Referenced by dt_history_load_and_apply_on_image().

◆ dt_history_load_and_apply_on_image()

int dt_history_load_and_apply_on_image ( int32_t  imgid,
gchar *  filename,
int  history_only 
)

◆ dt_history_load_and_apply_on_list()

int dt_history_load_and_apply_on_list ( gchar *  filename,
const GList *  list 
)

load a dt file and applies to selected images

References _history_action_on_list(), and _history_load_and_apply_apply().

Referenced by load_xmp_callback().

◆ dt_history_paste_on_image()

gboolean dt_history_paste_on_image ( const int32_t  imgid)

◆ dt_history_paste_on_list()

◆ dt_history_paste_parts_on_image()

gboolean dt_history_paste_parts_on_image ( const int32_t  imgid)

◆ dt_history_paste_parts_on_list()

◆ dt_history_paste_parts_prepare()

◆ dt_history_style_on_image()

gboolean dt_history_style_on_image ( const int32_t  imgid,
const char *  name,
const gboolean  duplicate 
)

◆ dt_history_style_on_list()

gboolean dt_history_style_on_list ( const GList *  list,
const char *  name,
const gboolean  duplicate 
)