973
static void do_camera_set_viewfinder_finish(GObject *src,
977
EntangleCameraFileTaskData *data = opaque;
978
EntangleCamera *camera = ENTANGLE_CAMERA(src);
979
GError *error = NULL;
981
if (!entangle_camera_set_viewfinder_finish(camera, res, &error)) {
982
do_camera_task_error(data->manager, _("Capture"), error);
983
do_camera_task_complete(data);
988
do_camera_task_complete(data);
973
992
static void do_camera_preview_image_finish(GObject *src,
974
993
GAsyncResult *res,
983
1002
if (!(file = entangle_camera_preview_image_finish(camera, res, &error))) {
984
1003
if (g_cancellable_is_cancelled(priv->taskCancel) && priv->camera) {
1004
if (entangle_camera_get_has_viewfinder(priv->camera))
1005
entangle_camera_set_viewfinder_async(priv->camera,
1008
do_camera_set_viewfinder_finish,
1011
entangle_camera_capture_image_async(priv->camera,
1013
do_camera_capture_image_discard_finish,
1016
priv->taskPreview = FALSE;
1017
do_camera_task_error(data->manager, _("Preview"), error);
1018
do_camera_task_complete(data);
1020
g_error_free(error);
1024
g_object_unref(file);
1026
if (g_cancellable_is_cancelled(priv->taskCancel)) {
1027
if (entangle_camera_get_has_viewfinder(priv->camera))
1028
entangle_camera_set_viewfinder_async(priv->camera,
1031
do_camera_set_viewfinder_finish,
985
1034
entangle_camera_capture_image_async(priv->camera,
987
1036
do_camera_capture_image_discard_finish,
990
priv->taskPreview = FALSE;
991
do_camera_task_error(data->manager, _("Preview"), error);
992
do_camera_task_complete(data);
998
g_object_unref(file);
1000
if (g_cancellable_is_cancelled(priv->taskCancel)) {
1001
entangle_camera_capture_image_async(priv->camera,
1003
do_camera_capture_image_discard_finish,
1005
1038
} else if (g_cancellable_is_cancelled(priv->taskConfirm)) {
1006
1039
EntanglePreferences *prefs = entangle_application_get_preferences(priv->application);
1041
1074
if (strncmp(entangle_camera_file_get_name(file),
1042
1075
priv->deleteImageDup,
1044
fprintf(stderr, "Dup %s %s\n", priv->deleteImageDup, entangle_camera_file_get_name(file));
1045
1077
g_free(priv->deleteImageDup);
1046
1078
priv->deleteImageDup = NULL;
1047
1079
entangle_camera_delete_file_async(camera,
1094
static void do_entangle_camera_progress_start(EntangleProgress *iface, float target, const char *format, va_list args)
1126
static void do_entangle_camera_progress_start(EntangleProgress *iface, float target, const char *msg)
1096
1128
g_return_if_fail(ENTANGLE_IS_CAMERA_MANAGER(iface));
1098
1130
EntangleCameraManager *manager = ENTANGLE_CAMERA_MANAGER(iface);
1099
1131
EntangleCameraManagerPrivate *priv = manager->priv;
1100
1132
GtkWidget *mtr;
1102
1133
GtkWidget *operation;
1104
1135
gdk_threads_enter();
1107
1138
mtr = GTK_WIDGET(gtk_builder_get_object(priv->builder, "toolbar-progress"));
1108
1139
operation = GTK_WIDGET(gtk_builder_get_object(priv->builder, "toolbar-operation"));
1110
txt = g_strdup_vprintf(format, args);
1112
gtk_widget_set_tooltip_text(mtr, txt);
1113
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(mtr), txt);
1141
gtk_widget_set_tooltip_text(mtr, msg);
1142
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(mtr), msg);
1114
1143
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(mtr), 0);
1116
1145
gtk_widget_show(operation);
1120
1147
gdk_threads_leave();
2054
static void do_camera_autofocus_finish(GObject *source,
2055
GAsyncResult *result,
2058
g_return_if_fail(ENTANGLE_IS_CAMERA_MANAGER(data));
2060
EntangleCamera *camera = ENTANGLE_CAMERA(source);
2061
GError *error = NULL;
2063
if (!entangle_camera_autofocus_finish(camera, result, &error)) {
2064
gdk_threads_enter();
2065
GtkWidget *msg = gtk_message_dialog_new(NULL,
2069
_("Autofocus failed"));
2070
gtk_window_set_title(GTK_WINDOW(msg),
2071
_("Entangle: Camera autofocus failed"));
2072
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(msg),
2075
g_signal_connect_swapped(msg,
2077
G_CALLBACK (gtk_widget_destroy),
2079
gtk_widget_show_all(msg);
2080
gdk_threads_leave();
2082
g_error_free(error);
2087
static void do_camera_manualfocus_finish(GObject *source,
2088
GAsyncResult *result,
2091
g_return_if_fail(ENTANGLE_IS_CAMERA_MANAGER(data));
2093
EntangleCamera *camera = ENTANGLE_CAMERA(source);
2094
GError *error = NULL;
2096
if (!entangle_camera_manualfocus_finish(camera, result, &error)) {
2097
gdk_threads_enter();
2098
GtkWidget *msg = gtk_message_dialog_new(NULL,
2102
_("Manual focus failed"));
2103
gtk_window_set_title(GTK_WINDOW(msg),
2104
_("Entangle: Camera manual focus failed"));
2105
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(msg),
2108
g_signal_connect_swapped(msg,
2110
G_CALLBACK (gtk_widget_destroy),
2112
gtk_widget_show_all(msg);
2113
gdk_threads_leave();
2115
g_error_free(error);
2027
2120
gboolean do_manager_key_release(GtkWidget *widget G_GNUC_UNUSED,
2028
2121
GdkEventKey *ev,
2059
2152
entangle_preferences_img_set_mask_enabled(prefs, !enabled);
2156
if (priv->taskPreview) {
2157
entangle_camera_autofocus_async(priv->camera,
2159
do_camera_autofocus_finish,
2164
case GDK_KEY_comma: {
2165
if (priv->taskPreview) {
2166
entangle_camera_manualfocus_async(priv->camera,
2169
do_camera_manualfocus_finish,
2174
case GDK_KEY_period: {
2175
if (priv->taskPreview) {
2176
entangle_camera_manualfocus_async(priv->camera,
2179
do_camera_manualfocus_finish,