40static gboolean
clear_caches_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
48static gboolean
optimize_database_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
54static gboolean
backup_database_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
60static gboolean
crawl_xmp_changes(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
77 GList *img = g_list_first(selection);
81 const int32_t imgid = GPOINTER_TO_INT(img->data);
111 img = g_list_next(img);
114 g_list_free(selection);
178static gboolean
preload_auto_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
184 fprintf(stdout,
"mipmap %i\n", mip);
188static gboolean
clear_image_cache(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
192 for(GList *img = g_list_first(selection); img; img = g_list_next(img))
194 const int32_t imgid = GPOINTER_TO_INT(img->data);
198 g_list_free(selection);
206static gboolean
doc_screenshot_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
217 add_sub_menu_entry(menus, lists, _(
"Clear darkroom pipeline caches"), index, NULL,
clear_caches_callback, NULL, NULL, NULL, 0, 0);
224 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);
225 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);
226 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);
227 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);
228 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);
229 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);
230 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);
231 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);
232 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);
234 add_sub_sub_menu_entry(menus, parent, lists, _(
"for current grid size"), index, NULL,
preload_auto_callback, NULL, NULL,
has_active_images, 0, 0);
236 add_sub_menu_entry(menus, lists, _(
"Purge selected thumbnails from cache"), index, NULL,
clear_image_cache, NULL, NULL,
has_active_images, 0, 0);
238 add_sub_menu_entry(menus, lists, _(
"Defragment the library"), index, NULL,
optimize_database_callback, NULL, NULL, NULL, 0, 0);
239 add_sub_menu_entry(menus, lists, _(
"Backup the library"), index, NULL,
backup_database_callback, NULL, NULL, NULL, 0, 0);
241 add_sub_menu_entry(menus, lists, _(
"Synchronize developments from XMP to database"), index, NULL,
crawl_xmp_changes, NULL, NULL, NULL, 0, 0);
242 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);
244 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);
251 add_sub_menu_entry(menus, lists, _(
"Capture widget screenshots..."), index, NULL,
doc_screenshot_callback, NULL, NULL, NULL, 0, 0);
struct dt_ui_t * dt_gui_get_ui(void)
const char ** description(struct dt_iop_module_t *self)
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
struct _GtkWidget GtkWidget
GtkWidget, opaque, spelled exactly as GTK spells it.
void dt_image_local_copy_synch()
void dt_control_write_sidecar_files()
struct dt_control_t * dt_control_get_global(void)
void dt_control_crawler_show_image_list(GList *images)
GList * dt_control_crawler_run(void)
struct dt_develop_t * dt_dev_get_global(void)
struct dt_gui_gtk_t * dt_gui_get_global(void)
gboolean dt_database_snapshot(void)
void dt_database_perform_maintenance(void)
void dt_dev_pixelpipe_reset_all(dt_develop_t *dev)
#define dt_dev_pixelpipe_resync_history_all(dev)
void dt_gui_doc_screenshot_window_show(void)
gboolean dt_gui_doc_screenshot_enabled(void)
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_cache_remove(const int32_t imgid, const gboolean flush_disk)
void dt_mimap_cache_evict(const int32_t imgid)
dt_mipmap_size_t dt_mipmap_cache_get_matching_size(const int32_t width, const int32_t height, const uint32_t imgid)
void dt_mipmap_get_cache_filename(char path[DT_PATH_MAX], dt_mipmap_size_t mip, const int32_t imgid)
#define dt_mipmap_cache_get(B, C, D, E, F)
#define dt_mipmap_cache_release(B)
#define DT_PATH_MAX
Buffer size for a filesystem path anywhere in Ansel.
static gboolean doc_screenshot_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
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)
struct dt_selection_t * dt_selection_get_global(void)
int dt_selection_get_length(struct dt_selection_t *selection)
GList * dt_selection_get_list(struct dt_selection_t *selection)
Job parameters for preloading image cache with a maximum mipmap size.
dt_mipmap_size_t max_mipmap_size
Maximum mipmap size to generate.
dt_thumbtable_t * thumbtable_lighttable
A widget to manage and display image thumbnails in Ansel's lighttable and filmstrip views.
#define dt_thumbtable_refresh_thumbnail(table, imgid, reinit)
gboolean dt_util_test_image_file(const char *filename)