32static gboolean
clear_caches_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
39static gboolean
optimize_database_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
45static gboolean
backup_database_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
51static gboolean
crawl_xmp_changes(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
68 GList *img = g_list_first(selection);
72 const int32_t imgid = GPOINTER_TO_INT(img->data);
102 img = g_list_next(img);
105 g_list_free(selection);
169static gboolean
preload_auto_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
176 fprintf(stdout,
"mipmap %i\n", mip);
180static gboolean
clear_image_cache(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
184 for(GList *img = g_list_first(selection); img; img = g_list_next(img))
186 const int32_t imgid = GPOINTER_TO_INT(img->data);
190 g_list_free(selection);
203 add_sub_menu_entry(menus, lists, _(
"Clear darkroom pipeline caches"), index, NULL,
clear_caches_callback, NULL, NULL, NULL, 0, 0);
210 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 360x225 px"), index, NULL,
preload_to_mipmap_0_callback, NULL, NULL,
has_active_images, 0, 0);
211 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 720x450 px"), index, NULL,
preload_to_mipmap_1_callback, NULL, NULL,
has_active_images, 0, 0);
212 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 1440x900 px"), index, NULL,
preload_to_mipmap_2_callback, NULL, NULL,
has_active_images, 0, 0);
213 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to Full HD 1080p"), index, NULL,
preload_to_mipmap_3_callback, NULL, NULL,
has_active_images, 0, 0);
214 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 2560x1440 px"), index, NULL,
preload_to_mipmap_4_callback, NULL, NULL,
has_active_images, 0, 0);
215 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 4K/UHD"), index, NULL,
preload_to_mipmap_5_callback, NULL, NULL,
has_active_images, 0, 0);
216 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 5K"), index, NULL,
preload_to_mipmap_6_callback, NULL, NULL,
has_active_images, 0, 0);
217 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 6K"), index, NULL,
preload_to_mipmap_7_callback, NULL, NULL,
has_active_images, 0, 0);
218 add_sub_sub_menu_entry(menus, parent, lists, _(
"up to 8K"), index, NULL,
preload_to_mipmap_8_callback, NULL, NULL,
has_active_images, 0, 0);
220 add_sub_sub_menu_entry(menus, parent, lists, _(
"for current grid size"), index, NULL,
preload_auto_callback, NULL, NULL,
has_active_images, 0, 0);
222 add_sub_menu_entry(menus, lists, _(
"Purge selected thumbnails from cache"), index, NULL,
clear_image_cache, NULL, NULL,
has_active_images, 0, 0);
224 add_sub_menu_entry(menus, lists, _(
"Defragment the library"), index, NULL,
optimize_database_callback, NULL, NULL, NULL, 0, 0);
225 add_sub_menu_entry(menus, lists, _(
"Backup the library"), index, NULL,
backup_database_callback, NULL, NULL, NULL, 0, 0);
227 add_sub_menu_entry(menus, lists, _(
"Synchronize developments from XMP to database"), index, NULL,
crawl_xmp_changes, NULL, NULL, NULL, 0, 0);
228 add_sub_menu_entry(menus, lists, _(
"Synchronize developments from database to XMP"), index, NULL,
GET_ACCEL_WRAPPER(
dt_control_write_sidecar_files), NULL, NULL,
has_active_images, 0, 0);
230 add_sub_menu_entry(menus, lists, _(
"Resynchronize local copies with distant XMP"), index, NULL,
GET_ACCEL_WRAPPER(
dt_image_local_copy_synch), NULL, NULL, NULL, 0, 0);
const char ** description(struct dt_iop_module_t *self)
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
void dt_image_local_copy_synch()
void dt_control_write_sidecar_files()
void dt_control_crawler_show_image_list(GList *images)
GList * dt_control_crawler_run(void)
gboolean dt_database_snapshot(const struct dt_database_t *db)
void dt_database_perform_maintenance(const struct dt_database_t *db)
void dt_dev_pixelpipe_reset_all(dt_develop_t *dev)
#define dt_dev_pixelpipe_resync_history_all(dev)
dt_job_state_t dt_control_job_get_state(_dt_job_t *job)
dt_job_t * dt_control_job_create(dt_job_execute_callback execute, const char *msg,...)
int dt_control_add_job(dt_control_t *control, dt_job_queue_t queue_id, _dt_job_t *job)
void * dt_control_job_get_params(const _dt_job_t *job)
void dt_control_job_set_progress(dt_job_t *job, double value)
void dt_control_job_add_progress(dt_job_t *job, const char *message, gboolean cancellable)
void dt_control_job_set_params(_dt_job_t *job, void *params, dt_job_destroy_callback callback)
float *const restrict const size_t k
static const int max_size
void dt_mipmap_get_cache_filename(char path[PATH_MAX], const dt_mipmap_cache_t *cache, dt_mipmap_size_t mip, const int32_t imgid)
void dt_mipmap_cache_remove(dt_mipmap_cache_t *cache, const int32_t imgid, const gboolean flush_disk)
void dt_mimap_cache_evict(dt_mipmap_cache_t *cache, const int32_t imgid)
dt_mipmap_size_t dt_mipmap_cache_get_matching_size(const dt_mipmap_cache_t *cache, const int32_t width, const int32_t height, const uint32_t imgid)
#define dt_mipmap_cache_get(A, B, C, D, E, F)
#define dt_mipmap_cache_release(A, B)
static gboolean preload_to_mipmap_8_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_to_mipmap_0_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_to_mipmap_7_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_to_mipmap_1_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_to_mipmap_6_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
void append_run(GtkWidget **menus, GList **lists, const dt_menus_t index)
static int32_t preload_image_cache(dt_job_t *job)
static gboolean preload_to_mipmap_3_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_to_mipmap_4_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean _preload_image_cache_with_max_size(dt_mipmap_size_t max_size, const char *description)
Helper function to create a preload job with the specified maximum mipmap size.
static gboolean clear_caches_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_auto_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean preload_to_mipmap_5_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean clear_image_cache(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean backup_database_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean optimize_database_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean crawl_xmp_changes(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
struct _preload_cache_params_t preload_cache_params_t
Job parameters for preloading image cache with a maximum mipmap size.
static gboolean preload_to_mipmap_2_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
int dt_selection_get_length(struct dt_selection_t *selection)
GList * dt_selection_get_list(struct dt_selection_t *selection)
struct _GtkWidget GtkWidget
Job parameters for preloading image cache with a maximum mipmap size.
dt_mipmap_size_t max_mipmap_size
Maximum mipmap size to generate.
struct dt_gui_gtk_t * gui
struct dt_mipmap_cache_t * mipmap_cache
struct dt_selection_t * selection
const struct dt_database_t * db
struct dt_develop_t * develop
struct dt_control_t * control
dt_thumbtable_t * thumbtable_lighttable
#define dt_thumbtable_refresh_thumbnail(table, imgid, reinit)
gboolean dt_util_test_image_file(const char *filename)