Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
geotagging.c File Reference
#include "common/debug.h"
#include "common/file_location.h"
#include "common/image_cache.h"
#include "common/collection.h"
#include "common/selection.h"
#include "common/gpx.h"
#include "common/geo.h"
#include "common/datetime.h"
#include "control/conf.h"
#include "dtgtk/button.h"
#include "control/jobs.h"
#include "libs/lib_api.h"
#include <gdk/gdkkeysyms.h>
+ Include dependency graph for geotagging.c:

Data Structures

struct  tz_tuple_t
 
struct  dt_lib_datetime_t
 
struct  dt_lib_geotagging_t
 
struct  dt_sel_img_t
 

Macros

#define DT_GEOTAG_PARTS_NB   7
 
#define MAX_LINE_LENGTH   256
 

Typedefs

typedef struct tz_tuple_t tz_tuple_t
 
typedef struct dt_lib_datetime_t dt_lib_datetime_t
 
typedef struct dt_lib_geotagging_t dt_lib_geotagging_t
 
typedef struct dt_sel_img_t dt_sel_img_t
 

Functions

static void _datetime_entry_changed (GtkWidget *entry, dt_lib_module_t *self)
 
static void _setup_selected_images_list (dt_lib_module_t *self)
 
static void free_tz_tuple (gpointer data)
 
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)
 
int position ()
 
static void _apply_offset_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _apply_datetime_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static gboolean _lib_geotagging_filter_gpx (const GtkFileFilterInfo *filter_info, gpointer data)
 
static GtkWidget * _set_up_label (const char *name, const int align, GtkWidget *grid, const int col, const int line, const int ellipsize)
 
static gchar * _utc_timeval_to_localtime_text (GDateTime *utc_dt, GTimeZone *tz_camera, const gboolean full)
 
static GDateTime * _localtime_text_to_utc_timeval (const char *date_time, GTimeZone *tz_camera, GTimeZone *tz_utc, GTimeSpan offset)
 
static int _count_images_per_track (dt_gpx_track_segment_t *t, dt_gpx_track_segment_t *n, dt_lib_module_t *self)
 
static void _preview_gpx_file (GtkWidget *widget, dt_lib_module_t *self)
 
static void _choose_gpx_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static int _sort_timezones (gconstpointer a, gconstpointer b)
 
static GList * _lib_geotagging_get_timezones (void)
 
static void _display_offset (const GTimeSpan offset_int, const gboolean valid, dt_lib_module_t *self)
 
static void _display_datetime (dt_lib_datetime_t *dtw, GDateTime *datetime, const gboolean lock, dt_lib_module_t *self)
 
static GDateTime * _read_datetime_entry (dt_lib_module_t *self)
 
static void _new_datetime (GDateTime *datetime, dt_lib_module_t *self)
 
static GDateTime * _get_image_datetime (dt_lib_module_t *self)
 
static void _refresh_image_datetime (dt_lib_module_t *self)
 
static void _image_info_changed (gpointer instance, gpointer imgs, dt_lib_module_t *self)
 
static void _mouse_over_image_callback (gpointer instance, dt_lib_module_t *self)
 
static void _selection_changed_callback (gpointer instance, dt_lib_module_t *self)
 
static gboolean _datetime_scroll_over (GtkWidget *w, GdkEventScroll *event, dt_lib_module_t *self)
 
static GtkWidget * _gui_init_datetime (dt_lib_datetime_t *dt, const int type, dt_lib_module_t *self)
 
static gboolean _datetime_key_pressed (GtkWidget *entry, GdkEventKey *event, dt_lib_module_t *self)
 
static void _timezone_save (dt_lib_module_t *self)
 
static gboolean _timezone_key_pressed (GtkWidget *entry, GdkEventKey *event, dt_lib_module_t *self)
 
static gboolean _timezone_focus_out (GtkWidget *entry, GdkEventKey *event, dt_lib_module_t *self)
 
static gboolean _completion_match_func (GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data)
 
static void _toggle_lock_button_callback (GtkToggleButton *button, dt_lib_module_t *self)
 
GtkTreeViewColumn * _new_tree_text_column (const char *name, const gboolean expand, const float xalign, const int m_col, const int ellipsize)
 
