Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
collection.h File Reference
#include <glib.h>
#include <glib/gi18n.h>
#include <inttypes.h>
#include "common/metadata.h"
+ Include dependency graph for collection.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_collection_params_t
 
struct  dt_collection_t
 

Macros

#define NUM_LAST_COLLECTIONS   10
 
#define COLLECTION_QUERY_FULL   (COLLECTION_QUERY_USE_SORT | COLLECTION_QUERY_USE_LIMIT)
 
#define DT_COLLECTION_ORDER_FLAG   0x8000
 

Typedefs

typedef enum dt_collection_query_flags_t dt_collection_query_flags_t
 
typedef enum dt_collection_filter_flag_t dt_collection_filter_flag_t
 
typedef enum dt_collection_sort_t dt_collection_sort_t
 
typedef enum dt_collection_properties_t dt_collection_properties_t
 
typedef enum dt_collection_change_t dt_collection_change_t
 
typedef struct dt_collection_params_t dt_collection_params_t
 
typedef struct dt_collection_t dt_collection_t
 

Enumerations

enum  dt_collection_query_flags_t {
  COLLECTION_QUERY_SIMPLE = 0 ,
  COLLECTION_QUERY_USE_SORT = 1 << 0 ,
  COLLECTION_QUERY_USE_LIMIT = 1 << 1 ,
  COLLECTION_QUERY_USE_WHERE_EXT = 1 << 2 ,
  COLLECTION_QUERY_USE_ONLY_WHERE_EXT = 1 << 3
}
 
enum  dt_collection_filter_flag_t {
  COLLECTION_FILTER_NONE = 0 ,
  COLLECTION_FILTER_ALTERED = 1 << 0 ,
  COLLECTION_FILTER_UNALTERED = 1 << 1 ,
  COLLECTION_FILTER_REJECTED = 1 << 2 ,
  COLLECTION_FILTER_0_STAR = 1 << 3 ,
  COLLECTION_FILTER_1_STAR = 1 << 4 ,
  COLLECTION_FILTER_2_STAR = 1 << 5 ,
  COLLECTION_FILTER_3_STAR = 1 << 6 ,
  COLLECTION_FILTER_4_STAR = 1 << 7 ,
  COLLECTION_FILTER_5_STAR = 1 << 8 ,
  COLLECTION_FILTER_RED = 1 << 9 ,
  COLLECTION_FILTER_YELLOW = 1 << 10 ,
  COLLECTION_FILTER_GREEN = 1 << 11 ,
  COLLECTION_FILTER_BLUE = 1 << 12 ,
  COLLECTION_FILTER_MAGENTA = 1 << 13 ,
  COLLECTION_FILTER_WHITE = 1 << 14
}
 
enum  dt_collection_sort_t {
  DT_COLLECTION_SORT_NONE = -1 ,
  DT_COLLECTION_SORT_FILENAME = 0 ,
  DT_COLLECTION_SORT_DATETIME ,
  DT_COLLECTION_SORT_IMPORT_TIMESTAMP ,
  DT_COLLECTION_SORT_CHANGE_TIMESTAMP ,
  DT_COLLECTION_SORT_EXPORT_TIMESTAMP ,
  DT_COLLECTION_SORT_PRINT_TIMESTAMP ,
  DT_COLLECTION_SORT_RATING ,
  DT_COLLECTION_SORT_ID ,
  DT_COLLECTION_SORT_COLOR ,
  DT_COLLECTION_SORT_GROUP ,
  DT_COLLECTION_SORT_PATH ,
  DT_COLLECTION_SORT_TITLE
}
 
