Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
export.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/collection.h"
#include "common/colorspaces.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/file_location.h"
#include "common/imageio_module.h"
#include "common/styles.h"
#include "control/conf.h"
#include "control/control.h"
#include "control/jobs.h"
#include "control/signal.h"
#include "dtgtk/button.h"
#include "gui/gtk.h"
#include "gui/presets.h"
#include "libs/lib.h"
#include "libs/lib_api.h"
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <ctype.h>
#include <glib.h>
+ Include dependency graph for export.c:

Data Structures

struct  dt_lib_export_t
 

Macros

#define EXPORT_MAX_IMAGE_SIZE   UINT16_MAX
 
#define CONFIG_PREFIX   "plugins/lighttable/export/"
 
#define INCH_TO_CM   (2.54f)
 

Typedefs

typedef struct dt_lib_export_t dt_lib_export_t
 
typedef enum dt_dimensions_type_t dt_dimensions_type_t
 

Enumerations

enum  dt_dimensions_type_t {
  DT_DIMENSIONS_PIXELS = 0 ,
  DT_DIMENSIONS_CM = 1 ,
  DT_DIMENSIONS_INCH = 2 ,
  DT_DIMENSIONS_SCALE = 3 ,
  DT_DIMENSIONS_ORIGINAL = 4
}
 

Functions

char * dt_lib_export_metadata_configuration_dialog (char *list, const gboolean ondisk)
 
static void _update_formats_combobox (dt_lib_export_t *d)
 
static void _update_dimensions (dt_lib_export_t *d)
 
static void _get_max_output_dimension (dt_lib_export_t *d, uint32_t *width, uint32_t *height)
 
static void _resync_print_dimensions (dt_lib_export_t *self)
 
static void _resync_pixel_dimensions (dt_lib_export_t *self)
 
static float pixels2cm (dt_lib_export_t *self, const uint32_t pix)
 
static float pixels2inch (dt_lib_export_t *self, const uint32_t pix)
 
static uint32_t cm2pixels (dt_lib_export_t *self, const float cm)
 
static uint32_t inch2pixels (dt_lib_export_t *self, const float inch)
 
static uint32_t print2pixels (dt_lib_export_t *self, const float value)
 
static float pixels2print (dt_lib_export_t *self, const uint32_t pix)
 
const char * name (struct dt_lib_module_t *self)
 
const char ** views (dt_lib_module_t *self)
 
uint32_t container (dt_lib_module_t *self)
 
static void _update (dt_lib_module_t *self)
 
static void _image_selection_changed_callback (gpointer instance, dt_lib_module_t *self)
 
static void _collection_updated_callback (gpointer instance, dt_collection_change_t query_change, dt_collection_properties_t changed_property, gpointer imgs, int next, dt_lib_module_t *self)
 
gboolean _is_int (double value)
 
static void _scale_optim ()
 
static void _export_button_clicked (GtkWidget *widget, dt_lib_export_t *d)
 
static void _scale_changed (GtkEntry *spin, dt_lib_export_t *d)
 
static void _width_changed (GtkEditable *entry, gpointer user_data)
 
static void _height_changed (GtkEditable *entry, gpointer user_data)
 
static gboolean _scale_mdlclick (GtkEntry *spin, GdkEventButton *event, dt_lib_export_t *d)
 
static void _widht_mdlclick (GtkEntry *spin, GdkEventButton *event, gpointer user_data)
 
static void _height_mdlclick (GtkEntry *spin, GdkEventButton *event, gpointer user_data)
 
static void _size_in_px_update (dt_lib_export_t *d)
 
void _set_dimensions (dt_lib_export_t *d, uint32_t max_width, uint32_t max_height)
 
void _size_update_display (dt_lib_export_t *self)
 
void gui_reset (dt_lib_module_t *self)
 
static void set_format_by_name (dt_lib_export_t *d, const char *name)
 
static void _format_changed (GtkWidget *widget, dt_lib_export_t *d)
 
static void _validate_dimensions (dt_lib_export_t *d)
 
static void set_storage_by_name (dt_lib_export_t *d, const char *name)
 
