![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "bauhaus/bauhaus.h"
#include "common/atomic.h"
#include "common/collection.h"
#include "common/darktable.h"
#include "common/file_location.h"
#include "common/debug.h"
#include "common/exif.h"
#include "common/import.h"
#include "common/image.h"
#include "common/image_cache.h"
#include "common/metadata.h"
#include "common/datetime.h"
#include "common/selection.h"
#include "control/conf.h"
#include "control/control.h"
#include "control/signal.h"
#include "control/jobs/import_jobs.h"
#include "dtgtk/button.h"
#include "gui/draw.h"
#include "gui/preferences.h"
#include "gui/gtkentry.h"
#include <gio/gio.h>
#include <strings.h>
#include <librsvg/rsvg.h>
#include <librsvg/rsvg-cairo.h>
Data Structures | |
struct | dt_import_t |
struct | dt_lib_import_t |
Typedefs | |
typedef struct dt_import_t | dt_import_t |
typedef enum exif_fields_t | exif_fields_t |
typedef struct dt_lib_import_t | dt_lib_import_t |
Enumerations | |
enum | exif_fields_t { EXIF_DATETIME_FIELD = 0 , EXIF_SEPARATOR1_FIELD , EXIF_MODEL_FIELD , EXIF_MAKER_FIELD , EXIF_LENS_FIELD , EXIF_FOCAL_LENS_FIELD , EXIF_SEPARATOR2_FIELD , EXIF_EXPOSURE_FIELD , EXIF_SEPARATOR3_FIELD , EXIF_INLIB_FIELD , EXIF_PATH_FIELD , EXIF_LAST_FIELD } |
Functions | |
static dt_import_t * | dt_import_init (dt_lib_import_t *d) |
static void | dt_import_cleanup (void *import) |
static dt_lib_import_t * | _init () |
static void | _cleanup (dt_lib_import_t *d) |
static void | gui_init (dt_lib_import_t *d) |
static void | gui_cleanup (dt_lib_import_t *d) |
static void | _set_test_path (dt_lib_import_t *d, dt_image_t *img) |
static void | _do_select_all (dt_lib_import_t *d) |
static void | _do_select_none (dt_lib_import_t *d) |
static void | _do_select_new (dt_lib_import_t *d) |
static void | _recurse_folder (GVfs *vfs, GFile *folder, dt_import_t *const import) |
static void | _gtk_label_set_and_free (GtkWidget *widget, gchar *label) |
static void | _filter_document (GVfs *vfs, GFile *document, dt_import_t *import) |
static void | _recurse_selection (GSList *selection, dt_import_t *const import) |
static gboolean | _delayed_file_count (gpointer data) |
static int32_t | dt_get_selected_files (dt_import_t *import) |
static int32_t | _get_selected_files_job (dt_job_t *job) |
void | dt_control_get_selected_files (dt_lib_import_t *d, gboolean destroy_window) |
static GdkPixbuf * | _import_get_thumbnail (const gchar *filename, const int width, const int height, const gboolean valid_exif, dt_image_t *img) |
void | _dt_check_basedir () |
static void | _do_select_all_clicked (GtkWidget *widget, dt_lib_import_t *d) |
static void | _do_select_none_clicked (GtkWidget *widget, dt_lib_import_t *d) |
static void | _do_select_new_clicked (GtkWidget *widget, dt_lib_import_t *d) |
static void | _resize_dialog (GtkWidget *widget) |
static void | _build_filter (GtkFileFilter *filter, const gchar *extension) |
static void | _file_filters (GtkWidget *file_chooser) |
static GtkWidget * | _attach_aligned_grid_item (GtkWidget *grid, const int row, const int column, const char *label, const GtkAlign align, const gboolean fixed_width, const gboolean full_width) |
static GtkWidget * | _attach_grid_separator (GtkWidget *grid, const int row, const int length) |
static int | _is_in_library_by_path (const gchar *folder, const char *filename) |
static int | _is_in_library_by_metadata (GFile *file) |
static void | _exif_text_set_and_free (dt_lib_import_t *d, exif_fields_t field, gchar *label) |
static void | update_preview_cb (GtkFileChooser *file_chooser, gpointer userdata) |
static void | _update_directory (GtkWidget *file_chooser, dt_lib_import_t *d) |
static void | _set_help_string (dt_lib_import_t *d, gboolean copy) |
static void | _filelist_changed_callback (gpointer instance, GList *files, guint elements, guint finished, gpointer user_data) |
static void | _selection_changed (GtkWidget *filechooser, dt_lib_import_t *d) |
static void | _copy_toggled_callback (GtkWidget *combobox, dt_lib_import_t *d) |
static void | _jobcode_changed (GtkFileChooserButton *widget, dt_lib_import_t *d) |
static void | _base_dir_changed (GtkFileChooserButton *self, dt_lib_import_t *d) |
static void | _project_dir_changed (GtkWidget *widget, dt_lib_import_t *d) |
static void | _filename_changed (GtkWidget *widget, dt_lib_import_t *d) |
static void | _update_date (GtkCalendar *calendar, GtkWidget *entry) |
static void | _datetime_changed_callback (GtkEntry *entry, dt_lib_import_t *d) |
static void | _file_activated (GtkFileChooser *chooser, GtkDialog *dialog) |
static void | _process_file_list (gpointer instance, GList *files, int elements, gboolean finished, gpointer user_data) |
Import a list of file by copying them or not, and adding them to database. | |
void | _file_chooser_response (GtkDialog *dialog, gint response_id, dt_lib_import_t *d) |
void | dt_images_import () |
typedef struct dt_import_t dt_import_t |
typedef struct dt_lib_import_t dt_lib_import_t |
typedef enum exif_fields_t exif_fields_t |
enum exif_fields_t |
|
static |
References TRUE.
Referenced by gui_init().
|
static |
References dt_gui_add_class().
Referenced by gui_init().
|
static |
References _set_test_path(), and dt_conf_set_string().
Referenced by gui_init().
|
static |
References extension().
Referenced by _file_filters().
|
static |
References dt_pthread_mutex_destroy(), dt_lib_import_t::lock, and dt_lib_import_t::path_file.
Referenced by _file_chooser_response(), and _process_file_list().
|
static |
References _set_help_string(), _set_test_path(), dt_conf_set_bool(), dt_lib_import_t::grid, and dt_lib_import_t::test_path.
Referenced by gui_init().
|
static |
References _set_test_path(), dt_datetime_entry_to_exif(), and DT_DATETIME_LENGTH.
Referenced by gui_init().
|
static |
References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_FILELIST_CHANGED, and darktable_t::signals.
Referenced by dt_get_selected_files().
|
static |
References dt_lib_import_t::file_chooser.
Referenced by _do_select_all_clicked(), and _do_select_new().
|
static |
References _do_select_all().
Referenced by gui_init().
|
static |
References _do_select_all(), _is_in_library_by_metadata(), and dt_lib_import_t::file_chooser.
Referenced by _do_select_new_clicked().
|
static |
References _do_select_new().
Referenced by gui_init().
|
static |
References dt_lib_import_t::file_chooser.
Referenced by _do_select_none_clicked().
|
static |
References _do_select_none().
Referenced by gui_init().
void _dt_check_basedir | ( | ) |
References dt_conf_get_string(), dt_conf_set_string(), dt_get_user_pictures_dir(), dt_loc_get_home_dir(), dt_variables_expand(), dt_variables_params_destroy(), dt_variables_params_init(), FALSE, and PATH_MAX.
Referenced by gui_init().
|
static |
References _gtk_label_set_and_free(), and dt_lib_import_t::exif_info.
Referenced by update_preview_cb().
|
static |
References dt_conf_get_bool().
Referenced by gui_init().
void _file_chooser_response | ( | GtkDialog * | dialog, |
gint | response_id, | ||
dt_lib_import_t * | d | ||
) |
References _cleanup(), _filelist_changed_callback(), _process_file_list(), darktable, dt_control_get_selected_files(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, DT_SIGNAL_FILELIST_CHANGED, gui_cleanup(), dt_lib_import_t::shutdown, darktable_t::signals, and TRUE.
Referenced by gui_init().
|
static |
|
static |
References _gtk_label_set_and_free(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_lib_import_t::lock, and dt_lib_import_t::selected_files.
Referenced by _file_chooser_response(), and gui_init().
|
static |
References _set_test_path(), and dt_conf_set_string().
Referenced by gui_init().
|
static |
References _recurse_folder().
Referenced by _recurse_folder(), and _recurse_selection().
|
static |
References dt_control_job_get_params(), and dt_get_selected_files().
Referenced by dt_control_get_selected_files().
|
static |
Referenced by _exif_text_set_and_free(), _filelist_changed_callback(), and _set_test_path().
|
static |
References color_space, dt_alloc_align, dt_free_align, dt_imageio_large_thumbnail(), FALSE, height, dt_image_t::orientation, ORIENTATION_ROTATE_180_DEG, ORIENTATION_ROTATE_CCW_90_DEG, ORIENTATION_ROTATE_CW_90_DEG, and width.
Referenced by update_preview_cb().
|
static |
References dt_pthread_mutex_init(), FALSE, dt_lib_import_t::lock, dt_lib_import_t::path_file, and dt_lib_import_t::shutdown.
Referenced by dt_images_import().
|
static |
References DT_DATETIME_EXIF_LENGTH, dt_datetime_unix_to_exif(), and dt_metadata_already_imported().
Referenced by _do_select_new(), and update_preview_cb().
|
static |
References dt_film_get_id(), and dt_image_get_id().
Referenced by update_preview_cb().
|
static |
References _set_test_path(), and dt_conf_set_string().
Referenced by gui_init().
|
static |
Import a list of file by copying them or not, and adding them to database.
instance | not used here. |
files | the GList of files. |
elements | number of files to import. |
finished | |
user_data | data from the module. |
References _cleanup(), _process_file_list(), darktable, dt_lib_import_t::datetime, dt_conf_get_bool(), dt_conf_get_string(), dt_control_import(), dt_control_log(), DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, dt_gui_refocus_center(), dt_string_to_datetime(), gui_cleanup(), dt_control_import_t::imgs, and darktable_t::signals.
Referenced by _file_chooser_response(), and _process_file_list().
|
static |
References _set_test_path(), and dt_conf_set_string().
Referenced by gui_init().
|
static |
References _filter_document().
Referenced by _filter_document().
|
static |
References _filter_document(), dt_conf_set_int(), and dt_conf_set_string().
Referenced by dt_get_selected_files().
|
static |
References dt_conf_set_int().
Referenced by gui_init().
|
static |
References dt_control_get_selected_files(), FALSE, dt_lib_import_t::selected_files, dt_lib_import_t::shutdown, and TRUE.
Referenced by gui_init().
|
static |
References dt_lib_import_t::help_string.
Referenced by _copy_toggled_callback(), and gui_init().
|
static |
References _gtk_label_set_and_free(), dt_lib_import_t::datetime, dt_build_filename_from_pattern(), dt_conf_get_bool(), dt_conf_get_string(), dt_control_import_data_free(), dt_control_log(), dt_datetime_entry_to_exif(), DT_DATETIME_LENGTH, dt_exif_read(), dt_image_init(), dt_string_to_datetime(), dt_supported_image(), FALSE, dt_control_import_t::imgs, dt_lib_import_t::path_file, dt_control_import_t::target_file_pattern, dt_control_import_t::target_subfolder_pattern, dt_lib_import_t::test_path, and TRUE.
Referenced by _base_dir_changed(), _copy_toggled_callback(), _datetime_changed_callback(), _filename_changed(), _jobcode_changed(), _project_dir_changed(), gui_init(), and update_preview_cb().
|
static |
References day.
Referenced by gui_init().
|
static |
References dt_conf_set_string().
Referenced by gui_init().
void dt_control_get_selected_files | ( | dt_lib_import_t * | d, |
gboolean | destroy_window | ||
) |
References _get_selected_files_job(), darktable_t::control, darktable, dt_control_add_job(), dt_control_job_create(), dt_control_job_set_params(), dt_import_cleanup(), and DT_JOB_QUEUE_USER_BG.
Referenced by _file_chooser_response(), and _selection_changed().
|
static |
void dt_images_import | ( | ) |
References _init(), and gui_init().
Referenced by append_file().
Referenced by dt_control_get_selected_files().
|
static |
|
static |
References dt_lib_import_t::dialog, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), and dt_lib_import_t::lock.
Referenced by _file_chooser_response(), and _process_file_list().
|
static |
References _attach_aligned_grid_item(), _attach_grid_separator(), _base_dir_changed(), _copy_toggled_callback(), _datetime_changed_callback(), _do_select_all_clicked(), _do_select_new_clicked(), _do_select_none_clicked(), _dt_check_basedir(), _file_activated(), _file_chooser_response(), _file_filters(), _filelist_changed_callback(), _filename_changed(), _jobcode_changed(), _project_dir_changed(), _resize_dialog(), _selection_changed(), _set_help_string(), _set_test_path(), _update_date(), _update_directory(), attach_help_popover(), attach_popover(), darktable, dt_lib_import_t::datetime, day, dt_lib_import_t::dialog, dt_accels_disconnect_on_text_input(), dt_conf_get_bool(), dt_conf_get_int(), dt_conf_get_string(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_gtkentry_get_default_path_compl_list(), dt_gtkentry_setup_completion(), dt_osx_disallow_fullscreen(), DT_PIXEL_APPLY_DPI, DT_SIGNAL_FILELIST_CHANGED, dt_ui_main_window(), dt_lib_import_t::exif, EXIF_DATETIME_FIELD, EXIF_EXPOSURE_FIELD, EXIF_FOCAL_LENS_FIELD, dt_lib_import_t::exif_info, EXIF_INLIB_FIELD, EXIF_LENS_FIELD, EXIF_MAKER_FIELD, EXIF_MODEL_FIELD, EXIF_PATH_FIELD, FALSE, dt_lib_import_t::file_chooser, dt_lib_import_t::grid, darktable_t::gui, dt_lib_import_t::help_string, dt_lib_import_t::preview, dt_lib_import_t::selected_files, darktable_t::signals, dt_lib_import_t::test_path, TRUE, dt_gui_gtk_t::ui, and update_preview_cb().
Referenced by dt_images_import().
|
static |
References _exif_text_set_and_free(), _import_get_thumbnail(), _is_in_library_by_metadata(), _is_in_library_by_path(), _set_test_path(), darktable, dt_conf_get_bool(), dt_datetime_img_to_local(), dt_exif_read(), dt_image_cache_get(), dt_image_cache_read_release(), dt_image_film_roll_directory(), dt_image_init(), DT_PIXEL_APPLY_DPI, dt_util_format_exposure(), dt_util_path_get_dirname(), dt_image_t::exif_aperture, EXIF_DATETIME_FIELD, dt_image_t::exif_exposure, EXIF_EXPOSURE_FIELD, dt_image_t::exif_focal_length, EXIF_FOCAL_LENS_FIELD, dt_lib_import_t::exif_info, EXIF_INLIB_FIELD, dt_image_t::exif_iso, dt_image_t::exif_lens, EXIF_LENS_FIELD, dt_image_t::exif_maker, EXIF_MAKER_FIELD, dt_image_t::exif_model, EXIF_MODEL_FIELD, EXIF_PATH_FIELD, FALSE, darktable_t::image_cache, dt_lib_import_t::path_file, dt_lib_import_t::preview, and UNKNOWN_IMAGE.
Referenced by gui_init().