/* Exporter.c generated by valac 0.40.4, the Vala compiler * generated from Exporter.vala, do not modify */ /* Copyright 2016 Software Freedom Conservancy Inc. * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. */ #include #include #include #include #include #include #include #include #include #define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ()) #define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ()) #define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ()) #define JPEG_TYPE_QUALITY (jpeg_quality_get_type ()) typedef struct _ExportFormatParameters ExportFormatParameters; #define TYPE_EXPORTER (exporter_get_type ()) #define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter)) #define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass)) #define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER)) #define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER)) #define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass)) typedef struct _Exporter Exporter; typedef struct _ExporterClass ExporterClass; typedef struct _ExporterPrivate ExporterPrivate; #define TYPE_DATA_OBJECT (data_object_get_type ()) #define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject)) #define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass)) #define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT)) #define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT)) #define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass)) typedef struct _DataObject DataObject; typedef struct _DataObjectClass DataObjectClass; #define TYPE_DATA_SOURCE (data_source_get_type ()) #define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource)) #define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass)) #define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE)) #define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE)) #define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass)) typedef struct _DataSource DataSource; typedef struct _DataSourceClass DataSourceClass; #define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ()) #define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource)) #define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass)) #define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE)) #define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE)) #define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass)) typedef struct _ThumbnailSource ThumbnailSource; typedef struct _ThumbnailSourceClass ThumbnailSourceClass; #define TYPE_MEDIA_SOURCE (media_source_get_type ()) #define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource)) #define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass)) #define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE)) #define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE)) #define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass)) typedef struct _MediaSource MediaSource; typedef struct _MediaSourceClass MediaSourceClass; #define TYPE_SCALING (scaling_get_type ()) #define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ()) #define TYPE_DIMENSIONS (dimensions_get_type ()) typedef struct _Dimensions Dimensions; typedef struct _Scaling Scaling; #define TYPE_WORKERS (workers_get_type ()) #define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers)) #define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass)) #define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS)) #define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS)) #define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass)) typedef struct _Workers Workers; typedef struct _WorkersClass WorkersClass; #define EXPORTER_TYPE_OVERWRITE (exporter_overwrite_get_type ()) enum { EXPORTER_0_PROPERTY, EXPORTER_NUM_PROPERTIES }; static GParamSpec* exporter_properties[EXPORTER_NUM_PROPERTIES]; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL))) #define TYPE_BACKGROUND_JOB (background_job_get_type ()) #define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob)) #define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass)) #define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB)) #define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB)) #define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass)) typedef struct _BackgroundJob BackgroundJob; typedef struct _BackgroundJobClass BackgroundJobClass; #define EXPORTER_TYPE_EXPORT_JOB (exporter_export_job_get_type ()) #define EXPORTER_EXPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob)) #define EXPORTER_EXPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXPORTER_TYPE_EXPORT_JOB, ExporterExportJobClass)) #define EXPORTER_IS_EXPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXPORTER_TYPE_EXPORT_JOB)) #define EXPORTER_IS_EXPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EXPORTER_TYPE_EXPORT_JOB)) #define EXPORTER_EXPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EXPORTER_TYPE_EXPORT_JOB, ExporterExportJobClass)) typedef struct _ExporterExportJob ExporterExportJob; typedef struct _ExporterExportJobClass ExporterExportJobClass; typedef struct _BackgroundJobPrivate BackgroundJobPrivate; #define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ()) typedef struct _ExporterExportJobPrivate ExporterExportJobPrivate; #define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL))) #define TYPE_PHOTO_SOURCE (photo_source_get_type ()) #define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource)) #define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass)) #define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE)) #define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE)) #define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass)) typedef struct _PhotoSource PhotoSource; typedef struct _PhotoSourceClass PhotoSourceClass; #define TYPE_PHOTO (photo_get_type ()) #define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo)) #define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass)) #define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO)) #define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO)) #define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass)) typedef struct _Photo Photo; typedef struct _PhotoClass PhotoClass; #define _g_free0(var) (var = (g_free (var), NULL)) #define TYPE_VIDEO_SOURCE (video_source_get_type ()) #define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource)) #define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass)) #define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE)) #define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE)) #define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass)) typedef struct _VideoSource VideoSource; typedef struct _VideoSourceClass VideoSourceClass; #define TYPE_VIDEO (video_get_type ()) #define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video)) #define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass)) #define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO)) #define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO)) #define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass)) typedef struct _Video Video; typedef struct _VideoClass VideoClass; #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _scaling_free0(var) ((var == NULL) ? NULL : (var = (scaling_free (var), NULL))) #define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ()) #define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore)) #define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass)) #define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE)) #define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE)) #define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass)) typedef struct _AbstractSemaphore AbstractSemaphore; typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass; #define TYPE_EXPORTER_UI (exporter_ui_get_type ()) #define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI)) #define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass)) #define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI)) #define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI)) #define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass)) typedef struct _ExporterUI ExporterUI; typedef struct _ExporterUIClass ExporterUIClass; typedef struct _ExporterUIPrivate ExporterUIPrivate; #define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ()) #define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog)) #define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass)) #define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG)) #define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG)) #define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass)) typedef struct _ProgressDialog ProgressDialog; typedef struct _ProgressDialogClass ProgressDialogClass; #define TYPE_PAGE_WINDOW (page_window_get_type ()) #define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow)) #define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass)) #define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW)) #define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW)) #define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass)) typedef struct _PageWindow PageWindow; typedef struct _PageWindowClass PageWindowClass; #define TYPE_APP_WINDOW (app_window_get_type ()) #define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow)) #define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass)) #define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW)) #define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW)) #define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass)) typedef struct _AppWindow AppWindow; typedef struct _AppWindowClass AppWindowClass; typedef struct _ParamSpecExporterUI ParamSpecExporterUI; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); typedef enum { EXPORT_FORMAT_MODE_UNMODIFIED, EXPORT_FORMAT_MODE_CURRENT, EXPORT_FORMAT_MODE_SPECIFIED, EXPORT_FORMAT_MODE_LAST } ExportFormatMode; typedef enum { PHOTO_FILE_FORMAT_JFIF, PHOTO_FILE_FORMAT_RAW, PHOTO_FILE_FORMAT_PNG, PHOTO_FILE_FORMAT_TIFF, PHOTO_FILE_FORMAT_BMP, PHOTO_FILE_FORMAT_UNKNOWN } PhotoFileFormat; typedef enum { JPEG_QUALITY_LOW = 50, JPEG_QUALITY_MEDIUM = 75, JPEG_QUALITY_HIGH = 90, JPEG_QUALITY_MAXIMUM = 100 } JpegQuality; struct _ExportFormatParameters { ExportFormatMode mode; PhotoFileFormat specified_format; JpegQuality quality; gboolean export_metadata; }; struct _Exporter { GObject parent_instance; ExporterPrivate * priv; }; struct _ExporterClass { GObjectClass parent_class; }; typedef enum { SCALE_CONSTRAINT_ORIGINAL, SCALE_CONSTRAINT_DIMENSIONS, SCALE_CONSTRAINT_WIDTH, SCALE_CONSTRAINT_HEIGHT, SCALE_CONSTRAINT_FILL_VIEWPORT } ScaleConstraint; struct _Dimensions { gint width; gint height; }; struct _Scaling { ScaleConstraint constraint; gint scale; Dimensions viewport; gboolean scale_up; }; typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data); typedef gboolean (*ExporterExportFailedCallback) (Exporter* exporter, GFile* file, gint remaining, GError* err, void* user_data); typedef enum { EXPORTER_OVERWRITE_YES, EXPORTER_OVERWRITE_NO, EXPORTER_OVERWRITE_CANCEL, EXPORTER_OVERWRITE_REPLACE_ALL } ExporterOverwrite; typedef ExporterOverwrite (*ExporterOverwriteCallback) (Exporter* exporter, GFile* file, void* user_data); typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data); struct _ExporterPrivate { GeeCollection* to_export; GFile** exported_files; gint exported_files_length1; gint _exported_files_size_; GFile* dir; Scaling scaling; gint completed_count; Workers* workers; ExporterCompletionCallback completion_callback; gpointer completion_callback_target; ExporterExportFailedCallback error_callback; gpointer error_callback_target; ExporterOverwriteCallback overwrite_callback; gpointer overwrite_callback_target; ProgressMonitor monitor; gpointer monitor_target; GCancellable* cancellable; gboolean replace_all; gboolean aborted; ExportFormatParameters export_params; }; typedef enum { BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100, BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75, BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50, BACKGROUND_JOB_JOB_PRIORITY_LOW = 25, BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0 } BackgroundJobJobPriority; struct _BackgroundJob { GTypeInstance parent_instance; volatile int ref_count; BackgroundJobPrivate * priv; }; struct _BackgroundJobClass { GTypeClass parent_class; void (*finalize) (BackgroundJob *self); void (*execute) (BackgroundJob* self); BackgroundJobJobPriority (*get_priority) (BackgroundJob* self); }; struct _ExporterExportJob { BackgroundJob parent_instance; ExporterExportJobPrivate * priv; MediaSource* media; GFile* dest; Scaling* scaling; JpegQuality* quality; PhotoFileFormat* format; GError* err; gboolean direct_copy_unmodified; gboolean export_metadata; }; struct _ExporterExportJobClass { BackgroundJobClass parent_class; }; typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data); typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data); struct _ExporterUI { GTypeInstance parent_instance; volatile int ref_count; ExporterUIPrivate * priv; }; struct _ExporterUIClass { GTypeClass parent_class; void (*finalize) (ExporterUI *self); }; struct _ExporterUIPrivate { Exporter* exporter; GCancellable* cancellable; ProgressDialog* progress_dialog; ExporterCompletionCallback completion_callback; gpointer completion_callback_target; }; struct _ParamSpecExporterUI { GParamSpec parent_instance; }; static gpointer exporter_parent_class = NULL; static gpointer exporter_export_job_parent_class = NULL; static gpointer exporter_ui_parent_class = NULL; GType export_format_mode_get_type (void) G_GNUC_CONST; GType export_format_parameters_get_type (void) G_GNUC_CONST; GType photo_file_format_get_type (void) G_GNUC_CONST; GType jpeg_quality_get_type (void) G_GNUC_CONST; ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self); void export_format_parameters_free (ExportFormatParameters* self); static void export_format_parameters_init (ExportFormatParameters *self, ExportFormatMode mode, PhotoFileFormat specified_format, JpegQuality quality); void export_format_parameters_current (ExportFormatParameters* result); PhotoFileFormat photo_file_format_get_system_default_format (void); void export_format_parameters_unmodified (ExportFormatParameters* result); void export_format_parameters_for_format (PhotoFileFormat format, ExportFormatParameters* result); void export_format_parameters_last (ExportFormatParameters* result); void export_format_parameters_for_JPEG (JpegQuality quality, ExportFormatParameters* result); GType exporter_get_type (void) G_GNUC_CONST; GType data_object_get_type (void) G_GNUC_CONST; GType data_source_get_type (void) G_GNUC_CONST; GType thumbnail_source_get_type (void) G_GNUC_CONST; GType media_source_get_type (void) G_GNUC_CONST; GType scaling_get_type (void) G_GNUC_CONST; GType scale_constraint_get_type (void) G_GNUC_CONST; GType dimensions_get_type (void) G_GNUC_CONST; Dimensions* dimensions_dup (const Dimensions* self); void dimensions_free (Dimensions* self); Scaling* scaling_dup (const Scaling* self); void scaling_free (Scaling* self); gpointer workers_ref (gpointer instance); void workers_unref (gpointer instance); GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void value_set_workers (GValue* value, gpointer v_object); void value_take_workers (GValue* value, gpointer v_object); gpointer value_get_workers (const GValue* value); GType workers_get_type (void) G_GNUC_CONST; GType exporter_overwrite_get_type (void) G_GNUC_CONST; #define EXPORTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPORTER, ExporterPrivate)) guint workers_threads_per_cpu (gint per, gint max); Workers* workers_new (guint max_threads, gboolean exclusive); Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive); Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all); Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all); Exporter* exporter_new_for_temp_file (GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params); Exporter* exporter_construct_for_temp_file (GType object_type, GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params); void exporter_export (Exporter* self, ExporterCompletionCallback completion_callback, void* completion_callback_target, ExporterExportFailedCallback error_callback, void* error_callback_target, ExporterOverwriteCallback overwrite_callback, void* overwrite_callback_target, GCancellable* cancellable, ProgressMonitor monitor, void* monitor_target); static gboolean exporter_process_queue (Exporter* self); static void exporter_export_completed (Exporter* self, gboolean is_cancelled); gpointer background_job_ref (gpointer instance); void background_job_unref (gpointer instance); GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void value_set_background_job (GValue* value, gpointer v_object); void value_take_background_job (GValue* value, gpointer v_object); gpointer value_get_background_job (const GValue* value); GType background_job_get_type (void) G_GNUC_CONST; static void exporter_on_exported (Exporter* self, BackgroundJob* j); static GType exporter_export_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; GType background_job_job_priority_get_type (void) G_GNUC_CONST; static void _vala_array_add129 (GFile** * array, int* length, int* size, GFile* value); static void exporter_on_export_cancelled (Exporter* self, BackgroundJob* j); GFile** exporter_get_exported_files (Exporter* self, int* result_length1); static GFile** _vala_array_dup25 (GFile** self, int length); GType photo_source_get_type (void) G_GNUC_CONST; GType photo_get_type (void) G_GNUC_CONST; PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params); gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params); GType video_source_get_type (void) G_GNUC_CONST; GType video_get_type (void) G_GNUC_CONST; gchar* media_source_get_basename (MediaSource* self); static void _vala_array_add130 (GFile** * array, int* length, int* size, GFile* value); GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error); GFile* app_dirs_get_temp_dir (void); void app_window_error_message (const gchar* message, GtkWindow* parent); GFile* media_source_get_file (MediaSource* self); void workers_enqueue (Workers* self, BackgroundJob* job); static ExporterExportJob* exporter_export_job_new (Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata); static ExporterExportJob* exporter_export_job_construct (GType object_type, Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata); static void _exporter_on_exported_completion_callback (BackgroundJob* job, gpointer self); static void _exporter_on_export_cancelled_cancellation_callback (BackgroundJob* job, gpointer self); gpointer abstract_semaphore_ref (gpointer instance); void abstract_semaphore_unref (gpointer instance); GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void value_set_abstract_semaphore (GValue* value, gpointer v_object); void value_take_abstract_semaphore (GValue* value, gpointer v_object); gpointer value_get_abstract_semaphore (const GValue* value); GType abstract_semaphore_get_type (void) G_GNUC_CONST; BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore); static JpegQuality* _jpeg_quality_dup (JpegQuality* self); static PhotoFileFormat* _photo_file_format_dup (PhotoFileFormat* self); static void exporter_export_job_real_execute (BackgroundJob* base); void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error); void video_export (Video* self, GFile* dest_file, GError** error); static void exporter_export_job_finalize (BackgroundJob * obj); static void exporter_finalize (GObject * obj); gpointer exporter_ui_ref (gpointer instance); void exporter_ui_unref (gpointer instance); GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void value_set_exporter_ui (GValue* value, gpointer v_object); void value_take_exporter_ui (GValue* value, gpointer v_object); gpointer value_get_exporter_ui (const GValue* value); GType exporter_ui_get_type (void) G_GNUC_CONST; GType progress_dialog_get_type (void) G_GNUC_CONST; #define EXPORTER_UI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPORTER_UI, ExporterUIPrivate)) ExporterUI* exporter_ui_new (Exporter* exporter); ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter); void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target); GType page_window_get_type (void) G_GNUC_CONST; GType app_window_get_type (void) G_GNUC_CONST; AppWindow* app_window_get_instance (void); void page_window_set_busy_cursor (PageWindow* self); ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable); ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable); static void exporter_ui_on_export_completed (ExporterUI* self, Exporter* exporter, gboolean is_cancelled); static void _exporter_ui_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self); static gboolean exporter_ui_on_export_failed (ExporterUI* self, Exporter* exporter, GFile* file, gint remaining, GError* err); static gboolean _exporter_ui_on_export_failed_exporter_export_failed_callback (Exporter* exporter, GFile* file, gint remaining, GError* err, gpointer self); static ExporterOverwrite exporter_ui_on_export_overwrite (ExporterUI* self, Exporter* exporter, GFile* file); static ExporterOverwrite _exporter_ui_on_export_overwrite_exporter_overwrite_callback (Exporter* exporter, GFile* file, gpointer self); gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop); static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self); void progress_dialog_close (ProgressDialog* self); void page_window_set_normal_cursor (PageWindow* self); GtkResponseType app_window_negate_affirm_all_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* affirmative_all, const gchar* title, GtkWindow* parent); GtkResponseType export_error_dialog (GFile* dest, gboolean photos_remaining); static void exporter_ui_finalize (ExporterUI * obj); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); GType export_format_mode_get_type (void) { static volatile gsize export_format_mode_type_id__volatile = 0; if (g_once_init_enter (&export_format_mode_type_id__volatile)) { static const GEnumValue values[] = {{EXPORT_FORMAT_MODE_UNMODIFIED, "EXPORT_FORMAT_MODE_UNMODIFIED", "unmodified"}, {EXPORT_FORMAT_MODE_CURRENT, "EXPORT_FORMAT_MODE_CURRENT", "current"}, {EXPORT_FORMAT_MODE_SPECIFIED, "EXPORT_FORMAT_MODE_SPECIFIED", "specified"}, {EXPORT_FORMAT_MODE_LAST, "EXPORT_FORMAT_MODE_LAST", "last"}, {0, NULL, NULL}}; GType export_format_mode_type_id; export_format_mode_type_id = g_enum_register_static ("ExportFormatMode", values); g_once_init_leave (&export_format_mode_type_id__volatile, export_format_mode_type_id); } return export_format_mode_type_id__volatile; } static void export_format_parameters_init (ExportFormatParameters *self, ExportFormatMode mode, PhotoFileFormat specified_format, JpegQuality quality) { #line 20 "/home/jens/Source/shotwell/src/Exporter.vala" memset (self, 0, sizeof (ExportFormatParameters)); #line 22 "/home/jens/Source/shotwell/src/Exporter.vala" (*self).mode = mode; #line 23 "/home/jens/Source/shotwell/src/Exporter.vala" (*self).specified_format = specified_format; #line 24 "/home/jens/Source/shotwell/src/Exporter.vala" (*self).quality = quality; #line 25 "/home/jens/Source/shotwell/src/Exporter.vala" (*self).export_metadata = TRUE; #line 699 "Exporter.c" } void export_format_parameters_current (ExportFormatParameters* result) { ExportFormatParameters _tmp0_ = {0}; #line 29 "/home/jens/Source/shotwell/src/Exporter.vala" export_format_parameters_init (&_tmp0_, EXPORT_FORMAT_MODE_CURRENT, photo_file_format_get_system_default_format (), JPEG_QUALITY_HIGH); #line 29 "/home/jens/Source/shotwell/src/Exporter.vala" *result = _tmp0_; #line 29 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 713 "Exporter.c" } void export_format_parameters_unmodified (ExportFormatParameters* result) { ExportFormatParameters _tmp0_ = {0}; #line 34 "/home/jens/Source/shotwell/src/Exporter.vala" export_format_parameters_init (&_tmp0_, EXPORT_FORMAT_MODE_UNMODIFIED, photo_file_format_get_system_default_format (), JPEG_QUALITY_HIGH); #line 34 "/home/jens/Source/shotwell/src/Exporter.vala" *result = _tmp0_; #line 34 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 727 "Exporter.c" } void export_format_parameters_for_format (PhotoFileFormat format, ExportFormatParameters* result) { ExportFormatParameters _tmp0_ = {0}; #line 39 "/home/jens/Source/shotwell/src/Exporter.vala" export_format_parameters_init (&_tmp0_, EXPORT_FORMAT_MODE_SPECIFIED, format, JPEG_QUALITY_HIGH); #line 39 "/home/jens/Source/shotwell/src/Exporter.vala" *result = _tmp0_; #line 39 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 742 "Exporter.c" } void export_format_parameters_last (ExportFormatParameters* result) { ExportFormatParameters _tmp0_ = {0}; #line 43 "/home/jens/Source/shotwell/src/Exporter.vala" export_format_parameters_init (&_tmp0_, EXPORT_FORMAT_MODE_LAST, photo_file_format_get_system_default_format (), JPEG_QUALITY_HIGH); #line 43 "/home/jens/Source/shotwell/src/Exporter.vala" *result = _tmp0_; #line 43 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 756 "Exporter.c" } void export_format_parameters_for_JPEG (JpegQuality quality, ExportFormatParameters* result) { ExportFormatParameters _tmp0_ = {0}; #line 48 "/home/jens/Source/shotwell/src/Exporter.vala" export_format_parameters_init (&_tmp0_, EXPORT_FORMAT_MODE_SPECIFIED, PHOTO_FILE_FORMAT_JFIF, quality); #line 48 "/home/jens/Source/shotwell/src/Exporter.vala" *result = _tmp0_; #line 48 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 771 "Exporter.c" } ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self) { ExportFormatParameters* dup; #line 14 "/home/jens/Source/shotwell/src/Exporter.vala" dup = g_new0 (ExportFormatParameters, 1); #line 14 "/home/jens/Source/shotwell/src/Exporter.vala" memcpy (dup, self, sizeof (ExportFormatParameters)); #line 14 "/home/jens/Source/shotwell/src/Exporter.vala" return dup; #line 785 "Exporter.c" } void export_format_parameters_free (ExportFormatParameters* self) { #line 14 "/home/jens/Source/shotwell/src/Exporter.vala" g_free (self); #line 794 "Exporter.c" } GType export_format_parameters_get_type (void) { static volatile gsize export_format_parameters_type_id__volatile = 0; if (g_once_init_enter (&export_format_parameters_type_id__volatile)) { GType export_format_parameters_type_id; export_format_parameters_type_id = g_boxed_type_register_static ("ExportFormatParameters", (GBoxedCopyFunc) export_format_parameters_dup, (GBoxedFreeFunc) export_format_parameters_free); g_once_init_leave (&export_format_parameters_type_id__volatile, export_format_parameters_type_id); } return export_format_parameters_type_id__volatile; } GType exporter_overwrite_get_type (void) { static volatile gsize exporter_overwrite_type_id__volatile = 0; if (g_once_init_enter (&exporter_overwrite_type_id__volatile)) { static const GEnumValue values[] = {{EXPORTER_OVERWRITE_YES, "EXPORTER_OVERWRITE_YES", "yes"}, {EXPORTER_OVERWRITE_NO, "EXPORTER_OVERWRITE_NO", "no"}, {EXPORTER_OVERWRITE_CANCEL, "EXPORTER_OVERWRITE_CANCEL", "cancel"}, {EXPORTER_OVERWRITE_REPLACE_ALL, "EXPORTER_OVERWRITE_REPLACE_ALL", "replace-all"}, {0, NULL, NULL}}; GType exporter_overwrite_type_id; exporter_overwrite_type_id = g_enum_register_static ("ExporterOverwrite", values); g_once_init_leave (&exporter_overwrite_type_id__volatile, exporter_overwrite_type_id); } return exporter_overwrite_type_id__volatile; } static gpointer _g_object_ref0 (gpointer self) { #line 125 "/home/jens/Source/shotwell/src/Exporter.vala" return self ? g_object_ref (self) : NULL; #line 830 "Exporter.c" } Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all) { Exporter * self = NULL; GeeCollection* _tmp0_; GFile* _tmp1_; Scaling _tmp2_; ExportFormatParameters _tmp3_; #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (GEE_IS_COLLECTION (to_export), NULL); #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail ((dir == NULL) || G_IS_FILE (dir), NULL); #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (scaling != NULL, NULL); #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (export_params != NULL, NULL); #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" self = (Exporter*) g_object_new (object_type, NULL); #line 124 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->to_export; #line 124 "/home/jens/Source/shotwell/src/Exporter.vala" gee_collection_add_all (_tmp0_, to_export); #line 125 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = _g_object_ref0 (dir); #line 125 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->dir); #line 125 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->dir = _tmp1_; #line 126 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = *scaling; #line 126 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->scaling = _tmp2_; #line 127 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = *export_params; #line 127 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->export_params = _tmp3_; #line 128 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->replace_all = auto_replace_all; #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" return self; #line 879 "Exporter.c" } Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all) { #line 122 "/home/jens/Source/shotwell/src/Exporter.vala" return exporter_construct (TYPE_EXPORTER, to_export, dir, scaling, export_params, auto_replace_all); #line 892 "Exporter.c" } Exporter* exporter_construct_for_temp_file (GType object_type, GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params) { Exporter * self = NULL; GeeCollection* _tmp0_; Scaling _tmp1_; ExportFormatParameters _tmp2_; #line 131 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (GEE_IS_COLLECTION (to_export), NULL); #line 131 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (scaling != NULL, NULL); #line 131 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (export_params != NULL, NULL); #line 131 "/home/jens/Source/shotwell/src/Exporter.vala" self = (Exporter*) g_object_new (object_type, NULL); #line 133 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->to_export; #line 133 "/home/jens/Source/shotwell/src/Exporter.vala" gee_collection_add_all (_tmp0_, to_export); #line 134 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->dir); #line 134 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->dir = NULL; #line 135 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = *scaling; #line 135 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->scaling = _tmp1_; #line 136 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = *export_params; #line 136 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->export_params = _tmp2_; #line 131 "/home/jens/Source/shotwell/src/Exporter.vala" return self; #line 932 "Exporter.c" } Exporter* exporter_new_for_temp_file (GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params) { #line 131 "/home/jens/Source/shotwell/src/Exporter.vala" return exporter_construct_for_temp_file (TYPE_EXPORTER, to_export, scaling, export_params); #line 943 "Exporter.c" } void exporter_export (Exporter* self, ExporterCompletionCallback completion_callback, void* completion_callback_target, ExporterExportFailedCallback error_callback, void* error_callback_target, ExporterOverwriteCallback overwrite_callback, void* overwrite_callback_target, GCancellable* cancellable, ProgressMonitor monitor, void* monitor_target) { GCancellable* _tmp0_ = NULL; GCancellable* _tmp1_; GCancellable* _tmp3_; #line 140 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER (self)); #line 140 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable)); #line 142 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback = completion_callback; #line 142 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback_target = completion_callback_target; #line 143 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->error_callback = error_callback; #line 143 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->error_callback_target = error_callback_target; #line 144 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->overwrite_callback = overwrite_callback; #line 144 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->overwrite_callback_target = overwrite_callback_target; #line 145 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->monitor = monitor; #line 145 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->monitor_target = monitor_target; #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = _g_object_ref0 (cancellable); #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = _tmp1_; #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp0_ == NULL) { #line 988 "Exporter.c" GCancellable* _tmp2_; #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = g_cancellable_new (); #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp0_); #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = _tmp2_; #line 996 "Exporter.c" } #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = _tmp0_; #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = NULL; #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->cancellable); #line 146 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->cancellable = _tmp3_; #line 148 "/home/jens/Source/shotwell/src/Exporter.vala" if (!exporter_process_queue (self)) { #line 149 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_export_completed (self, TRUE); #line 1010 "Exporter.c" } #line 140 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp0_); #line 1014 "Exporter.c" } static gpointer _background_job_ref0 (gpointer self) { #line 153 "/home/jens/Source/shotwell/src/Exporter.vala" return self ? background_job_ref (self) : NULL; #line 1023 "Exporter.c" } static void _vala_array_add129 (GFile** * array, int* length, int* size, GFile* value) { #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" if ((*length) == (*size)) { #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" *size = (*size) ? (2 * (*size)) : 4; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" *array = g_renew (GFile*, *array, (*size) + 1); #line 1039 "Exporter.c" } #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" (*array)[(*length)++] = value; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" (*array)[*length] = NULL; #line 1045 "Exporter.c" } static void exporter_on_exported (Exporter* self, BackgroundJob* j) { ExporterExportJob* job = NULL; ExporterExportJob* _tmp0_; gint _tmp1_; gboolean completed = FALSE; gint _tmp2_; GeeCollection* _tmp3_; gint _tmp4_; gint _tmp5_; gboolean _tmp6_ = FALSE; gboolean _tmp7_; gboolean _tmp20_ = FALSE; gboolean _tmp21_; gboolean _tmp33_; #line 152 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER (self)); #line 152 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_BACKGROUND_JOB (j)); #line 153 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (j, EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob)); #line 153 "/home/jens/Source/shotwell/src/Exporter.vala" job = _tmp0_; #line 155 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = self->priv->completed_count; #line 155 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completed_count = _tmp1_ + 1; #line 159 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = self->priv->completed_count; #line 159 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = self->priv->to_export; #line 159 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = gee_collection_get_size (_tmp3_); #line 159 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp5_ = _tmp4_; #line 159 "/home/jens/Source/shotwell/src/Exporter.vala" completed = _tmp2_ == _tmp5_; #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp7_ = self->priv->aborted; #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp7_) { #line 1092 "Exporter.c" ExporterExportJob* _tmp8_; GError* _tmp9_; #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp8_ = job; #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp9_ = _tmp8_->err; #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp6_ = _tmp9_ != NULL; #line 1101 "Exporter.c" } else { #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp6_ = FALSE; #line 1105 "Exporter.c" } #line 161 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp6_) { #line 1109 "Exporter.c" ExporterExportFailedCallback _tmp10_; void* _tmp10__target; ExporterExportJob* _tmp11_; GFile* _tmp12_; GeeCollection* _tmp13_; gint _tmp14_; gint _tmp15_; gint _tmp16_; ExporterExportJob* _tmp17_; GError* _tmp18_; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp10_ = self->priv->error_callback; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp10__target = self->priv->error_callback_target; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp11_ = job; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp12_ = _tmp11_->dest; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp13_ = self->priv->to_export; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp14_ = gee_collection_get_size (_tmp13_); #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp15_ = _tmp14_; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp16_ = self->priv->completed_count; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp17_ = job; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp18_ = _tmp17_->err; #line 162 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp10_ (self, _tmp12_, _tmp15_ - _tmp16_, _tmp18_, _tmp10__target)) { #line 1142 "Exporter.c" gboolean _tmp19_; #line 163 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->aborted = TRUE; #line 165 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp19_ = completed; #line 165 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp19_) { #line 166 "/home/jens/Source/shotwell/src/Exporter.vala" _background_job_unref0 (job); #line 166 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 1154 "Exporter.c" } } } #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp21_ = self->priv->aborted; #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp21_) { #line 1162 "Exporter.c" ProgressMonitor _tmp22_; void* _tmp22__target; #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp22_ = self->priv->monitor; #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp22__target = self->priv->monitor_target; #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp20_ = _tmp22_ != NULL; #line 1171 "Exporter.c" } else { #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp20_ = FALSE; #line 1175 "Exporter.c" } #line 170 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp20_) { #line 1179 "Exporter.c" ProgressMonitor _tmp23_; void* _tmp23__target; gint _tmp24_; GeeCollection* _tmp25_; gint _tmp26_; gint _tmp27_; #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp23_ = self->priv->monitor; #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp23__target = self->priv->monitor_target; #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp24_ = self->priv->completed_count; #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp25_ = self->priv->to_export; #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp26_ = gee_collection_get_size (_tmp25_); #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp27_ = _tmp26_; #line 171 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp23_ ((guint64) _tmp24_, (guint64) _tmp27_, FALSE, _tmp23__target)) { #line 1200 "Exporter.c" gboolean _tmp28_; #line 172 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->aborted = TRUE; #line 174 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp28_ = completed; #line 174 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp28_) { #line 175 "/home/jens/Source/shotwell/src/Exporter.vala" _background_job_unref0 (job); #line 175 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 1212 "Exporter.c" } } else { GFile** _tmp29_; gint _tmp29__length1; ExporterExportJob* _tmp30_; GFile* _tmp31_; GFile* _tmp32_; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp29_ = self->priv->exported_files; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp29__length1 = self->priv->exported_files_length1; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp30_ = job; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp31_ = _tmp30_->dest; #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp32_ = _g_object_ref0 (_tmp31_); #line 177 "/home/jens/Source/shotwell/src/Exporter.vala" _vala_array_add129 (&self->priv->exported_files, &self->priv->exported_files_length1, &self->priv->_exported_files_size_, _tmp32_); #line 1232 "Exporter.c" } } #line 181 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp33_ = completed; #line 181 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp33_) { #line 182 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_export_completed (self, FALSE); #line 1241 "Exporter.c" } #line 152 "/home/jens/Source/shotwell/src/Exporter.vala" _background_job_unref0 (job); #line 1245 "Exporter.c" } static void exporter_on_export_cancelled (Exporter* self, BackgroundJob* j) { gint _tmp0_; gint _tmp1_; GeeCollection* _tmp2_; gint _tmp3_; gint _tmp4_; #line 185 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER (self)); #line 185 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_BACKGROUND_JOB (j)); #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->completed_count; #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completed_count = _tmp0_ + 1; #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = self->priv->completed_count; #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = self->priv->to_export; #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = gee_collection_get_size (_tmp2_); #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = _tmp3_; #line 186 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp1_ == _tmp4_) { #line 187 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_export_completed (self, TRUE); #line 1278 "Exporter.c" } } static GFile** _vala_array_dup25 (GFile** self, int length) { GFile** result; int i; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" result = g_new0 (GFile*, length + 1); #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" for (i = 0; i < length; i++) { #line 1293 "Exporter.c" GFile* _tmp0_; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = _g_object_ref0 (self[i]); #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" result[i] = _tmp0_; #line 1299 "Exporter.c" } #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 1303 "Exporter.c" } GFile** exporter_get_exported_files (Exporter* self, int* result_length1) { GFile** result = NULL; GFile** _tmp0_; gint _tmp0__length1; GFile** _tmp1_; gint _tmp1__length1; GFile** _tmp2_; gint _tmp2__length1; #line 190 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER (self), NULL); #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->exported_files; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0__length1 = self->priv->exported_files_length1; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup25 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_); #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1__length1 = _tmp0__length1; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = _tmp1_; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2__length1 = _tmp1__length1; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" if (result_length1) { #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" *result_length1 = _tmp2__length1; #line 1336 "Exporter.c" } #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" result = _tmp2_; #line 191 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 1342 "Exporter.c" } static void _vala_array_add130 (GFile** * array, int* length, int* size, GFile* value) { #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" if ((*length) == (*size)) { #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" *size = (*size) ? (2 * (*size)) : 4; #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" *array = g_renew (GFile*, *array, (*size) + 1); #line 1358 "Exporter.c" } #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" (*array)[(*length)++] = value; #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" (*array)[*length] = NULL; #line 1364 "Exporter.c" } static gboolean exporter_process_queue (Exporter* self) { gboolean result = FALSE; gint submitted = 0; gint _tmp82_; GError * _inner_error_ = NULL; #line 194 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER (self), FALSE); #line 195 "/home/jens/Source/shotwell/src/Exporter.vala" submitted = 0; #line 1379 "Exporter.c" { GeeIterator* _source_it = NULL; GeeCollection* _tmp0_; GeeIterator* _tmp1_; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->to_export; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable)); #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _source_it = _tmp1_; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" while (TRUE) { #line 1392 "Exporter.c" GeeIterator* _tmp2_; MediaSource* source = NULL; GeeIterator* _tmp3_; gpointer _tmp4_; GFile* use_source_file = NULL; PhotoFileFormat real_export_format = 0; gchar* basename = NULL; MediaSource* _tmp5_; const gchar* _tmp16_; GFile* _tmp17_; GFile* export_dir = NULL; GFile* _tmp29_; GFile* _tmp30_; GFile* dest = NULL; GFile* _tmp31_; Workers* _tmp67_; MediaSource* _tmp68_; GFile* _tmp69_; Scaling _tmp70_; ExportFormatParameters _tmp71_; JpegQuality _tmp72_; PhotoFileFormat _tmp73_; GCancellable* _tmp74_; ExportFormatParameters _tmp75_; ExportFormatMode _tmp76_; ExportFormatParameters _tmp77_; gboolean _tmp78_; ExporterExportJob* _tmp79_; ExporterExportJob* _tmp80_; gint _tmp81_; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = _source_it; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" if (!gee_iterator_next (_tmp2_)) { #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" break; #line 1429 "Exporter.c" } #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = _source_it; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = gee_iterator_get (_tmp3_); #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" source = (MediaSource*) _tmp4_; #line 197 "/home/jens/Source/shotwell/src/Exporter.vala" use_source_file = NULL; #line 198 "/home/jens/Source/shotwell/src/Exporter.vala" real_export_format = photo_file_format_get_system_default_format (); #line 199 "/home/jens/Source/shotwell/src/Exporter.vala" basename = NULL; #line 200 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp5_ = source; #line 200 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_PHOTO)) { #line 1447 "Exporter.c" Photo* photo = NULL; MediaSource* _tmp6_; Photo* _tmp7_; Photo* _tmp8_; ExportFormatParameters _tmp9_; Photo* _tmp10_; ExportFormatParameters _tmp11_; gchar* _tmp12_; #line 201 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp6_ = source; #line 201 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PHOTO, Photo)); #line 201 "/home/jens/Source/shotwell/src/Exporter.vala" photo = _tmp7_; #line 202 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp8_ = photo; #line 202 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp9_ = self->priv->export_params; #line 202 "/home/jens/Source/shotwell/src/Exporter.vala" real_export_format = photo_get_export_format_for_parameters (_tmp8_, &_tmp9_); #line 203 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp10_ = photo; #line 203 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp11_ = self->priv->export_params; #line 203 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp12_ = photo_get_export_basename_for_parameters (_tmp10_, &_tmp11_); #line 203 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 203 "/home/jens/Source/shotwell/src/Exporter.vala" basename = _tmp12_; #line 200 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (photo); #line 1480 "Exporter.c" } else { MediaSource* _tmp13_; #line 204 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp13_ = source; #line 204 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_VIDEO)) { #line 1487 "Exporter.c" MediaSource* _tmp14_; gchar* _tmp15_; #line 205 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp14_ = source; #line 205 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp15_ = media_source_get_basename (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_VIDEO, Video), TYPE_MEDIA_SOURCE, MediaSource)); #line 205 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 205 "/home/jens/Source/shotwell/src/Exporter.vala" basename = _tmp15_; #line 1498 "Exporter.c" } } #line 207 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp16_ = basename; #line 207 "/home/jens/Source/shotwell/src/Exporter.vala" _vala_assert (_tmp16_ != NULL, "basename != null"); #line 209 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp17_ = use_source_file; #line 209 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp17_ != NULL) { #line 1509 "Exporter.c" GFile** _tmp18_; gint _tmp18__length1; GFile* _tmp19_; GFile* _tmp20_; gint _tmp21_; ProgressMonitor _tmp22_; void* _tmp22__target; #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp18_ = self->priv->exported_files; #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp18__length1 = self->priv->exported_files_length1; #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp19_ = use_source_file; #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp20_ = _g_object_ref0 (_tmp19_); #line 210 "/home/jens/Source/shotwell/src/Exporter.vala" _vala_array_add130 (&self->priv->exported_files, &self->priv->exported_files_length1, &self->priv->_exported_files_size_, _tmp20_); #line 212 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp21_ = self->priv->completed_count; #line 212 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completed_count = _tmp21_ + 1; #line 213 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp22_ = self->priv->monitor; #line 213 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp22__target = self->priv->monitor_target; #line 213 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp22_ != NULL) { #line 1537 "Exporter.c" ProgressMonitor _tmp23_; void* _tmp23__target; gint _tmp24_; GeeCollection* _tmp25_; gint _tmp26_; gint _tmp27_; #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp23_ = self->priv->monitor; #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp23__target = self->priv->monitor_target; #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp24_ = self->priv->completed_count; #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp25_ = self->priv->to_export; #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp26_ = gee_collection_get_size (_tmp25_); #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp27_ = _tmp26_; #line 214 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp23_ ((guint64) _tmp24_, (guint64) _tmp27_, TRUE, _tmp23__target)) { #line 1558 "Exporter.c" GCancellable* _tmp28_; #line 215 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp28_ = self->priv->cancellable; #line 215 "/home/jens/Source/shotwell/src/Exporter.vala" g_cancellable_cancel (_tmp28_); #line 217 "/home/jens/Source/shotwell/src/Exporter.vala" result = FALSE; #line 217 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 217 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 217 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 217 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_source_it); #line 217 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 1576 "Exporter.c" } } #line 221 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 221 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 221 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 221 "/home/jens/Source/shotwell/src/Exporter.vala" continue; #line 1587 "Exporter.c" } #line 224 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp29_ = self->priv->dir; #line 224 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp30_ = _g_object_ref0 (_tmp29_); #line 224 "/home/jens/Source/shotwell/src/Exporter.vala" export_dir = _tmp30_; #line 225 "/home/jens/Source/shotwell/src/Exporter.vala" dest = NULL; #line 227 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp31_ = export_dir; #line 227 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp31_ == NULL) { #line 1601 "Exporter.c" { gboolean collision = FALSE; GFile* _tmp32_ = NULL; GFile* _tmp33_; GFile* _tmp34_; const gchar* _tmp35_; gboolean _tmp36_ = FALSE; GFile* _tmp37_; GFile* _tmp38_; GFile* _tmp39_; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp33_ = app_dirs_get_temp_dir (); #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp34_ = _tmp33_; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp35_ = basename; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp37_ = generate_unique_file (_tmp34_, _tmp35_, &_tmp36_, &_inner_error_); #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" collision = _tmp36_; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp38_ = _tmp37_; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp34_); #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp32_ = _tmp38_; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 1630 "Exporter.c" goto __catch488_g_error; } #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp39_ = _tmp32_; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp32_ = NULL; #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 230 "/home/jens/Source/shotwell/src/Exporter.vala" dest = _tmp39_; #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp32_); #line 1643 "Exporter.c" } goto __finally488; __catch488_g_error: { GError* err = NULL; MediaSource* _tmp40_; GFile* _tmp41_; GFile* _tmp42_; gchar* _tmp43_; gchar* _tmp44_; GError* _tmp45_; const gchar* _tmp46_; gchar* _tmp47_; gchar* _tmp48_; #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" err = _inner_error_; #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _inner_error_ = NULL; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp40_ = source; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp41_ = media_source_get_file (_tmp40_); #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp42_ = _tmp41_; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp43_ = g_file_get_basename (_tmp42_); #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp44_ = _tmp43_; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp45_ = err; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp46_ = _tmp45_->message; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp47_ = g_strdup_printf (_ ("Unable to generate a temporary file for %s: %s"), _tmp44_, _tmp46_); #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp48_ = _tmp47_; #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" app_window_error_message (_tmp48_, NULL); #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (_tmp48_); #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (_tmp44_); #line 232 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp42_); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" _g_error_free0 (err); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (export_dir); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 235 "/home/jens/Source/shotwell/src/Exporter.vala" break; #line 1702 "Exporter.c" } __finally488: #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 1707 "Exporter.c" gboolean _tmp49_ = FALSE; #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (export_dir); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_source_it); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" g_clear_error (&_inner_error_); #line 228 "/home/jens/Source/shotwell/src/Exporter.vala" return _tmp49_; #line 1727 "Exporter.c" } } else { GFile* _tmp50_; const gchar* _tmp51_; GFile* _tmp52_; gboolean _tmp53_ = FALSE; gboolean _tmp54_; #line 238 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp50_ = self->priv->dir; #line 238 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp51_ = basename; #line 238 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp52_ = g_file_get_child (_tmp50_, _tmp51_); #line 238 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 238 "/home/jens/Source/shotwell/src/Exporter.vala" dest = _tmp52_; #line 240 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp54_ = self->priv->replace_all; #line 240 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp54_) { #line 1749 "Exporter.c" GFile* _tmp55_; #line 240 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp55_ = dest; #line 240 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp53_ = g_file_query_exists (_tmp55_, NULL); #line 1755 "Exporter.c" } else { #line 240 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp53_ = FALSE; #line 1759 "Exporter.c" } #line 240 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp53_) { #line 1763 "Exporter.c" ExporterOverwriteCallback _tmp56_; void* _tmp56__target; GFile* _tmp57_; #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp56_ = self->priv->overwrite_callback; #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp56__target = self->priv->overwrite_callback_target; #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp57_ = dest; #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" switch (_tmp56_ (self, _tmp57_, _tmp56__target)) { #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" case EXPORTER_OVERWRITE_YES: #line 1777 "Exporter.c" { #line 244 "/home/jens/Source/shotwell/src/Exporter.vala" break; #line 1781 "Exporter.c" } #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" case EXPORTER_OVERWRITE_REPLACE_ALL: #line 1785 "Exporter.c" { #line 247 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->replace_all = TRUE; #line 248 "/home/jens/Source/shotwell/src/Exporter.vala" break; #line 1791 "Exporter.c" } #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" case EXPORTER_OVERWRITE_CANCEL: #line 1795 "Exporter.c" { GCancellable* _tmp58_; #line 251 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp58_ = self->priv->cancellable; #line 251 "/home/jens/Source/shotwell/src/Exporter.vala" g_cancellable_cancel (_tmp58_); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" result = FALSE; #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (export_dir); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_source_it); #line 253 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 1818 "Exporter.c" } default: #line 241 "/home/jens/Source/shotwell/src/Exporter.vala" case EXPORTER_OVERWRITE_NO: #line 1823 "Exporter.c" { gint _tmp59_; ProgressMonitor _tmp60_; void* _tmp60__target; #line 257 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp59_ = self->priv->completed_count; #line 257 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completed_count = _tmp59_ + 1; #line 258 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp60_ = self->priv->monitor; #line 258 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp60__target = self->priv->monitor_target; #line 258 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp60_ != NULL) { #line 1838 "Exporter.c" ProgressMonitor _tmp61_; void* _tmp61__target; gint _tmp62_; GeeCollection* _tmp63_; gint _tmp64_; gint _tmp65_; #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp61_ = self->priv->monitor; #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp61__target = self->priv->monitor_target; #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp62_ = self->priv->completed_count; #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp63_ = self->priv->to_export; #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp64_ = gee_collection_get_size (_tmp63_); #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp65_ = _tmp64_; #line 259 "/home/jens/Source/shotwell/src/Exporter.vala" if (!_tmp61_ ((guint64) _tmp62_, (guint64) _tmp65_, TRUE, _tmp61__target)) { #line 1859 "Exporter.c" GCancellable* _tmp66_; #line 260 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp66_ = self->priv->cancellable; #line 260 "/home/jens/Source/shotwell/src/Exporter.vala" g_cancellable_cancel (_tmp66_); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" result = FALSE; #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (export_dir); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_source_it); #line 262 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 1881 "Exporter.c" } } #line 266 "/home/jens/Source/shotwell/src/Exporter.vala" continue; #line 1886 "Exporter.c" } } } } #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp67_ = self->priv->workers; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp68_ = source; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp69_ = dest; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp70_ = self->priv->scaling; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp71_ = self->priv->export_params; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp72_ = _tmp71_.quality; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp73_ = real_export_format; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp74_ = self->priv->cancellable; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp75_ = self->priv->export_params; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp76_ = _tmp75_.mode; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp77_ = self->priv->export_params; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp78_ = _tmp77_.export_metadata; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp79_ = exporter_export_job_new (self, _tmp68_, _tmp69_, &_tmp70_, &_tmp72_, &_tmp73_, _tmp74_, _tmp76_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp78_); #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp80_ = _tmp79_; #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" workers_enqueue (_tmp67_, G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, TYPE_BACKGROUND_JOB, BackgroundJob)); #line 271 "/home/jens/Source/shotwell/src/Exporter.vala" _background_job_unref0 (_tmp80_); #line 273 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp81_ = submitted; #line 273 "/home/jens/Source/shotwell/src/Exporter.vala" submitted = _tmp81_ + 1; #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (dest); #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (export_dir); #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (basename); #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (use_source_file); #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (source); #line 1937 "Exporter.c" } #line 196 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_source_it); #line 1941 "Exporter.c" } #line 276 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp82_ = submitted; #line 276 "/home/jens/Source/shotwell/src/Exporter.vala" result = _tmp82_ > 0; #line 276 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 1949 "Exporter.c" } static void exporter_export_completed (Exporter* self, gboolean is_cancelled) { ExporterCompletionCallback _tmp0_; void* _tmp0__target; #line 279 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER (self)); #line 280 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->completion_callback; #line 280 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0__target = self->priv->completion_callback_target; #line 280 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ (self, is_cancelled, _tmp0__target); #line 1967 "Exporter.c" } static void _exporter_on_exported_completion_callback (BackgroundJob* job, gpointer self) { #line 81 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_on_exported ((Exporter*) self, job); #line 1977 "Exporter.c" } static void _exporter_on_export_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) { #line 81 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_on_export_cancelled ((Exporter*) self, job); #line 1987 "Exporter.c" } static gpointer _scaling_dup0 (gpointer self) { #line 87 "/home/jens/Source/shotwell/src/Exporter.vala" return self ? scaling_dup (self) : NULL; #line 1996 "Exporter.c" } static JpegQuality* _jpeg_quality_dup (JpegQuality* self) { JpegQuality* dup; #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" dup = g_new0 (JpegQuality, 1); #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" memcpy (dup, self, sizeof (JpegQuality)); #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" return dup; #line 2010 "Exporter.c" } static gpointer __jpeg_quality_dup0 (gpointer self) { #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" return self ? _jpeg_quality_dup (self) : NULL; #line 2019 "Exporter.c" } static PhotoFileFormat* _photo_file_format_dup (PhotoFileFormat* self) { PhotoFileFormat* dup; #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" dup = g_new0 (PhotoFileFormat, 1); #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" memcpy (dup, self, sizeof (PhotoFileFormat)); #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" return dup; #line 2033 "Exporter.c" } static gpointer __photo_file_format_dup0 (gpointer self) { #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" return self ? _photo_file_format_dup (self) : NULL; #line 2042 "Exporter.c" } static ExporterExportJob* exporter_export_job_construct (GType object_type, Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata) { ExporterExportJob* self = NULL; gboolean _tmp0_ = FALSE; MediaSource* _tmp1_; GFile* _tmp2_; Scaling* _tmp3_; JpegQuality* _tmp4_; PhotoFileFormat* _tmp5_; #line 78 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER (owner), NULL); #line 78 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_MEDIA_SOURCE (media), NULL); #line 78 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (G_IS_FILE (dest), NULL); #line 78 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL); #line 81 "/home/jens/Source/shotwell/src/Exporter.vala" self = (ExporterExportJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (owner, G_TYPE_OBJECT, GObject), _exporter_on_exported_completion_callback, owner, cancellable, _exporter_on_export_cancelled_cancellation_callback, owner, NULL); #line 83 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_TYPE_CHECK_INSTANCE_TYPE (media, TYPE_PHOTO)) { #line 83 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = TRUE; #line 2079 "Exporter.c" } else { #line 83 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = G_TYPE_CHECK_INSTANCE_TYPE (media, TYPE_VIDEO); #line 2083 "Exporter.c" } #line 83 "/home/jens/Source/shotwell/src/Exporter.vala" _vala_assert (_tmp0_, "media is Photo || media is Video"); #line 85 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = _g_object_ref0 (media); #line 85 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->media); #line 85 "/home/jens/Source/shotwell/src/Exporter.vala" self->media = _tmp1_; #line 86 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = _g_object_ref0 (dest); #line 86 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->dest); #line 86 "/home/jens/Source/shotwell/src/Exporter.vala" self->dest = _tmp2_; #line 87 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = _scaling_dup0 (scaling); #line 87 "/home/jens/Source/shotwell/src/Exporter.vala" _scaling_free0 (self->scaling); #line 87 "/home/jens/Source/shotwell/src/Exporter.vala" self->scaling = _tmp3_; #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = __jpeg_quality_dup0 (quality); #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (self->quality); #line 88 "/home/jens/Source/shotwell/src/Exporter.vala" self->quality = _tmp4_; #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp5_ = __photo_file_format_dup0 (format); #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (self->format); #line 89 "/home/jens/Source/shotwell/src/Exporter.vala" self->format = _tmp5_; #line 90 "/home/jens/Source/shotwell/src/Exporter.vala" self->direct_copy_unmodified = direct_copy_unmodified; #line 91 "/home/jens/Source/shotwell/src/Exporter.vala" self->export_metadata = export_metadata; #line 78 "/home/jens/Source/shotwell/src/Exporter.vala" return self; #line 2123 "Exporter.c" } static ExporterExportJob* exporter_export_job_new (Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata) { #line 78 "/home/jens/Source/shotwell/src/Exporter.vala" return exporter_export_job_construct (EXPORTER_TYPE_EXPORT_JOB, owner, media, dest, scaling, quality, format, cancellable, direct_copy_unmodified, export_metadata); #line 2140 "Exporter.c" } static gpointer _g_error_copy0 (gpointer self) { #line 102 "/home/jens/Source/shotwell/src/Exporter.vala" return self ? g_error_copy (self) : NULL; #line 2149 "Exporter.c" } static void exporter_export_job_real_execute (BackgroundJob* base) { ExporterExportJob * self; GError * _inner_error_ = NULL; #line 94 "/home/jens/Source/shotwell/src/Exporter.vala" self = G_TYPE_CHECK_INSTANCE_CAST (base, EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob); #line 2160 "Exporter.c" { MediaSource* _tmp0_; #line 96 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->media; #line 96 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO)) { #line 2167 "Exporter.c" MediaSource* _tmp1_; GFile* _tmp2_; Scaling* _tmp3_; JpegQuality* _tmp4_; PhotoFileFormat* _tmp5_; gboolean _tmp6_; gboolean _tmp7_; Scaling _tmp8_; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = self->media; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = self->dest; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = self->scaling; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = self->quality; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp5_ = self->format; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp6_ = self->direct_copy_unmodified; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp7_ = self->export_metadata; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp8_ = *_tmp3_; #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" photo_export (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), _tmp2_, &_tmp8_, *_tmp4_, *_tmp5_, _tmp6_, _tmp7_, &_inner_error_); #line 97 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 2196 "Exporter.c" goto __catch489_g_error; } } else { MediaSource* _tmp9_; #line 98 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp9_ = self->media; #line 98 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_VIDEO)) { #line 2205 "Exporter.c" MediaSource* _tmp10_; GFile* _tmp11_; #line 99 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp10_ = self->media; #line 99 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp11_ = self->dest; #line 99 "/home/jens/Source/shotwell/src/Exporter.vala" video_export (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_VIDEO, Video), _tmp11_, &_inner_error_); #line 99 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 2216 "Exporter.c" goto __catch489_g_error; } } } } goto __finally489; __catch489_g_error: { GError* err = NULL; GError* _tmp12_; GError* _tmp13_; #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" err = _inner_error_; #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" _inner_error_ = NULL; #line 102 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp12_ = err; #line 102 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp13_ = _g_error_copy0 (_tmp12_); #line 102 "/home/jens/Source/shotwell/src/Exporter.vala" _g_error_free0 (self->err); #line 102 "/home/jens/Source/shotwell/src/Exporter.vala" self->err = _tmp13_; #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" _g_error_free0 (err); #line 2242 "Exporter.c" } __finally489: #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" g_clear_error (&_inner_error_); #line 95 "/home/jens/Source/shotwell/src/Exporter.vala" return; #line 2253 "Exporter.c" } } static void exporter_export_job_class_init (ExporterExportJobClass * klass) { #line 68 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_export_job_parent_class = g_type_class_peek_parent (klass); #line 68 "/home/jens/Source/shotwell/src/Exporter.vala" ((BackgroundJobClass *) klass)->finalize = exporter_export_job_finalize; #line 68 "/home/jens/Source/shotwell/src/Exporter.vala" ((BackgroundJobClass *) klass)->execute = (void (*) (BackgroundJob *)) exporter_export_job_real_execute; #line 2267 "Exporter.c" } static void exporter_export_job_instance_init (ExporterExportJob * self) { #line 74 "/home/jens/Source/shotwell/src/Exporter.vala" self->err = NULL; #line 75 "/home/jens/Source/shotwell/src/Exporter.vala" self->direct_copy_unmodified = FALSE; #line 76 "/home/jens/Source/shotwell/src/Exporter.vala" self->export_metadata = TRUE; #line 2280 "Exporter.c" } static void exporter_export_job_finalize (BackgroundJob * obj) { ExporterExportJob * self; #line 68 "/home/jens/Source/shotwell/src/Exporter.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob); #line 69 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->media); #line 70 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->dest); #line 71 "/home/jens/Source/shotwell/src/Exporter.vala" _scaling_free0 (self->scaling); #line 72 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (self->quality); #line 73 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (self->format); #line 74 "/home/jens/Source/shotwell/src/Exporter.vala" _g_error_free0 (self->err); #line 68 "/home/jens/Source/shotwell/src/Exporter.vala" BACKGROUND_JOB_CLASS (exporter_export_job_parent_class)->finalize (obj); #line 2304 "Exporter.c" } static GType exporter_export_job_get_type (void) { static volatile gsize exporter_export_job_type_id__volatile = 0; if (g_once_init_enter (&exporter_export_job_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (ExporterExportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exporter_export_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExporterExportJob), 0, (GInstanceInitFunc) exporter_export_job_instance_init, NULL }; GType exporter_export_job_type_id; exporter_export_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "ExporterExportJob", &g_define_type_info, 0); g_once_init_leave (&exporter_export_job_type_id__volatile, exporter_export_job_type_id); } return exporter_export_job_type_id__volatile; } static void exporter_class_init (ExporterClass * klass) { #line 53 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_parent_class = g_type_class_peek_parent (klass); #line 53 "/home/jens/Source/shotwell/src/Exporter.vala" g_type_class_add_private (klass, sizeof (ExporterPrivate)); #line 53 "/home/jens/Source/shotwell/src/Exporter.vala" G_OBJECT_CLASS (klass)->finalize = exporter_finalize; #line 2331 "Exporter.c" } static void exporter_instance_init (Exporter * self) { GeeArrayList* _tmp0_; Workers* _tmp1_; #line 53 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv = EXPORTER_GET_PRIVATE (self); #line 107 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL); #line 107 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->to_export = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection); #line 111 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completed_count = 0; #line 112 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = workers_new (workers_threads_per_cpu (1, 4), FALSE); #line 112 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->workers = _tmp1_; #line 113 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback = NULL; #line 113 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback_target = self; #line 114 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->error_callback = NULL; #line 114 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->error_callback_target = self; #line 115 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->overwrite_callback = NULL; #line 115 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->overwrite_callback_target = self; #line 116 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->monitor = NULL; #line 116 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->monitor_target = self; #line 118 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->replace_all = FALSE; #line 119 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->aborted = FALSE; #line 2372 "Exporter.c" } static void exporter_finalize (GObject * obj) { Exporter * self; #line 53 "/home/jens/Source/shotwell/src/Exporter.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPORTER, Exporter); #line 107 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->to_export); #line 108 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->exported_files = (_vala_array_free (self->priv->exported_files, self->priv->exported_files_length1, (GDestroyNotify) g_object_unref), NULL); #line 109 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->dir); #line 112 "/home/jens/Source/shotwell/src/Exporter.vala" _workers_unref0 (self->priv->workers); #line 117 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->cancellable); #line 53 "/home/jens/Source/shotwell/src/Exporter.vala" G_OBJECT_CLASS (exporter_parent_class)->finalize (obj); #line 2394 "Exporter.c" } GType exporter_get_type (void) { static volatile gsize exporter_type_id__volatile = 0; if (g_once_init_enter (&exporter_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (ExporterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exporter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Exporter), 0, (GInstanceInitFunc) exporter_instance_init, NULL }; GType exporter_type_id; exporter_type_id = g_type_register_static (G_TYPE_OBJECT, "Exporter", &g_define_type_info, 0); g_once_init_leave (&exporter_type_id__volatile, exporter_type_id); } return exporter_type_id__volatile; } ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter) { ExporterUI* self = NULL; Exporter* _tmp0_; #line 290 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER (exporter), NULL); #line 290 "/home/jens/Source/shotwell/src/Exporter.vala" self = (ExporterUI*) g_type_create_instance (object_type); #line 291 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = _g_object_ref0 (exporter); #line 291 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->exporter); #line 291 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->exporter = _tmp0_; #line 290 "/home/jens/Source/shotwell/src/Exporter.vala" return self; #line 2430 "Exporter.c" } ExporterUI* exporter_ui_new (Exporter* exporter) { #line 290 "/home/jens/Source/shotwell/src/Exporter.vala" return exporter_ui_construct (TYPE_EXPORTER_UI, exporter); #line 2439 "Exporter.c" } static void _exporter_ui_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) { #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_ui_on_export_completed ((ExporterUI*) self, exporter, is_cancelled); #line 2450 "Exporter.c" } static gboolean _exporter_ui_on_export_failed_exporter_export_failed_callback (Exporter* exporter, GFile* file, gint remaining, GError* err, gpointer self) { gboolean result; result = exporter_ui_on_export_failed ((ExporterUI*) self, exporter, file, remaining, err); #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2465 "Exporter.c" } static ExporterOverwrite _exporter_ui_on_export_overwrite_exporter_overwrite_callback (Exporter* exporter, GFile* file, gpointer self) { ExporterOverwrite result; result = exporter_ui_on_export_overwrite ((ExporterUI*) self, exporter, file); #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2478 "Exporter.c" } static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) { gboolean result; result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop); #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2492 "Exporter.c" } void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target) { AppWindow* _tmp0_; AppWindow* _tmp1_; AppWindow* _tmp2_; AppWindow* _tmp3_; GCancellable* _tmp4_; ProgressDialog* _tmp5_; Exporter* _tmp6_; GCancellable* _tmp7_; ProgressDialog* _tmp8_; #line 294 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER_UI (self)); #line 295 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback = completion_callback; #line 295 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback_target = completion_callback_target; #line 297 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = app_window_get_instance (); #line 297 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = _tmp0_; #line 297 "/home/jens/Source/shotwell/src/Exporter.vala" page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow)); #line 297 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp1_); #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = app_window_get_instance (); #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = _tmp2_; #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = self->priv->cancellable; #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp5_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_window_get_type (), GtkWindow), _ ("Exporting"), _tmp4_); #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" g_object_ref_sink (_tmp5_); #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->progress_dialog); #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->progress_dialog = _tmp5_; #line 299 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp3_); #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp6_ = self->priv->exporter; #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp7_ = self->priv->cancellable; #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp8_ = self->priv->progress_dialog; #line 300 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_export (_tmp6_, _exporter_ui_on_export_completed_exporter_completion_callback, self, _exporter_ui_on_export_failed_exporter_export_failed_callback, self, _exporter_ui_on_export_overwrite_exporter_overwrite_callback, self, _tmp7_, _progress_dialog_monitor_progress_monitor, _tmp8_); #line 2548 "Exporter.c" } static void exporter_ui_on_export_completed (ExporterUI* self, Exporter* exporter, gboolean is_cancelled) { ProgressDialog* _tmp0_; AppWindow* _tmp2_; AppWindow* _tmp3_; ExporterCompletionCallback _tmp4_; void* _tmp4__target; #line 304 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER_UI (self)); #line 304 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (IS_EXPORTER (exporter)); #line 305 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->progress_dialog; #line 305 "/home/jens/Source/shotwell/src/Exporter.vala" if (_tmp0_ != NULL) { #line 2570 "Exporter.c" ProgressDialog* _tmp1_; #line 306 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = self->priv->progress_dialog; #line 306 "/home/jens/Source/shotwell/src/Exporter.vala" progress_dialog_close (_tmp1_); #line 307 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->progress_dialog); #line 307 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->progress_dialog = NULL; #line 2580 "Exporter.c" } #line 310 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = app_window_get_instance (); #line 310 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = _tmp2_; #line 310 "/home/jens/Source/shotwell/src/Exporter.vala" page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PAGE_WINDOW, PageWindow)); #line 310 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (_tmp3_); #line 312 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = self->priv->completion_callback; #line 312 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4__target = self->priv->completion_callback_target; #line 312 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ (exporter, is_cancelled, _tmp4__target); #line 2596 "Exporter.c" } static ExporterOverwrite exporter_ui_on_export_overwrite (ExporterUI* self, Exporter* exporter, GFile* file) { ExporterOverwrite result = 0; ProgressDialog* _tmp0_; gchar* question = NULL; gchar* _tmp1_; gchar* _tmp2_; gchar* _tmp3_; gchar* _tmp4_; GtkResponseType response = 0; const gchar* _tmp5_; ProgressDialog* _tmp6_; GtkResponseType _tmp7_; #line 315 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER_UI (self), 0); #line 315 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER (exporter), 0); #line 315 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (G_IS_FILE (file), 0); #line 316 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = self->priv->progress_dialog; #line 316 "/home/jens/Source/shotwell/src/Exporter.vala" gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_window_get_type (), GtkWindow), FALSE); #line 317 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp1_ = g_file_get_basename (file); #line 317 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp2_ = _tmp1_; #line 317 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp3_ = g_strdup_printf (_ ("File %s already exists. Replace?"), _tmp2_); #line 317 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp4_ = _tmp3_; #line 317 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (_tmp2_); #line 317 "/home/jens/Source/shotwell/src/Exporter.vala" question = _tmp4_; #line 318 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp5_ = question; #line 318 "/home/jens/Source/shotwell/src/Exporter.vala" response = app_window_negate_affirm_all_cancel_question (_tmp5_, _ ("_Skip"), _ ("_Replace"), _ ("Replace _All"), _ ("Export"), NULL); #line 321 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp6_ = self->priv->progress_dialog; #line 321 "/home/jens/Source/shotwell/src/Exporter.vala" gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_window_get_type (), GtkWindow), TRUE); #line 323 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp7_ = response; #line 323 "/home/jens/Source/shotwell/src/Exporter.vala" switch (_tmp7_) { #line 323 "/home/jens/Source/shotwell/src/Exporter.vala" case GTK_RESPONSE_APPLY: #line 2652 "Exporter.c" { #line 325 "/home/jens/Source/shotwell/src/Exporter.vala" result = EXPORTER_OVERWRITE_REPLACE_ALL; #line 325 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (question); #line 325 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2660 "Exporter.c" } #line 323 "/home/jens/Source/shotwell/src/Exporter.vala" case GTK_RESPONSE_YES: #line 2664 "Exporter.c" { #line 328 "/home/jens/Source/shotwell/src/Exporter.vala" result = EXPORTER_OVERWRITE_YES; #line 328 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (question); #line 328 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2672 "Exporter.c" } #line 323 "/home/jens/Source/shotwell/src/Exporter.vala" case GTK_RESPONSE_CANCEL: #line 2676 "Exporter.c" { #line 331 "/home/jens/Source/shotwell/src/Exporter.vala" result = EXPORTER_OVERWRITE_CANCEL; #line 331 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (question); #line 331 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2684 "Exporter.c" } default: #line 323 "/home/jens/Source/shotwell/src/Exporter.vala" case GTK_RESPONSE_NO: #line 2689 "Exporter.c" { #line 335 "/home/jens/Source/shotwell/src/Exporter.vala" result = EXPORTER_OVERWRITE_NO; #line 335 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (question); #line 335 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2697 "Exporter.c" } } #line 315 "/home/jens/Source/shotwell/src/Exporter.vala" _g_free0 (question); #line 2702 "Exporter.c" } static gboolean exporter_ui_on_export_failed (ExporterUI* self, Exporter* exporter, GFile* file, gint remaining, GError* err) { gboolean result = FALSE; #line 339 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER_UI (self), FALSE); #line 339 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (IS_EXPORTER (exporter), FALSE); #line 339 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (G_IS_FILE (file), FALSE); #line 340 "/home/jens/Source/shotwell/src/Exporter.vala" result = export_error_dialog (file, remaining > 0) != GTK_RESPONSE_CANCEL; #line 340 "/home/jens/Source/shotwell/src/Exporter.vala" return result; #line 2724 "Exporter.c" } static void value_exporter_ui_init (GValue* value) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = NULL; #line 2733 "Exporter.c" } static void value_exporter_ui_free_value (GValue* value) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (value->data[0].v_pointer) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_ui_unref (value->data[0].v_pointer); #line 2744 "Exporter.c" } } static void value_exporter_ui_copy_value (const GValue* src_value, GValue* dest_value) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (src_value->data[0].v_pointer) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" dest_value->data[0].v_pointer = exporter_ui_ref (src_value->data[0].v_pointer); #line 2757 "Exporter.c" } else { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" dest_value->data[0].v_pointer = NULL; #line 2761 "Exporter.c" } } static gpointer value_exporter_ui_peek_pointer (const GValue* value) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return value->data[0].v_pointer; #line 2771 "Exporter.c" } static gchar* value_exporter_ui_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (collect_values[0].v_pointer) { #line 2783 "Exporter.c" ExporterUI * object; object = collect_values[0].v_pointer; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (object->parent_instance.g_class == NULL) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); #line 2790 "Exporter.c" } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); #line 2794 "Exporter.c" } #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = exporter_ui_ref (object); #line 2798 "Exporter.c" } else { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = NULL; #line 2802 "Exporter.c" } #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return NULL; #line 2806 "Exporter.c" } static gchar* value_exporter_ui_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { ExporterUI ** object_p; object_p = collect_values[0].v_pointer; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (!object_p) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); #line 2822 "Exporter.c" } #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (!value->data[0].v_pointer) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" *object_p = NULL; #line 2828 "Exporter.c" } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" *object_p = value->data[0].v_pointer; #line 2832 "Exporter.c" } else { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" *object_p = exporter_ui_ref (value->data[0].v_pointer); #line 2836 "Exporter.c" } #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return NULL; #line 2840 "Exporter.c" } GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { ParamSpecExporterUI* spec; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (g_type_is_a (object_type, TYPE_EXPORTER_UI), NULL); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" G_PARAM_SPEC (spec)->value_type = object_type; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return G_PARAM_SPEC (spec); #line 2860 "Exporter.c" } gpointer value_get_exporter_ui (const GValue* value) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EXPORTER_UI), NULL); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return value->data[0].v_pointer; #line 2871 "Exporter.c" } void value_set_exporter_ui (GValue* value, gpointer v_object) { ExporterUI * old; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EXPORTER_UI)); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" old = value->data[0].v_pointer; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (v_object) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_EXPORTER_UI)); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = v_object; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_ui_ref (value->data[0].v_pointer); #line 2894 "Exporter.c" } else { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = NULL; #line 2898 "Exporter.c" } #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (old) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_ui_unref (old); #line 2904 "Exporter.c" } } void value_take_exporter_ui (GValue* value, gpointer v_object) { ExporterUI * old; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EXPORTER_UI)); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" old = value->data[0].v_pointer; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (v_object) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_EXPORTER_UI)); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = v_object; #line 2926 "Exporter.c" } else { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" value->data[0].v_pointer = NULL; #line 2930 "Exporter.c" } #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (old) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_ui_unref (old); #line 2936 "Exporter.c" } } static void exporter_ui_class_init (ExporterUIClass * klass) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" exporter_ui_parent_class = g_type_class_peek_parent (klass); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" ((ExporterUIClass *) klass)->finalize = exporter_ui_finalize; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_type_class_add_private (klass, sizeof (ExporterUIPrivate)); #line 2950 "Exporter.c" } static void exporter_ui_instance_init (ExporterUI * self) { GCancellable* _tmp0_; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv = EXPORTER_UI_GET_PRIVATE (self); #line 286 "/home/jens/Source/shotwell/src/Exporter.vala" _tmp0_ = g_cancellable_new (); #line 286 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->cancellable = _tmp0_; #line 287 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->progress_dialog = NULL; #line 288 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback = NULL; #line 288 "/home/jens/Source/shotwell/src/Exporter.vala" self->priv->completion_callback_target = self; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" self->ref_count = 1; #line 2972 "Exporter.c" } static void exporter_ui_finalize (ExporterUI * obj) { ExporterUI * self; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPORTER_UI, ExporterUI); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_signal_handlers_destroy (self); #line 285 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->exporter); #line 286 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->cancellable); #line 287 "/home/jens/Source/shotwell/src/Exporter.vala" _g_object_unref0 (self->priv->progress_dialog); #line 2990 "Exporter.c" } GType exporter_ui_get_type (void) { static volatile gsize exporter_ui_type_id__volatile = 0; if (g_once_init_enter (&exporter_ui_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { value_exporter_ui_init, value_exporter_ui_free_value, value_exporter_ui_copy_value, value_exporter_ui_peek_pointer, "p", value_exporter_ui_collect_value, "p", value_exporter_ui_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (ExporterUIClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exporter_ui_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExporterUI), 0, (GInstanceInitFunc) exporter_ui_instance_init, &g_define_type_value_table }; static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType exporter_ui_type_id; exporter_ui_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ExporterUI", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&exporter_ui_type_id__volatile, exporter_ui_type_id); } return exporter_ui_type_id__volatile; } gpointer exporter_ui_ref (gpointer instance) { ExporterUI * self; self = instance; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_atomic_int_inc (&self->ref_count); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" return instance; #line 3019 "Exporter.c" } void exporter_ui_unref (gpointer instance) { ExporterUI * self; self = instance; #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" if (g_atomic_int_dec_and_test (&self->ref_count)) { #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" EXPORTER_UI_GET_CLASS (self)->finalize (self); #line 284 "/home/jens/Source/shotwell/src/Exporter.vala" g_type_free_instance ((GTypeInstance *) self); #line 3034 "Exporter.c" } } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); }