static void _storage_changed (GtkWidget *widget, dt_lib_export_t *d)
 
static void _profile_changed (GtkWidget *widget, dt_lib_export_t *d)
 
static void _dimensions_type_changed (GtkWidget *widget, dt_lib_export_t *d)
 
static void _print_width_changed (GtkEditable *entry, gpointer user_data)
 
static void _print_height_changed (GtkEditable *entry, gpointer user_data)
 
static void _print_dpi_changed (GtkWidget *widget, gpointer user_data)
 
static void _callback_bool (GtkWidget *widget, gpointer user_data)
 
static void _intent_changed (GtkWidget *widget, dt_lib_export_t *d)
 
static void _style_changed (GtkWidget *widget, dt_lib_export_t *d)
 
int position ()
 
static void _on_storage_list_changed (gpointer instance, dt_lib_module_t *self)
 
static void _lib_export_styles_changed_callback (gpointer instance, gpointer user_data)
 
void _menuitem_preferences (GtkMenuItem *menuitem, dt_lib_module_t *self)
 
void set_preferences (void *menu, dt_lib_module_t *self)
 
void gui_init (dt_lib_module_t *self)
 
void gui_cleanup (dt_lib_module_t *self)
 
void init_presets (dt_lib_module_t *self)
 
voidlegacy_params (dt_lib_module_t *self, const void *const old_params, const size_t old_params_size, const int old_version, int *new_version, size_t *new_size)
 
voidget_params (dt_lib_module_t *self, int *size)
 
int set_params (dt_lib_module_t *self, const void *params, int size)
 

Macro Definition Documentation

◆ CONFIG_PREFIX

#define CONFIG_PREFIX   "plugins/lighttable/export/"

◆ EXPORT_MAX_IMAGE_SIZE

#define EXPORT_MAX_IMAGE_SIZE   UINT16_MAX

◆ INCH_TO_CM

#define INCH_TO_CM   (2.54f)

Typedef Documentation

◆ dt_dimensions_type_t

◆ dt_lib_export_t

Enumeration Type Documentation

◆ dt_dimensions_type_t

Enumerator
DT_DIMENSIONS_PIXELS 
DT_DIMENSIONS_CM 
DT_DIMENSIONS_INCH 
DT_DIMENSIONS_SCALE 
DT_DIMENSIONS_ORIGINAL 

Function Documentation

◆ _callback_bool()

static void _callback_bool ( GtkWidget *  widget,
gpointer  user_data 
)
static

References dt_bauhaus_combobox_get(), dt_conf_set_bool(), and key.

Referenced by gui_init().

◆ _collection_updated_callback()

static void _collection_updated_callback ( gpointer  instance,
dt_collection_change_t  query_change,
dt_collection_properties_t  changed_property,
gpointer  imgs,
int  next,
dt_lib_module_t self 
)
static

References _update().

Referenced by gui_cleanup(), and gui_init().

◆ _dimensions_type_changed()

◆ _export_button_clicked()

◆ _format_changed()

static void _format_changed ( GtkWidget *  widget,
dt_lib_export_t d 
)
static

◆ _get_max_output_dimension()

static void _get_max_output_dimension ( dt_lib_export_t d,
uint32_t *  width,
uint32_t *  height 
)
static

get the max output dimension supported by combination of storage and format..

References CONFIG_PREFIX, dt_conf_get_string_const(), dt_imageio_get_format_by_name(), dt_imageio_get_storage_by_name(), height, and width.

Referenced by _update_dimensions().

◆ _height_changed()

static void _height_changed ( GtkEditable *  entry,
gpointer  user_data 
)
static

◆ _height_mdlclick()

static void _height_mdlclick ( GtkEntry *  spin,
GdkEventButton *  event,
gpointer  user_data 
)
static

References _height_changed(), CONFIG_PREFIX, and dt_conf_set_int().

Referenced by gui_init().

◆ _image_selection_changed_callback()

static void _image_selection_changed_callback ( gpointer  instance,
dt_lib_module_t self 
)
static

References _update().

Referenced by gui_cleanup(), and gui_init().

◆ _intent_changed()

