diff --git a/src/camera_config.c b/src/camera_config.c index 84d9e05..6a6f7a7 100644 --- a/src/camera_config.c +++ b/src/camera_config.c @@ -208,8 +208,13 @@ config_ini_handler(void *user, const char *section, const char *name, cc->iso_max = strtod(value, NULL); } else if (strcmp(name, "flash-path") == 0) { strcpy(cc->flash_path, value); + cc->has_flash = true; } else if (strcmp(name, "flash-display") == 0) { cc->flash_display = strcmp(value, "true") == 0; + + if (cc->flash_display) { + cc->has_flash = true; + } } else { g_printerr("Unknown key '%s' in [%s]\n", name, section); exit(1); diff --git a/src/camera_config.h b/src/camera_config.h index 55a0fcb..564ca47 100644 --- a/src/camera_config.h +++ b/src/camera_config.h @@ -44,6 +44,7 @@ struct mp_camera_config { char flash_path[260]; bool flash_display; + bool has_flash; }; bool mp_load_config(); diff --git a/src/main.c b/src/main.c index 6fa4a59..2cae1e5 100644 --- a/src/main.c +++ b/src/main.c @@ -76,6 +76,7 @@ GtkWidget *process_spinner; GtkWidget *scanned_codes; GtkWidget *preview_top_box; GtkWidget *preview_bottom_box; +GtkWidget *flash_button; GSettings *settings; @@ -113,6 +114,9 @@ update_io_pipeline() .flash_enabled = flash_enabled, }; mp_io_pipeline_update_state(&io_state); + + // Make the right settings available for the camera + gtk_widget_set_visible(flash_button, camera->has_flash); } static bool @@ -909,7 +913,7 @@ activate(GtkApplication *app, gpointer data) GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder, "window")); GtkWidget *iso_button = GTK_WIDGET(gtk_builder_get_object(builder, "iso-controls-button")); GtkWidget *shutter_button = GTK_WIDGET(gtk_builder_get_object(builder, "shutter-controls-button")); - GtkWidget *flash_button = GTK_WIDGET(gtk_builder_get_object(builder, "flash-controls-button")); + flash_button = GTK_WIDGET(gtk_builder_get_object(builder, "flash-controls-button")); GtkWidget *setting_dng_button = GTK_WIDGET(gtk_builder_get_object(builder, "setting-raw")); preview = GTK_WIDGET(gtk_builder_get_object(builder, "preview")); main_stack = GTK_WIDGET(gtk_builder_get_object(builder, "main_stack"));