Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
styles.c File Reference
#include "common/styles.h"
#include "common/collection.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/exif.h"
#include "common/file_location.h"
#include "common/history.h"
#include "common/history_snapshot.h"
#include "common/image_cache.h"
#include "common/imageio.h"
#include "common/tags.h"
#include "control/control.h"
#include "develop/develop.h"
#include "gui/styles.h"
#include <libxml/encoding.h>
#include <libxml/xmlwriter.h>
#include <glib.h>
#include <stdio.h>
#include <string.h>
+ Include dependency graph for common/styles.c:

Data Structures

struct  StyleInfoData
 
struct  StylePluginData
 
struct  StyleData
 

Macros

#define DT_IOP_ORDER_INFO   (darktable.unmuted & DT_DEBUG_IOPORDER)
 

Functions

void dt_style_free (gpointer data)
 
void dt_style_item_free (gpointer data)
 
static int32_t dt_styles_get_id_by_name (const char *name)
 
gboolean dt_styles_exists (const char *name)
 
static void _dt_style_cleanup_multi_instance (int id)
 
gboolean dt_styles_has_module_order (const char *name)
 
GList * dt_styles_module_order_list (const char *name)
 
static gboolean dt_styles_create_style_header (const char *name, const char *description, GList *iop_list)
 
static void _dt_style_update_from_image (int id, int32_t imgid, GList *filter, GList *update)
 
static void _dt_style_update_iop_order (const gchar *name, const int id, const int32_t imgid, const gboolean copy_iop_order, const gboolean update_iop_order)
 
void dt_styles_update (const char *name, const char *newname, const char *newdescription, GList *filter, const int32_t imgid, GList *update, const gboolean copy_iop_order, const gboolean update_iop_order)
 
void dt_styles_create_from_style (const char *name, const char *newname, const char *description, GList *filter, const int32_t imgid, GList *update, const gboolean copy_iop_order, const gboolean update_iop_order)
 
gboolean dt_styles_create_from_image (const char *name, const char *description, const int32_t imgid, GList *filter, gboolean copy_iop_order)
 
void dt_styles_apply_to_list (const char *name, const GList *list, gboolean duplicate)
 
void dt_multiple_styles_apply_to_list (GList *styles, const GList *list, gboolean duplicate)
 
void dt_styles_create_from_list (const GList *list)
 
void dt_styles_apply_style_item (dt_develop_t *dev, dt_style_item_t *style_item, GList **modules_used)
 
void dt_styles_apply_to_image (const char *name, const gboolean duplicate, const int32_t imgid)
 
void dt_styles_delete_by_name_adv (const char *name, const gboolean raise)
 
void dt_styles_delete_by_name (const char *name)
 
GList * dt_styles_get_item_list (const char *name, gboolean params, int32_t imgid)
 
char * dt_styles_get_item_list_as_string (const char *name)
 
GList * dt_styles_get_list (const char *filter)
 
static char * dt_style_encode (sqlite3_stmt *stmt, int row)
 
void dt_styles_save_to_file (const char *style_name, const char *filedir, gboolean overwrite)
 
static StyleDatadt_styles_style_data_new ()
 
static StylePluginDatadt_styles_style_plugin_new ()
 
static void dt_styles_style_data_free (StyleData *style, gboolean free_segments)
 
static void dt_styles_start_tag_handler (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error)
 
static void dt_styles_end_tag_handler (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error)
 
static void dt_styles_style_text_handler (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error)
 
static void dt_style_plugin_save (StylePluginData *plugin, gpointer styleId)
 
static void dt_style_save (StyleData *style)
 
void dt_styles_import_from_file (const char *style_path)
 
gchar * dt_styles_get_description (const char *name)
 
dt_style_tdt_styles_get_by_name (const char *name)
 

Variables

static GMarkupParser dt_style_parser
 

Macro Definition Documentation

◆ DT_IOP_ORDER_INFO

#define DT_IOP_ORDER_INFO   (darktable.unmuted & DT_DEBUG_IOPORDER)

Function Documentation

◆ _dt_style_cleanup_multi_instance()

◆ _dt_style_update_from_image()

static void _dt_style_update_from_image ( int  id,
int32_t  imgid,
GList *  filter,
GList *  update 
)
static

◆ _dt_style_update_iop_order()

static void _dt_style_update_iop_order ( const gchar *  name,
const int  id,
const int32_t  imgid,
const gboolean  copy_iop_order,
const gboolean  update_iop_order 
)
static

◆ dt_multiple_styles_apply_to_list()

◆ dt_style_encode()

static char * dt_style_encode ( sqlite3_stmt *  stmt,
int  row 
)
static

References dt_exif_xmp_encode().

Referenced by dt_styles_save_to_file().

◆ dt_style_free()

void dt_style_free ( gpointer  data)

◆ dt_style_item_free()

◆ dt_style_plugin_save()

◆ dt_style_save()

◆ dt_styles_apply_style_item()

◆ dt_styles_apply_to_image()

void dt_styles_apply_to_image ( const char *  name,
const gboolean  duplicate,
const int32_t  imgid 
)

applies the style to image by imgid, takes care of overwrite and duplicate modes