static void _intent_changed ( GtkWidget *  widget,
dt_lib_export_t d 
)
static

◆ _is_int()

gboolean _is_int ( double  value)

Referenced by _scale_optim().

◆ _lib_export_styles_changed_callback()

static void _lib_export_styles_changed_callback ( gpointer  instance,
gpointer  user_data 
)
static

◆ _menuitem_preferences()

◆ _on_storage_list_changed()

◆ _print_dpi_changed()

static void _print_dpi_changed ( GtkWidget *  widget,
gpointer  user_data 
)
static

◆ _print_height_changed()

static void _print_height_changed ( GtkEditable *  entry,
gpointer  user_data 
)
static

◆ _print_width_changed()

static void _print_width_changed ( GtkEditable *  entry,
gpointer  user_data 
)
static

◆ _profile_changed()

◆ _resync_pixel_dimensions()

◆ _resync_print_dimensions()

◆ _scale_changed()

static void _scale_changed ( GtkEntry *  spin,
dt_lib_export_t d 
)
static

References CONFIG_PREFIX, and dt_conf_set_string().

Referenced by _scale_mdlclick(), and gui_init().

◆ _scale_mdlclick()

static gboolean _scale_mdlclick ( GtkEntry *  spin,
GdkEventButton *  event,
dt_lib_export_t d 
)
static

◆ _scale_optim()

◆ _set_dimensions()

◆ _size_in_px_update()

◆ _size_update_display()

◆ _storage_changed()

static void _storage_changed ( GtkWidget *  widget,
dt_lib_export_t d 
)
static

◆ _style_changed()

static void _style_changed ( GtkWidget *  widget,
dt_lib_export_t d 
)
static

◆ _update()

◆ _update_dimensions()

static void _update_dimensions ( dt_lib_export_t d)
static

Sets the max dimensions based upon what storage and format supports

References _get_max_output_dimension(), _validate_dimensions(), EXPORT_MAX_IMAGE_SIZE, dt_lib_export_t::max_allowed_height, and dt_lib_export_t::max_allowed_width.

Referenced by set_format_by_name().

◆ _update_formats_combobox()

static void _update_formats_combobox ( dt_lib_export_t d)
static

◆ _validate_dimensions()

◆ _widht_mdlclick()

static void _widht_mdlclick ( GtkEntry *  spin,
GdkEventButton *  event,
gpointer  user_data 
)
static

References _width_changed(), CONFIG_PREFIX, and dt_conf_set_int().

Referenced by gui_init().

◆ _width_changed()

static void _width_changed ( GtkEditable *  entry,
gpointer  user_data 
)
static

◆ cm2pixels()

static uint32_t cm2pixels ( dt_lib_export_t self,
const float  cm 
)
inlinestatic

References INCH_TO_CM, and dt_lib_export_t::print_dpi.

Referenced by print2pixels().

◆ container()

uint32_t container ( dt_lib_module_t self)

References DT_UI_CONTAINER_SIZE.

◆ dt_lib_export_metadata_configuration_dialog()

◆ get_params()