enum  dt_collection_properties_t {
  DT_COLLECTION_PROP_FILMROLL = 0 ,
  DT_COLLECTION_PROP_FOLDERS ,
  DT_COLLECTION_PROP_FILENAME ,
  DT_COLLECTION_PROP_CAMERA ,
  DT_COLLECTION_PROP_LENS ,
  DT_COLLECTION_PROP_APERTURE ,
  DT_COLLECTION_PROP_EXPOSURE ,
  DT_COLLECTION_PROP_FOCAL_LENGTH ,
  DT_COLLECTION_PROP_ISO ,
  DT_COLLECTION_PROP_DAY ,
  DT_COLLECTION_PROP_TIME ,
  DT_COLLECTION_PROP_IMPORT_TIMESTAMP ,
  DT_COLLECTION_PROP_CHANGE_TIMESTAMP ,
  DT_COLLECTION_PROP_EXPORT_TIMESTAMP ,
  DT_COLLECTION_PROP_PRINT_TIMESTAMP ,
  DT_COLLECTION_PROP_GEOTAGGING ,
  DT_COLLECTION_PROP_TAG ,
  DT_COLLECTION_PROP_COLORLABEL ,
  DT_COLLECTION_PROP_METADATA ,
  DT_COLLECTION_PROP_GROUPING = DT_COLLECTION_PROP_METADATA + DT_METADATA_NUMBER ,
  DT_COLLECTION_PROP_LOCAL_COPY ,
  DT_COLLECTION_PROP_HISTORY ,
  DT_COLLECTION_PROP_MODULE ,
  DT_COLLECTION_PROP_ORDER ,
  DT_COLLECTION_PROP_RATING ,
  DT_COLLECTION_PROP_LAST ,
  DT_COLLECTION_PROP_UNDEF ,
  DT_COLLECTION_PROP_SORT
}
 
enum  dt_collection_change_t {
  DT_COLLECTION_CHANGE_NONE = 0 ,
  DT_COLLECTION_CHANGE_NEW_QUERY = 1 ,
  DT_COLLECTION_CHANGE_FILTER = 2 ,
  DT_COLLECTION_CHANGE_RELOAD = 3
}
 

Functions

const char * dt_collection_name (dt_collection_properties_t prop)
 
dt_collection_tdt_collection_new ()
 
void dt_collection_free (const dt_collection_t *collection)
 
const dt_collection_params_tdt_collection_params (const dt_collection_t *collection)
 
void dt_collection_get_makermodels (const gchar *filter, GList **sanitized, GList **exif)
 
gchar * dt_collection_get_makermodel (const char *exif_maker, const char *exif_model)
 
const gchar * dt_collection_get_query (const dt_collection_t *collection)
 
int dt_collection_update (const dt_collection_t *collection)
 
void dt_collection_reset (const dt_collection_t *collection)
 
gchar * dt_collection_get_extended_where (const dt_collection_t *collection, int exclude)
 
void dt_collection_set_extended_where (const dt_collection_t *collection, gchar **extended_where)
 
dt_collection_filter_flag_t dt_collection_get_filter_flags (const dt_collection_t *collection)
 
void dt_collection_set_filter_flags (const dt_collection_t *collection, dt_collection_filter_flag_t flags)
 
dt_collection_query_flags_t dt_collection_get_query_flags (const dt_collection_t *collection)
 
void dt_collection_set_query_flags (const dt_collection_t *collection, dt_collection_query_flags_t flags)
 
char * dt_collection_get_text_filter (const dt_collection_t *collection)
 
void dt_collection_set_text_filter (const dt_collection_t *collection, char *text_filter)
 
void dt_collection_set_tag_id (dt_collection_t *collection, const uint32_t tagid)
 
void dt_collection_load_filmroll (dt_collection_t *collection, const int32_t imgid, gboolean open_single_image)
 
void dt_collection_set_sort (const dt_collection_t *collection, dt_collection_sort_t sort, gint reverse)
 
dt_collection_sort_t dt_collection_get_sort_field (const dt_collection_t *collection)
 
gboolean dt_collection_get_sort_descending (const dt_collection_t *collection)
 
gchar * dt_collection_get_sort_query (const dt_collection_t *collection)
 
uint32_t dt_collection_get_count (const dt_collection_t *collection)
 
