41#include <gdk/gdkkeysyms.h>
43#include <osm-gps-map-source.h>
49 return _(
"map settings");
54 static const char *
v[] = {
"map", NULL};
88 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter) ==
TRUE)
90 GtkTreeModel *
model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget));
94 OsmGpsMapSource_t map_source;
96 gtk_tree_model_get_value(
model, &iter, 1, &
value);
97 map_source = g_value_get_int(&
value);
98 g_value_unset(&
value);
111 GdkModifierType mods, gpointer user_data)
117 if(!g_strcmp0(str,
"thumbnail"))
119 else if(!g_strcmp0(str,
"count"))
140 gtk_box_pack_start(hbox, label,
TRUE,
TRUE, 0);
142 GtkListStore *
model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
143 d->map_source_dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(
model));
144 gtk_widget_set_tooltip_text(
d->map_source_dropdown, _(
"select the source of the map. some entries might not work"));
145 GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
146 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(
d->map_source_dropdown), renderer,
FALSE);
147 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(
d->map_source_dropdown), renderer,
"text", 0, NULL);
150 int selection = OSM_GPS_MAP_SOURCE_OPENSTREETMAP - 1, entry = 0;
152 for(
int i = 1;
i < OSM_GPS_MAP_SOURCE_LAST;
i++)
154 if(osm_gps_map_source_is_valid(
i))
156 const gchar *
name = osm_gps_map_source_get_friendly_name(
i);
157 gtk_list_store_append(
model, &iter);
158 gtk_list_store_set(
model, &iter, 0,
name, 1,
i, -1);
159 if(!g_strcmp0(
name, map_source)) selection = entry;
163 gtk_combo_box_set_active(GTK_COMBO_BOX(
d->map_source_dropdown), selection);
164 gtk_box_pack_start(hbox,
d->map_source_dropdown,
TRUE,
TRUE, 0);
165 g_signal_connect(G_OBJECT(
d->map_source_dropdown),
"changed", G_CALLBACK(
_map_source_changed), NULL);
166 g_object_unref(
model);
167 gtk_box_pack_start(GTK_BOX(self->
widget), GTK_WIDGET(hbox),
TRUE,
TRUE, 0);
169 GtkGrid *grid = GTK_GRID(gtk_grid_new());
175 g_signal_connect(G_OBJECT(
d->show_osd_checkbutton),
"toggled", G_CALLBACK(
_show_osd_toggled), NULL);
177 g_signal_connect(G_OBJECT(
d->filtered_images_checkbutton),
"toggled", G_CALLBACK(
_parameter_changed), NULL);
179 g_signal_connect(G_OBJECT(
d->max_images_entry),
"value-changed", G_CALLBACK(
_parameter_changed), self);
181 g_signal_connect(G_OBJECT(
d->epsilon_factor),
"value-changed", G_CALLBACK(
_parameter_changed), self);
183 g_signal_connect(G_OBJECT(
d->min_images),
"value-changed", G_CALLBACK(
_parameter_changed), self);
185 g_signal_connect(G_OBJECT(
d->images_thumb),
"changed", G_CALLBACK(
_parameter_changed), self);
186 gtk_box_pack_start(GTK_BOX(self->
widget), GTK_WIDGET(grid),
FALSE,
FALSE, 0);
189 N_(
"Thumbnail display"), GDK_KEY_s, GDK_SHIFT_MASK,
190 _(
"Cycles the image display mode on the map"));
gchar * dt_accels_build_path(const gchar *scope, const gchar *feature)
void dt_accels_remove_accel(dt_accels_t *accels, const char *path, gpointer data)
Recursively remove all accels for all shortcuts containing path. This is unneeded for accels attached...
void dt_conf_set_string(const char *name, const char *val)
const char * dt_conf_get_string_const(const char *name)
#define DT_MODULE(MODVER)
static const dt_aligned_pixel_simd_t value
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
#define dt_accels_new_map_action(a, b, c, d, e, f, g)
#define DT_GUI_BOX_SPACING
static GtkWidget * dt_ui_label_new(const gchar *str)
void gui_reset(dt_lib_module_t *self)
static void _map_source_changed(GtkWidget *widget, gpointer data)
void gui_cleanup(dt_lib_module_t *self)
static void _parameter_changed(GtkToggleButton *button, gpointer data)
static void _show_osd_toggled(GtkToggleButton *button, gpointer data)
uint32_t container(dt_lib_module_t *self)
static gboolean _thumbnail_change_accel(GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType mods, gpointer user_data)
Cycle the map thumbnail rendering mode from the map accel group.
void gui_init(dt_lib_module_t *self)
const char ** views(dt_lib_module_t *self)
void dt_gui_preferences_enum_reset(GtkWidget *widget)
void dt_gui_preferences_bool_reset(GtkWidget *widget)
void dt_gui_preferences_int_reset(GtkWidget *widget)
void dt_gui_preferences_enum_update(GtkWidget *widget)
GtkWidget * dt_gui_preferences_int(GtkGrid *grid, const char *key, const guint col, const guint line)
GtkWidget * dt_gui_preferences_enum(GtkGrid *grid, const char *key, const guint col, const guint line)
GtkWidget * dt_gui_preferences_bool(GtkGrid *grid, const char *key, const guint col, const guint line, const gboolean swap)
struct _GtkWidget GtkWidget
struct dt_gui_gtk_t * gui
struct dt_view_manager_t * view_manager
GtkWidget * max_images_entry
GtkWidget * show_osd_checkbutton
GtkWidget * filtered_images_checkbutton
GtkWidget * epsilon_factor
GtkWidget * max_outline_nodes
GtkWidget * map_source_dropdown
@ DT_UI_CONTAINER_PANEL_RIGHT_CENTER