26#if defined(HAVE_SENTRY) || defined(HAVE_TELEMETRY)
34#define DT_PRIVACY_ASKED_KEY "privacy/consent_asked"
38#define DT_PRIVACY_DOC_URL "https://ansel.photos/en/data-privacy/"
51 GtkWidget *dialog = gtk_dialog_new_with_buttons(
52 _(
"Help us improve Ansel"), GTK_WINDOW(parent),
53 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
54 _(
"Confirm choices"), GTK_RESPONSE_ACCEPT, NULL);
55 gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
62 _(
"Ansel can share anonymous data with its developers to help fix bugs and "
63 "decide what to work on. This is entirely optional, separate for each purpose, "
64 "and can be changed any time in Preferences ▸ Storage ▸ Privacy.\n\n"
65 "We never send your images, file names or any personal data."));
66 gtk_label_set_line_wrap(GTK_LABEL(intro),
TRUE);
67 gtk_label_set_xalign(GTK_LABEL(intro), 0.0);
68 gtk_label_set_max_width_chars(GTK_LABEL(intro), 64);
69 gtk_box_pack_start(GTK_BOX(content), intro,
FALSE,
FALSE, 0);
72 GtkWidget *crash_check = gtk_check_button_new_with_label(
73 _(
"Send crash reports (backtrace, OS and hardware specs, app version)"));
74 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(crash_check),
TRUE);
75 gtk_box_pack_start(GTK_BOX(content), crash_check,
FALSE,
FALSE, 0);
79 GtkWidget *usage_check = gtk_check_button_new_with_label(
80 _(
"Share anonymous usage statistics (features used, file types, OS and hardware)"));
81 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(usage_check),
TRUE);
82 gtk_box_pack_start(GTK_BOX(content), usage_check,
FALSE,
FALSE, 0);
85 GtkWidget *link = gtk_link_button_new_with_label(
86 DT_PRIVACY_DOC_URL, _(
"Read what is collected, where it goes and why"));
87 gtk_widget_set_halign(link, GTK_ALIGN_START);
88 gtk_box_pack_start(GTK_BOX(content), link,
FALSE,
FALSE, 0);
90 gtk_widget_show_all(dialog);
91 gtk_dialog_run(GTK_DIALOG(dialog));
96 dt_conf_set_bool(
"sentry/enabled", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(crash_check)));
99 dt_conf_set_bool(
"telemetry/enabled", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(usage_check)));
102 gtk_widget_destroy(dialog);
void dt_conf_set_bool(const char *name, int val)
int dt_conf_key_exists(const char *key)
GtkWidget * dt_ui_main_window(dt_ui_t *ui)
get the main window widget
#define DT_PIXEL_APPLY_DPI(value)
void dt_privacy_ask_consent(const gboolean have_gui)
struct _GtkWidget GtkWidget
struct dt_gui_gtk_t * gui