int dt_collection_get_nth (const dt_collection_t *collection, int nth)
 
GList * dt_collection_get_all (const dt_collection_t *collection, int limit)
 
void dt_collection_update_query (const dt_collection_t *collection, dt_collection_change_t query_change, dt_collection_properties_t changed_property, GList *list)
 
void dt_collection_hint_message (const dt_collection_t *collection)
 
void dt_collection_deserialize (const char *buf)
 
int dt_collection_serialize (char *buf, int bufsize)
 
void dt_collection_split_operator_number (const gchar *input, char **number1, char **number2, char **op)
 
void dt_collection_split_operator_datetime (const gchar *input, char **number1, char **number2, char **op)
 
void dt_collection_split_operator_exposure (const gchar *input, char **number1, char **number2, char **op)
 
void dt_collection_memory_update ()
 
void dt_selection_to_culling_mode ()
 
void dt_culling_mode_to_selection ()
 

Macro Definition Documentation

◆ COLLECTION_QUERY_FULL

#define COLLECTION_QUERY_FULL   (COLLECTION_QUERY_USE_SORT | COLLECTION_QUERY_USE_LIMIT)

◆ DT_COLLECTION_ORDER_FLAG

#define DT_COLLECTION_ORDER_FLAG   0x8000

◆ NUM_LAST_COLLECTIONS

#define NUM_LAST_COLLECTIONS   10

Typedef Documentation

◆ dt_collection_change_t

◆ dt_collection_filter_flag_t

◆ dt_collection_params_t

◆ dt_collection_properties_t

◆ dt_collection_query_flags_t

◆ dt_collection_sort_t

◆ dt_collection_t

Enumeration Type Documentation

◆ dt_collection_change_t

Enumerator
DT_COLLECTION_CHANGE_NONE 
DT_COLLECTION_CHANGE_NEW_QUERY 
DT_COLLECTION_CHANGE_FILTER 
DT_COLLECTION_CHANGE_RELOAD 

◆ dt_collection_filter_flag_t

Enumerator
COLLECTION_FILTER_NONE 
COLLECTION_FILTER_ALTERED 
COLLECTION_FILTER_UNALTERED 
COLLECTION_FILTER_REJECTED 
COLLECTION_FILTER_0_STAR 
COLLECTION_FILTER_1_STAR 
COLLECTION_FILTER_2_STAR 
COLLECTION_FILTER_3_STAR 
COLLECTION_FILTER_4_STAR 
COLLECTION_FILTER_5_STAR 
COLLECTION_FILTER_RED 
COLLECTION_FILTER_YELLOW 
COLLECTION_FILTER_GREEN 
COLLECTION_FILTER_BLUE 
COLLECTION_FILTER_MAGENTA 
COLLECTION_FILTER_WHITE 

◆ dt_collection_properties_t

Enumerator
DT_COLLECTION_PROP_FILMROLL 
DT_COLLECTION_PROP_FOLDERS 
DT_COLLECTION_PROP_FILENAME 
DT_COLLECTION_PROP_CAMERA 
DT_COLLECTION_PROP_LENS 
DT_COLLECTION_PROP_APERTURE 
DT_COLLECTION_PROP_EXPOSURE 
DT_COLLECTION_PROP_FOCAL_LENGTH 
DT_COLLECTION_PROP_ISO 
DT_COLLECTION_PROP_DAY 
DT_COLLECTION_PROP_TIME 
DT_COLLECTION_PROP_IMPORT_TIMESTAMP 
DT_COLLECTION_PROP_CHANGE_TIMESTAMP 
DT_COLLECTION_PROP_EXPORT_TIMESTAMP 
DT_COLLECTION_PROP_PRINT_TIMESTAMP 
DT_COLLECTION_PROP_GEOTAGGING 
DT_COLLECTION_PROP_TAG 
DT_COLLECTION_PROP_COLORLABEL 
DT_COLLECTION_PROP_METADATA 
DT_COLLECTION_PROP_GROUPING 
DT_COLLECTION_PROP_LOCAL_COPY 
DT_COLLECTION_PROP_HISTORY 
DT_COLLECTION_PROP_MODULE 
DT_COLLECTION_PROP_ORDER 
DT_COLLECTION_PROP_RATING 
DT_COLLECTION_PROP_LAST 
DT_COLLECTION_PROP_UNDEF 
DT_COLLECTION_PROP_SORT 

