81 "SELECT id FROM data.styles WHERE name=?1 ORDER BY id DESC LIMIT 1", -1, &
stmt,
140 "INSERT INTO data.styles (name, description, id, iop_list)"
141 " VALUES (?1, ?2, (SELECT COALESCE(MAX(id),0)+1 FROM data.styles), ?3)", -1, &
stmt,
NULL);
165 "UPDATE data.styles SET iop_list=?1 WHERE id=?2", -1, &
stmt,
NULL);
172 "UPDATE data.styles SET iop_list=NULL WHERE id=?1", -1, &
stmt,
NULL);
188 "UPDATE data.styles SET name=?1, description=?2 WHERE id=?3", -1, &
stmt,
NULL);
235 "SELECT name, description FROM data.styles WHERE name LIKE ?1 OR description LIKE ?1 ORDER BY name", -1,
254 gboolean found =
FALSE;
257 "SELECT name, description FROM data.styles WHERE name = ?1", -1, &
stmt,
NULL);
283 "SELECT num, module, operation, op_params, enabled,"
284 " blendop_params, blendop_version, multi_priority, multi_name"
285 " FROM data.style_items WHERE styleid=?1 "
286 " ORDER BY num, operation, multi_priority",
319 "SELECT num, module, operation, op_params, enabled,"
320 " blendop_params, blendop_version, multi_priority, multi_name"
321 " FROM data.style_items"
322 " WHERE styleid =?1",
346 "SELECT num, multi_priority, module, operation, enabled, op_params, blendop_params, "
347 " multi_name, blendop_version"
348 " FROM data.style_items"
349 " WHERE styleid=?1 ORDER BY num DESC",
376 "SELECT num, multi_priority, module, operation, enabled, 0, 0, multi_name"
377 " FROM data.style_items"
378 " WHERE styleid=?1 ORDER BY num DESC",
410 "SELECT num, multi_priority, module, operation, enabled,"
414 " AND operation=data.style_items.operation"
415 " AND multi_priority=data.style_items.multi_priority),"
416 " 0, multi_name, blendop_version"
417 " FROM data.style_items"
420 " SELECT -1,main.history.multi_priority,main.history.module,main.history.operation,main.history.enabled, "
421 " main.history.num,0,multi_name, blendop_version"
423 " WHERE imgid=?2 AND main.history.enabled=1"
424 " AND (main.history.operation NOT IN (SELECT operation FROM data.style_items WHERE styleid=?1))"
425 " GROUP BY operation HAVING MAX(num) ORDER BY num DESC", -1, &
stmt,
NULL);
456 "INSERT INTO data.style_items"
457 " (styleid,num,module,operation,op_params,enabled,blendop_params,"
458 " blendop_version,multi_priority,multi_name)"
459 " SELECT ?1, num,module,operation,op_params,enabled,blendop_params,blendop_version,"
460 " multi_priority,multi_name"
462 " WHERE imgid=?2 AND %s",
470 "INSERT INTO data.style_items"
471 " (styleid,num,module,operation,op_params,enabled,blendop_params,"
472 " blendop_version,multi_priority,multi_name)"
473 " SELECT ?1, num,module,operation,op_params,enabled,blendop_params,blendop_version,"
474 " multi_priority,multi_name"
503 "INSERT INTO data.style_items "
504 " (styleid,num,module,operation,op_params,enabled,blendop_params,blendop_version,"
505 " multi_priority,multi_name)"
506 " SELECT ?1, num,module,operation,op_params,enabled,blendop_params,blendop_version,"
507 " multi_priority,multi_name"
508 " FROM data.style_items"
509 " WHERE styleid=?2 AND %s",
517 "INSERT INTO data.style_items "
518 " (styleid,num,module,operation,op_params,enabled,blendop_params,"
519 " blendop_version,multi_priority,multi_name)"
520 " SELECT ?1, num,module,operation,op_params,enabled,blendop_params,"
521 " blendop_version,multi_priority,multi_name"
522 " FROM data.style_items"
563 static const char *
const fields[] = {
"op_params",
"module",
"enabled",
"blendop_params",
564 "blendop_version",
"multi_priority",
"multi_name",
NULL };
567 for(
int k = 0; fields[
k];
k++)
587 "INSERT INTO data.style_items "
588 " (styleid, num, module, operation, op_params, enabled, blendop_params,"
589 " blendop_version, multi_priority, multi_name)"
592 " FROM data.style_items"
594 " ORDER BY num DESC LIMIT 1), "
595 " module, operation, op_params, enabled, blendop_params, blendop_version,"
596 " multi_priority, multi_name"
598 " WHERE imgid=%d AND num=%d",
607 const int module_version,
const char *operation,
609 const int enabled,
const void *blendop_params,
610 const int32_t blendop_params_size,
611 const int blendop_version,
const int multi_priority,
612 const char *multi_name)
619 "INSERT INTO data.style_items "
620 " (styleid, num, module, operation, op_params, enabled, blendop_params,"
621 " blendop_version, multi_priority, multi_name)"
622 " VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10)",
667 "SELECT rowid,operation FROM data.style_items WHERE styleid=?1 ORDER BY operation, multi_priority ASC", -1,
699 "UPDATE data.style_items SET multi_priority=?1 WHERE rowid=?2", -1, &
stmt,
NULL);
const char ** description(struct dt_iop_module_t *self)
size_t params_size(dt_imageio_module_format_t *self)
sqlite3 * dt_database_get_sqlite3_global(void)
static int dt_pthread_mutex_unlock(dt_pthread_mutex_t *mutex) RELEASE(mutex) NO_THREAD_SAFETY_ANALYSIS
static int dt_pthread_mutex_init(dt_pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)
static int dt_pthread_mutex_lock(dt_pthread_mutex_t *mutex) ACQUIRE(mutex) NO_THREAD_SAFETY_ANALYSIS
float *const restrict const size_t k
#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)
Checked wrappers around the sqlite3_* calls: trace the statement, assert the return code,...
#define DT_DEBUG_SQLITE3_EXEC(a, b, c, d, e)
#define DT_DEBUG_SQLITE3_BIND_BLOB(a, b, c, d, e)
#define DT_DEBUG_SQLITE3_PREPARE_V2(a, b, c, d, e)
#define DT_DEBUG_SQLITE3_BIND_TEXT(a, b, c, d, e)
#define DT_DEBUG_SQLITE3_BIND_INT(a, b, c)
static dt_pthread_mutex_t _styles_stmt_mutex
gboolean dt_style_repository_delete_items_except(const int32_t styleid, GList *nums)
gboolean dt_style_repository_copy_items_from_history(const int32_t styleid, const int32_t imgid, GList *nums)
void dt_style_repository_foreach_style(const char *filter, dt_style_repository_style_cb cb, void *user_data)
gboolean dt_style_repository_get_style(const char *name, dt_style_repository_style_cb cb, void *user_data)
int32_t dt_style_repository_get_id_by_name(const char *name)
char * dt_style_repository_get_iop_list(const char *name)
void dt_style_repository_foreach_item_with_params(const int32_t styleid, dt_style_repository_item_cb cb, void *user_data)
gboolean dt_style_repository_normalize_multi_priority(const int32_t styleid)
static gsize _styles_stmt_mutex_inited
void dt_style_repository_foreach_item(const int32_t styleid, dt_style_repository_item_cb cb, void *user_data)
gboolean dt_style_repository_insert_item(const int32_t styleid, const int num, const int module_version, const char *operation, const void *params, const int32_t params_size, const int enabled, const void *blendop_params, const int32_t blendop_params_size, const int blendop_version, const int multi_priority, const char *multi_name)
gboolean dt_style_repository_set_iop_list(const int32_t styleid, const char *iop_list_txt)
void dt_style_repository_cleanup(void)
void dt_style_repository_foreach_item_against_image(const int32_t styleid, const int32_t imgid, dt_style_repository_item_cb cb, void *user_data)
static sqlite3_stmt * _styles_apply_items_stmt
void dt_style_repository_foreach_apply_item(const int32_t styleid, dt_style_repository_item_cb cb, void *user_data)
gboolean dt_style_repository_update_header(const int32_t styleid, const char *newname, const char *description)
static void _styles_stmt_mutex_ensure(void)
gboolean dt_style_repository_insert_header(const char *name, const char *description, const char *iop_list_txt)
void dt_style_repository_append_item_from_history(const int32_t styleid, const int32_t imgid, const int history_num)
static char * _num_set_predicate(GList *nums, const gboolean negate)
char * dt_style_repository_get_description(const int32_t styleid)
gboolean dt_style_repository_delete(const int32_t styleid)
void dt_style_repository_foreach_item_for_export(const int32_t styleid, dt_style_repository_item_cb cb, void *user_data)
static sqlite3_stmt * _styles_get_list_stmt
void dt_style_repository_update_item_from_history(const int32_t styleid, const int item_num, const int32_t imgid, const int history_num)
gboolean dt_style_repository_copy_items_from_style(const int32_t dest_styleid, const int32_t source_styleid, GList *nums)
void(* dt_style_repository_style_cb)(void *user_data, const char *name, const char *description)
void(* dt_style_repository_item_cb)(void *user_data, const int num, const int multi_priority, const int module_version, const char *operation, const int enabled, const void *params, const int32_t params_size, const void *blendop_params, const int32_t blendop_params_size, const int blendop_version, const char *multi_name, const int selimg_num, const double iop_order)