static void _show_milliseconds (dt_lib_geotagging_t *d)
 
static void _dt_pref_change_callback (gpointer instance, dt_lib_module_t *self)
 
void gui_init (dt_lib_module_t *self)
 
void gui_cleanup (dt_lib_module_t *self)
 

Macro Definition Documentation

◆ DT_GEOTAG_PARTS_NB

#define DT_GEOTAG_PARTS_NB   7

◆ MAX_LINE_LENGTH

#define MAX_LINE_LENGTH   256

Typedef Documentation

◆ dt_lib_datetime_t

◆ dt_lib_geotagging_t

◆ dt_sel_img_t

typedef struct dt_sel_img_t dt_sel_img_t

◆ tz_tuple_t

typedef struct tz_tuple_t tz_tuple_t

Function Documentation

◆ _apply_datetime_callback()

static void _apply_datetime_callback ( GtkWidget *  widget,
dt_lib_module_t self 
)
static

◆ _apply_offset_callback()

static void _apply_offset_callback ( GtkWidget *  widget,
dt_lib_module_t self 
)
static

◆ _choose_gpx_callback()

◆ _completion_match_func()

static gboolean _completion_match_func ( GtkEntryCompletion *  completion,
const gchar *  key,
GtkTreeIter *  iter,
gpointer  user_data 
)
static

References FALSE, key, and model.

Referenced by gui_init().

◆ _count_images_per_track()

◆ _datetime_entry_changed()

static void _datetime_entry_changed ( GtkWidget *  entry,
dt_lib_module_t self 
)
static

◆ _datetime_key_pressed()

static gboolean _datetime_key_pressed ( GtkWidget *  entry,
GdkEventKey *  event,
dt_lib_module_t self 
)
static

◆ _datetime_scroll_over()

◆ _display_datetime()

static void _display_datetime ( dt_lib_datetime_t dtw,
GDateTime *  datetime,
const gboolean  lock,
dt_lib_module_t self 
)
static

◆ _display_offset()

◆ _dt_pref_change_callback()

static void _dt_pref_change_callback ( gpointer  instance,
dt_lib_module_t self 
)
static

References _show_milliseconds(), and dt_lib_module_t::data.

Referenced by gui_init().

◆ _get_image_datetime()

◆ _gui_init_datetime()

static GtkWidget * _gui_init_datetime ( dt_lib_datetime_t dt,
const int  type,
dt_lib_module_t self 
)
static

◆ _image_info_changed()

static void _image_info_changed ( gpointer  instance,
gpointer  imgs,
dt_lib_module_t self 
)
static

◆ _lib_geotagging_filter_gpx()

static gboolean _lib_geotagging_filter_gpx ( const GtkFileFilterInfo *  filter_info,
gpointer  data 
)
static

References FALSE, and TRUE.

Referenced by _choose_gpx_callback().

◆ _lib_geotagging_get_timezones()

static GList * _lib_geotagging_get_timezones ( void  )
static

◆ _localtime_text_to_utc_timeval()

static GDateTime * _localtime_text_to_utc_timeval ( const char *  date_time,
GTimeZone *  tz_camera,
GTimeZone *  tz_utc,
GTimeSpan  offset 
)
static

◆ _mouse_over_image_callback()

static void _mouse_over_image_callback ( gpointer  instance,
dt_lib_module_t self 
)
static

References _refresh_image_datetime().

Referenced by gui_cleanup(), and gui_init().

◆ _new_datetime()

◆ _new_tree_text_column()

GtkTreeViewColumn * _new_tree_text_column ( const char *  name,
const gboolean  expand,
const float  xalign,
const int  m_col,
const int  ellipsize 
)

References name, and TRUE.

Referenced by gui_init().

◆ _preview_gpx_file()

◆ _read_datetime_entry()

static GDateTime * _read_datetime_entry ( dt_lib_module_t self)
static

◆ _refresh_image_datetime()

◆ _selection_changed_callback()

static void _selection_changed_callback ( gpointer  instance,
dt_lib_module_t self 
)
static

◆ _set_up_label()

static GtkWidget * _set_up_label ( const char *  name,
const int  align,
GtkWidget *  grid,
const int  col,
const int  line,
const int  ellipsize 
)
static