◆ dt_collection_query_flags_t

Enumerator
COLLECTION_QUERY_SIMPLE 
COLLECTION_QUERY_USE_SORT 
COLLECTION_QUERY_USE_LIMIT 
COLLECTION_QUERY_USE_WHERE_EXT 
COLLECTION_QUERY_USE_ONLY_WHERE_EXT 

◆ dt_collection_sort_t

Enumerator
DT_COLLECTION_SORT_NONE 
DT_COLLECTION_SORT_FILENAME 
DT_COLLECTION_SORT_DATETIME 
DT_COLLECTION_SORT_IMPORT_TIMESTAMP 
DT_COLLECTION_SORT_CHANGE_TIMESTAMP 
DT_COLLECTION_SORT_EXPORT_TIMESTAMP 
DT_COLLECTION_SORT_PRINT_TIMESTAMP 
DT_COLLECTION_SORT_RATING 
DT_COLLECTION_SORT_ID 
DT_COLLECTION_SORT_COLOR 
DT_COLLECTION_SORT_GROUP 
DT_COLLECTION_SORT_PATH 
DT_COLLECTION_SORT_TITLE 

Function Documentation

◆ dt_collection_deserialize()

◆ dt_collection_free()

void dt_collection_free ( const dt_collection_t collection)

frees a collection context.

References dt_collection_t::query, and dt_collection_t::where_ext.

Referenced by dt_cleanup().

◆ dt_collection_get_all()

GList * dt_collection_get_all ( const dt_collection_t collection,
int  limit 
)

get all image ids order as current selection. no more than limit many images are returned, <0 == unlimited

References dt_collection_get().

Referenced by _jpg_combobox_changed(), _switch_to_next_picture(), and _switch_to_prev_picture().

◆ dt_collection_get_count()

◆ dt_collection_get_extended_where()

gchar * dt_collection_get_extended_where ( const dt_collection_t collection,
int  exclude 
)

gets an extended where part

References dt_conf_get_int(), dt_util_dstrcat(), and dt_collection_t::where_ext.

Referenced by dt_collection_update(), list_view(), and tree_view().

◆ dt_collection_get_filter_flags()

◆ dt_collection_get_makermodel()

gchar * dt_collection_get_makermodel ( const char *  exif_maker,
const char *  exif_model 
)

get the sanitized makermodel for exif maker/model

References dt_imageio_lookup_makermodel(), maker, and model.

Referenced by dt_collection_get_makermodels(), and list_view().

◆ dt_collection_get_makermodels()

void dt_collection_get_makermodels ( const gchar *  filter,
GList **  sanitized,
GList **  exif 
)

get the filtered map between sanitized makermodel and exif maker/model

References darktable, darktable_t::db, dt_collection_get_makermodel(), dt_database_get(), DT_DEBUG_SQLITE3_PREPARE_V2, FALSE, key, and TRUE.

Referenced by get_query_string().

◆ dt_collection_get_nth()

int dt_collection_get_nth ( const dt_collection_t collection,
int  nth 
)

◆ dt_collection_get_query()

const gchar * dt_collection_get_query ( const dt_collection_t collection)

◆ dt_collection_get_query_flags()

dt_collection_query_flags_t dt_collection_get_query_flags ( const dt_collection_t collection)

get filter flags for collection

References dt_collection_t::params, and dt_collection_params_t::query_flags.

Referenced by dt_collection_update_query().

◆ dt_collection_get_sort_descending()

gboolean dt_collection_get_sort_descending ( const dt_collection_t collection)

