static void organize_files_dialog_response_cb (GtkDialog *dialog, int response_id, gpointer user_data) { GthOrganizeTask *self = user_data; if (response_id == GTK_RESPONSE_DELETE_EVENT) { if (self->priv->organized) response_id = GTK_RESPONSE_CLOSE; else response_id = GTK_RESPONSE_CANCEL; } switch (response_id) { case GTK_RESPONSE_CANCEL: gth_task_cancel (GTH_TASK (self)); break; case GTK_RESPONSE_CLOSE: gth_task_completed (GTH_TASK (self), NULL); break; case GTK_RESPONSE_OK: save_catalogs (self); break; } }
static gboolean update_image_size_cb (gpointer user_data) { GthFileToolResize *self = user_data; self->priv->update_size_id = 0; if (self->priv->resize_task != NULL) { gth_task_cancel (self->priv->resize_task); return FALSE; } self->priv->resize_task = gth_image_task_new (_("Resizing images"), NULL, resize_task_exec, NULL, self, NULL); if (self->priv->apply_to_original) gth_image_task_set_source_surface (GTH_IMAGE_TASK (self->priv->resize_task), gth_image_viewer_page_tool_get_source (GTH_IMAGE_VIEWER_PAGE_TOOL (self))); else gth_image_task_set_source_surface (GTH_IMAGE_TASK (self->priv->resize_task), self->priv->preview); g_signal_connect (self->priv->resize_task, "completed", G_CALLBACK (resize_task_completed_cb), self); gth_browser_exec_task (GTH_BROWSER (gth_file_tool_get_window (GTH_FILE_TOOL (self))), self->priv->resize_task, GTH_TASK_FLAGS_DEFAULT); return FALSE; }
static gboolean apply_cb (gpointer user_data) { GthFileToolAdjustContrast *self = user_data; GtkWidget *window; if (self->priv->apply_event != 0) { g_source_remove (self->priv->apply_event); self->priv->apply_event = 0; } if (self->priv->image_task != NULL) { gth_task_cancel (self->priv->image_task); return FALSE; } window = gth_file_tool_get_window (GTH_FILE_TOOL (self)); self->priv->image_task = get_image_task_for_method (self->priv->method); if (self->priv->apply_to_original) gth_image_task_set_source_surface (GTH_IMAGE_TASK (self->priv->image_task), gth_image_viewer_page_tool_get_source (GTH_IMAGE_VIEWER_PAGE_TOOL (self))); else gth_image_task_set_source_surface (GTH_IMAGE_TASK (self->priv->image_task), self->priv->preview); g_signal_connect (self->priv->image_task, "completed", G_CALLBACK (image_task_completed_cb), self); gth_browser_exec_task (GTH_BROWSER (window), self->priv->image_task, GTH_TASK_FLAGS_DEFAULT); return FALSE; }
static void cancel_file_list_loading (DialogData *data) { if (data->loader == NULL) return; gth_task_cancel (data->loader); g_object_unref (data->loader); data->loader = NULL; }
static void gth_image_viewer_page_tool_cancel (GthFileTool *base) { GthImageViewerPageTool *self = (GthImageViewerPageTool *) base; if (self->priv->image_task != NULL) { gth_task_cancel (self->priv->image_task); return; } GTH_IMAGE_VIEWER_PAGE_TOOL_GET_CLASS (self)->reset_image (self); }
static void gth_task_progress_finalize (GObject *base) { GthTaskProgress *self = (GthTaskProgress *) base; if (self->pulse_event != 0) g_source_remove (self->pulse_event); g_signal_handler_disconnect (self->task, self->task_progress); g_signal_handler_disconnect (self->task, self->task_completed); gth_task_cancel (self->task); g_object_unref (self->task); G_OBJECT_CLASS (gth_task_progress_parent_class)->finalize (base); }
static gboolean apply_cb (gpointer user_data) { GthFileToolGrayscale *self = user_data; GtkWidget *window; GrayscaleData *grayscale_data; if (self->priv->apply_event != 0) { g_source_remove (self->priv->apply_event); self->priv->apply_event = 0; } if (self->priv->image_task != NULL) { gth_task_cancel (self->priv->image_task); return FALSE; } window = gth_file_tool_get_window (GTH_FILE_TOOL (self)); grayscale_data = g_new0 (GrayscaleData, 1); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("brightness_radiobutton")))) grayscale_data->method = METHOD_BRIGHTNESS; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("saturation_radiobutton")))) grayscale_data->method = METHOD_SATURATION; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("average_radiobutton")))) grayscale_data->method = METHOD_AVARAGE; self->priv->image_task = gth_image_task_new (_("Applying changes"), NULL, grayscale_exec, NULL, grayscale_data, grayscale_data_free); if (self->priv->apply_to_original) gth_image_task_set_source_surface (GTH_IMAGE_TASK (self->priv->image_task), gth_image_viewer_page_tool_get_source (GTH_IMAGE_VIEWER_PAGE_TOOL (self))); else gth_image_task_set_source_surface (GTH_IMAGE_TASK (self->priv->image_task), self->priv->preview); g_signal_connect (self->priv->image_task, "completed", G_CALLBACK (image_task_completed_cb), self); gth_browser_exec_task (GTH_BROWSER (window), self->priv->image_task, FALSE); return FALSE; }
static void gth_file_tool_resize_reset_image (GthImageViewerPageTool *base) { GthFileToolResize *self = (GthFileToolResize *) base; if (self->priv->resize_task != NULL) { self->priv->closing = TRUE; gth_task_cancel (self->priv->resize_task); return; } if (self->priv->update_size_id != 0) { g_source_remove (self->priv->update_size_id); self->priv->update_size_id = 0; } gth_image_viewer_page_reset (GTH_IMAGE_VIEWER_PAGE (gth_image_viewer_page_tool_get_page (GTH_IMAGE_VIEWER_PAGE_TOOL (self)))); gth_file_tool_hide_options (GTH_FILE_TOOL (self)); }
static void cancel_button_clicked_cb (GtkButton *button, GthTaskProgress *self) { gth_task_cancel (self->task); }