References name, and TRUE.

Referenced by _preview_gpx_file().

◆ _setup_selected_images_list()

◆ _show_milliseconds()

◆ _sort_timezones()

static int _sort_timezones ( gconstpointer  a,
gconstpointer  b 
)
static

◆ _timezone_focus_out()

static gboolean _timezone_focus_out ( GtkWidget *  entry,
GdkEventKey *  event,
dt_lib_module_t self 
)
static

References _timezone_save(), and FALSE.

Referenced by gui_init().

◆ _timezone_key_pressed()

static gboolean _timezone_key_pressed ( GtkWidget *  entry,
GdkEventKey *  event,
dt_lib_module_t self 
)
static

◆ _timezone_save()

◆ _toggle_lock_button_callback()

static void _toggle_lock_button_callback ( GtkToggleButton *  button,
dt_lib_module_t self 
)
static

◆ _utc_timeval_to_localtime_text()

static gchar * _utc_timeval_to_localtime_text ( GDateTime *  utc_dt,
GTimeZone *  tz_camera,
const gboolean  full 
)
static

Referenced by _preview_gpx_file().

◆ container()

uint32_t container ( dt_lib_module_t self)

◆ free_tz_tuple()

static void free_tz_tuple ( gpointer  data)
static

References tz_tuple_t::display, and tz_tuple_t::name.

Referenced by gui_cleanup().

◆ gui_cleanup()

◆ gui_init()

void gui_init ( dt_lib_module_t self)

References _apply_datetime_callback(), _apply_offset_callback(), _choose_gpx_callback(), _completion_match_func(), _datetime_entry_changed(), _datetime_key_pressed(), _datetime_scroll_over(), _display_datetime(), _display_offset(), _dt_pref_change_callback(), _get_image_datetime(), _gui_init_datetime(), _image_info_changed(), _lib_geotagging_get_timezones(), _mouse_over_image_callback(), _new_tree_text_column(), _row_tooltip_setup(), _selection_changed_callback(), _show_milliseconds(), _timezone_focus_out(), _timezone_key_pressed(), _toggle_lock_button_callback(), _update_layout(), _view_changed(), dt_lib_geotagging_t::apply_datetime, dt_lib_geotagging_t::apply_offset, CPF_NONE, darktable, dt_lib_module_t::data, dt_lib_geotagging_t::datetime, dt_lib_geotagging_t::datetime0, tz_tuple_t::display, dt_lib_geotagging_t::dt, dt_lib_geotagging_t::dt0, dt_accels_disconnect_on_text_input(), dt_action_button_new(), dt_conf_get_bool(), dt_conf_get_string(), dt_confgen_get_label(), dt_confgen_get_tooltip(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_GEOTAG_PARTS_NB, DT_PIXEL_APPLY_DPI, DT_SIGNAL_GEOTAG_CHANGED, DT_SIGNAL_IMAGE_INFO_CHANGED, DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE, DT_SIGNAL_PREFERENCES_CHANGE, DT_SIGNAL_SELECTION_CHANGED, DT_SIGNAL_VIEWMANAGER_VIEW_CHANGED, dt_ui_label_new(), dt_ui_scroll_wrap(), dt_ui_section_label_new(), dtgtk_button_new(), dtgtk_cairo_paint_directory(), dtgtk_cairo_paint_lock(), dtgtk_togglebutton_new(), FALSE, dt_lib_geotagging_t::gpx_button, dt_lib_geotagging_t::imgid, dt_lib_geotagging_t::lock_offset, model, tz_tuple_t::name, dt_lib_geotagging_t::of, dt_lib_geotagging_t::offset, darktable_t::signals, dt_lib_geotagging_t::timezone, dt_lib_geotagging_t::timezone_changed, dt_lib_geotagging_t::timezones, TRUE, dt_lib_geotagging_t::tz_camera, UNKNOWN_IMAGE, dt_lib_datetime_t::widget, and dt_lib_module_t::widget.

◆ name()

const char * name ( struct dt_lib_module_t self)

◆ position()

int position ( )

◆ views()

const char ** views ( dt_lib_module_t self)