get if the collection must be shown in descending order

References dt_collection_params_t::descending, and dt_collection_t::params.

Referenced by gui_init().

◆ dt_collection_get_sort_field()

dt_collection_sort_t dt_collection_get_sort_field ( const dt_collection_t collection)

get the sort field used

References dt_collection_t::params, and dt_collection_params_t::sort.

Referenced by gui_init().

◆ dt_collection_get_sort_query()

◆ dt_collection_get_text_filter()

char * dt_collection_get_text_filter ( const dt_collection_t collection)

get text filter for collection

References dt_collection_t::params, and dt_collection_params_t::text_filter.

Referenced by _text_entry_changed_wait(), and gui_init().

◆ dt_collection_hint_message()

◆ dt_collection_load_filmroll()

◆ dt_collection_memory_update()

◆ dt_collection_name()

◆ dt_collection_new()

dt_collection_t * dt_collection_new ( )

instantiates a collection context

References dt_collection_reset().

Referenced by dt_init().

◆ dt_collection_params()

const dt_collection_params_t * dt_collection_params ( const dt_collection_t collection)

fetch params for collection for storing.

References dt_collection_t::params.

◆ dt_collection_reset()

◆ dt_collection_serialize()

int dt_collection_serialize ( char *  buf,
int  bufsize 
)

◆ dt_collection_set_extended_where()

void dt_collection_set_extended_where ( const dt_collection_t collection,
gchar **  extended_where 
)

sets an extended where part

References dt_collection_t::where_ext.

Referenced by dt_collection_update_query().

◆ dt_collection_set_filter_flags()

void dt_collection_set_filter_flags ( const dt_collection_t collection,
dt_collection_filter_flag_t  flags 
)

◆ dt_collection_set_query_flags()

void dt_collection_set_query_flags ( const dt_collection_t collection,
dt_collection_query_flags_t  flags 
)

set filter flags for collection

References flags, and dt_collection_t::params.

Referenced by _lib_filter_update_query(), dt_collection_update_query(), and gui_reset().

◆ dt_collection_set_sort()

void dt_collection_set_sort ( const dt_collection_t collection,
dt_collection_sort_t  sort,
gint  reverse 
)

set the sort fields and flags used to show the collection

◆ dt_collection_set_tag_id()

void dt_collection_set_tag_id ( dt_collection_t collection,
const uint32_t  tagid 
)

set the tagid of collection

References dt_collection_t::tagid.

Referenced by row_activated_with_event().

◆ dt_collection_set_text_filter()

void dt_collection_set_text_filter ( const dt_collection_t collection,
char *  text_filter 
)

set text filter for collection

References dt_collection_t::params.

Referenced by _reset_text_filter(), _text_entry_changed_wait(), and gui_cleanup().

◆ dt_collection_split_operator_datetime()

void dt_collection_split_operator_datetime ( const gchar *  input,
char **  number1,
char **  number2,
char **  op 
)

◆ dt_collection_split_operator_exposure()

void dt_collection_split_operator_exposure ( const gchar *  input,
char **  number1,
char **  number2,
char **  op 
)

Referenced by get_query_string().

◆ dt_collection_split_operator_number()

void dt_collection_split_operator_number ( const gchar *  input,
char **  number1,
char **  number2,
char **  op 
)

◆ dt_collection_update()

int dt_collection_update ( const dt_collection_t collection)

updates sql query for a collection.

Returns
1 if query changed.

