Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
import.c File Reference
#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>
+ Include dependency graph for import.c:

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_tdt_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 Documentation

◆ dt_import_t

typedef struct dt_import_t dt_import_t

◆ dt_lib_import_t

◆ exif_fields_t

Enumeration Type Documentation

◆ exif_fields_t

Enumerator
EXIF_DATETIME_FIELD 
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 

Function Documentation

◆ _attach_aligned_grid_item()

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

References TRUE.

Referenced by gui_init().

◆ _attach_grid_separator()

static GtkWidget * _attach_grid_separator ( GtkWidget *  grid,
const int  row,
const int  length 
)
static

References dt_gui_add_class().

Referenced by gui_init().

◆ _base_dir_changed()

static void _base_dir_changed ( GtkFileChooserButton *  self,
dt_lib_import_t d 
)
static

References _set_test_path(), and dt_conf_set_string().

Referenced by gui_init().

◆ _build_filter()

static void _build_filter ( GtkFileFilter *  filter,
const gchar *  extension 
)
static

References extension().

Referenced by _file_filters().

◆ _cleanup()

◆ _copy_toggled_callback()

static void _copy_toggled_callback ( GtkWidget *  combobox,
dt_lib_import_t d 
)
static

◆ _datetime_changed_callback()

static void _datetime_changed_callback ( GtkEntry *  entry,
dt_lib_import_t d 
)
static

◆ _delayed_file_count()

static gboolean _delayed_file_count ( gpointer  data)
static

◆ _do_select_all()

static void _do_select_all ( dt_lib_import_t d)
static

◆ _do_select_all_clicked()

static void _do_select_all_clicked ( GtkWidget *  widget,
dt_lib_import_t d 
)
static

References _do_select_all().

Referenced by gui_init().

◆ _do_select_new()

static void _do_select_new ( dt_lib_import_t d)
static

◆ _do_select_new_clicked()

static void _do_select_new_clicked ( GtkWidget *  widget,
dt_lib_import_t d 
)
static

References _do_select_new().

Referenced by gui_init().

◆ _do_select_none()

static void _do_select_none ( dt_lib_import_t d)
static

◆ _do_select_none_clicked()

static void _do_select_none_clicked ( GtkWidget *  widget,
dt_lib_import_t d 
)
static

References _do_select_none().

Referenced by gui_init().

◆ _dt_check_basedir()

◆ _exif_text_set_and_free()

static void _exif_text_set_and_free ( dt_lib_import_t d,
exif_fields_t  field,
gchar *  label 
)
static

◆ _file_activated()

static void _file_activated ( GtkFileChooser *  chooser,
GtkDialog *  dialog 
)
static

References dt_conf_get_bool().

Referenced by gui_init().

◆ _file_chooser_response()

◆ _file_filters()

static void _file_filters ( GtkWidget *  file_chooser)
static
Todo:
: use dt_supported_extensions list ?

References _build_filter().

Referenced by gui_init().

◆ _filelist_changed_callback()

static void _filelist_changed_callback ( gpointer  instance,
GList *  files,
guint  elements,
guint  finished,
gpointer  user_data 
)
static

◆ _filename_changed()

static void _filename_changed ( GtkWidget *  widget,
dt_lib_import_t d 
)
static

References _set_test_path(), and dt_conf_set_string().

Referenced by gui_init().

◆ _filter_document()

static void _filter_document ( GVfs *  vfs,
GFile *  document,
dt_import_t import 
)
static

References _recurse_folder().

Referenced by _recurse_folder(), and _recurse_selection().

◆ _get_selected_files_job()

static int32_t _get_selected_files_job ( dt_job_t job)
static

◆ _gtk_label_set_and_free()

static void _gtk_label_set_and_free ( GtkWidget *  widget,
gchar *  label 
)
static

◆ _import_get_thumbnail()

static GdkPixbuf * _import_get_thumbnail ( const gchar *  filename,
const int  width,
const int  height,
const gboolean  valid_exif,
dt_image_t img 
)
static

◆ _init()

◆ _is_in_library_by_metadata()

static int _is_in_library_by_metadata ( GFile *  file)
static

◆ _is_in_library_by_path()

static int _is_in_library_by_path ( const gchar *  folder,
const char *  filename 
)
static

References dt_film_get_id(), and dt_image_get_id().

Referenced by update_preview_cb().

◆ _jobcode_changed()

static void _jobcode_changed ( GtkFileChooserButton *  widget,
dt_lib_import_t d 
)
static

References _set_test_path(), and dt_conf_set_string().

Referenced by gui_init().

◆ _process_file_list()

static void _process_file_list ( gpointer  instance,
GList *  files,
int  elements,
gboolean  finished,
gpointer  user_data 
)
static

Import a list of file by copying them or not, and adding them to database.

Parameters
instancenot used here.
filesthe GList of files.
elementsnumber of files to import.
finished
user_datadata 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().

◆ _project_dir_changed()

static void _project_dir_changed ( GtkWidget *  widget,
dt_lib_import_t d 
)
static

References _set_test_path(), and dt_conf_set_string().

Referenced by gui_init().

◆ _recurse_folder()

static void _recurse_folder ( GVfs *  vfs,
GFile *  folder,
dt_import_t *const  import 
)
static

References _filter_document().

Referenced by _filter_document().

◆ _recurse_selection()

static void _recurse_selection ( GSList *  selection,
dt_import_t *const  import 
)
static

◆ _resize_dialog()

static void _resize_dialog ( GtkWidget *  widget)
static

References dt_conf_set_int().

Referenced by gui_init().

◆ _selection_changed()

static void _selection_changed ( GtkWidget *  filechooser,
dt_lib_import_t d 
)
static

◆ _set_help_string()

static void _set_help_string ( dt_lib_import_t d,
gboolean  copy 
)
static

◆ _set_test_path()

◆ _update_date()

static void _update_date ( GtkCalendar *  calendar,
GtkWidget *  entry 
)
static

References day.

Referenced by gui_init().

◆ _update_directory()

static void _update_directory ( GtkWidget *  file_chooser,
dt_lib_import_t d 
)
static

References dt_conf_set_string().

Referenced by gui_init().

◆ dt_control_get_selected_files()

◆ dt_get_selected_files()

◆ dt_images_import()

void dt_images_import ( )

References _init(), and gui_init().

Referenced by append_file().

◆ dt_import_cleanup()

static void dt_import_cleanup ( void import)
static

◆ dt_import_init()

◆ gui_cleanup()

◆ gui_init()

◆ update_preview_cb()