References dt_undo_lt_history_t::after, dt_undo_lt_history_t::after_history_end, dt_undo_lt_history_t::before, dt_undo_lt_history_t::before_history_end, dt_style_item_t::blendop_params, dt_style_item_t::blendop_params_size, dt_style_item_t::blendop_version, darktable, darktable_t::db, darktable_t::develop, dt_control_save_xmp(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_dev_append_changed_tag(), dt_dev_cleanup(), dt_dev_get_history_end(), dt_dev_init(), dt_dev_is_current_image(), dt_dev_pop_history_items_ext(), dt_dev_read_history_ext(), dt_dev_reload_history_items(), dt_dev_write_history_ext(), dt_history_copy_and_paste_on_image(), dt_history_snapshot_item_init(), dt_history_snapshot_undo_create(), dt_history_snapshot_undo_lt_history_data_free(), dt_history_snapshot_undo_pop(), dt_image_duplicate(), dt_iop_load_modules_ext(), DT_IOP_ORDER_INFO, dt_ioppr_check_iop_order(), dt_ioppr_extract_multi_instances_list(), dt_ioppr_get_iop_order_list(), dt_ioppr_merge_multi_instance_iop_order_list(), dt_ioppr_update_for_style_items(), dt_ioppr_write_iop_order_list(), dt_mipmap_cache_remove(), dt_style_item_free(), dt_styles_apply_style_item(), dt_styles_get_id_by_name(), dt_styles_module_order_list(), dt_thumbtable_refresh_thumbnail, dt_undo_end_group(), DT_UNDO_LT_HISTORY, dt_undo_record(), dt_undo_start_group(), dt_style_item_t::enabled, FALSE, darktable_t::gui, dt_image_t::id, dt_develop_t::image_storage, dt_undo_lt_history_t::imgid, dt_develop_t::iop, dt_style_item_t::iop_order, darktable_t::mipmap_cache, dt_style_item_t::module_version, dt_style_item_t::multi_name, dt_style_item_t::multi_priority, name, dt_style_item_t::name, dt_style_item_t::num, dt_style_item_t::operation, dt_style_item_t::params, dt_style_item_t::params_size, dt_style_item_t::selimg_num, dt_ui_t::thumbtable_lighttable, TRUE, dt_gui_gtk_t::ui, darktable_t::undo, and UNKNOWN_IMAGE.

Referenced by _darkroom_ui_apply_style_activate_callback(), dt_lua_style_apply(), dt_multiple_styles_apply_to_list(), and dt_styles_apply_to_list().

◆ dt_styles_apply_to_list()

◆ dt_styles_create_from_image()

gboolean dt_styles_create_from_image ( const char *  name,
const char *  description,
const int32_t  imgid,
GList *  items,
gboolean  copy_iop_order 
)

◆ dt_styles_create_from_list()

void dt_styles_create_from_list ( const GList *  list)

creates styles from selection

References dt_control_log(), dt_gui_styles_dialog_new(), FALSE, and TRUE.

Referenced by create_clicked().

◆ dt_styles_create_from_style()

void dt_styles_create_from_style ( const char *  name,
const char *  newname,
const char *  description,
GList *  filter,
const int32_t  imgid,
GList *  update,
gboolean  copy_iop_order,
const gboolean  update_iop_order 
)

◆ dt_styles_create_style_header()

static gboolean dt_styles_create_style_header ( const char *  name,
const char *  description,
GList *  iop_list 
)
static

◆ dt_styles_delete_by_name()

void dt_styles_delete_by_name ( const char *  name)

delete a style by name, raise signal

References dt_styles_delete_by_name_adv(), name, and TRUE.

Referenced by _gui_styles_new_style_response(), import_clicked(), and style_delete().

◆ dt_styles_delete_by_name_adv()

◆ dt_styles_end_tag_handler()

static void dt_styles_end_tag_handler ( GMarkupParseContext *  context,
const gchar *  element_name,
gpointer  user_data,
GError **  error 
)
static

References FALSE, and StyleData::in_plugin.

◆ dt_styles_exists()

gboolean dt_styles_exists ( const char *  name)

◆ dt_styles_get_by_name()

dt_style_t * dt_styles_get_by_name ( const char *  name)

get a style object by name, the object needs to be freed by the caller

References darktable, darktable_t::db, dt_style_t::description, description(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, name, and dt_style_t::name.

Referenced by style_table_index().

◆ dt_styles_get_description()

gchar * dt_styles_get_description ( const char *  name)

◆ dt_styles_get_id_by_name()

◆ dt_styles_get_item_list()

◆ dt_styles_get_item_list_as_string()

char * dt_styles_get_item_list_as_string ( const char *  name)

◆ dt_styles_get_list()

◆ dt_styles_has_module_order()

gboolean dt_styles_has_module_order ( const char *  name)

returns TRUE if the style has a module order defined

References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, and name.

Referenced by _gui_styles_dialog_run().

◆ dt_styles_import_from_file()

◆ dt_styles_module_order_list()

◆ dt_styles_save_to_file()

◆ dt_styles_start_tag_handler()

static void dt_styles_start_tag_handler ( GMarkupParseContext *  context,
const gchar *  element_name,
const gchar **  attribute_names,
const gchar **  attribute_values,
gpointer  user_data,
GError **  error 
)
static

◆ dt_styles_style_data_free()

static void dt_styles_style_data_free ( StyleData style,
gboolean  free_segments 
)
static

◆ dt_styles_style_data_new()

◆ dt_styles_style_plugin_new()

◆ dt_styles_style_text_handler()

◆ dt_styles_update()

void dt_styles_update ( const char *  name,
const char *  newname,
const char *  description,
GList *  filter,
const int32_t  imgid,
GList *  update,
const gboolean  copy_iop_order,
const gboolean  update_iop_order 
)

Variable Documentation

◆ dt_style_parser

GMarkupParser dt_style_parser
static
Initial value:
= {
NULL,
NULL
}
static void dt_styles_end_tag_handler(GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error)
Definition common/styles.c:1242
static void dt_styles_style_text_handler(GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error)
Definition common/styles.c:1256
static void dt_styles_start_tag_handler(GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error)
Definition common/styles.c:1226

Referenced by dt_styles_import_from_file().