References _dt_collection_set_selq_pre_sort(), _dt_collection_store(), and_operator(), COLLECTION_FILTER_0_STAR, COLLECTION_FILTER_1_STAR, COLLECTION_FILTER_2_STAR, COLLECTION_FILTER_3_STAR, COLLECTION_FILTER_4_STAR, COLLECTION_FILTER_5_STAR, COLLECTION_FILTER_ALTERED, COLLECTION_FILTER_BLUE, COLLECTION_FILTER_GREEN, COLLECTION_FILTER_MAGENTA, COLLECTION_FILTER_NONE, COLLECTION_FILTER_RED, COLLECTION_FILTER_REJECTED, COLLECTION_FILTER_UNALTERED, COLLECTION_FILTER_WHITE, COLLECTION_FILTER_YELLOW, COLLECTION_QUERY_USE_LIMIT, COLLECTION_QUERY_USE_ONLY_WHERE_EXT, COLLECTION_QUERY_USE_SORT, COLLECTION_QUERY_USE_WHERE_EXT, dt_collection_get_extended_where(), dt_collection_get_sort_query(), DT_COLLECTION_SORT_COLOR, DT_COLLECTION_SORT_PATH, DT_COLLECTION_SORT_TITLE, DT_COLORLABELS_BLUE, DT_COLORLABELS_GREEN, DT_COLORLABELS_PURPLE, DT_COLORLABELS_RED, DT_COLORLABELS_YELLOW, DT_IMAGE_REJECTED, DT_IMAGE_REMOVE, DT_METADATA_XMP_DC_TITLE, dt_util_dstrcat(), DT_VIEW_DESERT, DT_VIEW_STAR_1, DT_VIEW_STAR_2, DT_VIEW_STAR_3, DT_VIEW_STAR_4, DT_VIEW_STAR_5, dt_collection_params_t::filter_flags, LIMIT_QUERY, or_operator(), or_operator_initial, dt_collection_t::params, dt_collection_params_t::query_flags, dt_collection_params_t::sort, dt_collection_t::tagid, and dt_collection_params_t::text_filter.

Referenced by dt_collection_get_query(), dt_collection_update_query(), dt_control_delete_images_job_run(), and dt_control_remove_images_job_run().

◆ dt_collection_update_query()

void dt_collection_update_query ( const dt_collection_t collection,
dt_collection_change_t  query_change,
dt_collection_properties_t  changed_property,
GList *  list 
)

update query by conf vars

References _update_recentcollections(), COLLECTION_QUERY_USE_WHERE_EXT, darktable, darktable_t::db, dt_collection_get_query_flags(), dt_collection_memory_update(), dt_collection_set_extended_where(), dt_collection_set_query_flags(), dt_collection_update(), dt_conf_get_int(), dt_conf_get_string(), dt_database_get(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_SQLITE3_PREPARE_V2, DT_SIGNAL_COLLECTION_CHANGED, dt_util_dstrcat(), get_query_string(), and darktable_t::signals.

Referenced by _control_import_job_run(), _culling_mode(), _film_import1(), _generic_dt_control_fileop_images_job_run(), _image_duplicate_with_version(), _lib_duplicate_delete(), _lib_filter_update_query(), _menuitem_preferences(), _refresh_collection_callback(), _reset_text_entry(), collapse_grouped_callback(), combo_changed(), dt_collection_deserialize(), dt_collection_load_filmroll(), dt_collection_reset(), dt_control_delete_images_job_run(), dt_control_duplicate_images_job_run(), dt_control_local_copy_images_job_run(), dt_control_merge_hdr_job_run(), dt_control_monochrome_images_job_run(), dt_control_refresh_exif_run(), dt_control_remove_images_job_run(), dt_film_set_query(), dt_image_copy_rename(), dt_image_read_duplicates(), enter(), entry_activated(), geotag_changed(), group_images_callback(), gui_reset(), import_images(), menuitem_clear(), menuitem_mode(), menuitem_mode_change(), metadata_changed(), preferences_changed(), row_activated_with_event(), set_params(), tag_changed(), and ungroup_images_callback().

◆ dt_culling_mode_to_selection()

void dt_culling_mode_to_selection ( )

restore initial collection and selection when exiting culling mode

References darktable, dt_pop_collection(), dt_selection_pop(), and darktable_t::selection.

Referenced by _culling_mode(), dt_cleanup(), and dt_collection_memory_update().

◆ dt_selection_to_culling_mode()

void dt_selection_to_culling_mode ( )