void * get_params ( dt_lib_module_t self,
int *  size 
)
Todo:
: also the web preset has to be applied twice to be known as preset! (other dimension magic going on
Todo:
: get this stuff from gui and not from conf, so it will be sanity-checked (you can never delete an

References CONFIG_PREFIX, dt_lib_module_t::data, DT_COLORSPACE_FILE, dt_conf_get_bool(), dt_conf_get_int(), dt_conf_get_string(), dt_imageio_get_format(), dt_imageio_get_storage(), FALSE, dt_lib_export_t::metadata_export, dt_imageio_module_format_t::plugin_name, dt_imageio_module_storage_t::plugin_name, size, dt_imageio_module_data_t::style, and TRUE.

◆ gui_cleanup()

◆ gui_init()

void gui_init ( dt_lib_module_t self)

References _callback_bool(), _collection_updated_callback(), _dimensions_type_changed(), _export_button_clicked(), _format_changed(), _height_changed(), _height_mdlclick(), _image_selection_changed_callback(), _intent_changed(), _lib_export_styles_changed_callback(), _on_storage_list_changed(), _print_dpi_changed(), _print_height_changed(), _print_width_changed(), _profile_changed(), _scale_changed(), _scale_mdlclick(), _size_update_display(), _storage_changed(), _style_changed(), _widht_mdlclick(), _width_changed(), darktable_t::bauhaus, darktable_t::color_profiles, CONFIG_PREFIX, darktable, dt_lib_module_t::data, dt_lib_export_t::dimensions_type, dt_accels_disconnect_on_text_input(), dt_action_button_new(), dt_bauhaus_combobox_add(), dt_bauhaus_combobox_new(), DT_BAUHAUS_COMBOBOX_NEW_FULL, dt_bauhaus_combobox_set(), dt_bauhaus_combobox_set_from_text(), dt_bauhaus_widget_set_label(), DT_COLORSPACE_FILE, DT_COLORSPACE_NONE, dt_conf_get_bool(), dt_conf_get_int(), dt_conf_get_string(), dt_conf_get_string_const(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_GUI_MODULE, dt_imageio_get_format_by_name(), dt_imageio_get_index_of_format(), dt_imageio_get_index_of_storage(), dt_imageio_get_storage_by_name(), dt_lib_export_metadata_get_conf(), dt_loc_get_datadir(), dt_loc_get_user_config_dir(), DT_SIGNAL_COLLECTION_CHANGED, DT_SIGNAL_IMAGEIO_STORAGE_CHANGE, DT_SIGNAL_SELECTION_CHANGED, DT_SIGNAL_STYLE_CHANGED, dt_ui_section_label_new(), dt_lib_export_t::export_button, dt_lib_export_t::export_masks, FALSE, dt_colorspaces_color_profile_t::filename, dt_lib_export_t::format, dt_lib_export_t::format_extra_container, dt_lib_export_t::height, darktable_t::imageio, dt_lib_export_t::intent, dt_lib_export_t::metadata_export, dt_colorspaces_color_profile_t::name, dt_colorspaces_color_profile_t::out_pos, PATH_MAX, dt_imageio_t::plugins_format, dt_imageio_t::plugins_storage, dt_lib_export_t::print_dpi, dt_lib_export_t::print_height, dt_lib_export_t::print_size, dt_lib_export_t::print_width, dt_lib_export_t::profile, dt_colorspaces_t::profiles, dt_lib_export_t::px_size, dt_lib_export_t::scale, darktable_t::signals, dt_lib_export_t::size_in_px, dt_lib_export_t::storage, dt_lib_export_t::storage_extra_container, dt_lib_export_t::style, dt_lib_module_t::timeout_handle, tooltip, TRUE, dt_colorspaces_color_profile_t::type, dt_lib_export_t::unit_label, dt_lib_module_t::widget, and dt_lib_export_t::width.

◆ gui_reset()

◆ inch2pixels()

static uint32_t inch2pixels ( dt_lib_export_t self,
const float  inch 
)
inlinestatic

References dt_lib_export_t::print_dpi.

Referenced by print2pixels().

◆ init_presets()

◆ legacy_params()

void * legacy_params ( dt_lib_module_t self,
const void *const  old_params,
const size_t  old_params_size,
const int  old_version,
int *  new_version,
size_t *  new_size 
)

◆ name()

const char * name ( struct dt_lib_module_t self)

◆ pixels2cm()

static float pixels2cm ( dt_lib_export_t self,
const uint32_t  pix 
)
inlinestatic

References INCH_TO_CM, and dt_lib_export_t::print_dpi.

Referenced by pixels2print().

◆ pixels2inch()

static float pixels2inch ( dt_lib_export_t self,
const uint32_t  pix 
)
inlinestatic

References dt_lib_export_t::print_dpi.

Referenced by pixels2print().

◆ pixels2print()

◆ position()

int position ( )

◆ print2pixels()

◆ set_format_by_name()

◆ set_params()

◆ set_preferences()

void set_preferences ( void menu,
dt_lib_module_t self 
)

◆ set_storage_by_name()

◆ views()

const char ** views ( dt_lib_module_t self)