diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:09:31 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-08-20 15:09:31 +0200 |
commit | 143bfc9f801c84428074312d661f8e08803df83b (patch) | |
tree | 59a8a447529bd9ce3807aa8bacef861dc5aafd70 /src/direct | |
parent | 29a7aef998e975b42401cfa96d1b750d91eadf06 (diff) |
Imported Upstream version 0.23.5upstream/0.23.5
Diffstat (limited to 'src/direct')
-rw-r--r-- | src/direct/Direct.c | 85 | ||||
-rw-r--r-- | src/direct/DirectPhoto.c | 2829 | ||||
-rw-r--r-- | src/direct/DirectPhotoPage.c | 5294 | ||||
-rw-r--r-- | src/direct/DirectView.c | 827 | ||||
-rw-r--r-- | src/direct/DirectWindow.c | 935 | ||||
-rw-r--r-- | src/direct/mk/direct.mk | 36 |
6 files changed, 9970 insertions, 36 deletions
diff --git a/src/direct/Direct.c b/src/direct/Direct.c new file mode 100644 index 0000000..2e1bfa4 --- /dev/null +++ b/src/direct/Direct.c @@ -0,0 +1,85 @@ +/* Direct.c generated by valac 0.32.1, the Vala compiler + * generated from Direct.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. + */ +/* This file is the master unit file for the Direct unit. It should be edited to include + * whatever code is deemed necessary. + * + * The init() and terminate() methods are mandatory. + * + * If the unit needs to be configured prior to initialization, add the proper parameters to + * the preconfigure() method, implement it, and ensure in init() that it's been called. + */ + +#include <glib.h> +#include <glib-object.h> +#include <gio/gio.h> + +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#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); + + +extern GFile* direct_initial_file; +GFile* direct_initial_file = NULL; + +void direct_preconfigure (GFile* initial_file); +void direct_init (GError** error); +void direct_photo_init (GFile* initial_file); +void direct_terminate (void); +void direct_photo_terminate (void); + + +static gpointer _g_object_ref0 (gpointer self) { +#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala" + return self ? g_object_ref (self) : NULL; +#line 43 "Direct.c" +} + + +void direct_preconfigure (GFile* initial_file) { + GFile* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; +#line 20 "/home/jens/Source/shotwell/src/direct/Direct.vala" + g_return_if_fail (G_IS_FILE (initial_file)); +#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala" + _tmp0_ = initial_file; +#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala" + _g_object_unref0 (direct_initial_file); +#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala" + direct_initial_file = _tmp1_; +#line 60 "Direct.c" +} + + +void direct_init (GError** error) { + GFile* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; +#line 25 "/home/jens/Source/shotwell/src/direct/Direct.vala" + _tmp0_ = direct_initial_file; +#line 25 "/home/jens/Source/shotwell/src/direct/Direct.vala" + _vala_assert (_tmp0_ != NULL, "initial_file != null"); +#line 27 "/home/jens/Source/shotwell/src/direct/Direct.vala" + _tmp1_ = direct_initial_file; +#line 27 "/home/jens/Source/shotwell/src/direct/Direct.vala" + direct_photo_init (_tmp1_); +#line 75 "Direct.c" +} + + +void direct_terminate (void) { +#line 31 "/home/jens/Source/shotwell/src/direct/Direct.vala" + direct_photo_terminate (); +#line 82 "Direct.c" +} + + + diff --git a/src/direct/DirectPhoto.c b/src/direct/DirectPhoto.c new file mode 100644 index 0000000..97ebcd5 --- /dev/null +++ b/src/direct/DirectPhoto.c @@ -0,0 +1,2829 @@ +/* DirectPhoto.c generated by valac 0.32.1, the Vala compiler + * generated from DirectPhoto.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 <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gio/gio.h> +#include <time.h> +#include <gee.h> + + +#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; +typedef struct _DataObjectPrivate DataObjectPrivate; + +#define TYPE_ALTERATION (alteration_get_type ()) +#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration)) +#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass)) +#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION)) +#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION)) +#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass)) + +typedef struct _Alteration Alteration; +typedef struct _AlterationClass AlterationClass; + +#define TYPE_DATA_COLLECTION (data_collection_get_type ()) +#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection)) +#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass)) +#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION)) +#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION)) +#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass)) + +typedef struct _DataCollection DataCollection; +typedef struct _DataCollectionClass DataCollectionClass; + +#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; +typedef struct _DataSourcePrivate DataSourcePrivate; + +#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ()) +#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank)) +#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass)) +#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK)) +#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK)) +#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass)) + +typedef struct _SourceHoldingTank SourceHoldingTank; +typedef struct _SourceHoldingTankClass SourceHoldingTankClass; + +#define TYPE_SOURCE_COLLECTION (source_collection_get_type ()) +#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection)) +#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass)) +#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION)) +#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION)) +#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass)) + +typedef struct _SourceCollection SourceCollection; +typedef struct _SourceCollectionClass SourceCollectionClass; + +#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ()) +#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot)) +#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass)) +#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT)) +#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT)) +#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass)) + +typedef struct _SourceSnapshot SourceSnapshot; +typedef struct _SourceSnapshotClass SourceSnapshotClass; + +#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; +typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate; + +#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ()) + +#define TYPE_INDEXABLE (indexable_get_type ()) +#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable)) +#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE)) +#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface)) + +typedef struct _Indexable Indexable; +typedef struct _IndexableIface IndexableIface; + +#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; +typedef struct _MediaSourcePrivate MediaSourcePrivate; + +#define TYPE_EVENT_ID (event_id_get_type ()) +typedef struct _EventID EventID; + +#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ()) +#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState)) +#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass)) +#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE)) +#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE)) +#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass)) + +typedef struct _BackingFileState BackingFileState; +typedef struct _BackingFileStateClass BackingFileStateClass; + +#define TYPE_RATING (rating_get_type ()) + +#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ()) + +#define TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; + +#define TYPE_SCALING (scaling_get_type ()) + +#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ()) +typedef struct _Scaling Scaling; + +#define TYPE_IMPORT_ID (import_id_get_type ()) +typedef struct _ImportID ImportID; + +#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; +typedef struct _PhotoSourcePrivate PhotoSourcePrivate; + +#define TYPE_MEDIA_METADATA (media_metadata_get_type ()) +#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata)) +#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass)) +#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA)) +#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA)) +#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass)) + +typedef struct _MediaMetadata MediaMetadata; +typedef struct _MediaMetadataClass MediaMetadataClass; + +#define TYPE_PHOTO_METADATA (photo_metadata_get_type ()) +#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata)) +#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass)) +#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA)) +#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA)) +#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass)) + +typedef struct _PhotoMetadata PhotoMetadata; +typedef struct _PhotoMetadataClass PhotoMetadataClass; + +#define TYPE_DATEABLE (dateable_get_type ()) +#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable)) +#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE)) +#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface)) + +typedef struct _Dateable Dateable; +typedef struct _DateableIface DateableIface; + +#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; +typedef struct _PhotoPrivate PhotoPrivate; + +#define TYPE_ROTATION (rotation_get_type ()) + +#define TYPE_PHOTO_ROW (photo_row_get_type ()) +#define PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_ROW, PhotoRow)) +#define PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_ROW, PhotoRowClass)) +#define IS_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_ROW)) +#define IS_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_ROW)) +#define PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_ROW, PhotoRowClass)) + +typedef struct _PhotoRow PhotoRow; +typedef struct _PhotoRowClass PhotoRowClass; + +#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ()) +#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow)) +#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass)) +#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW)) +#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW)) +#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass)) + +typedef struct _BackingPhotoRow BackingPhotoRow; +typedef struct _BackingPhotoRowClass BackingPhotoRowClass; + +#define TYPE_DIRECT_PHOTO (direct_photo_get_type ()) +#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto)) +#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass)) +#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO)) +#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO)) +#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass)) + +typedef struct _DirectPhoto DirectPhoto; +typedef struct _DirectPhotoClass DirectPhotoClass; +typedef struct _DirectPhotoPrivate DirectPhotoPrivate; + +#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ()) +#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection)) +#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass)) +#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION)) +#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION)) +#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass)) + +typedef struct _DatabaseSourceCollection DatabaseSourceCollection; +typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass; + +#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ()) +#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection)) +#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass)) +#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION)) +#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION)) +#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass)) + +typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection; +typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +#define TYPE_ORIENTATION (orientation_get_type ()) +typedef struct _PhotoRowPrivate PhotoRowPrivate; + +#define TYPE_PHOTO_ID (photo_id_get_type ()) +typedef struct _PhotoID PhotoID; + +#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ()) +#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap)) +#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass)) +#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP)) +#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP)) +#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass)) + +typedef struct _KeyValueMap KeyValueMap; +typedef struct _KeyValueMapClass KeyValueMapClass; + +#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ()) +typedef struct _BackingPhotoID BackingPhotoID; + +#define TYPE_RAW_DEVELOPER (raw_developer_get_type ()) +typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate; +#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ()) +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) + +#define TYPE_IMPORT_RESULT (import_result_get_type ()) + +#define PHOTO_TYPE_REIMPORT_MASTER_STATE (photo_reimport_master_state_get_type ()) +#define PHOTO_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState)) +#define PHOTO_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass)) +#define PHOTO_IS_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE)) +#define PHOTO_IS_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE)) +#define PHOTO_REIMPORT_MASTER_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass)) + +typedef struct _PhotoReimportMasterState PhotoReimportMasterState; +typedef struct _PhotoReimportMasterStateClass PhotoReimportMasterStateClass; +#define _photo_reimport_master_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_master_state_unref (var), NULL))) + +#define TYPE_PHOTO_IMPORT_PARAMS (photo_import_params_get_type ()) +#define PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParams)) +#define PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass)) +#define IS_PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_IMPORT_PARAMS)) +#define IS_PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_IMPORT_PARAMS)) +#define PHOTO_IMPORT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass)) + +typedef struct _PhotoImportParams PhotoImportParams; +typedef struct _PhotoImportParamsClass PhotoImportParamsClass; + +#define TYPE_DATABASE_TABLE (database_table_get_type ()) +#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable)) +#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass)) +#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE)) +#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE)) +#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass)) + +typedef struct _DatabaseTable DatabaseTable; +typedef struct _DatabaseTableClass DatabaseTableClass; + +#define TYPE_PHOTO_TABLE (photo_table_get_type ()) +#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable)) +#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass)) +#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE)) +#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE)) +#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass)) + +typedef struct _PhotoTable PhotoTable; +typedef struct _PhotoTableClass PhotoTableClass; +typedef struct _PhotoImportParamsPrivate PhotoImportParamsPrivate; + +#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ()) + +#define TYPE_THUMBNAILS (thumbnails_get_type ()) +#define THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAILS, Thumbnails)) +#define THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAILS, ThumbnailsClass)) +#define IS_THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAILS)) +#define IS_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAILS)) +#define THUMBNAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAILS, ThumbnailsClass)) + +typedef struct _Thumbnails Thumbnails; +typedef struct _ThumbnailsClass ThumbnailsClass; +#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL))) +#define _photo_import_params_unref0(var) ((var == NULL) ? NULL : (var = (photo_import_params_unref (var), NULL))) + +#define TYPE_PHOTO_PREVIEW (photo_preview_get_type ()) +#define PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_PREVIEW, PhotoPreview)) +#define PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_PREVIEW, PhotoPreviewClass)) +#define IS_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_PREVIEW)) +#define IS_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_PREVIEW)) +#define PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_PREVIEW, PhotoPreviewClass)) + +typedef struct _PhotoPreview PhotoPreview; +typedef struct _PhotoPreviewClass PhotoPreviewClass; +#define _photo_preview_unref0(var) ((var == NULL) ? NULL : (var = (photo_preview_unref (var), NULL))) +#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL))) +typedef struct _DataCollectionPrivate DataCollectionPrivate; + +#define TYPE_MARKER (marker_get_type ()) +#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker)) +#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER)) +#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface)) + +typedef struct _Marker Marker; +typedef struct _MarkerIface MarkerIface; +typedef struct _SourceCollectionPrivate SourceCollectionPrivate; + +#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ()) +#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink)) +#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass)) +#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK)) +#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK)) +#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass)) + +typedef struct _SourceBacklink SourceBacklink; +typedef struct _SourceBacklinkClass SourceBacklinkClass; +typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate; +typedef struct _DirectPhotoSourceCollectionPrivate DirectPhotoSourceCollectionPrivate; + +#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ()) +#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor)) +#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass)) +#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR)) +#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR)) +#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass)) + +typedef struct _DirectoryMonitor DirectoryMonitor; +typedef struct _DirectoryMonitorClass DirectoryMonitorClass; +#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); + +struct _DataObject { + GObject parent_instance; + DataObjectPrivate * priv; +}; + +struct _DataObjectClass { + GObjectClass parent_class; + void (*notify_altered) (DataObject* self, Alteration* alteration); + void (*notify_membership_changed) (DataObject* self, DataCollection* collection); + void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val); + void (*notify_collection_property_cleared) (DataObject* self, const gchar* name); + gchar* (*get_name) (DataObject* self); + gchar* (*to_string) (DataObject* self); +}; + +struct _DataSource { + DataObject parent_instance; + DataSourcePrivate * priv; +}; + +struct _DataSourceClass { + DataObjectClass parent_class; + void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank); + void (*notify_unlinking) (DataSource* self, SourceCollection* collection); + void (*notify_unlinked) (DataSource* self); + void (*notify_relinking) (DataSource* self, SourceCollection* collection); + void (*notify_relinked) (DataSource* self); + gchar* (*get_typename) (DataSource* self); + gint64 (*get_instance_id) (DataSource* self); + gchar* (*get_source_id) (DataSource* self); + void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated); + SourceSnapshot* (*save_snapshot) (DataSource* self); + gboolean (*internal_delete_backing) (DataSource* self, GError** error); + gboolean (*equals) (DataSource* self, DataSource* source); + void (*destroy) (DataSource* self); + void (*unlinked) (DataSource* self, SourceCollection* sources); + void (*relinked) (DataSource* self, SourceCollection* sources); + void (*destroyed) (DataSource* self); +}; + +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; + +struct _ThumbnailSource { + DataSource parent_instance; + ThumbnailSourcePrivate * priv; +}; + +struct _ThumbnailSourceClass { + DataSourceClass parent_class; + void (*notify_thumbnail_altered) (ThumbnailSource* self); + GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error); + GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error); + gchar* (*get_representative_id) (ThumbnailSource* self); + PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self); + void (*thumbnail_altered) (ThumbnailSource* self); +}; + +struct _IndexableIface { + GTypeInterface parent_iface; + const gchar* (*get_indexable_keywords) (Indexable* self); +}; + +struct _EventID { + gint64 id; +}; + +typedef enum { + RATING_REJECTED = -1, + RATING_UNRATED = 0, + RATING_ONE = 1, + RATING_TWO = 2, + RATING_THREE = 3, + RATING_FOUR = 4, + RATING_FIVE = 5 +} Rating; + +typedef enum { + PHOTO_EXCEPTION_NONE = 0, + PHOTO_EXCEPTION_ORIENTATION = 1 << 0, + PHOTO_EXCEPTION_CROP = 1 << 1, + PHOTO_EXCEPTION_REDEYE = 1 << 2, + PHOTO_EXCEPTION_ADJUST = 1 << 3, + PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4, + PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL +} PhotoException; + +struct _Dimensions { + gint width; + gint height; +}; + +typedef enum { + SCALE_CONSTRAINT_ORIGINAL, + SCALE_CONSTRAINT_DIMENSIONS, + SCALE_CONSTRAINT_WIDTH, + SCALE_CONSTRAINT_HEIGHT, + SCALE_CONSTRAINT_FILL_VIEWPORT +} ScaleConstraint; + +struct _Scaling { + ScaleConstraint constraint; + gint scale; + Dimensions viewport; + gboolean scale_up; +}; + +struct _ImportID { + gint64 id; +}; + +struct _MediaSource { + ThumbnailSource parent_instance; + MediaSourcePrivate * priv; +}; + +struct _MediaSourceClass { + ThumbnailSourceClass parent_class; + void (*notify_master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file); + gboolean (*set_event_id) (MediaSource* self, EventID* id); + gchar* (*get_basename) (MediaSource* self); + GFile* (*get_file) (MediaSource* self); + GFile* (*get_master_file) (MediaSource* self); + guint64 (*get_master_filesize) (MediaSource* self); + guint64 (*get_filesize) (MediaSource* self); + time_t (*get_timestamp) (MediaSource* self); + BackingFileState** (*get_backing_files_state) (MediaSource* self, int* result_length1); + gchar* (*get_title) (MediaSource* self); + gchar* (*get_comment) (MediaSource* self); + void (*set_title) (MediaSource* self, const gchar* title); + gboolean (*set_comment) (MediaSource* self, const gchar* comment); + Rating (*get_rating) (MediaSource* self); + void (*set_rating) (MediaSource* self, Rating rating); + void (*increase_rating) (MediaSource* self); + void (*decrease_rating) (MediaSource* self); + void (*get_dimensions) (MediaSource* self, PhotoException disallowed_steps, Dimensions* result); + GdkPixbuf* (*get_preview_pixbuf) (MediaSource* self, Scaling* scaling, GError** error); + gboolean (*is_trashed) (MediaSource* self); + void (*trash) (MediaSource* self); + void (*untrash) (MediaSource* self); + gboolean (*is_offline) (MediaSource* self); + void (*mark_offline) (MediaSource* self); + void (*mark_online) (MediaSource* self); + gchar* (*get_master_md5) (MediaSource* self); + void (*get_event_id) (MediaSource* self, EventID* result); + time_t (*get_exposure_time) (MediaSource* self); + void (*get_import_id) (MediaSource* self, ImportID* result); + void (*master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file); +}; + +struct _PhotoSource { + MediaSource parent_instance; + PhotoSourcePrivate * priv; +}; + +struct _PhotoSourceClass { + MediaSourceClass parent_class; + PhotoMetadata* (*get_metadata) (PhotoSource* self); + GdkPixbuf* (*get_pixbuf) (PhotoSource* self, Scaling* scaling, GError** error); +}; + +struct _DateableIface { + GTypeInterface parent_iface; + void (*set_exposure_time) (Dateable* self, time_t target_time); + time_t (*get_exposure_time) (Dateable* self); +}; + +typedef enum { + ROTATION_CLOCKWISE, + ROTATION_COUNTERCLOCKWISE, + ROTATION_MIRROR, + ROTATION_UPSIDE_DOWN +} Rotation; + +struct _Photo { + PhotoSource parent_instance; + PhotoPrivate * priv; + PhotoRow* row; + gboolean can_rotate_now; + BackingPhotoRow* backing_photo_row; +}; + +struct _PhotoClass { + PhotoSourceClass parent_class; + void (*notify_editable_replaced) (Photo* self, GFile* old_file, GFile* new_file); + void (*notify_raw_development_modified) (Photo* self); + void (*notify_baseline_replaced) (Photo* self); + void (*notify_master_reimported) (Photo* self, PhotoMetadata* metadata); + void (*notify_editable_reimported) (Photo* self, PhotoMetadata* metadata); + void (*notify_source_reimported) (Photo* self, PhotoMetadata* metadata); + void (*notify_baseline_reimported) (Photo* self, PhotoMetadata* metadata); + void (*apply_user_metadata_for_reimport) (Photo* self, PhotoMetadata* metadata); + void (*rotate) (Photo* self, Rotation rotation); + gboolean (*has_user_generated_metadata) (Photo* self); + void (*set_user_metadata_for_export) (Photo* self, PhotoMetadata* metadata); + void (*editable_replaced) (Photo* self, GFile* old_file, GFile* new_file); + void (*raw_development_modified) (Photo* self); + void (*baseline_replaced) (Photo* self); + void (*master_reimported) (Photo* self, PhotoMetadata* metadata); + void (*editable_reimported) (Photo* self, PhotoMetadata* metadata); + void (*baseline_reimported) (Photo* self, PhotoMetadata* metadata); + void (*source_reimported) (Photo* self, PhotoMetadata* metadata); +}; + +struct _DirectPhoto { + Photo parent_instance; + DirectPhotoPrivate * priv; +}; + +struct _DirectPhotoClass { + PhotoClass parent_class; +}; + +struct _DirectPhotoPrivate { + GdkPixbuf* preview; + gboolean loaded; +}; + +typedef enum { + ORIENTATION_MIN = 1, + ORIENTATION_TOP_LEFT = 1, + ORIENTATION_TOP_RIGHT = 2, + ORIENTATION_BOTTOM_RIGHT = 3, + ORIENTATION_BOTTOM_LEFT = 4, + ORIENTATION_LEFT_TOP = 5, + ORIENTATION_RIGHT_TOP = 6, + ORIENTATION_RIGHT_BOTTOM = 7, + ORIENTATION_LEFT_BOTTOM = 8, + ORIENTATION_MAX = 8 +} Orientation; + +struct _PhotoID { + gint64 id; +}; + +struct _BackingPhotoID { + gint64 id; +}; + +typedef enum { + RAW_DEVELOPER_SHOTWELL = 0, + RAW_DEVELOPER_CAMERA, + RAW_DEVELOPER_EMBEDDED +} RawDeveloper; + +struct _PhotoRow { + GTypeInstance parent_instance; + volatile int ref_count; + PhotoRowPrivate * priv; + PhotoID photo_id; + BackingPhotoRow* master; + time_t exposure_time; + ImportID import_id; + EventID event_id; + Orientation orientation; + GeeHashMap* transformations; + gchar* md5; + gchar* thumbnail_md5; + gchar* exif_md5; + time_t time_created; + guint64 flags; + Rating rating; + gchar* title; + gchar* comment; + gchar* backlinks; + time_t time_reimported; + BackingPhotoID editable_id; + gboolean metadata_dirty; + RawDeveloper developer; + BackingPhotoID* development_ids; + gint development_ids_length1; +}; + +struct _PhotoRowClass { + GTypeClass parent_class; + void (*finalize) (PhotoRow *self); +}; + +struct _BackingPhotoRow { + GTypeInstance parent_instance; + volatile int ref_count; + BackingPhotoRowPrivate * priv; + BackingPhotoID id; + time_t time_created; + gchar* filepath; + gint64 filesize; + time_t timestamp; + PhotoFileFormat file_format; + Dimensions dim; + Orientation original_orientation; +}; + +struct _BackingPhotoRowClass { + GTypeClass parent_class; + void (*finalize) (BackingPhotoRow *self); +}; + +typedef enum { + BACKING_FETCH_MODE_SOURCE, + BACKING_FETCH_MODE_BASELINE, + BACKING_FETCH_MODE_MASTER, + BACKING_FETCH_MODE_UNMODIFIED +} BackingFetchMode; + +typedef enum { + IMPORT_RESULT_SUCCESS, + IMPORT_RESULT_FILE_ERROR, + IMPORT_RESULT_DECODE_ERROR, + IMPORT_RESULT_DATABASE_ERROR, + IMPORT_RESULT_USER_ABORT, + IMPORT_RESULT_NOT_A_FILE, + IMPORT_RESULT_PHOTO_EXISTS, + IMPORT_RESULT_UNSUPPORTED_FORMAT, + IMPORT_RESULT_NOT_AN_IMAGE, + IMPORT_RESULT_DISK_FAILURE, + IMPORT_RESULT_DISK_FULL, + IMPORT_RESULT_CAMERA_ERROR, + IMPORT_RESULT_FILE_WRITE_ERROR, + IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE +} ImportResult; + +typedef enum { + DATABASE_ERROR_ERROR, + DATABASE_ERROR_BACKING, + DATABASE_ERROR_MEMORY, + DATABASE_ERROR_ABORT, + DATABASE_ERROR_LIMITS, + DATABASE_ERROR_TYPESPEC +} DatabaseError; +#define DATABASE_ERROR database_error_quark () +typedef enum { + PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000, + PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001 +} PhotoFileSnifferOptions; + +struct _PhotoImportParams { + GTypeInstance parent_instance; + volatile int ref_count; + PhotoImportParamsPrivate * priv; + GFile* file; + GFile* final_associated_file; + ImportID import_id; + PhotoFileSnifferOptions sniffer_options; + gchar* exif_md5; + gchar* thumbnail_md5; + gchar* full_md5; + Thumbnails* thumbnails; + PhotoRow* row; + GeeCollection* keywords; +}; + +struct _PhotoImportParamsClass { + GTypeClass parent_class; + void (*finalize) (PhotoImportParams *self); +}; + +typedef gint64 (*Comparator) (void* a, void* b, void* user_data); +typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data); +typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data); +struct _MarkerIface { + GTypeInterface parent_iface; + void (*mark) (Marker* self, DataObject* object); + void (*unmark) (Marker* self, DataObject* object); + gboolean (*toggle) (Marker* self, DataObject* object); + void (*mark_many) (Marker* self, GeeCollection* list); + void (*unmark_many) (Marker* self, GeeCollection* list); + void (*mark_all) (Marker* self); + gint (*get_count) (Marker* self); + GeeCollection* (*get_all) (Marker* self); +}; + +struct _DataCollection { + GTypeInstance parent_instance; + volatile int ref_count; + DataCollectionPrivate * priv; +}; + +struct _DataCollectionClass { + GTypeClass parent_class; + void (*finalize) (DataCollection *self); + gchar* (*to_string) (DataCollection* self); + void (*notify_items_added) (DataCollection* self, GeeIterable* added); + void (*notify_items_removed) (DataCollection* self, GeeIterable* removed); + void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed); + void (*notify_items_altered) (DataCollection* self, GeeMap* items); + void (*notify_ordering_changed) (DataCollection* self); + void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val); + void (*notify_property_cleared) (DataCollection* self, const gchar* name); + gboolean (*valid_type) (DataCollection* self, DataObject* object); + void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target); + void (*reset_comparator) (DataCollection* self); + GeeCollection* (*get_all) (DataCollection* self); + gint (*get_count) (DataCollection* self); + DataObject* (*get_at) (DataCollection* self, gint index); + gint (*index_of) (DataCollection* self, DataObject* object); + gboolean (*contains) (DataCollection* self, DataObject* object); + gboolean (*add) (DataCollection* self, DataObject* object); + GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target); + void (*remove_marked) (DataCollection* self, Marker* m); + void (*clear) (DataCollection* self); + void (*close) (DataCollection* self); + void (*notify_frozen) (DataCollection* self); + void (*notify_thawed) (DataCollection* self); + void (*items_added) (DataCollection* self, GeeIterable* added); + void (*items_removed) (DataCollection* self, GeeIterable* removed); + void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed); + void (*items_altered) (DataCollection* self, GeeMap* items); + void (*ordering_changed) (DataCollection* self); + void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val); + void (*property_cleared) (DataCollection* self, const gchar* name); + void (*frozen) (DataCollection* self); + void (*thawed) (DataCollection* self); +}; + +struct _SourceCollection { + DataCollection parent_instance; + SourceCollectionPrivate * priv; +}; + +struct _SourceCollectionClass { + DataCollectionClass parent_class; + gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source); + void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking); + void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked); + void (*notify_item_destroyed) (SourceCollection* self, DataSource* source); + void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed); + void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked); + void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources); + gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink); + void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink); + void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking); + void (*items_relinked) (SourceCollection* self, GeeCollection* relinked); + void (*item_destroyed) (SourceCollection* self, DataSource* source); + void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed); + void (*unlinked_destroyed) (SourceCollection* self, DataSource* source); + void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources); +}; + +struct _DatabaseSourceCollection { + SourceCollection parent_instance; + DatabaseSourceCollectionPrivate * priv; +}; + +struct _DatabaseSourceCollectionClass { + SourceCollectionClass parent_class; +}; + +struct _DirectPhotoSourceCollection { + DatabaseSourceCollection parent_instance; + DirectPhotoSourceCollectionPrivate * priv; +}; + +struct _DirectPhotoSourceCollectionClass { + DatabaseSourceCollectionClass parent_class; +}; + +struct _DirectPhotoSourceCollectionPrivate { + GeeCollection* prepared_photos; + GeeHashMap* file_map; + DirectoryMonitor* monitor; +}; + +typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data); + +static gpointer direct_photo_parent_class = NULL; +extern DirectPhotoSourceCollection* direct_photo_global; +DirectPhotoSourceCollection* direct_photo_global = NULL; +static gpointer direct_photo_source_collection_parent_class = NULL; + +GType data_object_get_type (void) G_GNUC_CONST; +gpointer alteration_ref (gpointer instance); +void alteration_unref (gpointer instance); +GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_alteration (GValue* value, gpointer v_object); +void value_take_alteration (GValue* value, gpointer v_object); +gpointer value_get_alteration (const GValue* value); +GType alteration_get_type (void) G_GNUC_CONST; +gpointer data_collection_ref (gpointer instance); +void data_collection_unref (gpointer instance); +GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_data_collection (GValue* value, gpointer v_object); +void value_take_data_collection (GValue* value, gpointer v_object); +gpointer value_get_data_collection (const GValue* value); +GType data_collection_get_type (void) G_GNUC_CONST; +GType data_source_get_type (void) G_GNUC_CONST; +gpointer source_holding_tank_ref (gpointer instance); +void source_holding_tank_unref (gpointer instance); +GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_source_holding_tank (GValue* value, gpointer v_object); +void value_take_source_holding_tank (GValue* value, gpointer v_object); +gpointer value_get_source_holding_tank (const GValue* value); +GType source_holding_tank_get_type (void) G_GNUC_CONST; +GType source_collection_get_type (void) G_GNUC_CONST; +gpointer source_snapshot_ref (gpointer instance); +void source_snapshot_unref (gpointer instance); +GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_source_snapshot (GValue* value, gpointer v_object); +void value_take_source_snapshot (GValue* value, gpointer v_object); +gpointer value_get_source_snapshot (const GValue* value); +GType source_snapshot_get_type (void) G_GNUC_CONST; +GType thumbnail_source_get_type (void) G_GNUC_CONST; +GType photo_file_format_get_type (void) G_GNUC_CONST; +GType indexable_get_type (void) G_GNUC_CONST; +GType media_source_get_type (void) G_GNUC_CONST; +GType event_id_get_type (void) G_GNUC_CONST; +EventID* event_id_dup (const EventID* self); +void event_id_free (EventID* self); +gpointer backing_file_state_ref (gpointer instance); +void backing_file_state_unref (gpointer instance); +GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_backing_file_state (GValue* value, gpointer v_object); +void value_take_backing_file_state (GValue* value, gpointer v_object); +gpointer value_get_backing_file_state (const GValue* value); +GType backing_file_state_get_type (void) G_GNUC_CONST; +GType rating_get_type (void) G_GNUC_CONST; +GType photo_exception_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); +GType scaling_get_type (void) G_GNUC_CONST; +GType scale_constraint_get_type (void) G_GNUC_CONST; +Scaling* scaling_dup (const Scaling* self); +void scaling_free (Scaling* self); +GType import_id_get_type (void) G_GNUC_CONST; +ImportID* import_id_dup (const ImportID* self); +void import_id_free (ImportID* self); +GType photo_source_get_type (void) G_GNUC_CONST; +gpointer media_metadata_ref (gpointer instance); +void media_metadata_unref (gpointer instance); +GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_media_metadata (GValue* value, gpointer v_object); +void value_take_media_metadata (GValue* value, gpointer v_object); +gpointer value_get_media_metadata (const GValue* value); +GType media_metadata_get_type (void) G_GNUC_CONST; +GType photo_metadata_get_type (void) G_GNUC_CONST; +GType dateable_get_type (void) G_GNUC_CONST; +GType photo_get_type (void) G_GNUC_CONST; +GType rotation_get_type (void) G_GNUC_CONST; +gpointer photo_row_ref (gpointer instance); +void photo_row_unref (gpointer instance); +GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_row (GValue* value, gpointer v_object); +void value_take_photo_row (GValue* value, gpointer v_object); +gpointer value_get_photo_row (const GValue* value); +GType photo_row_get_type (void) G_GNUC_CONST; +gpointer backing_photo_row_ref (gpointer instance); +void backing_photo_row_unref (gpointer instance); +GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_backing_photo_row (GValue* value, gpointer v_object); +void value_take_backing_photo_row (GValue* value, gpointer v_object); +gpointer value_get_backing_photo_row (const GValue* value); +GType backing_photo_row_get_type (void) G_GNUC_CONST; +GType direct_photo_get_type (void) G_GNUC_CONST; +#define DIRECT_PHOTO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_PHOTO, DirectPhotoPrivate)) +enum { + DIRECT_PHOTO_DUMMY_PROPERTY +}; +GType database_source_collection_get_type (void) G_GNUC_CONST; +GType direct_photo_source_collection_get_type (void) G_GNUC_CONST; +#define DIRECT_PHOTO_PREVIEW_BEST_FIT 360 +static DirectPhoto* direct_photo_new (PhotoRow* row); +static DirectPhoto* direct_photo_construct (GType object_type, PhotoRow* row); +Photo* photo_construct (GType object_type, PhotoRow* row); +GType orientation_get_type (void) G_GNUC_CONST; +void direct_photo_fixup_orientation_after_reimport (DirectPhoto* self, Orientation dest); +GType photo_id_get_type (void) G_GNUC_CONST; +PhotoID* photo_id_dup (const PhotoID* self); +void photo_id_free (PhotoID* self); +gpointer key_value_map_ref (gpointer instance); +void key_value_map_unref (gpointer instance); +GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_key_value_map (GValue* value, gpointer v_object); +void value_take_key_value_map (GValue* value, gpointer v_object); +gpointer value_get_key_value_map (const GValue* value); +GType key_value_map_get_type (void) G_GNUC_CONST; +GType backing_photo_id_get_type (void) G_GNUC_CONST; +BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self); +void backing_photo_id_free (BackingPhotoID* self); +GType raw_developer_get_type (void) G_GNUC_CONST; +void direct_photo_init (GFile* initial_file); +void photo_init_photo (void); +DirectPhotoSourceCollection* direct_photo_source_collection_new (GFile* initial_file); +DirectPhotoSourceCollection* direct_photo_source_collection_construct (GType object_type, GFile* initial_file); +gchar* direct_photo_source_collection_fetch (DirectPhotoSourceCollection* self, GFile* file, DirectPhoto** photo, gboolean reimport); +gboolean data_collection_add (DataCollection* self, DataObject* object); +void direct_photo_terminate (void); +void photo_terminate_photo (void); +static void direct_photo_save_dims (DirectPhoto* self); +GType backing_fetch_mode_get_type (void) G_GNUC_CONST; +GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error); +void scaling_for_original (Scaling* result); +void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result); +gchar* data_object_to_string (DataObject* self); +GType import_result_get_type (void) G_GNUC_CONST; +ImportResult direct_photo_demand_load (DirectPhoto* self); +gpointer photo_reimport_master_state_ref (gpointer instance); +void photo_reimport_master_state_unref (gpointer instance); +GParamSpec* photo_param_spec_reimport_master_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void photo_value_set_reimport_master_state (GValue* value, gpointer v_object); +void photo_value_take_reimport_master_state (GValue* value, gpointer v_object); +gpointer photo_value_get_reimport_master_state (const GValue* value); +GType photo_reimport_master_state_get_type (void) G_GNUC_CONST; +gboolean photo_prepare_for_reimport_master (Photo* self, PhotoReimportMasterState** reimport_state, GError** error); +GQuark database_error_quark (void); +void photo_finish_reimport_master (Photo* self, PhotoReimportMasterState* state, GError** error); +ImportResult direct_photo_internal_import (GFile* file, DirectPhoto** photo); +gpointer photo_import_params_ref (gpointer instance); +void photo_import_params_unref (gpointer instance); +GParamSpec* param_spec_photo_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_import_params (GValue* value, gpointer v_object); +void value_take_photo_import_params (GValue* value, gpointer v_object); +gpointer value_get_photo_import_params (const GValue* value); +GType photo_import_params_get_type (void) G_GNUC_CONST; +void import_id_generate (ImportID* result); +PhotoImportParams* photo_import_params_new_create_placeholder (GFile* file, ImportID* import_id); +PhotoImportParams* photo_import_params_construct_create_placeholder (GType object_type, GFile* file, ImportID* import_id); +void photo_create_pre_import (PhotoImportParams* params); +gpointer database_table_ref (gpointer instance); +void database_table_unref (gpointer instance); +GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_database_table (GValue* value, gpointer v_object); +void value_take_database_table (GValue* value, gpointer v_object); +gpointer value_get_database_table (const GValue* value); +GType database_table_get_type (void) G_GNUC_CONST; +GType photo_table_get_type (void) G_GNUC_CONST; +PhotoTable* photo_table_get_instance (void); +void photo_table_add (PhotoTable* self, PhotoRow* photo_row, PhotoID* result); +GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST; +gpointer thumbnails_ref (gpointer instance); +void thumbnails_unref (gpointer instance); +GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_thumbnails (GValue* value, gpointer v_object); +void value_take_thumbnails (GValue* value, gpointer v_object); +gpointer value_get_thumbnails (const GValue* value); +GType thumbnails_get_type (void) G_GNUC_CONST; +static GdkPixbuf* direct_photo_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error); +GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error); +GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error); +GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up); +static void direct_photo_real_rotate (Photo* base, Rotation rotation); +void photo_rotate (Photo* self, Rotation rotation); +static GdkPixbuf* direct_photo_real_get_pixbuf (PhotoSource* base, Scaling* scaling, GError** error); +static GdkPixbuf* direct_photo_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error); +PhotoMetadata* photo_source_get_metadata (PhotoSource* self); +guint photo_metadata_get_preview_count (PhotoMetadata* self); +gpointer photo_preview_ref (gpointer instance); +void photo_preview_unref (gpointer instance); +GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_preview (GValue* value, gpointer v_object); +void value_take_photo_preview (GValue* value, gpointer v_object); +gpointer value_get_photo_preview (const GValue* value); +GType photo_preview_get_type (void) G_GNUC_CONST; +PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number); +GdkPixbuf* photo_preview_get_pixbuf (PhotoPreview* self, GError** error); +Orientation photo_get_orientation (Photo* self); +GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf); +static void direct_photo_real_notify_altered (DataObject* base, Alteration* alteration); +void data_object_notify_altered (DataObject* self, Alteration* alteration); +static gboolean direct_photo_real_has_user_generated_metadata (Photo* base); +static void direct_photo_real_set_user_metadata_for_export (Photo* base, PhotoMetadata* metadata); +static void direct_photo_real_apply_user_metadata_for_reimport (Photo* base, PhotoMetadata* metadata); +static gboolean direct_photo_real_is_trashed (MediaSource* base); +static gboolean direct_photo_real_is_offline (MediaSource* base); +static void direct_photo_real_trash (MediaSource* base); +static void direct_photo_real_untrash (MediaSource* base); +static void direct_photo_real_mark_offline (MediaSource* base); +static void direct_photo_real_mark_online (MediaSource* base); +static void direct_photo_finalize (GObject* obj); +GType marker_get_type (void) G_GNUC_CONST; +gpointer source_backlink_ref (gpointer instance); +void source_backlink_unref (gpointer instance); +GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_source_backlink (GValue* value, gpointer v_object); +void value_take_source_backlink (GValue* value, gpointer v_object); +gpointer value_get_source_backlink (const GValue* value); +GType source_backlink_get_type (void) G_GNUC_CONST; +GType directory_monitor_get_type (void) G_GNUC_CONST; +#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionPrivate)) +enum { + DIRECT_PHOTO_SOURCE_COLLECTION_DUMMY_PROPERTY +}; +guint file_hash (GFile* file); +static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self); +gboolean file_equal (GFile* a, GFile* b); +static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self); +#define DIRECT_PHOTO_SOURCE_COLLECTION_DISCOVERED_FILES_BATCH_ADD 500 +static gint64 direct_photo_source_collection_get_direct_key (DataSource* source); +static gint64 _direct_photo_source_collection_get_direct_key_get_source_database_key (DataSource* source, gpointer self); +DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target); +DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring); +DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring); +static void direct_photo_source_collection_on_file_discovered (DirectPhotoSourceCollection* self, GFile* file, GFileInfo* info); +static void _direct_photo_source_collection_on_file_discovered_directory_monitor_file_discovered (DirectoryMonitor* _sender, GFile* file, GFileInfo* info, gpointer self); +static void direct_photo_source_collection_on_discovery_completed (DirectPhotoSourceCollection* self); +static void _direct_photo_source_collection_on_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self); +void directory_monitor_start_discovery (DirectoryMonitor* self); +static gboolean direct_photo_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source); +void photo_get_photo_id (Photo* self, PhotoID* result); +static void direct_photo_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added); +GFile* media_source_get_file (MediaSource* self); +void data_collection_notify_items_added (DataCollection* self, GeeIterable* added); +static void direct_photo_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed); +void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed); +gboolean direct_photo_source_collection_has_source_for_file (DirectPhotoSourceCollection* self, GFile* file); +gboolean photo_file_format_is_file_supported (GFile* file); +static void direct_photo_source_collection_flush_prepared_photos (DirectPhotoSourceCollection* self); +GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target); +gboolean direct_photo_source_collection_has_file (DirectPhotoSourceCollection* self, GFile* file); +void direct_photo_source_collection_reimport_photo (DirectPhotoSourceCollection* self, DirectPhoto* photo); +void photo_discard_prefetched (Photo* self); +gboolean photo_only_metadata_changed (Photo* self); +PhotoFileFormat photo_get_file_format (Photo* self); +gchar* import_result_to_string (ImportResult self); +gboolean direct_photo_source_collection_has_file_source (DirectPhotoSourceCollection* self, GFile* file); +DirectPhoto* direct_photo_source_collection_get_file_source (DirectPhotoSourceCollection* self, GFile* file); +static void direct_photo_source_collection_finalize (DataCollection* obj); + + +static DirectPhoto* direct_photo_construct (GType object_type, PhotoRow* row) { + DirectPhoto * self = NULL; + PhotoRow* _tmp0_ = NULL; +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_PHOTO_ROW (row), NULL); +#line 18 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = row; +#line 18 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = (DirectPhoto*) photo_construct (object_type, _tmp0_); +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return self; +#line 1125 "DirectPhoto.c" +} + + +static DirectPhoto* direct_photo_new (PhotoRow* row) { +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return direct_photo_construct (TYPE_DIRECT_PHOTO, row); +#line 1132 "DirectPhoto.c" +} + + +/** + * @brief Because all transformations are discarded on reimport by design, including + * Orientation, a JFIF file that is only rotated or flipped, then saved, has the orientation + * change the user made before saving removed (recall that fetch() remembers which images it + * has seen before and will only add a file to the file map once; every time it sees it + * again after this is considered a reimport). This will set the orientation to the + * specified value, fixing up both the row and the backing row. + * + * @warning Only reimported JFIF files should need this; non-lossy image types have their + * actual pixels physically rotated in the file when they're exported. + * + * @param dest The orientation to set the photo to; usually, this should be a value + * obtained by calling get_orientation() prior to export()ing a DirectPhoto. + */ +void direct_photo_fixup_orientation_after_reimport (DirectPhoto* self, Orientation dest) { + PhotoRow* _tmp0_ = NULL; + Orientation _tmp1_ = 0; + BackingPhotoRow* _tmp2_ = NULL; + Orientation _tmp3_ = 0; +#line 35 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO (self)); +#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->row; +#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = dest; +#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_->orientation = _tmp1_; +#line 37 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->backing_photo_row; +#line 37 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = dest; +#line 37 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_->original_orientation = _tmp3_; +#line 1169 "DirectPhoto.c" +} + + +void direct_photo_init (GFile* initial_file) { + GFile* _tmp0_ = NULL; + DirectPhotoSourceCollection* _tmp1_ = NULL; + DirectPhoto* photo = NULL; + gchar* reason = NULL; + DirectPhotoSourceCollection* _tmp2_ = NULL; + GFile* _tmp3_ = NULL; + DirectPhoto* _tmp4_ = NULL; + gchar* _tmp5_ = NULL; + const gchar* _tmp6_ = NULL; + DirectPhotoSourceCollection* _tmp8_ = NULL; + DirectPhoto* _tmp9_ = NULL; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (G_IS_FILE (initial_file)); +#line 41 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_init_photo (); +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = initial_file; +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = direct_photo_source_collection_new (_tmp0_); +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _data_collection_unref0 (direct_photo_global); +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_global = _tmp1_; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = direct_photo_global; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = initial_file; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = direct_photo_source_collection_fetch (_tmp2_, _tmp3_, &_tmp4_, FALSE); +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo = _tmp4_; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reason = _tmp5_; +#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = reason; +#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp6_ != NULL) { +#line 1213 "DirectPhoto.c" + const gchar* _tmp7_ = NULL; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = reason; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_warning ("DirectPhoto.vala:47: fetch error: %s", _tmp7_); +#line 1219 "DirectPhoto.c" + } +#line 48 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = direct_photo_global; +#line 48 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = photo; +#line 48 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject)); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (reason); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 1231 "DirectPhoto.c" +} + + +void direct_photo_terminate (void) { +#line 52 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_terminate_photo (); +#line 1238 "DirectPhoto.c" +} + + +static void direct_photo_save_dims (DirectPhoto* self) { + GError * _inner_error_ = NULL; +#line 57 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO (self)); +#line 1246 "DirectPhoto.c" + { + GdkPixbuf* _tmp0_ = NULL; + Scaling _tmp1_ = {0}; + GdkPixbuf* _tmp2_ = NULL; + BackingPhotoRow* _tmp3_ = NULL; + Dimensions _tmp4_ = {0}; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + scaling_for_original (&_tmp1_); +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = photo_get_pixbuf_with_options (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), &_tmp1_, (PHOTO_EXCEPTION_CROP | PHOTO_EXCEPTION_STRAIGHTEN) | PHOTO_EXCEPTION_ORIENTATION, BACKING_FETCH_MODE_BASELINE, &_inner_error_); +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = _tmp2_; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 1261 "DirectPhoto.c" + goto __catch42_g_error; + } +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->backing_photo_row; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + dimensions_for_pixbuf (_tmp0_, &_tmp4_); +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_->dim = _tmp4_; +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp0_); +#line 1272 "DirectPhoto.c" + } + goto __finally42; + __catch42_g_error: + { + GError* e = NULL; + gchar* _tmp5_ = NULL; + gchar* _tmp6_ = NULL; +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + e = _inner_error_; +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _inner_error_ = NULL; +#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject)); +#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = _tmp5_; +#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_warning ("DirectPhoto.vala:62: Dimensions for image %s could not be gotten.", _tmp6_); +#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (_tmp6_); +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_error_free0 (e); +#line 1294 "DirectPhoto.c" + } + __finally42: +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.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 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_clear_error (&_inner_error_); +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return; +#line 1305 "DirectPhoto.c" + } +} + + +ImportResult direct_photo_demand_load (DirectPhoto* self) { + ImportResult result = 0; + gboolean _tmp0_ = FALSE; + PhotoReimportMasterState* reimport_state = NULL; + GError * _inner_error_ = NULL; +#line 67 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO (self), 0); +#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->loaded; +#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp0_) { +#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_save_dims (self); +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = IMPORT_RESULT_SUCCESS; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1327 "DirectPhoto.c" + } + { + PhotoReimportMasterState* _tmp1_ = NULL; + PhotoReimportMasterState* _tmp2_ = NULL; +#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_prepare_for_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), &_tmp1_, &_inner_error_); +#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reimport_state = _tmp1_; +#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 1340 "DirectPhoto.c" + goto __catch43_g_error; + } +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = reimport_state; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_finish_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp2_, &_inner_error_); +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 1349 "DirectPhoto.c" + goto __catch43_g_error; + } + } + goto __finally43; + __catch43_g_error: + { + GError* err = NULL; + GError* _tmp3_ = NULL; + const gchar* _tmp4_ = NULL; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + err = _inner_error_; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _inner_error_ = NULL; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = err; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = _tmp3_->message; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_warning ("DirectPhoto.vala:78: Database error on re-importing image: %s", _tmp4_); +#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = IMPORT_RESULT_DATABASE_ERROR; +#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_error_free0 (err); +#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1377 "DirectPhoto.c" + } + __finally43: +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.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 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_clear_error (&_inner_error_); +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return 0; +#line 1390 "DirectPhoto.c" + } +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->loaded = TRUE; +#line 83 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_save_dims (self); +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = IMPORT_RESULT_SUCCESS; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1402 "DirectPhoto.c" +} + + +ImportResult direct_photo_internal_import (GFile* file, DirectPhoto** photo) { + DirectPhoto* _vala_photo = NULL; + ImportResult result = 0; + PhotoImportParams* params = NULL; + GFile* _tmp0_ = NULL; + ImportID _tmp1_ = {0}; + PhotoImportParams* _tmp2_ = NULL; + PhotoTable* _tmp3_ = NULL; + PhotoTable* _tmp4_ = NULL; + PhotoRow* _tmp5_ = NULL; + PhotoID _tmp6_ = {0}; + PhotoRow* _tmp7_ = NULL; + DirectPhoto* _tmp8_ = NULL; +#line 89 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (file), 0); +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = file; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + import_id_generate (&_tmp1_); +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = photo_import_params_new_create_placeholder (_tmp0_, &_tmp1_); +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + params = _tmp2_; +#line 91 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_create_pre_import (params); +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = photo_table_get_instance (); +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = _tmp3_; +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = params->row; +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_table_add (_tmp4_, _tmp5_, &_tmp6_); +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _database_table_unref0 (_tmp4_); +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = params->row; +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = direct_photo_new (_tmp7_); +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_vala_photo); +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _vala_photo = _tmp8_; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = IMPORT_RESULT_SUCCESS; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_import_params_unref0 (params); +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (photo) { +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + *photo = _vala_photo; +#line 1457 "DirectPhoto.c" + } else { +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_vala_photo); +#line 1461 "DirectPhoto.c" + } +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1465 "DirectPhoto.c" +} + + +static GdkPixbuf* direct_photo_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error) { + DirectPhoto * self; + GdkPixbuf* result = NULL; + GdkPixbuf* _tmp0_ = NULL; + GdkPixbuf* _tmp9_ = NULL; + GdkPixbuf* _tmp10_ = NULL; + GError * _inner_error_ = NULL; +#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (scaling != NULL, NULL); +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->preview; +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp0_ == NULL) { +#line 1484 "DirectPhoto.c" + GdkPixbuf* _tmp1_ = NULL; + GdkPixbuf* _tmp2_ = NULL; + GdkPixbuf* _tmp3_ = NULL; + GdkPixbuf* _tmp4_ = NULL; +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), DIRECT_PHOTO_PREVIEW_BEST_FIT, &_inner_error_); +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = _tmp2_; +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_propagate_error (error, _inner_error_); +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return NULL; +#line 1499 "DirectPhoto.c" + } +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = _tmp1_; +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = NULL; +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->preview); +#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->preview = _tmp3_; +#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = self->priv->preview; +#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp4_ == NULL) { +#line 1513 "DirectPhoto.c" + GdkPixbuf* _tmp5_ = NULL; + Scaling _tmp6_ = {0}; + GdkPixbuf* _tmp7_ = NULL; + GdkPixbuf* _tmp8_ = NULL; +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = *scaling; +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp6_, &_inner_error_); +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = _tmp7_; +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_propagate_error (error, _inner_error_); +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp1_); +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return NULL; +#line 1532 "DirectPhoto.c" + } +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = _tmp5_; +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = NULL; +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->preview); +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->preview = _tmp8_; +#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp5_); +#line 1544 "DirectPhoto.c" + } +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp1_); +#line 1548 "DirectPhoto.c" + } +#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = self->priv->preview; +#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp10_ = scaling_perform_on_pixbuf (scaling, _tmp9_, GDK_INTERP_BILINEAR, TRUE); +#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp10_; +#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1558 "DirectPhoto.c" +} + + +static void direct_photo_real_rotate (Photo* base, Rotation rotation) { + DirectPhoto * self; + Rotation _tmp0_ = 0; +#line 110 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->can_rotate_now = FALSE; +#line 112 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_signal_emit_by_name (self, "can-rotate-changed", FALSE); +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = rotation; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + PHOTO_CLASS (direct_photo_parent_class)->rotate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_); +#line 1575 "DirectPhoto.c" +} + + +static GdkPixbuf* direct_photo_real_get_pixbuf (PhotoSource* base, Scaling* scaling, GError** error) { + DirectPhoto * self; + GdkPixbuf* result = NULL; + GdkPixbuf* ret = NULL; + Scaling _tmp0_ = {0}; + GdkPixbuf* _tmp1_ = NULL; + GError * _inner_error_ = NULL; +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (scaling != NULL, NULL); +#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = *scaling; +#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = PHOTO_SOURCE_CLASS (direct_photo_parent_class)->get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_PHOTO_SOURCE, PhotoSource), &_tmp0_, &_inner_error_); +#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ret = _tmp1_; +#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_propagate_error (error, _inner_error_); +#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return NULL; +#line 1602 "DirectPhoto.c" + } +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_signal_emit_by_name (self, "can-rotate-changed", TRUE); +#line 119 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->can_rotate_now = TRUE; +#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = ret; +#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1612 "DirectPhoto.c" +} + + +static GdkPixbuf* direct_photo_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) { + DirectPhoto * self; + GdkPixbuf* result = NULL; + PhotoMetadata* metadata = NULL; + PhotoMetadata* _tmp0_ = NULL; + GdkPixbuf* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; + PhotoMetadata* _tmp3_ = NULL; + GError * _inner_error_ = NULL; +#line 123 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource)); +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + metadata = _tmp0_; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = metadata; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp3_ == NULL) { +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = TRUE; +#line 1637 "DirectPhoto.c" + } else { + PhotoMetadata* _tmp4_ = NULL; + guint _tmp5_ = 0U; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = metadata; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = photo_metadata_get_preview_count (_tmp4_); +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = _tmp5_ == ((guint) 0); +#line 1647 "DirectPhoto.c" + } +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp2_) { +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp1_); +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = NULL; +#line 1655 "DirectPhoto.c" + } else { + GdkPixbuf* _tmp6_ = NULL; + PhotoMetadata* _tmp7_ = NULL; + PhotoPreview* _tmp8_ = NULL; + PhotoPreview* _tmp9_ = NULL; + GdkPixbuf* _tmp10_ = NULL; + GdkPixbuf* _tmp11_ = NULL; + Orientation _tmp12_ = 0; + GdkPixbuf* _tmp13_ = NULL; +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = metadata; +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = photo_metadata_get_preview (_tmp7_, (guint) 0); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = _tmp8_; +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp10_ = photo_preview_get_pixbuf (_tmp9_, &_inner_error_); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp11_ = _tmp10_; +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_preview_unref0 (_tmp9_); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = _tmp11_; +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_propagate_error (error, _inner_error_); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp1_); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _media_metadata_unref0 (metadata); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return NULL; +#line 1689 "DirectPhoto.c" + } +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp12_ = photo_get_orientation (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp13_ = orientation_rotate_pixbuf (_tmp12_, _tmp6_); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp1_); +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = _tmp13_; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp6_); +#line 1701 "DirectPhoto.c" + } +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp1_; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _media_metadata_unref0 (metadata); +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1709 "DirectPhoto.c" +} + + +static void direct_photo_real_notify_altered (DataObject* base, Alteration* alteration) { + DirectPhoto * self; + Alteration* _tmp0_ = NULL; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_ALTERATION (alteration)); +#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->preview); +#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->preview = NULL; +#line 133 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = alteration; +#line 133 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + DATA_OBJECT_CLASS (direct_photo_parent_class)->notify_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_DATA_OBJECT, DataObject), _tmp0_); +#line 1728 "DirectPhoto.c" +} + + +static gboolean direct_photo_real_has_user_generated_metadata (Photo* base) { + DirectPhoto * self; + gboolean result = FALSE; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 138 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = FALSE; +#line 138 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1741 "DirectPhoto.c" +} + + +static void direct_photo_real_set_user_metadata_for_export (Photo* base, PhotoMetadata* metadata) { + DirectPhoto * self; +#line 141 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 141 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_PHOTO_METADATA (metadata)); +#line 1751 "DirectPhoto.c" +} + + +static void direct_photo_real_apply_user_metadata_for_reimport (Photo* base, PhotoMetadata* metadata) { + DirectPhoto * self; +#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_PHOTO_METADATA (metadata)); +#line 1761 "DirectPhoto.c" +} + + +static gboolean direct_photo_real_is_trashed (MediaSource* base) { + DirectPhoto * self; + gboolean result = FALSE; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 150 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = FALSE; +#line 150 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1774 "DirectPhoto.c" +} + + +static gboolean direct_photo_real_is_offline (MediaSource* base) { + DirectPhoto * self; + gboolean result = FALSE; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 155 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = FALSE; +#line 155 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1787 "DirectPhoto.c" +} + + +static void direct_photo_real_trash (MediaSource* base) { + DirectPhoto * self; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 1795 "DirectPhoto.c" +} + + +static void direct_photo_real_untrash (MediaSource* base) { + DirectPhoto * self; +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 1803 "DirectPhoto.c" +} + + +static void direct_photo_real_mark_offline (MediaSource* base) { + DirectPhoto * self; +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 1811 "DirectPhoto.c" +} + + +static void direct_photo_real_mark_online (MediaSource* base) { + DirectPhoto * self; +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 1819 "DirectPhoto.c" +} + + +static void direct_photo_class_init (DirectPhotoClass * klass) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_parent_class = g_type_class_peek_parent (klass); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_type_class_add_private (klass, sizeof (DirectPhotoPrivate)); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->get_preview_pixbuf = direct_photo_real_get_preview_pixbuf; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((PhotoClass *) klass)->rotate = direct_photo_real_rotate; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((PhotoSourceClass *) klass)->get_pixbuf = direct_photo_real_get_pixbuf; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((ThumbnailSourceClass *) klass)->get_thumbnail = direct_photo_real_get_thumbnail; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((DataObjectClass *) klass)->notify_altered = direct_photo_real_notify_altered; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((PhotoClass *) klass)->has_user_generated_metadata = direct_photo_real_has_user_generated_metadata; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((PhotoClass *) klass)->set_user_metadata_for_export = direct_photo_real_set_user_metadata_for_export; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((PhotoClass *) klass)->apply_user_metadata_for_reimport = direct_photo_real_apply_user_metadata_for_reimport; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->is_trashed = direct_photo_real_is_trashed; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->is_offline = direct_photo_real_is_offline; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->trash = direct_photo_real_trash; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->untrash = direct_photo_real_untrash; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->mark_offline = direct_photo_real_mark_offline; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((MediaSourceClass *) klass)->mark_online = direct_photo_real_mark_online; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + G_OBJECT_CLASS (klass)->finalize = direct_photo_finalize; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_signal_new ("can_rotate_changed", TYPE_DIRECT_PHOTO, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); +#line 1860 "DirectPhoto.c" +} + + +static void direct_photo_instance_init (DirectPhoto * self) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv = DIRECT_PHOTO_GET_PRIVATE (self); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->preview = NULL; +#line 15 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->loaded = FALSE; +#line 1871 "DirectPhoto.c" +} + + +static void direct_photo_finalize (GObject* obj) { + DirectPhoto * self; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_PHOTO, DirectPhoto); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->preview); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + G_OBJECT_CLASS (direct_photo_parent_class)->finalize (obj); +#line 1883 "DirectPhoto.c" +} + + +GType direct_photo_get_type (void) { + static volatile gsize direct_photo_type_id__volatile = 0; + if (g_once_init_enter (&direct_photo_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectPhotoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_photo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectPhoto), 0, (GInstanceInitFunc) direct_photo_instance_init, NULL }; + GType direct_photo_type_id; + direct_photo_type_id = g_type_register_static (TYPE_PHOTO, "DirectPhoto", &g_define_type_info, 0); + g_once_init_leave (&direct_photo_type_id__volatile, direct_photo_type_id); + } + return direct_photo_type_id__volatile; +} + + +static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) { + guint result; + result = file_hash ((GFile*) v); +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1904 "DirectPhoto.c" +} + + +static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) { + gboolean result; + result = file_equal ((GFile*) a, (GFile*) b); +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1913 "DirectPhoto.c" +} + + +static gint64 _direct_photo_source_collection_get_direct_key_get_source_database_key (DataSource* source, gpointer self) { + gint64 result; + result = direct_photo_source_collection_get_direct_key (source); +#line 183 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 1922 "DirectPhoto.c" +} + + +static void _direct_photo_source_collection_on_file_discovered_directory_monitor_file_discovered (DirectoryMonitor* _sender, GFile* file, GFileInfo* info, gpointer self) { +#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_source_collection_on_file_discovered ((DirectPhotoSourceCollection*) self, file, info); +#line 1929 "DirectPhoto.c" +} + + +static void _direct_photo_source_collection_on_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self) { +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_source_collection_on_discovery_completed ((DirectPhotoSourceCollection*) self); +#line 1936 "DirectPhoto.c" +} + + +DirectPhotoSourceCollection* direct_photo_source_collection_construct (GType object_type, GFile* initial_file) { + DirectPhotoSourceCollection* self = NULL; + GFile* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + GFile* _tmp2_ = NULL; + DirectoryMonitor* _tmp3_ = NULL; + DirectoryMonitor* _tmp4_ = NULL; + DirectoryMonitor* _tmp5_ = NULL; + DirectoryMonitor* _tmp6_ = NULL; +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (initial_file), NULL); +#line 183 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = (DirectPhotoSourceCollection*) database_source_collection_construct (object_type, "DirectPhotoSourceCollection", _direct_photo_source_collection_get_direct_key_get_source_database_key, NULL); +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = initial_file; +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = g_file_get_parent (_tmp0_); +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = _tmp1_; +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = directory_monitor_new (_tmp2_, FALSE, FALSE); +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->monitor); +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->monitor = _tmp3_; +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp2_); +#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = self->priv->monitor; +#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_signal_connect (_tmp4_, "file-discovered", (GCallback) _direct_photo_source_collection_on_file_discovered_directory_monitor_file_discovered, self); +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = self->priv->monitor; +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_signal_connect (_tmp5_, "discovery-completed", (GCallback) _direct_photo_source_collection_on_discovery_completed_directory_monitor_discovery_completed, self); +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = self->priv->monitor; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + directory_monitor_start_discovery (_tmp6_); +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return self; +#line 1981 "DirectPhoto.c" +} + + +DirectPhotoSourceCollection* direct_photo_source_collection_new (GFile* initial_file) { +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return direct_photo_source_collection_construct (TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, initial_file); +#line 1988 "DirectPhoto.c" +} + + +static gboolean direct_photo_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) { + DirectPhotoSourceCollection * self; + gboolean result = FALSE; + DataSource* _tmp0_ = NULL; +#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection); +#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE); +#line 194 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = source; +#line 194 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_DIRECT_PHOTO); +#line 194 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2006 "DirectPhoto.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return self ? g_object_ref (self) : NULL; +#line 2013 "DirectPhoto.c" +} + + +static gint64 direct_photo_source_collection_get_direct_key (DataSource* source) { + gint64 result = 0LL; + DirectPhoto* photo = NULL; + DataSource* _tmp0_ = NULL; + DirectPhoto* _tmp1_ = NULL; + PhotoID photo_id = {0}; + PhotoID _tmp2_ = {0}; + PhotoID _tmp3_ = {0}; + gint64 _tmp4_ = 0LL; +#line 197 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL); +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = source; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto)); +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo = _tmp1_; +#line 199 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (photo, TYPE_PHOTO, Photo), &_tmp2_); +#line 199 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_id = _tmp2_; +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = photo_id; +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = _tmp3_.id; +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp4_; +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2048 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added) { + DirectPhotoSourceCollection * self; + GeeIterable* _tmp16_ = NULL; +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection); +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (GEE_IS_ITERABLE (added)); +#line 2059 "DirectPhoto.c" + { + GeeIterator* _object_it = NULL; + GeeIterable* _tmp0_ = NULL; + GeeIterator* _tmp1_ = NULL; +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = added; +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = gee_iterable_iterator (_tmp0_); +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _object_it = _tmp1_; +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + while (TRUE) { +#line 2072 "DirectPhoto.c" + GeeIterator* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; + DataObject* object = NULL; + GeeIterator* _tmp4_ = NULL; + gpointer _tmp5_ = NULL; + DirectPhoto* photo = NULL; + DataObject* _tmp6_ = NULL; + DirectPhoto* _tmp7_ = NULL; + GFile* file = NULL; + DirectPhoto* _tmp8_ = NULL; + GFile* _tmp9_ = NULL; + GeeHashMap* _tmp10_ = NULL; + GFile* _tmp11_ = NULL; + gboolean _tmp12_ = FALSE; + GeeHashMap* _tmp13_ = NULL; + GFile* _tmp14_ = NULL; + DirectPhoto* _tmp15_ = NULL; +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = _object_it; +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = gee_iterator_next (_tmp2_); +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (!_tmp3_) { +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + break; +#line 2098 "DirectPhoto.c" + } +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = _object_it; +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = gee_iterator_get (_tmp4_); +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + object = (DataObject*) _tmp5_; +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = object; +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DIRECT_PHOTO, DirectPhoto)); +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo = _tmp7_; +#line 207 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = photo; +#line 207 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 207 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + file = _tmp9_; +#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp10_ = self->priv->file_map; +#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp11_ = file; +#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp12_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_); +#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _vala_assert (!_tmp12_, "!file_map.has_key(file)"); +#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp13_ = self->priv->file_map; +#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp14_ = file; +#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp15_ = photo; +#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp14_, _tmp15_); +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (file); +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (object); +#line 2140 "DirectPhoto.c" + } +#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_object_it); +#line 2144 "DirectPhoto.c" + } +#line 214 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp16_ = added; +#line 214 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + DATA_COLLECTION_CLASS (direct_photo_source_collection_parent_class)->notify_items_added (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp16_); +#line 2150 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed) { + DirectPhotoSourceCollection * self; + GeeIterable* _tmp14_ = NULL; +#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection); +#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (GEE_IS_ITERABLE (removed)); +#line 2161 "DirectPhoto.c" + { + GeeIterator* _object_it = NULL; + GeeIterable* _tmp0_ = NULL; + GeeIterator* _tmp1_ = NULL; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = removed; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = gee_iterable_iterator (_tmp0_); +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _object_it = _tmp1_; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + while (TRUE) { +#line 2174 "DirectPhoto.c" + GeeIterator* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; + DataObject* object = NULL; + GeeIterator* _tmp4_ = NULL; + gpointer _tmp5_ = NULL; + DirectPhoto* photo = NULL; + DataObject* _tmp6_ = NULL; + DirectPhoto* _tmp7_ = NULL; + GFile* file = NULL; + DirectPhoto* _tmp8_ = NULL; + GFile* _tmp9_ = NULL; + gboolean is_removed = FALSE; + GeeHashMap* _tmp10_ = NULL; + GFile* _tmp11_ = NULL; + gboolean _tmp12_ = FALSE; + gboolean _tmp13_ = FALSE; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = _object_it; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = gee_iterator_next (_tmp2_); +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (!_tmp3_) { +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + break; +#line 2199 "DirectPhoto.c" + } +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = _object_it; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = gee_iterator_get (_tmp4_); +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + object = (DataObject*) _tmp5_; +#line 219 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = object; +#line 219 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DIRECT_PHOTO, DirectPhoto)); +#line 219 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo = _tmp7_; +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = photo; +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + file = _tmp9_; +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp10_ = self->priv->file_map; +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp11_ = file; +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL); +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + is_removed = _tmp12_; +#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp13_ = is_removed; +#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _vala_assert (_tmp13_, "is_removed"); +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (file); +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (object); +#line 2237 "DirectPhoto.c" + } +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_object_it); +#line 2241 "DirectPhoto.c" + } +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp14_ = removed; +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + DATA_COLLECTION_CLASS (direct_photo_source_collection_parent_class)->notify_items_removed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp14_); +#line 2247 "DirectPhoto.c" +} + + +gboolean direct_photo_source_collection_has_source_for_file (DirectPhotoSourceCollection* self, GFile* file) { + gboolean result = FALSE; + GeeHashMap* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), FALSE); +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (file), FALSE); +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->file_map; +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = file; +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_); +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp2_; +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2270 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_on_file_discovered (DirectPhotoSourceCollection* self, GFile* file, GFileInfo* info) { + GFile* _tmp0_ = NULL; + gboolean _tmp1_ = FALSE; + GFile* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; + DirectPhoto* photo = NULL; + gchar* reason = NULL; + GFile* _tmp4_ = NULL; + DirectPhoto* _tmp5_ = NULL; + gchar* _tmp6_ = NULL; + const gchar* _tmp7_ = NULL; + GeeCollection* _tmp9_ = NULL; + DirectPhoto* _tmp10_ = NULL; + GeeCollection* _tmp11_ = NULL; + gint _tmp12_ = 0; + gint _tmp13_ = 0; +#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self)); +#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (G_IS_FILE (file)); +#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (G_IS_FILE_INFO (info)); +#line 235 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = file; +#line 235 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = direct_photo_source_collection_has_source_for_file (self, _tmp0_); +#line 235 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp1_) { +#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return; +#line 2304 "DirectPhoto.c" + } +#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = file; +#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = photo_file_format_is_file_supported (_tmp2_); +#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (!_tmp3_) { +#line 240 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return; +#line 2314 "DirectPhoto.c" + } +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = file; +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = direct_photo_source_collection_fetch (self, _tmp4_, &_tmp5_, FALSE); +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo = _tmp5_; +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reason = _tmp6_; +#line 244 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = reason; +#line 244 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp7_ != NULL) { +#line 2330 "DirectPhoto.c" + const gchar* _tmp8_ = NULL; +#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = reason; +#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_warning ("DirectPhoto.vala:245: Error fetching file: %s", _tmp8_); +#line 2336 "DirectPhoto.c" + } +#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = self->priv->prepared_photos; +#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp10_ = photo; +#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + gee_collection_add (_tmp9_, _tmp10_); +#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp11_ = self->priv->prepared_photos; +#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp12_ = gee_collection_get_size (_tmp11_); +#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp13_ = _tmp12_; +#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp13_ >= DIRECT_PHOTO_SOURCE_COLLECTION_DISCOVERED_FILES_BATCH_ADD) { +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_source_collection_flush_prepared_photos (self); +#line 2354 "DirectPhoto.c" + } +#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (reason); +#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (photo); +#line 2360 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_on_discovery_completed (DirectPhotoSourceCollection* self) { +#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self)); +#line 252 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_source_collection_flush_prepared_photos (self); +#line 2369 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_flush_prepared_photos (DirectPhotoSourceCollection* self) { + GeeCollection* _tmp0_ = NULL; + GeeCollection* _tmp1_ = NULL; + GeeCollection* _tmp2_ = NULL; + GeeCollection* _tmp3_ = NULL; +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self)); +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->prepared_photos; +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp0_, NULL, NULL); +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = _tmp1_; +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp2_); +#line 257 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = self->priv->prepared_photos; +#line 257 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + gee_collection_clear (_tmp3_); +#line 2392 "DirectPhoto.c" +} + + +gboolean direct_photo_source_collection_has_file (DirectPhotoSourceCollection* self, GFile* file) { + gboolean result = FALSE; + GeeHashMap* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; +#line 260 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), FALSE); +#line 260 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (file), FALSE); +#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->file_map; +#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = file; +#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_); +#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp2_; +#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2415 "DirectPhoto.c" +} + + +void direct_photo_source_collection_reimport_photo (DirectPhotoSourceCollection* self, DirectPhoto* photo) { + DirectPhoto* _tmp0_ = NULL; + DirectPhoto* reimported_photo = NULL; + DirectPhoto* _tmp1_ = NULL; + GFile* _tmp2_ = NULL; + GFile* _tmp3_ = NULL; + DirectPhoto* _tmp4_ = NULL; + gchar* _tmp5_ = NULL; + gchar* _tmp6_ = NULL; +#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self)); +#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_if_fail (IS_DIRECT_PHOTO (photo)); +#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = photo; +#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_discard_prefetched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo)); +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = photo; +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = _tmp2_; +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = direct_photo_source_collection_fetch (self, _tmp3_, &_tmp4_, TRUE); +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (reimported_photo); +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reimported_photo = _tmp4_; +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = _tmp5_; +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (_tmp6_); +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_tmp3_); +#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (reimported_photo); +#line 2456 "DirectPhoto.c" +} + + +gchar* direct_photo_source_collection_fetch (DirectPhotoSourceCollection* self, GFile* file, DirectPhoto** photo, gboolean reimport) { + DirectPhoto* _vala_photo = NULL; + gchar* result = NULL; + GeeHashMap* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + gpointer _tmp2_ = NULL; + DirectPhoto* _tmp3_ = NULL; + ImportResult _result_ = 0; + GFile* _tmp25_ = NULL; + DirectPhoto* _tmp26_ = NULL; + ImportResult _tmp27_ = 0; + gchar* _tmp28_ = NULL; + ImportResult _tmp29_ = 0; + GError * _inner_error_ = NULL; +#line 271 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), NULL); +#line 271 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (file), NULL); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->file_map; +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = file; +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_vala_photo); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _vala_photo = (DirectPhoto*) _tmp2_; +#line 274 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp3_ = _vala_photo; +#line 274 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp3_ != NULL) { +#line 2492 "DirectPhoto.c" + gchar* reason = NULL; + gboolean _tmp4_ = FALSE; +#line 275 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reason = NULL; +#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp4_ = reimport; +#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp4_) { +#line 2501 "DirectPhoto.c" + { + Orientation ori_tmp = 0; + gboolean should_restore_ori = FALSE; + gboolean _tmp5_ = FALSE; + DirectPhoto* _tmp6_ = NULL; + gboolean _tmp7_ = FALSE; + PhotoReimportMasterState* reimport_state = NULL; + gboolean _tmp12_ = FALSE; + DirectPhoto* _tmp13_ = NULL; + PhotoReimportMasterState* _tmp14_ = NULL; + gboolean _tmp15_ = FALSE; +#line 279 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ori_tmp = ORIENTATION_TOP_LEFT; +#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + should_restore_ori = FALSE; +#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp6_ = _vala_photo; +#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp7_ = photo_only_metadata_changed (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PHOTO, Photo)); +#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp7_) { +#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = TRUE; +#line 2525 "DirectPhoto.c" + } else { + DirectPhoto* _tmp8_ = NULL; + PhotoFileFormat _tmp9_ = 0; +#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp8_ = _vala_photo; +#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp9_ = photo_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo)); +#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp5_ = _tmp9_ == PHOTO_FILE_FORMAT_JFIF; +#line 2535 "DirectPhoto.c" + } +#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp5_) { +#line 2539 "DirectPhoto.c" + DirectPhoto* _tmp10_ = NULL; + Orientation _tmp11_ = 0; +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp10_ = _vala_photo; +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp11_ = photo_get_orientation (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PHOTO, Photo)); +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ori_tmp = _tmp11_; +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + should_restore_ori = TRUE; +#line 2550 "DirectPhoto.c" + } +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp13_ = _vala_photo; +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp15_ = photo_prepare_for_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PHOTO, Photo), &_tmp14_, &_inner_error_); +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reimport_state = _tmp14_; +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp12_ = _tmp15_; +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 2566 "DirectPhoto.c" + goto __catch44_g_error; + } +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp12_) { +#line 2571 "DirectPhoto.c" + DirectPhoto* _tmp16_ = NULL; + PhotoReimportMasterState* _tmp17_ = NULL; + gboolean _tmp18_ = FALSE; +#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp16_ = _vala_photo; +#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp17_ = reimport_state; +#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + photo_finish_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO, Photo), _tmp17_, &_inner_error_); +#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 2585 "DirectPhoto.c" + goto __catch44_g_error; + } +#line 291 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp18_ = should_restore_ori; +#line 291 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp18_) { +#line 2592 "DirectPhoto.c" + DirectPhoto* _tmp19_ = NULL; + Orientation _tmp20_ = 0; +#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp19_ = _vala_photo; +#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp20_ = ori_tmp; +#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_fixup_orientation_after_reimport (_tmp19_, _tmp20_); +#line 2601 "DirectPhoto.c" + } + } else { + gchar* _tmp21_ = NULL; +#line 296 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp21_ = import_result_to_string (IMPORT_RESULT_FILE_ERROR); +#line 296 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (reason); +#line 296 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reason = _tmp21_; +#line 2611 "DirectPhoto.c" + } +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _photo_reimport_master_state_unref0 (reimport_state); +#line 2615 "DirectPhoto.c" + } + goto __finally44; + __catch44_g_error: + { + GError* err = NULL; + GError* _tmp22_ = NULL; + const gchar* _tmp23_ = NULL; + gchar* _tmp24_ = NULL; +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + err = _inner_error_; +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _inner_error_ = NULL; +#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp22_ = err; +#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp23_ = _tmp22_->message; +#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp24_ = g_strdup (_tmp23_); +#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (reason); +#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + reason = _tmp24_; +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_error_free0 (err); +#line 2640 "DirectPhoto.c" + } + __finally44: +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (reason); +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.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 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_clear_error (&_inner_error_); +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return NULL; +#line 2653 "DirectPhoto.c" + } + } +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = reason; +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (photo) { +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + *photo = _vala_photo; +#line 2662 "DirectPhoto.c" + } else { +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_vala_photo); +#line 2666 "DirectPhoto.c" + } +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2670 "DirectPhoto.c" + } +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp25_ = file; +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp27_ = direct_photo_internal_import (_tmp25_, &_tmp26_); +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_vala_photo); +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _vala_photo = _tmp26_; +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _result_ = _tmp27_; +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp29_ = _result_; +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (_tmp29_ == IMPORT_RESULT_SUCCESS) { +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (_tmp28_); +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp28_ = NULL; +#line 2690 "DirectPhoto.c" + } else { + ImportResult _tmp30_ = 0; + gchar* _tmp31_ = NULL; +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp30_ = _result_; +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp31_ = import_result_to_string (_tmp30_); +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_free0 (_tmp28_); +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp28_ = _tmp31_; +#line 2702 "DirectPhoto.c" + } +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp28_; +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + if (photo) { +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + *photo = _vala_photo; +#line 2710 "DirectPhoto.c" + } else { +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (_vala_photo); +#line 2714 "DirectPhoto.c" + } +#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2718 "DirectPhoto.c" +} + + +gboolean direct_photo_source_collection_has_file_source (DirectPhotoSourceCollection* self, GFile* file) { + gboolean result = FALSE; + GeeHashMap* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), FALSE); +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (file), FALSE); +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->file_map; +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = file; +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_); +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = _tmp2_; +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2741 "DirectPhoto.c" +} + + +DirectPhoto* direct_photo_source_collection_get_file_source (DirectPhotoSourceCollection* self, GFile* file) { + DirectPhoto* result = NULL; + GeeHashMap* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + gpointer _tmp2_ = NULL; +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), NULL); +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_return_val_if_fail (G_IS_FILE (file), NULL); +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = self->priv->file_map; +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = file; +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_); +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + result = (DirectPhoto*) _tmp2_; +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + return result; +#line 2764 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_class_init (DirectPhotoSourceCollectionClass * klass) { +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + direct_photo_source_collection_parent_class = g_type_class_peek_parent (klass); +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((DataCollectionClass *) klass)->finalize = direct_photo_source_collection_finalize; +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + g_type_class_add_private (klass, sizeof (DirectPhotoSourceCollectionPrivate)); +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((SourceCollectionClass *) klass)->holds_type_of_source = direct_photo_source_collection_real_holds_type_of_source; +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((DataCollectionClass *) klass)->notify_items_added = direct_photo_source_collection_real_notify_items_added; +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + ((DataCollectionClass *) klass)->notify_items_removed = direct_photo_source_collection_real_notify_items_removed; +#line 2781 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_instance_init (DirectPhotoSourceCollection * self) { + GeeArrayList* _tmp0_ = NULL; + GeeHashMap* _tmp1_ = NULL; +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv = DIRECT_PHOTO_SOURCE_COLLECTION_GET_PRIVATE (self); +#line 177 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp0_ = gee_array_list_new (TYPE_DIRECT_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL); +#line 177 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->prepared_photos = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection); +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _tmp1_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_DIRECT_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL); +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self->priv->file_map = _tmp1_; +#line 2798 "DirectPhoto.c" +} + + +static void direct_photo_source_collection_finalize (DataCollection* obj) { + DirectPhotoSourceCollection * self; +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection); +#line 177 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->prepared_photos); +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->file_map); +#line 180 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + _g_object_unref0 (self->priv->monitor); +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala" + DATA_COLLECTION_CLASS (direct_photo_source_collection_parent_class)->finalize (obj); +#line 2814 "DirectPhoto.c" +} + + +GType direct_photo_source_collection_get_type (void) { + static volatile gsize direct_photo_source_collection_type_id__volatile = 0; + if (g_once_init_enter (&direct_photo_source_collection_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectPhotoSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_photo_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectPhotoSourceCollection), 0, (GInstanceInitFunc) direct_photo_source_collection_instance_init, NULL }; + GType direct_photo_source_collection_type_id; + direct_photo_source_collection_type_id = g_type_register_static (TYPE_DATABASE_SOURCE_COLLECTION, "DirectPhotoSourceCollection", &g_define_type_info, 0); + g_once_init_leave (&direct_photo_source_collection_type_id__volatile, direct_photo_source_collection_type_id); + } + return direct_photo_source_collection_type_id__volatile; +} + + + diff --git a/src/direct/DirectPhotoPage.c b/src/direct/DirectPhotoPage.c new file mode 100644 index 0000000..c9094a2 --- /dev/null +++ b/src/direct/DirectPhotoPage.c @@ -0,0 +1,5294 @@ +/* DirectPhotoPage.c generated by valac 0.32.1, the Vala compiler + * generated from DirectPhotoPage.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 <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <stdlib.h> +#include <string.h> +#include <gee.h> +#include <gdk/gdk.h> +#include <cairo.h> +#include <gdk-pixbuf/gdk-pixbuf.h> +#include <gio/gio.h> +#include <glib/gi18n-lib.h> +#include <glib/gstdio.h> +#include <float.h> +#include <math.h> + + +#define TYPE_PAGE (page_get_type ()) +#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page)) +#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass)) +#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE)) +#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE)) +#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass)) + +typedef struct _Page Page; +typedef struct _PageClass PageClass; +typedef struct _PagePrivate PagePrivate; + +#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_FULLSCREEN_WINDOW (fullscreen_window_get_type ()) +#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow)) +#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass)) +#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW)) +#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW)) +#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass)) + +typedef struct _FullscreenWindow FullscreenWindow; +typedef struct _FullscreenWindowClass FullscreenWindowClass; + +#define TYPE_INJECTION_GROUP (injection_group_get_type ()) +#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup)) +#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass)) +#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP)) +#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP)) +#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass)) + +typedef struct _InjectionGroup InjectionGroup; +typedef struct _InjectionGroupClass InjectionGroupClass; + +#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ()) +#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)) +#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass)) +#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE)) +#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE)) +#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass)) + +typedef struct _SinglePhotoPage SinglePhotoPage; +typedef struct _SinglePhotoPageClass SinglePhotoPageClass; +typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate; + +#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ()) +#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer)) +#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass)) +#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER)) +#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER)) +#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass)) + +typedef struct _ZoomBuffer ZoomBuffer; +typedef struct _ZoomBufferClass ZoomBufferClass; + +#define TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; + +#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ()) + +#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ()) +#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage)) +#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass)) +#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE)) +#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE)) +#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass)) + +typedef struct _EditingHostPage EditingHostPage; +typedef struct _EditingHostPageClass EditingHostPageClass; +typedef struct _EditingHostPagePrivate EditingHostPagePrivate; + +#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_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 TYPE_DATA_VIEW (data_view_get_type ()) +#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView)) +#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass)) +#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW)) +#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW)) +#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass)) + +typedef struct _DataView DataView; +typedef struct _DataViewClass DataViewClass; + +#define TYPE_DIRECT_PHOTO_PAGE (direct_photo_page_get_type ()) +#define DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage)) +#define DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass)) +#define IS_DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_PAGE)) +#define IS_DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_PAGE)) +#define DIRECT_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass)) + +typedef struct _DirectPhotoPage DirectPhotoPage; +typedef struct _DirectPhotoPageClass DirectPhotoPageClass; +typedef struct _DirectPhotoPagePrivate DirectPhotoPagePrivate; + +#define TYPE_DATA_COLLECTION (data_collection_get_type ()) +#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection)) +#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass)) +#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION)) +#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION)) +#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass)) + +typedef struct _DataCollection DataCollection; +typedef struct _DataCollectionClass DataCollectionClass; + +#define TYPE_VIEW_COLLECTION (view_collection_get_type ()) +#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection)) +#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass)) +#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION)) +#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION)) +#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass)) + +typedef struct _ViewCollection ViewCollection; +typedef struct _ViewCollectionClass ViewCollectionClass; + +#define TYPE_DIRECT_VIEW_COLLECTION (direct_view_collection_get_type ()) +#define DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollection)) +#define DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass)) +#define IS_DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW_COLLECTION)) +#define IS_DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW_COLLECTION)) +#define DIRECT_VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass)) + +typedef struct _DirectViewCollection DirectViewCollection; +typedef struct _DirectViewCollectionClass DirectViewCollectionClass; + +#define TYPE_SOURCE_COLLECTION (source_collection_get_type ()) +#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection)) +#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass)) +#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION)) +#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION)) +#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass)) + +typedef struct _SourceCollection SourceCollection; +typedef struct _SourceCollectionClass SourceCollectionClass; + +#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ()) +#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection)) +#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass)) +#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION)) +#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION)) +#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass)) + +typedef struct _DatabaseSourceCollection DatabaseSourceCollection; +typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass; + +#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ()) +#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection)) +#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass)) +#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION)) +#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION)) +#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass)) + +typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection; +typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass; + +#define TYPE_ALTERATION (alteration_get_type ()) +#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration)) +#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass)) +#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION)) +#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION)) +#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass)) + +typedef struct _Alteration Alteration; +typedef struct _AlterationClass AlterationClass; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +#define TYPE_APPLICATION (application_get_type ()) +#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application)) +#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass)) +#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION)) +#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION)) +#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass)) + +typedef struct _Application Application; +typedef struct _ApplicationClass ApplicationClass; +#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL))) +#define _injection_group_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_unref (var), NULL))) + +#define TYPE_DIRECT_PHOTO (direct_photo_get_type ()) +#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto)) +#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass)) +#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO)) +#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO)) +#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass)) + +typedef struct _DirectPhoto DirectPhoto; +typedef struct _DirectPhotoClass DirectPhotoClass; + +#define TYPE_IMPORT_RESULT (import_result_get_type ()) + +#define TYPE_ZOOM_STATE (zoom_state_get_type ()) +typedef struct _ZoomState ZoomState; + +#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ()) + +#define TYPE_COMMAND_MANAGER (command_manager_get_type ()) +#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager)) +#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass)) +#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER)) +#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER)) +#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass)) + +typedef struct _CommandManager CommandManager; +typedef struct _CommandManagerClass CommandManagerClass; +#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL))) + +#define TYPE_SCALING (scaling_get_type ()) + +#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ()) +typedef struct _Scaling Scaling; + +#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ()) +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) + +#define TYPE_DIRECT_VIEW (direct_view_get_type ()) +#define DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW, DirectView)) +#define DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW, DirectViewClass)) +#define IS_DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW)) +#define IS_DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW)) +#define DIRECT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW, DirectViewClass)) + +typedef struct _DirectView DirectView; +typedef struct _DirectViewClass DirectViewClass; + +#define TYPE_EXPORT_DIALOG (export_dialog_get_type ()) +#define EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORT_DIALOG, ExportDialog)) +#define EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORT_DIALOG, ExportDialogClass)) +#define IS_EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORT_DIALOG)) +#define IS_EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORT_DIALOG)) +#define EXPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORT_DIALOG, ExportDialogClass)) + +typedef struct _ExportDialog ExportDialog; +typedef struct _ExportDialogClass ExportDialogClass; + +#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ()) + +#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ()) +typedef struct _ExportFormatParameters ExportFormatParameters; + +#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ()) +#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties)) +#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass)) +#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES)) +#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES)) +#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass)) + +typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties; +typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass; +#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL))) + +#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; + +#define TYPE_PRINT_MANAGER (print_manager_get_type ()) +#define PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_MANAGER, PrintManager)) +#define PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_MANAGER, PrintManagerClass)) +#define IS_PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_MANAGER)) +#define IS_PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_MANAGER)) +#define PRINT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_MANAGER, PrintManagerClass)) + +typedef struct _PrintManager PrintManager; +typedef struct _PrintManagerClass PrintManagerClass; +#define _print_manager_unref0(var) ((var == NULL) ? NULL : (var = (print_manager_unref (var), NULL))) +typedef struct _Block6Data Block6Data; + +#define TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE (direct_fullscreen_photo_page_get_type ()) +#define DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage)) +#define DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass)) +#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE)) +#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE)) +#define DIRECT_FULLSCREEN_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass)) + +typedef struct _DirectFullscreenPhotoPage DirectFullscreenPhotoPage; +typedef struct _DirectFullscreenPhotoPageClass DirectFullscreenPhotoPageClass; +typedef struct _DirectFullscreenPhotoPagePrivate DirectFullscreenPhotoPagePrivate; + +struct _Page { + GtkScrolledWindow parent_instance; + PagePrivate * priv; + GtkUIManager* ui; + GtkToolbar* toolbar; + gboolean in_view; +}; + +struct _PageClass { + GtkScrolledWindowClass parent_class; + void (*set_page_name) (Page* self, const gchar* page_name); + void (*set_container) (Page* self, GtkWindow* container); + void (*clear_container) (Page* self); + GtkMenuBar* (*get_menubar) (Page* self); + GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path); + GtkToolbar* (*get_toolbar) (Page* self); + GtkMenu* (*get_page_context_menu) (Page* self); + void (*switching_from) (Page* self); + void (*switched_to) (Page* self); + void (*ready) (Page* self); + void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw); + void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw); + void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames); + GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1); + GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1); + void (*register_radio_actions) (Page* self, GtkActionGroup* action_group); + InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1); + void (*init_actions) (Page* self, gint selected_count, gint count); + void (*update_actions) (Page* self, gint selected_count, gint count); + gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result); + gboolean (*on_left_click) (Page* self, GdkEventButton* event); + gboolean (*on_middle_click) (Page* self, GdkEventButton* event); + gboolean (*on_right_click) (Page* self, GdkEventButton* event); + gboolean (*on_left_released) (Page* self, GdkEventButton* event); + gboolean (*on_middle_released) (Page* self, GdkEventButton* event); + gboolean (*on_right_released) (Page* self, GdkEventButton* event); + gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event); + gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event); + gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event); + gboolean (*on_alt_released) (Page* self, GdkEventKey* event); + gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event); + gboolean (*on_shift_released) (Page* self, GdkEventKey* event); + gboolean (*on_super_pressed) (Page* self, GdkEventKey* event); + gboolean (*on_super_released) (Page* self, GdkEventKey* event); + gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event); + gboolean (*on_app_key_released) (Page* self, GdkEventKey* event); + void (*on_move) (Page* self, GdkRectangle* rect); + void (*on_move_start) (Page* self, GdkRectangle* rect); + void (*on_move_finished) (Page* self, GdkRectangle* rect); + void (*on_resize) (Page* self, GdkRectangle* rect); + void (*on_resize_start) (Page* self, GdkRectangle* rect); + void (*on_resize_finished) (Page* self, GdkRectangle* rect); + gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect); + gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask); + gboolean (*on_leave_notify_event) (Page* self); + gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event); + gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event); + gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event); + gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event); + gboolean (*on_context_keypress) (Page* self); + gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event); + gboolean (*on_context_invoked) (Page* self); + void (*set_page_cursor) (Page* self, GdkCursorType cursor_type); +}; + +struct _Dimensions { + gint width; + gint height; +}; + +typedef enum { + SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF, + SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT, + SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS +} SinglePhotoPageUpdateReason; + +struct _SinglePhotoPage { + Page parent_instance; + SinglePhotoPagePrivate * priv; + GtkDrawingArea* canvas; + GtkViewport* viewport; +}; + +struct _SinglePhotoPageClass { + PageClass parent_class; + gboolean (*is_zoom_supported) (SinglePhotoPage* self); + void (*cancel_zoom) (SinglePhotoPage* self); + void (*save_zoom_state) (SinglePhotoPage* self); + void (*restore_zoom_state) (SinglePhotoPage* self); + ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self); + void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim); + void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim); + void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim); + void (*on_previous_photo) (SinglePhotoPage* self); + void (*on_next_photo) (SinglePhotoPage* self); +}; + +struct _EditingHostPage { + SinglePhotoPage parent_instance; + EditingHostPagePrivate * priv; +}; + +struct _EditingHostPageClass { + SinglePhotoPageClass parent_class; + gboolean (*on_zoom_slider_key_press) (EditingHostPage* self, GdkEventKey* event); + void (*on_increase_size) (EditingHostPage* self); + void (*on_decrease_size) (EditingHostPage* self); + void (*photo_changing) (EditingHostPage* self, Photo* new_photo); + DataView* (*create_photo_view) (EditingHostPage* self, DataSource* source); + void (*update_ui) (EditingHostPage* self, gboolean missing); + void (*notify_photo_backing_missing) (EditingHostPage* self, Photo* photo, gboolean missing); + gboolean (*confirm_replace_photo) (EditingHostPage* self, Photo* old_photo, Photo* new_photo); + gboolean (*on_double_click) (EditingHostPage* self, GdkEventButton* event); + GdkPixbuf* (*get_bottom_left_trinket) (EditingHostPage* self, gint scale); + GdkPixbuf* (*get_top_left_trinket) (EditingHostPage* self, gint scale); + GdkPixbuf* (*get_top_right_trinket) (EditingHostPage* self, gint scale); + GdkPixbuf* (*get_bottom_right_trinket) (EditingHostPage* self, gint scale); +}; + +struct _DirectPhotoPage { + EditingHostPage parent_instance; + DirectPhotoPagePrivate * priv; +}; + +struct _DirectPhotoPageClass { + EditingHostPageClass parent_class; +}; + +struct _DirectPhotoPagePrivate { + GFile* initial_file; + DirectViewCollection* view_controller; + GFile* current_save_dir; + gboolean drop_if_dirty; +}; + +typedef enum { + IMPORT_RESULT_SUCCESS, + IMPORT_RESULT_FILE_ERROR, + IMPORT_RESULT_DECODE_ERROR, + IMPORT_RESULT_DATABASE_ERROR, + IMPORT_RESULT_USER_ABORT, + IMPORT_RESULT_NOT_A_FILE, + IMPORT_RESULT_PHOTO_EXISTS, + IMPORT_RESULT_UNSUPPORTED_FORMAT, + IMPORT_RESULT_NOT_AN_IMAGE, + IMPORT_RESULT_DISK_FAILURE, + IMPORT_RESULT_DISK_FULL, + IMPORT_RESULT_CAMERA_ERROR, + IMPORT_RESULT_FILE_WRITE_ERROR, + IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE +} ImportResult; + +struct _ZoomState { + Dimensions content_dimensions; + Dimensions viewport_dimensions; + gdouble zoom_factor; + gdouble interpolation_factor; + gdouble min_factor; + gdouble max_factor; + GdkPoint viewport_center; +}; + +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 { + SCALE_CONSTRAINT_ORIGINAL, + SCALE_CONSTRAINT_DIMENSIONS, + SCALE_CONSTRAINT_WIDTH, + SCALE_CONSTRAINT_HEIGHT, + SCALE_CONSTRAINT_FILL_VIEWPORT +} ScaleConstraint; + +struct _Scaling { + ScaleConstraint constraint; + gint scale; + Dimensions viewport; + gboolean scale_up; +}; + +typedef enum { + JPEG_QUALITY_LOW = 50, + JPEG_QUALITY_MEDIUM = 75, + JPEG_QUALITY_HIGH = 90, + JPEG_QUALITY_MAXIMUM = 100 +} JpegQuality; + +typedef enum { + EXPORT_FORMAT_MODE_UNMODIFIED, + EXPORT_FORMAT_MODE_CURRENT, + EXPORT_FORMAT_MODE_SPECIFIED, + EXPORT_FORMAT_MODE_LAST +} ExportFormatMode; + +struct _ExportFormatParameters { + ExportFormatMode mode; + PhotoFileFormat specified_format; + JpegQuality quality; + gboolean export_metadata; +}; + +struct _Block6Data { + int _ref_count_; + DirectPhotoPage* self; + gboolean should_allow_rotation; +}; + +struct _DirectFullscreenPhotoPage { + DirectPhotoPage parent_instance; + DirectFullscreenPhotoPagePrivate * priv; +}; + +struct _DirectFullscreenPhotoPageClass { + DirectPhotoPageClass parent_class; +}; + + +static gpointer direct_photo_page_parent_class = NULL; +extern DirectPhotoSourceCollection* direct_photo_global; +static gpointer direct_fullscreen_photo_page_parent_class = NULL; + +GType page_get_type (void) G_GNUC_CONST; +GType page_window_get_type (void) G_GNUC_CONST; +GType fullscreen_window_get_type (void) G_GNUC_CONST; +gpointer injection_group_ref (gpointer instance); +void injection_group_unref (gpointer instance); +GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_injection_group (GValue* value, gpointer v_object); +void value_take_injection_group (GValue* value, gpointer v_object); +gpointer value_get_injection_group (const GValue* value); +GType injection_group_get_type (void) G_GNUC_CONST; +GType single_photo_page_get_type (void) G_GNUC_CONST; +GType zoom_buffer_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); +GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST; +GType editing_host_page_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 photo_source_get_type (void) G_GNUC_CONST; +GType photo_get_type (void) G_GNUC_CONST; +GType data_view_get_type (void) G_GNUC_CONST; +GType direct_photo_page_get_type (void) G_GNUC_CONST; +gpointer data_collection_ref (gpointer instance); +void data_collection_unref (gpointer instance); +GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_data_collection (GValue* value, gpointer v_object); +void value_take_data_collection (GValue* value, gpointer v_object); +gpointer value_get_data_collection (const GValue* value); +GType data_collection_get_type (void) G_GNUC_CONST; +GType view_collection_get_type (void) G_GNUC_CONST; +GType direct_view_collection_get_type (void) G_GNUC_CONST; +#define DIRECT_PHOTO_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPagePrivate)) +enum { + DIRECT_PHOTO_PAGE_DUMMY_PROPERTY +}; +GType source_collection_get_type (void) G_GNUC_CONST; +GType database_source_collection_get_type (void) G_GNUC_CONST; +GType direct_photo_source_collection_get_type (void) G_GNUC_CONST; +gpointer alteration_ref (gpointer instance); +void alteration_unref (gpointer instance); +GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_alteration (GValue* value, gpointer v_object); +void value_take_alteration (GValue* value, gpointer v_object); +gpointer value_get_alteration (const GValue* value); +GType alteration_get_type (void) G_GNUC_CONST; +static void direct_photo_page_on_photos_altered (DirectPhotoPage* self, GeeMap* map); +static void _direct_photo_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self); +DirectPhotoPage* direct_photo_page_new (GFile* file); +DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file); +EditingHostPage* editing_host_page_construct (GType object_type, SourceCollection* sources, const gchar* name); +static gboolean direct_photo_page_check_editable_file (GFile* file); +gpointer application_ref (gpointer instance); +void application_unref (gpointer instance); +GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_application (GValue* value, gpointer v_object); +void value_take_application (GValue* value, gpointer v_object); +gpointer value_get_application (const GValue* value); +GType application_get_type (void) G_GNUC_CONST; +Application* application_get_instance (void); +void application_panic (Application* self); +DirectViewCollection* direct_view_collection_new (void); +DirectViewCollection* direct_view_collection_construct (GType object_type); +ViewCollection* page_get_view (Page* self); +static void direct_photo_page_on_selection_group_altered (DirectPhotoPage* self); +static void _direct_photo_page_on_selection_group_altered_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self); +static void direct_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames); +void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames); +static GtkActionEntry* direct_photo_page_real_init_collect_action_entries (Page* base, int* result_length1); +GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1); +#define TRANSLATABLE "translatable" +static void _vala_array_add91 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_SAVE_LABEL _ ("_Save") +static void direct_photo_page_on_save (DirectPhotoPage* self); +static void _direct_photo_page_on_save_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add92 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_SAVE_AS_LABEL _ ("Save _As") +static void direct_photo_page_on_save_as (DirectPhotoPage* self); +static void _direct_photo_page_on_save_as_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add93 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static void direct_photo_page_on_send_to (DirectPhotoPage* self); +static void _direct_photo_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_SEND_TO_MENU _ ("Send _To...") +static void _vala_array_add94 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_PRINT_LABEL _ ("_Print") +static void direct_photo_page_on_print (DirectPhotoPage* self); +static void _direct_photo_page_on_print_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_PRINT_MENU _ ("_Print...") +static void _vala_array_add95 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static void _vala_array_add96 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static void _vala_array_add97 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static void _vala_array_add98 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_PREVIOUS_LABEL _ ("_Previous") +void single_photo_page_on_previous_photo (SinglePhotoPage* self); +static void _single_photo_page_on_previous_photo_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add99 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_NEXT_LABEL _ ("_Next") +void single_photo_page_on_next_photo (SinglePhotoPage* self); +static void _single_photo_page_on_next_photo_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add100 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_CLOCKWISE "object-rotate-right" +void editing_host_page_on_rotate_clockwise (EditingHostPage* self); +static void _editing_host_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_ROTATE_CW_MENU _ ("Rotate _Right") +#define RESOURCES_ROTATE_CCW_TOOLTIP _ ("Rotate the photos left") +static void _vala_array_add101 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_COUNTERCLOCKWISE "object-rotate-left" +void editing_host_page_on_rotate_counterclockwise (EditingHostPage* self); +static void _editing_host_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_ROTATE_CCW_MENU _ ("Rotate _Left") +static void _vala_array_add102 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_HFLIP "object-flip-horizontal" +void editing_host_page_on_flip_horizontally (EditingHostPage* self); +static void _editing_host_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_HFLIP_MENU _ ("Flip Hori_zontally") +static void _vala_array_add103 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_VFLIP "object-flip-vertical" +void editing_host_page_on_flip_vertically (EditingHostPage* self); +static void _editing_host_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_VFLIP_MENU _ ("Flip Verti_cally") +static void _vala_array_add104 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_ENHANCE "shotwell-auto-enhance" +void editing_host_page_on_enhance (EditingHostPage* self); +static void _editing_host_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_ENHANCE_MENU _ ("_Enhance") +#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance") +static void _vala_array_add105 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_CROP "shotwell-crop" +void editing_host_page_toggle_crop (EditingHostPage* self); +static void _editing_host_page_toggle_crop_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_CROP_MENU _ ("_Crop") +#define RESOURCES_CROP_TOOLTIP _ ("Crop the photo's size") +static void _vala_array_add106 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_REFRESH_LABEL _ ("_Refresh") +void editing_host_page_toggle_straighten (EditingHostPage* self); +static void _editing_host_page_toggle_straighten_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_STRAIGHTEN_MENU _ ("_Straighten") +#define RESOURCES_STRAIGHTEN_TOOLTIP _ ("Straighten the photo") +static void _vala_array_add107 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_REDEYE "shotwell-redeye" +void editing_host_page_toggle_redeye (EditingHostPage* self); +static void _editing_host_page_toggle_redeye_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_RED_EYE_MENU _ ("_Red-eye") +#define RESOURCES_RED_EYE_TOOLTIP _ ("Reduce or eliminate any red-eye effects in the photo") +static void _vala_array_add108 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_ADJUST "image-adjust" +void editing_host_page_toggle_adjust (EditingHostPage* self); +static void _editing_host_page_toggle_adjust_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_ADJUST_MENU _ ("_Adjust") +#define RESOURCES_ADJUST_TOOLTIP _ ("Adjust the photo's color and tone") +static void _vala_array_add109 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_REVERT_LABEL _ ("Revert to Original") +void editing_host_page_on_revert (EditingHostPage* self); +static void _editing_host_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_REVERT_MENU _ ("Re_vert to Original") +static void _vala_array_add110 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +void editing_host_page_on_adjust_date_time (EditingHostPage* self); +static void _editing_host_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_ADJUST_DATE_TIME_MENU _ ("_Adjust Date and Time...") +static void _vala_array_add111 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +void editing_host_page_on_set_background (EditingHostPage* self); +static void _editing_host_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self); +#define RESOURCES_SET_BACKGROUND_MENU _ ("Set as _Desktop Background") +#define RESOURCES_SET_BACKGROUND_TOOLTIP _ ("Set selected image to be the new desktop background") +static void _vala_array_add112 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static void _vala_array_add113 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static void _vala_array_add114 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_ZOOM_IN_LABEL _ ("Zoom _In") +void editing_host_page_on_increase_size (EditingHostPage* self); +static void _editing_host_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add115 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_ZOOM_OUT_LABEL _ ("Zoom _Out") +void editing_host_page_on_decrease_size (EditingHostPage* self); +static void _editing_host_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add116 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_ZOOM_FIT_LABEL _ ("Best _Fit") +void editing_host_page_snap_zoom_to_min (EditingHostPage* self); +static void _editing_host_page_snap_zoom_to_min_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add117 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +#define RESOURCES_ZOOM_100_LABEL _ ("_Normal Size") +void editing_host_page_snap_zoom_to_isomorphic (EditingHostPage* self); +static void _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add118 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +void editing_host_page_snap_zoom_to_max (EditingHostPage* self); +static void _editing_host_page_snap_zoom_to_max_gtk_action_callback (GtkAction* action, gpointer self); +static void _vala_array_add119 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value); +static InjectionGroup** direct_photo_page_real_init_collect_injection_groups (Page* base, int* result_length1); +InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1); +InjectionGroup* injection_group_new (const gchar* path); +InjectionGroup* injection_group_construct (GType object_type, const gchar* path); +void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action); +static void _vala_array_add120 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value); +static void _vala_array_add121 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value); +void app_window_error_message (const gchar* message, GtkWindow* parent); +gboolean photo_file_format_is_file_supported (GFile* file); +#define RESOURCES_APP_TITLE "Shotwell" +static void direct_photo_page_real_realize (GtkWidget* base); +GType direct_photo_get_type (void) G_GNUC_CONST; +DirectPhoto* direct_photo_source_collection_get_file_source (DirectPhotoSourceCollection* self, GFile* file); +void editing_host_page_display_mirror_of (EditingHostPage* self, ViewCollection* controller, Photo* starting_photo); +void app_window_panic (const gchar* msg); +static void direct_photo_page_real_photo_changing (EditingHostPage* base, Photo* new_photo); +Photo* editing_host_page_get_photo (EditingHostPage* self); +static void direct_photo_page_on_dphoto_can_rotate_changed (DirectPhotoPage* self, gboolean should_allow_rotation); +static void _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed (DirectPhoto* _sender, gboolean b, gpointer self); +GType import_result_get_type (void) G_GNUC_CONST; +ImportResult direct_photo_demand_load (DirectPhoto* self); +GFile* direct_photo_page_get_current_file (DirectPhotoPage* self); +GFile* media_source_get_file (MediaSource* self); +static gboolean direct_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event); +gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event); +static void direct_photo_page_update_zoom_menu_item_sensitivity (DirectPhotoPage* self); +GType zoom_state_get_type (void) G_GNUC_CONST; +ZoomState* zoom_state_dup (const ZoomState* self); +void zoom_state_free (ZoomState* self); +void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result); +gboolean zoom_state_is_max (ZoomState *self); +gboolean editing_host_page_get_photo_missing (EditingHostPage* self); +void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive); +gboolean zoom_state_is_default (ZoomState *self); +static void direct_photo_page_real_on_increase_size (EditingHostPage* base); +static void direct_photo_page_real_on_decrease_size (EditingHostPage* base); +gboolean editing_host_page_has_photo (EditingHostPage* self); +GType photo_file_format_get_type (void) G_GNUC_CONST; +PhotoFileFormat photo_get_file_format (Photo* self); +gboolean photo_file_format_can_write (PhotoFileFormat self); +gpointer command_manager_ref (gpointer instance); +void command_manager_unref (gpointer instance); +GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_command_manager (GValue* value, gpointer v_object); +void value_take_command_manager (GValue* value, gpointer v_object); +gpointer value_get_command_manager (const GValue* value); +GType command_manager_get_type (void) G_GNUC_CONST; +CommandManager* page_get_command_manager (Page* self); +void command_manager_reset (CommandManager* self); +static gboolean direct_photo_page_real_on_double_click (EditingHostPage* base, GdkEventButton* event); +GtkWindow* page_get_container (Page* self); +void fullscreen_window_close (FullscreenWindow* self); +gboolean editing_host_page_on_double_click (EditingHostPage* self, GdkEventButton* event); +static void direct_photo_page_real_update_ui (EditingHostPage* base, gboolean missing); +void editing_host_page_update_ui (EditingHostPage* self, gboolean missing); +static void direct_photo_page_real_update_actions (Page* base, gint selected_count, gint count); +gint data_collection_get_count (DataCollection* self); +gboolean photo_has_transformations (Photo* self); +gboolean editing_host_page_is_rotate_available (EditingHostPage* self, Photo* photo); +gboolean editing_host_page_is_enhance_available (EditingHostPage* self, Photo* photo); +GType scaling_get_type (void) G_GNUC_CONST; +GType scale_constraint_get_type (void) G_GNUC_CONST; +Scaling* scaling_dup (const Scaling* self); +void scaling_free (Scaling* self); +gboolean editing_tools_crop_tool_is_available (Photo* photo, Scaling* scaling); +void scaling_for_original (Scaling* result); +gboolean editing_tools_redeye_tool_is_available (Photo* photo, Scaling* scaling); +void page_update_actions (Page* self, gint selected_count, gint count); +static gboolean direct_photo_page_check_ok_to_close_photo (DirectPhotoPage* self, Photo* photo); +gboolean photo_has_alterations (Photo* self); +void photo_remove_all_transformations (Photo* self); +GtkResponseType app_window_negate_affirm_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent); +gchar* media_source_get_basename (MediaSource* self); +GType jpeg_quality_get_type (void) G_GNUC_CONST; +static void direct_photo_page_save (DirectPhotoPage* self, GFile* dest, gint scale, ScaleConstraint constraint, JpegQuality quality, PhotoFileFormat format, gboolean copy_unmodified, gboolean save_metadata); +gboolean direct_photo_page_check_quit (DirectPhotoPage* self); +static gboolean direct_photo_page_real_confirm_replace_photo (EditingHostPage* base, Photo* old_photo, Photo* new_photo); +void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result); +void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error); +gchar* direct_photo_source_collection_fetch (DirectPhotoSourceCollection* self, GFile* file, DirectPhoto** photo, gboolean reimport); +GType direct_view_get_type (void) G_GNUC_CONST; +DirectView* direct_view_new (DirectPhoto* source); +DirectView* direct_view_construct (GType object_type, DirectPhoto* source); +gboolean data_collection_add (DataCollection* self, DataObject* object); +void direct_photo_source_collection_reimport_photo (DirectPhotoSourceCollection* self, DirectPhoto* photo); +GType export_dialog_get_type (void) G_GNUC_CONST; +ExportDialog* export_dialog_new (const gchar* title); +ExportDialog* export_dialog_construct (GType object_type, const gchar* title); +GType export_format_parameters_get_type (void) G_GNUC_CONST; +GType export_format_mode_get_type (void) G_GNUC_CONST; +ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self); +void export_format_parameters_free (ExportFormatParameters* self); +void export_format_parameters_last (ExportFormatParameters* result); +gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters); +gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params); +PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params); +gpointer photo_file_format_properties_ref (gpointer instance); +void photo_file_format_properties_unref (gpointer instance); +GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_file_format_properties (GValue* value, gpointer v_object); +void value_take_photo_file_format_properties (GValue* value, gpointer v_object); +gpointer value_get_photo_file_format_properties (const GValue* value); +GType photo_file_format_properties_get_type (void) G_GNUC_CONST; +PhotoFileFormatProperties* photo_file_format_get_properties (PhotoFileFormat self); +gchar** photo_file_format_properties_get_known_extensions (PhotoFileFormatProperties* self, int* result_length1); +GType app_window_get_type (void) G_GNUC_CONST; +AppWindow* app_window_get_instance (void); +#define RESOURCES_CANCEL_LABEL _ ("_Cancel") +#define RESOURCES_OK_LABEL _ ("_OK") +void desktop_integration_send_to (GeeCollection* media); +GeeList* view_collection_get_selected_sources (ViewCollection* self); +static gboolean direct_photo_page_real_on_app_key_pressed (Page* base, GdkEventKey* event); +void page_activate_action (Page* self, const gchar* name); +gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event); +gint view_collection_get_selected_count (ViewCollection* self); +gpointer print_manager_ref (gpointer instance); +void print_manager_unref (gpointer instance); +GParamSpec* param_spec_print_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_print_manager (GValue* value, gpointer v_object); +void value_take_print_manager (GValue* value, gpointer v_object); +gpointer value_get_print_manager (const GValue* value); +GType print_manager_get_type (void) G_GNUC_CONST; +PrintManager* print_manager_get_instance (void); +void print_manager_spool_photo (PrintManager* self, GeeCollection* to_print); +GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t); +static Block6Data* block6_data_ref (Block6Data* _data6_); +static void block6_data_unref (void * _userdata_); +static gboolean __lambda14_ (Block6Data* _data6_); +void editing_host_page_enable_rotate (EditingHostPage* self, gboolean should_enable); +static gboolean ___lambda14__gsource_func (gpointer self); +static DataView* direct_photo_page_real_create_photo_view (EditingHostPage* base, DataSource* source); +static void direct_photo_page_finalize (GObject* obj); +GType direct_fullscreen_photo_page_get_type (void) G_GNUC_CONST; +enum { + DIRECT_FULLSCREEN_PHOTO_PAGE_DUMMY_PROPERTY +}; +DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file); +DirectFullscreenPhotoPage* direct_fullscreen_photo_page_construct (GType object_type, GFile* file); +static void direct_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames); +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); + + +static void _direct_photo_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) { +#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_photos_altered ((DirectPhotoPage*) self, items); +#line 937 "DirectPhotoPage.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return self ? g_object_ref (self) : NULL; +#line 944 "DirectPhotoPage.c" +} + + +static void _direct_photo_page_on_selection_group_altered_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self) { +#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_selection_group_altered ((DirectPhotoPage*) self); +#line 951 "DirectPhotoPage.c" +} + + +DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file) { + DirectPhotoPage * self = NULL; + DirectPhotoSourceCollection* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + gchar* _tmp3_ = NULL; + GFile* _tmp4_ = NULL; + gboolean _tmp5_ = FALSE; + GFile* _tmp8_ = NULL; + GFile* _tmp9_ = NULL; + DirectViewCollection* _tmp10_ = NULL; + GFile* _tmp11_ = NULL; + GFile* _tmp12_ = NULL; + DirectPhotoSourceCollection* _tmp13_ = NULL; + ViewCollection* _tmp14_ = NULL; + ViewCollection* _tmp15_ = NULL; +#line 13 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (G_IS_FILE (file), NULL); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = direct_photo_global; +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = file; +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = g_file_get_basename (_tmp1_); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_; +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = (DirectPhotoPage*) editing_host_page_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp3_); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp3_); +#line 16 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = file; +#line 16 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = direct_photo_page_check_editable_file (_tmp4_); +#line 16 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp5_) { +#line 991 "DirectPhotoPage.c" + Application* _tmp6_ = NULL; + Application* _tmp7_ = NULL; +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = application_get_instance (); +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = _tmp6_; +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + application_panic (_tmp7_); +#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _application_unref0 (_tmp7_); +#line 19 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return self; +#line 1004 "DirectPhotoPage.c" + } +#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = file; +#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = _g_object_ref0 (_tmp8_); +#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self->priv->initial_file); +#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->initial_file = _tmp9_; +#line 23 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = direct_view_collection_new (); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (self->priv->view_controller); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->view_controller = _tmp10_; +#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = file; +#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = g_file_get_parent (_tmp11_); +#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self->priv->current_save_dir); +#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->current_save_dir = _tmp12_; +#line 26 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = direct_photo_global; +#line 26 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _direct_photo_page_on_photos_altered_data_collection_items_altered, self, 0); +#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = _tmp14_; +#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_connect_object (_tmp15_, "selection-group-altered", (GCallback) _direct_photo_page_on_selection_group_altered_view_collection_selection_group_altered, self, 0); +#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (_tmp15_); +#line 13 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return self; +#line 1042 "DirectPhotoPage.c" +} + + +DirectPhotoPage* direct_photo_page_new (GFile* file) { +#line 13 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return direct_photo_page_construct (TYPE_DIRECT_PHOTO_PAGE, file); +#line 1049 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) { + DirectPhotoPage * self; + GeeList* _tmp0_ = NULL; + GeeList* _tmp1_ = NULL; + GeeList* _tmp2_ = NULL; +#line 35 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 35 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (GEE_IS_LIST (ui_filenames)); +#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = ui_filenames; +#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + PAGE_CLASS (direct_photo_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp0_); +#line 38 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = ui_filenames; +#line 38 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "direct_context.ui"); +#line 39 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = ui_filenames; +#line 39 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), "direct.ui"); +#line 1074 "DirectPhotoPage.c" +} + + +static void _vala_array_add91 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1085 "DirectPhotoPage.c" + } +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1089 "DirectPhotoPage.c" +} + + +static void _direct_photo_page_on_save_gtk_action_callback (GtkAction* action, gpointer self) { +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_save ((DirectPhotoPage*) self); +#line 1096 "DirectPhotoPage.c" +} + + +static void _vala_array_add92 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1107 "DirectPhotoPage.c" + } +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1111 "DirectPhotoPage.c" +} + + +static void _direct_photo_page_on_save_as_gtk_action_callback (GtkAction* action, gpointer self) { +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_save_as ((DirectPhotoPage*) self); +#line 1118 "DirectPhotoPage.c" +} + + +static void _vala_array_add93 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1129 "DirectPhotoPage.c" + } +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1133 "DirectPhotoPage.c" +} + + +static void _direct_photo_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self) { +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_send_to ((DirectPhotoPage*) self); +#line 1140 "DirectPhotoPage.c" +} + + +static void _vala_array_add94 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1151 "DirectPhotoPage.c" + } +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1155 "DirectPhotoPage.c" +} + + +static void _direct_photo_page_on_print_gtk_action_callback (GtkAction* action, gpointer self) { +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_print ((DirectPhotoPage*) self); +#line 1162 "DirectPhotoPage.c" +} + + +static void _vala_array_add95 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1173 "DirectPhotoPage.c" + } +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1177 "DirectPhotoPage.c" +} + + +static void _vala_array_add96 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1188 "DirectPhotoPage.c" + } +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1192 "DirectPhotoPage.c" +} + + +static void _vala_array_add97 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1203 "DirectPhotoPage.c" + } +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1207 "DirectPhotoPage.c" +} + + +static void _vala_array_add98 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1218 "DirectPhotoPage.c" + } +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1222 "DirectPhotoPage.c" +} + + +static void _single_photo_page_on_previous_photo_gtk_action_callback (GtkAction* action, gpointer self) { +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + single_photo_page_on_previous_photo ((SinglePhotoPage*) self); +#line 1229 "DirectPhotoPage.c" +} + + +static void _vala_array_add99 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1240 "DirectPhotoPage.c" + } +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1244 "DirectPhotoPage.c" +} + + +static void _single_photo_page_on_next_photo_gtk_action_callback (GtkAction* action, gpointer self) { +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + single_photo_page_on_next_photo ((SinglePhotoPage*) self); +#line 1251 "DirectPhotoPage.c" +} + + +static void _vala_array_add100 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1262 "DirectPhotoPage.c" + } +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1266 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self) { +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_rotate_clockwise ((EditingHostPage*) self); +#line 1273 "DirectPhotoPage.c" +} + + +static void _vala_array_add101 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1284 "DirectPhotoPage.c" + } +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1288 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self) { +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_rotate_counterclockwise ((EditingHostPage*) self); +#line 1295 "DirectPhotoPage.c" +} + + +static void _vala_array_add102 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1306 "DirectPhotoPage.c" + } +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1310 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self) { +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_flip_horizontally ((EditingHostPage*) self); +#line 1317 "DirectPhotoPage.c" +} + + +static void _vala_array_add103 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1328 "DirectPhotoPage.c" + } +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1332 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self) { +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_flip_vertically ((EditingHostPage*) self); +#line 1339 "DirectPhotoPage.c" +} + + +static void _vala_array_add104 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1350 "DirectPhotoPage.c" + } +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1354 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self) { +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_enhance ((EditingHostPage*) self); +#line 1361 "DirectPhotoPage.c" +} + + +static void _vala_array_add105 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1372 "DirectPhotoPage.c" + } +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1376 "DirectPhotoPage.c" +} + + +static void _editing_host_page_toggle_crop_gtk_action_callback (GtkAction* action, gpointer self) { +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_toggle_crop ((EditingHostPage*) self); +#line 1383 "DirectPhotoPage.c" +} + + +static void _vala_array_add106 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1394 "DirectPhotoPage.c" + } +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1398 "DirectPhotoPage.c" +} + + +static void _editing_host_page_toggle_straighten_gtk_action_callback (GtkAction* action, gpointer self) { +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_toggle_straighten ((EditingHostPage*) self); +#line 1405 "DirectPhotoPage.c" +} + + +static void _vala_array_add107 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1416 "DirectPhotoPage.c" + } +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1420 "DirectPhotoPage.c" +} + + +static void _editing_host_page_toggle_redeye_gtk_action_callback (GtkAction* action, gpointer self) { +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_toggle_redeye ((EditingHostPage*) self); +#line 1427 "DirectPhotoPage.c" +} + + +static void _vala_array_add108 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1438 "DirectPhotoPage.c" + } +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1442 "DirectPhotoPage.c" +} + + +static void _editing_host_page_toggle_adjust_gtk_action_callback (GtkAction* action, gpointer self) { +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_toggle_adjust ((EditingHostPage*) self); +#line 1449 "DirectPhotoPage.c" +} + + +static void _vala_array_add109 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1460 "DirectPhotoPage.c" + } +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1464 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self) { +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_revert ((EditingHostPage*) self); +#line 1471 "DirectPhotoPage.c" +} + + +static void _vala_array_add110 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1482 "DirectPhotoPage.c" + } +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1486 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self) { +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_adjust_date_time ((EditingHostPage*) self); +#line 1493 "DirectPhotoPage.c" +} + + +static void _vala_array_add111 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1504 "DirectPhotoPage.c" + } +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1508 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self) { +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_set_background ((EditingHostPage*) self); +#line 1515 "DirectPhotoPage.c" +} + + +static void _vala_array_add112 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1526 "DirectPhotoPage.c" + } +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1530 "DirectPhotoPage.c" +} + + +static void _vala_array_add113 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1541 "DirectPhotoPage.c" + } +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1545 "DirectPhotoPage.c" +} + + +static void _vala_array_add114 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1556 "DirectPhotoPage.c" + } +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1560 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self) { +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_increase_size ((EditingHostPage*) self); +#line 1567 "DirectPhotoPage.c" +} + + +static void _vala_array_add115 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1578 "DirectPhotoPage.c" + } +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1582 "DirectPhotoPage.c" +} + + +static void _editing_host_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self) { +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_on_decrease_size ((EditingHostPage*) self); +#line 1589 "DirectPhotoPage.c" +} + + +static void _vala_array_add116 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1600 "DirectPhotoPage.c" + } +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1604 "DirectPhotoPage.c" +} + + +static void _editing_host_page_snap_zoom_to_min_gtk_action_callback (GtkAction* action, gpointer self) { +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_snap_zoom_to_min ((EditingHostPage*) self); +#line 1611 "DirectPhotoPage.c" +} + + +static void _vala_array_add117 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1622 "DirectPhotoPage.c" + } +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1626 "DirectPhotoPage.c" +} + + +static void _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback (GtkAction* action, gpointer self) { +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_snap_zoom_to_isomorphic ((EditingHostPage*) self); +#line 1633 "DirectPhotoPage.c" +} + + +static void _vala_array_add118 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1644 "DirectPhotoPage.c" + } +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1648 "DirectPhotoPage.c" +} + + +static void _editing_host_page_snap_zoom_to_max_gtk_action_callback (GtkAction* action, gpointer self) { +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_snap_zoom_to_max ((EditingHostPage*) self); +#line 1655 "DirectPhotoPage.c" +} + + +static void _vala_array_add119 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) { +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (GtkActionEntry, *array, *size); +#line 1666 "DirectPhotoPage.c" + } +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = *value; +#line 1670 "DirectPhotoPage.c" +} + + +static GtkActionEntry* direct_photo_page_real_init_collect_action_entries (Page* base, int* result_length1) { + DirectPhotoPage * self; + GtkActionEntry* result = NULL; + GtkActionEntry* actions = NULL; + gint _tmp0_ = 0; + GtkActionEntry* _tmp1_ = NULL; + gint actions_length1 = 0; + gint _actions_size_ = 0; + GtkActionEntry file = {0}; + GtkActionEntry _tmp2_ = {0}; + const gchar* _tmp3_ = NULL; + GtkActionEntry* _tmp4_ = NULL; + gint _tmp4__length1 = 0; + GtkActionEntry _tmp5_ = {0}; + GtkActionEntry save = {0}; + GtkActionEntry _tmp6_ = {0}; + const gchar* _tmp7_ = NULL; + const gchar* _tmp8_ = NULL; + GtkActionEntry* _tmp9_ = NULL; + gint _tmp9__length1 = 0; + GtkActionEntry _tmp10_ = {0}; + GtkActionEntry save_as = {0}; + GtkActionEntry _tmp11_ = {0}; + const gchar* _tmp12_ = NULL; + const gchar* _tmp13_ = NULL; + GtkActionEntry* _tmp14_ = NULL; + gint _tmp14__length1 = 0; + GtkActionEntry _tmp15_ = {0}; + GtkActionEntry send_to = {0}; + GtkActionEntry _tmp16_ = {0}; + GtkActionEntry* _tmp17_ = NULL; + gint _tmp17__length1 = 0; + GtkActionEntry _tmp18_ = {0}; + GtkActionEntry print = {0}; + GtkActionEntry _tmp19_ = {0}; + const gchar* _tmp20_ = NULL; + GtkActionEntry* _tmp21_ = NULL; + gint _tmp21__length1 = 0; + GtkActionEntry _tmp22_ = {0}; + GtkActionEntry edit = {0}; + GtkActionEntry _tmp23_ = {0}; + const gchar* _tmp24_ = NULL; + GtkActionEntry* _tmp25_ = NULL; + gint _tmp25__length1 = 0; + GtkActionEntry _tmp26_ = {0}; + GtkActionEntry photo = {0}; + GtkActionEntry _tmp27_ = {0}; + const gchar* _tmp28_ = NULL; + GtkActionEntry* _tmp29_ = NULL; + gint _tmp29__length1 = 0; + GtkActionEntry _tmp30_ = {0}; + GtkActionEntry tools = {0}; + GtkActionEntry _tmp31_ = {0}; + const gchar* _tmp32_ = NULL; + GtkActionEntry* _tmp33_ = NULL; + gint _tmp33__length1 = 0; + GtkActionEntry _tmp34_ = {0}; + GtkActionEntry prev = {0}; + GtkActionEntry _tmp35_ = {0}; + const gchar* _tmp36_ = NULL; + const gchar* _tmp37_ = NULL; + GtkActionEntry* _tmp38_ = NULL; + gint _tmp38__length1 = 0; + GtkActionEntry _tmp39_ = {0}; + GtkActionEntry next = {0}; + GtkActionEntry _tmp40_ = {0}; + const gchar* _tmp41_ = NULL; + const gchar* _tmp42_ = NULL; + GtkActionEntry* _tmp43_ = NULL; + gint _tmp43__length1 = 0; + GtkActionEntry _tmp44_ = {0}; + GtkActionEntry rotate_right = {0}; + GtkActionEntry _tmp45_ = {0}; + GtkActionEntry* _tmp46_ = NULL; + gint _tmp46__length1 = 0; + GtkActionEntry _tmp47_ = {0}; + GtkActionEntry rotate_left = {0}; + GtkActionEntry _tmp48_ = {0}; + GtkActionEntry* _tmp49_ = NULL; + gint _tmp49__length1 = 0; + GtkActionEntry _tmp50_ = {0}; + GtkActionEntry hflip = {0}; + GtkActionEntry _tmp51_ = {0}; + GtkActionEntry* _tmp52_ = NULL; + gint _tmp52__length1 = 0; + GtkActionEntry _tmp53_ = {0}; + GtkActionEntry vflip = {0}; + GtkActionEntry _tmp54_ = {0}; + GtkActionEntry* _tmp55_ = NULL; + gint _tmp55__length1 = 0; + GtkActionEntry _tmp56_ = {0}; + GtkActionEntry enhance = {0}; + GtkActionEntry _tmp57_ = {0}; + GtkActionEntry* _tmp58_ = NULL; + gint _tmp58__length1 = 0; + GtkActionEntry _tmp59_ = {0}; + GtkActionEntry crop = {0}; + GtkActionEntry _tmp60_ = {0}; + GtkActionEntry* _tmp61_ = NULL; + gint _tmp61__length1 = 0; + GtkActionEntry _tmp62_ = {0}; + GtkActionEntry straighten = {0}; + GtkActionEntry _tmp63_ = {0}; + GtkActionEntry* _tmp64_ = NULL; + gint _tmp64__length1 = 0; + GtkActionEntry _tmp65_ = {0}; + GtkActionEntry red_eye = {0}; + GtkActionEntry _tmp66_ = {0}; + GtkActionEntry* _tmp67_ = NULL; + gint _tmp67__length1 = 0; + GtkActionEntry _tmp68_ = {0}; + GtkActionEntry adjust = {0}; + GtkActionEntry _tmp69_ = {0}; + GtkActionEntry* _tmp70_ = NULL; + gint _tmp70__length1 = 0; + GtkActionEntry _tmp71_ = {0}; + GtkActionEntry revert = {0}; + GtkActionEntry _tmp72_ = {0}; + GtkActionEntry* _tmp73_ = NULL; + gint _tmp73__length1 = 0; + GtkActionEntry _tmp74_ = {0}; + GtkActionEntry adjust_date_time = {0}; + GtkActionEntry _tmp75_ = {0}; + GtkActionEntry* _tmp76_ = NULL; + gint _tmp76__length1 = 0; + GtkActionEntry _tmp77_ = {0}; + GtkActionEntry set_background = {0}; + GtkActionEntry _tmp78_ = {0}; + GtkActionEntry* _tmp79_ = NULL; + gint _tmp79__length1 = 0; + GtkActionEntry _tmp80_ = {0}; + GtkActionEntry view = {0}; + GtkActionEntry _tmp81_ = {0}; + const gchar* _tmp82_ = NULL; + GtkActionEntry* _tmp83_ = NULL; + gint _tmp83__length1 = 0; + GtkActionEntry _tmp84_ = {0}; + GtkActionEntry help = {0}; + GtkActionEntry _tmp85_ = {0}; + const gchar* _tmp86_ = NULL; + GtkActionEntry* _tmp87_ = NULL; + gint _tmp87__length1 = 0; + GtkActionEntry _tmp88_ = {0}; + GtkActionEntry increase_size = {0}; + GtkActionEntry _tmp89_ = {0}; + const gchar* _tmp90_ = NULL; + const gchar* _tmp91_ = NULL; + GtkActionEntry* _tmp92_ = NULL; + gint _tmp92__length1 = 0; + GtkActionEntry _tmp93_ = {0}; + GtkActionEntry decrease_size = {0}; + GtkActionEntry _tmp94_ = {0}; + const gchar* _tmp95_ = NULL; + const gchar* _tmp96_ = NULL; + GtkActionEntry* _tmp97_ = NULL; + gint _tmp97__length1 = 0; + GtkActionEntry _tmp98_ = {0}; + GtkActionEntry best_fit = {0}; + GtkActionEntry _tmp99_ = {0}; + const gchar* _tmp100_ = NULL; + const gchar* _tmp101_ = NULL; + GtkActionEntry* _tmp102_ = NULL; + gint _tmp102__length1 = 0; + GtkActionEntry _tmp103_ = {0}; + GtkActionEntry actual_size = {0}; + GtkActionEntry _tmp104_ = {0}; + const gchar* _tmp105_ = NULL; + const gchar* _tmp106_ = NULL; + GtkActionEntry* _tmp107_ = NULL; + gint _tmp107__length1 = 0; + GtkActionEntry _tmp108_ = {0}; + GtkActionEntry max_size = {0}; + GtkActionEntry _tmp109_ = {0}; + const gchar* _tmp110_ = NULL; + const gchar* _tmp111_ = NULL; + GtkActionEntry* _tmp112_ = NULL; + gint _tmp112__length1 = 0; + GtkActionEntry _tmp113_ = {0}; + GtkActionEntry* _tmp114_ = NULL; + gint _tmp114__length1 = 0; +#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = PAGE_CLASS (direct_photo_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_); +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + actions = _tmp1_; +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + actions_length1 = _tmp0_; +#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _actions_size_ = actions_length1; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_.name = "FileMenu"; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_.stock_id = NULL; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_.label = TRANSLATABLE; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_.accelerator = NULL; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_.tooltip = NULL; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_.callback = (GCallback) NULL; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + file = _tmp2_; +#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _ ("_File"); +#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + file.label = _tmp3_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = actions; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4__length1 = actions_length1; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = file; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add91 (&actions, &actions_length1, &_actions_size_, &_tmp5_); +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_.name = "Save"; +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_.stock_id = RESOURCES_SAVE_LABEL; +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_.label = TRANSLATABLE; +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_.accelerator = "<Ctrl>S"; +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_.tooltip = TRANSLATABLE; +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_.callback = (GCallback) _direct_photo_page_on_save_gtk_action_callback; +#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save = _tmp6_; +#line 51 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = _ ("_Save"); +#line 51 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save.label = _tmp7_; +#line 52 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = _ ("Save photo"); +#line 52 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save.tooltip = _tmp8_; +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = actions; +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9__length1 = actions_length1; +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = save; +#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add92 (&actions, &actions_length1, &_actions_size_, &_tmp10_); +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_.name = "SaveAs"; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_.stock_id = RESOURCES_SAVE_AS_LABEL; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_.label = TRANSLATABLE; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_.accelerator = "<Ctrl><Shift>S"; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_.tooltip = TRANSLATABLE; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_.callback = (GCallback) _direct_photo_page_on_save_as_gtk_action_callback; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save_as = _tmp11_; +#line 57 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = _ ("Save _As..."); +#line 57 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save_as.label = _tmp12_; +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = _ ("Save photo with a different name"); +#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save_as.tooltip = _tmp13_; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = actions; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14__length1 = actions_length1; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = save_as; +#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add93 (&actions, &actions_length1, &_actions_size_, &_tmp15_); +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_.name = "SendTo"; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_.stock_id = "document-send"; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_.label = TRANSLATABLE; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_.accelerator = NULL; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_.tooltip = TRANSLATABLE; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_.callback = (GCallback) _direct_photo_page_on_send_to_gtk_action_callback; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + send_to = _tmp16_; +#line 63 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + send_to.label = RESOURCES_SEND_TO_MENU; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = actions; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17__length1 = actions_length1; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = send_to; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add94 (&actions, &actions_length1, &_actions_size_, &_tmp18_); +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_.name = "Print"; +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_.stock_id = RESOURCES_PRINT_LABEL; +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_.label = TRANSLATABLE; +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_.accelerator = "<Ctrl>P"; +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_.tooltip = TRANSLATABLE; +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_.callback = (GCallback) _direct_photo_page_on_print_gtk_action_callback; +#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + print = _tmp19_; +#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + print.label = RESOURCES_PRINT_MENU; +#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = _ ("Print the photo to a printer connected to your computer"); +#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + print.tooltip = _tmp20_; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = actions; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21__length1 = actions_length1; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = print; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add95 (&actions, &actions_length1, &_actions_size_, &_tmp22_); +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_.name = "EditMenu"; +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_.stock_id = NULL; +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_.label = TRANSLATABLE; +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_.accelerator = NULL; +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_.tooltip = NULL; +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_.callback = (GCallback) NULL; +#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + edit = _tmp23_; +#line 73 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = _ ("_Edit"); +#line 73 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + edit.label = _tmp24_; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = actions; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25__length1 = actions_length1; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = edit; +#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add96 (&actions, &actions_length1, &_actions_size_, &_tmp26_); +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_.name = "PhotoMenu"; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_.stock_id = NULL; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_.label = ""; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_.accelerator = NULL; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_.tooltip = NULL; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_.callback = (GCallback) NULL; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo = _tmp27_; +#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = _ ("_Photo"); +#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo.label = _tmp28_; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = actions; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29__length1 = actions_length1; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp30_ = photo; +#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add97 (&actions, &actions_length1, &_actions_size_, &_tmp30_); +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_.name = "Tools"; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_.stock_id = NULL; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_.label = TRANSLATABLE; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_.accelerator = NULL; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_.tooltip = NULL; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_.callback = (GCallback) NULL; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + tools = _tmp31_; +#line 81 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp32_ = _ ("T_ools"); +#line 81 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + tools.label = _tmp32_; +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp33_ = actions; +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp33__length1 = actions_length1; +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp34_ = tools; +#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add98 (&actions, &actions_length1, &_actions_size_, &_tmp34_); +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_.name = "PrevPhoto"; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_.stock_id = RESOURCES_PREVIOUS_LABEL; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_.label = TRANSLATABLE; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_.accelerator = NULL; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_.tooltip = TRANSLATABLE; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_.callback = (GCallback) _single_photo_page_on_previous_photo_gtk_action_callback; +#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + prev = _tmp35_; +#line 86 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp36_ = _ ("_Previous Photo"); +#line 86 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + prev.label = _tmp36_; +#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp37_ = _ ("Previous Photo"); +#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + prev.tooltip = _tmp37_; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp38_ = actions; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp38__length1 = actions_length1; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp39_ = prev; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add99 (&actions, &actions_length1, &_actions_size_, &_tmp39_); +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_.name = "NextPhoto"; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_.stock_id = RESOURCES_NEXT_LABEL; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_.label = TRANSLATABLE; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_.accelerator = NULL; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_.tooltip = TRANSLATABLE; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_.callback = (GCallback) _single_photo_page_on_next_photo_gtk_action_callback; +#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + next = _tmp40_; +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp41_ = _ ("_Next Photo"); +#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + next.label = _tmp41_; +#line 93 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp42_ = _ ("Next Photo"); +#line 93 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + next.tooltip = _tmp42_; +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp43_ = actions; +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp43__length1 = actions_length1; +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp44_ = next; +#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add100 (&actions, &actions_length1, &_actions_size_, &_tmp44_); +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_.name = "RotateClockwise"; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_.stock_id = RESOURCES_CLOCKWISE; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_.label = TRANSLATABLE; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_.accelerator = "<Ctrl>R"; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_.tooltip = TRANSLATABLE; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_.callback = (GCallback) _editing_host_page_on_rotate_clockwise_gtk_action_callback; +#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_right = _tmp45_; +#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_right.label = RESOURCES_ROTATE_CW_MENU; +#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_right.tooltip = RESOURCES_ROTATE_CCW_TOOLTIP; +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp46_ = actions; +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp46__length1 = actions_length1; +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp47_ = rotate_right; +#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add101 (&actions, &actions_length1, &_actions_size_, &_tmp47_); +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_.name = "RotateCounterclockwise"; +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_.stock_id = RESOURCES_COUNTERCLOCKWISE; +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_.label = TRANSLATABLE; +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_.accelerator = "<Ctrl><Shift>R"; +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_.tooltip = TRANSLATABLE; +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_.callback = (GCallback) _editing_host_page_on_rotate_counterclockwise_gtk_action_callback; +#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_left = _tmp48_; +#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_left.label = RESOURCES_ROTATE_CCW_MENU; +#line 105 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_left.tooltip = RESOURCES_ROTATE_CCW_TOOLTIP; +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp49_ = actions; +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp49__length1 = actions_length1; +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp50_ = rotate_left; +#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add102 (&actions, &actions_length1, &_actions_size_, &_tmp50_); +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_.name = "FlipHorizontally"; +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_.stock_id = RESOURCES_HFLIP; +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_.label = TRANSLATABLE; +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_.accelerator = NULL; +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_.tooltip = TRANSLATABLE; +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_.callback = (GCallback) _editing_host_page_on_flip_horizontally_gtk_action_callback; +#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + hflip = _tmp51_; +#line 110 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + hflip.label = RESOURCES_HFLIP_MENU; +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp52_ = actions; +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp52__length1 = actions_length1; +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp53_ = hflip; +#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add103 (&actions, &actions_length1, &_actions_size_, &_tmp53_); +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_.name = "FlipVertically"; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_.stock_id = RESOURCES_VFLIP; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_.label = TRANSLATABLE; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_.accelerator = NULL; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_.tooltip = TRANSLATABLE; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_.callback = (GCallback) _editing_host_page_on_flip_vertically_gtk_action_callback; +#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + vflip = _tmp54_; +#line 115 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + vflip.label = RESOURCES_VFLIP_MENU; +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp55_ = actions; +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp55__length1 = actions_length1; +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp56_ = vflip; +#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add104 (&actions, &actions_length1, &_actions_size_, &_tmp56_); +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_.name = "Enhance"; +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_.stock_id = RESOURCES_ENHANCE; +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_.label = TRANSLATABLE; +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_.accelerator = "<Ctrl>E"; +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_.tooltip = TRANSLATABLE; +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_.callback = (GCallback) _editing_host_page_on_enhance_gtk_action_callback; +#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + enhance = _tmp57_; +#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + enhance.label = RESOURCES_ENHANCE_MENU; +#line 121 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + enhance.tooltip = RESOURCES_ENHANCE_TOOLTIP; +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp58_ = actions; +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp58__length1 = actions_length1; +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp59_ = enhance; +#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add105 (&actions, &actions_length1, &_actions_size_, &_tmp59_); +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_.name = "Crop"; +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_.stock_id = RESOURCES_CROP; +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_.label = TRANSLATABLE; +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_.accelerator = "<Ctrl>O"; +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_.tooltip = TRANSLATABLE; +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_.callback = (GCallback) _editing_host_page_toggle_crop_gtk_action_callback; +#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + crop = _tmp60_; +#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + crop.label = RESOURCES_CROP_MENU; +#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + crop.tooltip = RESOURCES_CROP_TOOLTIP; +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp61_ = actions; +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp61__length1 = actions_length1; +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp62_ = crop; +#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add106 (&actions, &actions_length1, &_actions_size_, &_tmp62_); +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_.name = "Straighten"; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_.stock_id = RESOURCES_REFRESH_LABEL; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_.label = TRANSLATABLE; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_.accelerator = "<Ctrl>A"; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_.tooltip = TRANSLATABLE; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_.callback = (GCallback) _editing_host_page_toggle_straighten_gtk_action_callback; +#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + straighten = _tmp63_; +#line 132 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + straighten.label = RESOURCES_STRAIGHTEN_MENU; +#line 133 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + straighten.tooltip = RESOURCES_STRAIGHTEN_TOOLTIP; +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp64_ = actions; +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp64__length1 = actions_length1; +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp65_ = straighten; +#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add107 (&actions, &actions_length1, &_actions_size_, &_tmp65_); +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_.name = "RedEye"; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_.stock_id = RESOURCES_REDEYE; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_.label = TRANSLATABLE; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_.accelerator = "<Ctrl>Y"; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_.tooltip = TRANSLATABLE; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_.callback = (GCallback) _editing_host_page_toggle_redeye_gtk_action_callback; +#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + red_eye = _tmp66_; +#line 138 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + red_eye.label = RESOURCES_RED_EYE_MENU; +#line 139 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + red_eye.tooltip = RESOURCES_RED_EYE_TOOLTIP; +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp67_ = actions; +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp67__length1 = actions_length1; +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp68_ = red_eye; +#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add108 (&actions, &actions_length1, &_actions_size_, &_tmp68_); +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_.name = "Adjust"; +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_.stock_id = RESOURCES_ADJUST; +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_.label = TRANSLATABLE; +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_.accelerator = "<Ctrl>D"; +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_.tooltip = TRANSLATABLE; +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_.callback = (GCallback) _editing_host_page_toggle_adjust_gtk_action_callback; +#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + adjust = _tmp69_; +#line 144 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + adjust.label = RESOURCES_ADJUST_MENU; +#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + adjust.tooltip = RESOURCES_ADJUST_TOOLTIP; +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp70_ = actions; +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp70__length1 = actions_length1; +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp71_ = adjust; +#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add109 (&actions, &actions_length1, &_actions_size_, &_tmp71_); +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_.name = "Revert"; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_.stock_id = RESOURCES_REVERT_LABEL; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_.label = TRANSLATABLE; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_.accelerator = NULL; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_.tooltip = TRANSLATABLE; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_.callback = (GCallback) _editing_host_page_on_revert_gtk_action_callback; +#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + revert = _tmp72_; +#line 150 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + revert.label = RESOURCES_REVERT_MENU; +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp73_ = actions; +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp73__length1 = actions_length1; +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp74_ = revert; +#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add110 (&actions, &actions_length1, &_actions_size_, &_tmp74_); +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp75_.name = "AdjustDateTime"; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp75_.stock_id = NULL; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp75_.label = TRANSLATABLE; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp75_.accelerator = NULL; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp75_.tooltip = TRANSLATABLE; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp75_.callback = (GCallback) _editing_host_page_on_adjust_date_time_gtk_action_callback; +#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + adjust_date_time = _tmp75_; +#line 155 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + adjust_date_time.label = RESOURCES_ADJUST_DATE_TIME_MENU; +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp76_ = actions; +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp76__length1 = actions_length1; +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp77_ = adjust_date_time; +#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add111 (&actions, &actions_length1, &_actions_size_, &_tmp77_); +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp78_.name = "SetBackground"; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp78_.stock_id = NULL; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp78_.label = TRANSLATABLE; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp78_.accelerator = "<Ctrl>B"; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp78_.tooltip = TRANSLATABLE; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp78_.callback = (GCallback) _editing_host_page_on_set_background_gtk_action_callback; +#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + set_background = _tmp78_; +#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + set_background.label = RESOURCES_SET_BACKGROUND_MENU; +#line 161 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + set_background.tooltip = RESOURCES_SET_BACKGROUND_TOOLTIP; +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp79_ = actions; +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp79__length1 = actions_length1; +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp80_ = set_background; +#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add112 (&actions, &actions_length1, &_actions_size_, &_tmp80_); +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp81_.name = "ViewMenu"; +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp81_.stock_id = NULL; +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp81_.label = TRANSLATABLE; +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp81_.accelerator = NULL; +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp81_.tooltip = NULL; +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp81_.callback = (GCallback) NULL; +#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + view = _tmp81_; +#line 165 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp82_ = _ ("_View"); +#line 165 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + view.label = _tmp82_; +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp83_ = actions; +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp83__length1 = actions_length1; +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp84_ = view; +#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add113 (&actions, &actions_length1, &_actions_size_, &_tmp84_); +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp85_.name = "HelpMenu"; +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp85_.stock_id = NULL; +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp85_.label = TRANSLATABLE; +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp85_.accelerator = NULL; +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp85_.tooltip = NULL; +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp85_.callback = (GCallback) NULL; +#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + help = _tmp85_; +#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp86_ = _ ("_Help"); +#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + help.label = _tmp86_; +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp87_ = actions; +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp87__length1 = actions_length1; +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp88_ = help; +#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add114 (&actions, &actions_length1, &_actions_size_, &_tmp88_); +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp89_.name = "IncreaseSize"; +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp89_.stock_id = RESOURCES_ZOOM_IN_LABEL; +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp89_.label = TRANSLATABLE; +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp89_.accelerator = "<Ctrl>plus"; +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp89_.tooltip = TRANSLATABLE; +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp89_.callback = (GCallback) _editing_host_page_on_increase_size_gtk_action_callback; +#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + increase_size = _tmp89_; +#line 174 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp90_ = _ ("Zoom _In"); +#line 174 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + increase_size.label = _tmp90_; +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp91_ = _ ("Increase the magnification of the photo"); +#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + increase_size.tooltip = _tmp91_; +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp92_ = actions; +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp92__length1 = actions_length1; +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp93_ = increase_size; +#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add115 (&actions, &actions_length1, &_actions_size_, &_tmp93_); +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp94_.name = "DecreaseSize"; +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp94_.stock_id = RESOURCES_ZOOM_OUT_LABEL; +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp94_.label = TRANSLATABLE; +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp94_.accelerator = "<Ctrl>minus"; +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp94_.tooltip = TRANSLATABLE; +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp94_.callback = (GCallback) _editing_host_page_on_decrease_size_gtk_action_callback; +#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + decrease_size = _tmp94_; +#line 180 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp95_ = _ ("Zoom _Out"); +#line 180 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + decrease_size.label = _tmp95_; +#line 181 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp96_ = _ ("Decrease the magnification of the photo"); +#line 181 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + decrease_size.tooltip = _tmp96_; +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp97_ = actions; +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp97__length1 = actions_length1; +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp98_ = decrease_size; +#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add116 (&actions, &actions_length1, &_actions_size_, &_tmp98_); +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp99_.name = "ZoomFit"; +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp99_.stock_id = RESOURCES_ZOOM_FIT_LABEL; +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp99_.label = TRANSLATABLE; +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp99_.accelerator = "<Ctrl>0"; +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp99_.tooltip = TRANSLATABLE; +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp99_.callback = (GCallback) _editing_host_page_snap_zoom_to_min_gtk_action_callback; +#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + best_fit = _tmp99_; +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp100_ = _ ("Fit to _Page"); +#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + best_fit.label = _tmp100_; +#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp101_ = _ ("Zoom the photo to fit on the screen"); +#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + best_fit.tooltip = _tmp101_; +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp102_ = actions; +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp102__length1 = actions_length1; +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp103_ = best_fit; +#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add117 (&actions, &actions_length1, &_actions_size_, &_tmp103_); +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp104_.name = "Zoom100"; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp104_.stock_id = RESOURCES_ZOOM_100_LABEL; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp104_.label = TRANSLATABLE; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp104_.accelerator = "<Ctrl>1"; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp104_.tooltip = TRANSLATABLE; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp104_.callback = (GCallback) _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback; +#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + actual_size = _tmp104_; +#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp105_ = _ ("Zoom _100%"); +#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + actual_size.label = _tmp105_; +#line 195 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp106_ = _ ("Zoom the photo to 100% magnification"); +#line 195 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + actual_size.tooltip = _tmp106_; +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp107_ = actions; +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp107__length1 = actions_length1; +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp108_ = actual_size; +#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add118 (&actions, &actions_length1, &_actions_size_, &_tmp108_); +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp109_.name = "Zoom200"; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp109_.stock_id = NULL; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp109_.label = TRANSLATABLE; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp109_.accelerator = "<Ctrl>2"; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp109_.tooltip = TRANSLATABLE; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp109_.callback = (GCallback) _editing_host_page_snap_zoom_to_max_gtk_action_callback; +#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + max_size = _tmp109_; +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp110_ = _ ("Zoom _200%"); +#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + max_size.label = _tmp110_; +#line 203 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp111_ = _ ("Zoom the photo to 200% magnification"); +#line 203 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + max_size.tooltip = _tmp111_; +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp112_ = actions; +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp112__length1 = actions_length1; +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp113_ = max_size; +#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add119 (&actions, &actions_length1, &_actions_size_, &_tmp113_); +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp114_ = actions; +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp114__length1 = actions_length1; +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (result_length1) { +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *result_length1 = _tmp114__length1; +#line 2654 "DirectPhotoPage.c" + } +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp114_; +#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 2660 "DirectPhotoPage.c" +} + + +static gpointer _injection_group_ref0 (gpointer self) { +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return self ? injection_group_ref (self) : NULL; +#line 2667 "DirectPhotoPage.c" +} + + +static void _vala_array_add120 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) { +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (InjectionGroup*, *array, (*size) + 1); +#line 2678 "DirectPhotoPage.c" + } +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = value; +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[*length] = NULL; +#line 2684 "DirectPhotoPage.c" +} + + +static void _vala_array_add121 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) { +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if ((*length) == (*size)) { +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *size = (*size) ? (2 * (*size)) : 4; +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *array = g_renew (InjectionGroup*, *array, (*size) + 1); +#line 2695 "DirectPhotoPage.c" + } +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[(*length)++] = value; +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + (*array)[*length] = NULL; +#line 2701 "DirectPhotoPage.c" +} + + +static InjectionGroup** direct_photo_page_real_init_collect_injection_groups (Page* base, int* result_length1) { + DirectPhotoPage * self; + InjectionGroup** result = NULL; + InjectionGroup** groups = NULL; + gint _tmp0_ = 0; + InjectionGroup** _tmp1_ = NULL; + gint groups_length1 = 0; + gint _groups_size_ = 0; + InjectionGroup* print_group = NULL; + InjectionGroup* _tmp2_ = NULL; + InjectionGroup** _tmp3_ = NULL; + gint _tmp3__length1 = 0; + InjectionGroup* _tmp4_ = NULL; + InjectionGroup* bg_group = NULL; + InjectionGroup* _tmp5_ = NULL; + InjectionGroup** _tmp6_ = NULL; + gint _tmp6__length1 = 0; + InjectionGroup* _tmp7_ = NULL; + InjectionGroup** _tmp8_ = NULL; + gint _tmp8__length1 = 0; +#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = PAGE_CLASS (direct_photo_page_parent_class)->init_collect_injection_groups (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_); +#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + groups = _tmp1_; +#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + groups_length1 = _tmp0_; +#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _groups_size_ = groups_length1; +#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = injection_group_new ("/MenuBar/FileMenu/PrintPlaceholder"); +#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + print_group = _tmp2_; +#line 213 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + injection_group_add_menu_item (print_group, "Print", NULL); +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = groups; +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3__length1 = groups_length1; +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = _injection_group_ref0 (print_group); +#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add120 (&groups, &groups_length1, &_groups_size_, _tmp4_); +#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = injection_group_new ("/MenuBar/FileMenu/SetBackgroundPlaceholder"); +#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + bg_group = _tmp5_; +#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + injection_group_add_menu_item (bg_group, "SetBackground", NULL); +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = groups; +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6__length1 = groups_length1; +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = _injection_group_ref0 (bg_group); +#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _vala_array_add121 (&groups, &groups_length1, &_groups_size_, _tmp7_); +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = groups; +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8__length1 = groups_length1; +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (result_length1) { +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + *result_length1 = _tmp8__length1; +#line 2771 "DirectPhotoPage.c" + } +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp8_; +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _injection_group_unref0 (bg_group); +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _injection_group_unref0 (print_group); +#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 2781 "DirectPhotoPage.c" +} + + +static gboolean direct_photo_page_check_editable_file (GFile* file) { + gboolean result = FALSE; + GFile* _tmp0_ = NULL; + gchar* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; + gboolean _tmp4_ = FALSE; +#line 225 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (G_IS_FILE (file), FALSE); +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = file; +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = g_file_get_path (_tmp0_); +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = _tmp1_; +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = g_file_test (_tmp2_, G_FILE_TEST_EXISTS); +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = !_tmp3_; +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp2_); +#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp4_) { +#line 2808 "DirectPhotoPage.c" + const gchar* _tmp5_ = NULL; + GFile* _tmp6_ = NULL; + gchar* _tmp7_ = NULL; + gchar* _tmp8_ = NULL; + gchar* _tmp9_ = NULL; + gchar* _tmp10_ = NULL; +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = _ ("%s does not exist."); +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = file; +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = g_file_get_path (_tmp6_); +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = _tmp7_; +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = g_strdup_printf (_tmp5_, _tmp8_); +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = _tmp9_; +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + app_window_error_message (_tmp10_, NULL); +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp10_); +#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp8_); +#line 2833 "DirectPhotoPage.c" + } else { + GFile* _tmp11_ = NULL; + gchar* _tmp12_ = NULL; + gchar* _tmp13_ = NULL; + gboolean _tmp14_ = FALSE; + gboolean _tmp15_ = FALSE; +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = file; +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = g_file_get_path (_tmp11_); +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = _tmp12_; +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = g_file_test (_tmp13_, G_FILE_TEST_IS_REGULAR); +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = !_tmp14_; +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp13_); +#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp15_) { +#line 2854 "DirectPhotoPage.c" + const gchar* _tmp16_ = NULL; + GFile* _tmp17_ = NULL; + gchar* _tmp18_ = NULL; + gchar* _tmp19_ = NULL; + gchar* _tmp20_ = NULL; + gchar* _tmp21_ = NULL; +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = _ ("%s is not a file."); +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = file; +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = g_file_get_path (_tmp17_); +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = _tmp18_; +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = g_strdup_printf (_tmp16_, _tmp19_); +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = _tmp20_; +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + app_window_error_message (_tmp21_, NULL); +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp21_); +#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp19_); +#line 2879 "DirectPhotoPage.c" + } else { + GFile* _tmp22_ = NULL; + gboolean _tmp23_ = FALSE; +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = file; +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = photo_file_format_is_file_supported (_tmp22_); +#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp23_) { +#line 2889 "DirectPhotoPage.c" + const gchar* _tmp24_ = NULL; + GFile* _tmp25_ = NULL; + gchar* _tmp26_ = NULL; + gchar* _tmp27_ = NULL; + gchar* _tmp28_ = NULL; + gchar* _tmp29_ = NULL; +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = _ ("%s does not support the file format of\n%s."); +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = file; +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = g_file_get_path (_tmp25_); +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_ = _tmp26_; +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = g_strdup_printf (_tmp24_, RESOURCES_APP_TITLE, _tmp27_); +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = _tmp28_; +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + app_window_error_message (_tmp29_, NULL); +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp29_); +#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp27_); +#line 2914 "DirectPhotoPage.c" + } else { +#line 234 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 234 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 2920 "DirectPhotoPage.c" + } + } + } +#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = FALSE; +#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 2928 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_realize (GtkWidget* base) { + DirectPhotoPage * self; + DirectPhoto* photo = NULL; + DirectPhotoSourceCollection* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + DirectPhoto* _tmp2_ = NULL; + DirectPhoto* _tmp3_ = NULL; +#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 240 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (GTK_WIDGET_CLASS (direct_photo_page_parent_class)->realize != NULL) { +#line 241 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + GTK_WIDGET_CLASS (direct_photo_page_parent_class)->realize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), gtk_widget_get_type (), GtkWidget)); +#line 2945 "DirectPhotoPage.c" + } +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = direct_photo_global; +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = self->priv->initial_file; +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = direct_photo_source_collection_get_file_source (_tmp0_, _tmp1_); +#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo = _tmp2_; +#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = photo; +#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp3_ != NULL) { +#line 2959 "DirectPhotoPage.c" + DirectViewCollection* _tmp4_ = NULL; + DirectPhoto* _tmp5_ = NULL; +#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = self->priv->view_controller; +#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = photo; +#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_display_mirror_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO, Photo)); +#line 2968 "DirectPhotoPage.c" + } else { + const gchar* _tmp6_ = NULL; + GFile* _tmp7_ = NULL; + gchar* _tmp8_ = NULL; + gchar* _tmp9_ = NULL; + gchar* _tmp10_ = NULL; + gchar* _tmp11_ = NULL; +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = _ ("Unable open photo %s. Sorry."); +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = self->priv->initial_file; +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = g_file_get_path (_tmp7_); +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = _tmp8_; +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = g_strdup_printf (_tmp6_, _tmp9_); +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = _tmp10_; +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + app_window_panic (_tmp11_); +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp11_); +#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp9_); +#line 2994 "DirectPhotoPage.c" + } +#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self->priv->initial_file); +#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->initial_file = NULL; +#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (photo); +#line 3002 "DirectPhotoPage.c" +} + + +static void _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed (DirectPhoto* _sender, gboolean b, gpointer self) { +#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_dphoto_can_rotate_changed ((DirectPhotoPage*) self, b); +#line 3009 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_photo_changing (EditingHostPage* base, Photo* new_photo) { + DirectPhotoPage * self; + Photo* _tmp0_ = NULL; + Photo* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; + Photo* _tmp8_ = NULL; + DirectPhoto* tmp = NULL; + Photo* _tmp9_ = NULL; + DirectPhoto* _tmp10_ = NULL; + DirectPhoto* _tmp11_ = NULL; +#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_PHOTO (new_photo)); +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_; +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = _tmp1_ != NULL; +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp1_); +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp2_) { +#line 3037 "DirectPhotoPage.c" + DirectPhoto* tmp = NULL; + Photo* _tmp3_ = NULL; + DirectPhoto* _tmp4_ = NULL; + DirectPhoto* _tmp5_ = NULL; +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_DIRECT_PHOTO) ? ((DirectPhoto*) _tmp3_) : NULL; +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp4_ == NULL) { +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp3_); +#line 3050 "DirectPhotoPage.c" + } +#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + tmp = _tmp4_; +#line 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = tmp; +#line 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp5_ != NULL) { +#line 3058 "DirectPhotoPage.c" + DirectPhoto* _tmp6_ = NULL; + guint _tmp7_ = 0U; +#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = tmp; +#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_parse_name ("can-rotate-changed", TYPE_DIRECT_PHOTO, &_tmp7_, NULL, FALSE); +#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed, self); +#line 3067 "DirectPhotoPage.c" + } +#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (tmp); +#line 3071 "DirectPhotoPage.c" + } +#line 263 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = new_photo; +#line 263 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_demand_load (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DIRECT_PHOTO, DirectPhoto)); +#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = new_photo; +#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_DIRECT_PHOTO) ? ((DirectPhoto*) _tmp9_) : NULL); +#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + tmp = _tmp10_; +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = tmp; +#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp11_ != NULL) { +#line 3087 "DirectPhotoPage.c" + DirectPhoto* _tmp12_ = NULL; +#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = tmp; +#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_connect_object (_tmp12_, "can-rotate-changed", (GCallback) _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed, self, 0); +#line 3093 "DirectPhotoPage.c" + } +#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (tmp); +#line 3097 "DirectPhotoPage.c" +} + + +GFile* direct_photo_page_get_current_file (DirectPhotoPage* self) { + GFile* result = NULL; + Photo* _tmp0_ = NULL; + Photo* _tmp1_ = NULL; + GFile* _tmp2_ = NULL; + GFile* _tmp3_ = NULL; +#line 272 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), NULL); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_; +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_; +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp1_); +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp3_; +#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3123 "DirectPhotoPage.c" +} + + +static gboolean direct_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event) { + DirectPhotoPage * self; + gboolean result = FALSE; + GtkMenu* context_menu = NULL; + GtkUIManager* _tmp0_ = NULL; + GtkWidget* _tmp1_ = NULL; + GtkMenu* _tmp2_ = NULL; + GdkEventButton* _tmp3_ = NULL; +#line 276 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 276 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui; +#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = gtk_ui_manager_get_widget (_tmp0_, "/DirectContextMenu"); +#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_menu_get_type (), GtkMenu)); +#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + context_menu = _tmp2_; +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = event; +#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), context_menu, _tmp3_); +#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (context_menu); +#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3157 "DirectPhotoPage.c" +} + + +static void direct_photo_page_update_zoom_menu_item_sensitivity (DirectPhotoPage* self) { + gboolean _tmp0_ = FALSE; + ZoomState _tmp1_ = {0}; + gboolean _tmp2_ = FALSE; + gboolean _tmp4_ = FALSE; + ZoomState _tmp5_ = {0}; + gboolean _tmp6_ = FALSE; +#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_); +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = zoom_state_is_max (&_tmp1_); +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp2_) { +#line 3176 "DirectPhotoPage.c" + gboolean _tmp3_ = FALSE; +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = !_tmp3_; +#line 3182 "DirectPhotoPage.c" + } else { +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = FALSE; +#line 3186 "DirectPhotoPage.c" + } +#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp0_); +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp5_); +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = zoom_state_is_default (&_tmp5_); +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp6_) { +#line 3196 "DirectPhotoPage.c" + gboolean _tmp7_ = FALSE; +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = !_tmp7_; +#line 3202 "DirectPhotoPage.c" + } else { +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = FALSE; +#line 3206 "DirectPhotoPage.c" + } +#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp4_); +#line 3210 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_on_increase_size (EditingHostPage* base) { + DirectPhotoPage * self; +#line 288 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->on_increase_size (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 291 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_update_zoom_menu_item_sensitivity (self); +#line 3222 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_on_decrease_size (EditingHostPage* base) { + DirectPhotoPage * self; +#line 294 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 295 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->on_decrease_size (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 297 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_update_zoom_menu_item_sensitivity (self); +#line 3234 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_photos_altered (DirectPhotoPage* self, GeeMap* map) { + gboolean contains = FALSE; + gboolean _tmp0_ = FALSE; + gboolean _tmp14_ = FALSE; + gboolean _tmp15_ = FALSE; + gboolean sensitive = FALSE; + gboolean _tmp17_ = FALSE; + gboolean _tmp19_ = FALSE; + gboolean _tmp20_ = FALSE; + gboolean _tmp25_ = FALSE; +#line 300 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 300 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (GEE_IS_MAP (map)); +#line 301 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + contains = FALSE; +#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp0_) { +#line 3258 "DirectPhotoPage.c" + Photo* photo = NULL; + Photo* _tmp1_ = NULL; +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo = _tmp1_; +#line 3265 "DirectPhotoPage.c" + { + GeeIterator* _object_it = NULL; + GeeMap* _tmp2_ = NULL; + GeeSet* _tmp3_ = NULL; + GeeSet* _tmp4_ = NULL; + GeeSet* _tmp5_ = NULL; + GeeIterator* _tmp6_ = NULL; + GeeIterator* _tmp7_ = NULL; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = map; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = gee_map_get_keys (_tmp2_); +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = _tmp3_; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = _tmp4_; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = _tmp6_; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp5_); +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _object_it = _tmp7_; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + while (TRUE) { +#line 3292 "DirectPhotoPage.c" + GeeIterator* _tmp8_ = NULL; + gboolean _tmp9_ = FALSE; + DataObject* object = NULL; + GeeIterator* _tmp10_ = NULL; + gpointer _tmp11_ = NULL; + DataObject* _tmp12_ = NULL; + Photo* _tmp13_ = NULL; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = _object_it; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = gee_iterator_next (_tmp8_); +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp9_) { +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + break; +#line 3308 "DirectPhotoPage.c" + } +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = _object_it; +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = gee_iterator_get (_tmp10_); +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + object = (DataObject*) _tmp11_; +#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = object; +#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = photo; +#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO, Photo) == _tmp13_) { +#line 306 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + contains = TRUE; +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (object); +#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + break; +#line 3328 "DirectPhotoPage.c" + } +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (object); +#line 3332 "DirectPhotoPage.c" + } +#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_object_it); +#line 3336 "DirectPhotoPage.c" + } +#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (photo); +#line 3340 "DirectPhotoPage.c" + } +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp15_) { +#line 3346 "DirectPhotoPage.c" + gboolean _tmp16_ = FALSE; +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = !_tmp16_; +#line 3352 "DirectPhotoPage.c" + } else { +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = FALSE; +#line 3356 "DirectPhotoPage.c" + } +#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + sensitive = _tmp14_; +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = sensitive; +#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp17_) { +#line 3364 "DirectPhotoPage.c" + gboolean _tmp18_ = FALSE; +#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = contains; +#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + sensitive = _tmp18_; +#line 3370 "DirectPhotoPage.c" + } +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = sensitive; +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp20_) { +#line 3376 "DirectPhotoPage.c" + Photo* _tmp21_ = NULL; + Photo* _tmp22_ = NULL; + PhotoFileFormat _tmp23_ = 0; + gboolean _tmp24_ = FALSE; +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = _tmp21_; +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = photo_get_file_format (_tmp22_); +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = photo_file_format_can_write (_tmp23_); +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = _tmp24_; +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp22_); +#line 3393 "DirectPhotoPage.c" + } else { +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = FALSE; +#line 3397 "DirectPhotoPage.c" + } +#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Save", _tmp19_); +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = sensitive; +#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp25_); +#line 3405 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_selection_group_altered (DirectPhotoPage* self) { + CommandManager* _tmp0_ = NULL; + CommandManager* _tmp1_ = NULL; +#line 321 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_; +#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + command_manager_reset (_tmp1_); +#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _command_manager_unref0 (_tmp1_); +#line 3422 "DirectPhotoPage.c" +} + + +static gboolean direct_photo_page_real_on_double_click (EditingHostPage* base, GdkEventButton* event) { + DirectPhotoPage * self; + gboolean result = FALSE; + FullscreenWindow* fs = NULL; + GtkWindow* _tmp0_ = NULL; + FullscreenWindow* _tmp1_ = NULL; + FullscreenWindow* _tmp2_ = NULL; + GdkEventButton* _tmp4_ = NULL; + gboolean _tmp5_ = FALSE; +#line 331 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 331 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FULLSCREEN_WINDOW) ? ((FullscreenWindow*) _tmp0_) : NULL; +#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp1_ == NULL) { +#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp0_); +#line 3447 "DirectPhotoPage.c" + } +#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + fs = _tmp1_; +#line 333 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = fs; +#line 333 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp2_ != NULL) { +#line 3455 "DirectPhotoPage.c" + FullscreenWindow* _tmp3_ = NULL; +#line 334 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = fs; +#line 334 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + fullscreen_window_close (_tmp3_); +#line 336 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 336 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (fs); +#line 336 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3467 "DirectPhotoPage.c" + } +#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = event; +#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->on_double_click (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp4_); +#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp5_; +#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (fs); +#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3479 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_update_ui (EditingHostPage* base, gboolean missing) { + DirectPhotoPage * self; + gboolean sensitivity = FALSE; + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; + gboolean _tmp4_ = FALSE; + gboolean _tmp5_ = FALSE; + gboolean _tmp6_ = FALSE; + gboolean _tmp7_ = FALSE; + gboolean _tmp8_ = FALSE; + gboolean _tmp9_ = FALSE; + gboolean _tmp10_ = FALSE; + gboolean _tmp11_ = FALSE; + gboolean _tmp12_ = FALSE; + gboolean _tmp13_ = FALSE; + gboolean _tmp14_ = FALSE; + gboolean _tmp15_ = FALSE; + gboolean _tmp16_ = FALSE; + gboolean _tmp17_ = FALSE; + gboolean _tmp18_ = FALSE; + gboolean _tmp19_ = FALSE; + gboolean _tmp20_ = FALSE; + gboolean _tmp21_ = FALSE; + gboolean _tmp22_ = FALSE; + gboolean _tmp23_ = FALSE; + gboolean _tmp24_ = FALSE; + gboolean _tmp25_ = FALSE; + gboolean _tmp26_ = FALSE; + gboolean _tmp27_ = FALSE; + gboolean _tmp29_ = FALSE; +#line 342 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = missing; +#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + sensitivity = !_tmp0_; +#line 345 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = sensitivity; +#line 345 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Save", _tmp1_); +#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = sensitivity; +#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SaveAs", _tmp2_); +#line 347 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = sensitivity; +#line 347 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SendTo", _tmp3_); +#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = sensitivity; +#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", _tmp4_); +#line 349 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = sensitivity; +#line 349 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Print", _tmp5_); +#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = sensitivity; +#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonJumpToFile", _tmp6_); +#line 352 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = sensitivity; +#line 352 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonUndo", _tmp7_); +#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = sensitivity; +#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonRedo", _tmp8_); +#line 355 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = sensitivity; +#line 355 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp9_); +#line 356 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = sensitivity; +#line 356 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp10_); +#line 357 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = sensitivity; +#line 357 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ZoomFit", _tmp11_); +#line 358 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = sensitivity; +#line 358 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom100", _tmp12_); +#line 359 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = sensitivity; +#line 359 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom200", _tmp13_); +#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = sensitivity; +#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp14_); +#line 362 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = sensitivity; +#line 362 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp15_); +#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = sensitivity; +#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp16_); +#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = sensitivity; +#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp17_); +#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = sensitivity; +#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp18_); +#line 366 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = sensitivity; +#line 366 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp19_); +#line 367 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = sensitivity; +#line 367 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Straighten", _tmp20_); +#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = sensitivity; +#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp21_); +#line 369 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = sensitivity; +#line 369 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Adjust", _tmp22_); +#line 370 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = sensitivity; +#line 370 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp23_); +#line 371 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = sensitivity; +#line 371 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", _tmp24_); +#line 372 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = sensitivity; +#line 372 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Fullscreen", _tmp25_); +#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp27_) { +#line 3625 "DirectPhotoPage.c" + gboolean _tmp28_ = FALSE; +#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = !_tmp28_; +#line 3631 "DirectPhotoPage.c" + } else { +#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = FALSE; +#line 3635 "DirectPhotoPage.c" + } +#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp26_); +#line 376 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = missing; +#line 376 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->update_ui (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp29_); +#line 3643 "DirectPhotoPage.c" +} + + +static void direct_photo_page_real_update_actions (Page* base, gint selected_count, gint count) { + DirectPhotoPage * self; + gboolean multiple = FALSE; + ViewCollection* _tmp0_ = NULL; + ViewCollection* _tmp1_ = NULL; + gint _tmp2_ = 0; + gboolean _tmp3_ = FALSE; + gboolean _tmp4_ = FALSE; + gboolean _tmp5_ = FALSE; + gboolean revert_possible = FALSE; + gboolean _tmp12_ = FALSE; + gboolean _tmp13_ = FALSE; + gboolean rotate_possible = FALSE; + gboolean _tmp17_ = FALSE; + gboolean _tmp18_ = FALSE; + gboolean enhance_possible = FALSE; + gboolean _tmp22_ = FALSE; + gboolean _tmp23_ = FALSE; + gboolean _tmp24_ = FALSE; + gboolean _tmp25_ = FALSE; + gboolean _tmp26_ = FALSE; + gboolean _tmp27_ = FALSE; + gboolean _tmp28_ = FALSE; + gboolean _tmp29_ = FALSE; + gboolean _tmp30_ = FALSE; + gboolean _tmp31_ = FALSE; + Photo* _tmp40_ = NULL; + Photo* _tmp41_ = NULL; + gboolean _tmp42_ = FALSE; + gint _tmp46_ = 0; + gint _tmp47_ = 0; +#line 379 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_; +#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection)); +#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_ > 1; +#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (_tmp1_); +#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + multiple = _tmp3_; +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp5_) { +#line 3696 "DirectPhotoPage.c" + gboolean _tmp6_ = FALSE; + Photo* _tmp7_ = NULL; + Photo* _tmp8_ = NULL; + gboolean _tmp9_ = FALSE; + gboolean _tmp10_ = FALSE; +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = _tmp7_; +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = photo_has_transformations (_tmp8_); +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = _tmp9_; +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp8_); +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp10_) { +#line 3714 "DirectPhotoPage.c" + gboolean _tmp11_ = FALSE; +#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = !_tmp11_; +#line 3720 "DirectPhotoPage.c" + } else { +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = FALSE; +#line 3724 "DirectPhotoPage.c" + } +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = _tmp6_; +#line 3728 "DirectPhotoPage.c" + } else { +#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = FALSE; +#line 3732 "DirectPhotoPage.c" + } +#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + revert_possible = _tmp4_; +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp13_) { +#line 3740 "DirectPhotoPage.c" + Photo* _tmp14_ = NULL; + Photo* _tmp15_ = NULL; + gboolean _tmp16_ = FALSE; +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = _tmp14_; +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = editing_host_page_is_rotate_available (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp15_); +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = _tmp16_; +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp15_); +#line 3754 "DirectPhotoPage.c" + } else { +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = FALSE; +#line 3758 "DirectPhotoPage.c" + } +#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + rotate_possible = _tmp12_; +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp18_) { +#line 3766 "DirectPhotoPage.c" + Photo* _tmp19_ = NULL; + Photo* _tmp20_ = NULL; + gboolean _tmp21_ = FALSE; +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = _tmp19_; +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = editing_host_page_is_enhance_available (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp20_); +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = _tmp21_; +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp20_); +#line 3780 "DirectPhotoPage.c" + } else { +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = FALSE; +#line 3784 "DirectPhotoPage.c" + } +#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + enhance_possible = _tmp17_; +#line 386 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = multiple; +#line 386 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PrevPhoto", _tmp22_); +#line 387 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = multiple; +#line 387 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "NextPhoto", _tmp23_); +#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = rotate_possible; +#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp24_); +#line 389 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = rotate_possible; +#line 389 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp25_); +#line 390 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = rotate_possible; +#line 390 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp26_); +#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_ = rotate_possible; +#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp27_); +#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = revert_possible; +#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp28_); +#line 393 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = enhance_possible; +#line 393 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp29_); +#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp30_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp30_); +#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp31_) { +#line 3828 "DirectPhotoPage.c" + Photo* _tmp32_ = NULL; + Photo* _tmp33_ = NULL; + Scaling _tmp34_ = {0}; + gboolean _tmp35_ = FALSE; + Photo* _tmp36_ = NULL; + Photo* _tmp37_ = NULL; + Scaling _tmp38_ = {0}; + gboolean _tmp39_ = FALSE; +#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp32_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp33_ = _tmp32_; +#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + scaling_for_original (&_tmp34_); +#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_ = editing_tools_crop_tool_is_available (_tmp33_, &_tmp34_); +#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp35_); +#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp33_); +#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp36_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp37_ = _tmp36_; +#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + scaling_for_original (&_tmp38_); +#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp39_ = editing_tools_redeye_tool_is_available (_tmp37_, &_tmp38_); +#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp39_); +#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp37_); +#line 3861 "DirectPhotoPage.c" + } +#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp41_ = _tmp40_; +#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp42_ = _tmp41_ != NULL; +#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp41_); +#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp42_) { +#line 3873 "DirectPhotoPage.c" + Photo* _tmp43_ = NULL; + Photo* _tmp44_ = NULL; + PhotoFileFormat _tmp45_ = 0; +#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp43_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp44_ = _tmp43_; +#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_ = photo_get_file_format (_tmp44_); +#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", _tmp45_ != PHOTO_FILE_FORMAT_RAW); +#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp44_); +#line 3887 "DirectPhotoPage.c" + } else { +#line 408 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", FALSE); +#line 3891 "DirectPhotoPage.c" + } +#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp46_ = selected_count; +#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp47_ = count; +#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + PAGE_CLASS (direct_photo_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp46_, _tmp47_); +#line 3899 "DirectPhotoPage.c" +} + + +static gboolean direct_photo_page_check_ok_to_close_photo (DirectPhotoPage* self, Photo* photo) { + gboolean result = FALSE; + Photo* _tmp0_ = NULL; + Photo* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; + gboolean is_writeable = FALSE; + Photo* _tmp5_ = NULL; + Photo* _tmp6_ = NULL; + PhotoFileFormat _tmp7_ = 0; + gboolean _tmp8_ = FALSE; + gboolean _tmp9_ = FALSE; + const gchar* _tmp10_ = NULL; + gboolean _tmp11_ = FALSE; + gchar* save_option = NULL; + gchar* _tmp14_ = NULL; + GtkResponseType response = 0; + const gchar* _tmp15_ = NULL; + Photo* _tmp16_ = NULL; + gchar* _tmp17_ = NULL; + gchar* _tmp18_ = NULL; + gchar* _tmp19_ = NULL; + gchar* _tmp20_ = NULL; + const gchar* _tmp21_ = NULL; + const gchar* _tmp22_ = NULL; + GtkResponseType _tmp23_ = 0; + GtkResponseType _tmp24_ = 0; + GtkResponseType _tmp25_ = 0; +#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), FALSE); +#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail ((photo == NULL) || IS_PHOTO (photo), FALSE); +#line 417 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = photo; +#line 417 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp0_ == NULL) { +#line 418 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 418 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3943 "DirectPhotoPage.c" + } +#line 420 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = photo; +#line 420 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = photo_has_alterations (_tmp1_); +#line 420 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp2_) { +#line 421 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 421 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3955 "DirectPhotoPage.c" + } +#line 423 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = self->priv->drop_if_dirty; +#line 423 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp3_) { +#line 3961 "DirectPhotoPage.c" + Photo* _tmp4_ = NULL; +#line 426 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = photo; +#line 426 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo_remove_all_transformations (_tmp4_); +#line 428 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 428 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 3971 "DirectPhotoPage.c" + } +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = _tmp5_; +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = photo_get_file_format (_tmp6_); +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = photo_file_format_can_write (_tmp7_); +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = _tmp8_; +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp6_); +#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + is_writeable = _tmp9_; +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = is_writeable; +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp11_) { +#line 3991 "DirectPhotoPage.c" + const gchar* _tmp12_ = NULL; +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = _ ("_Save"); +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = _tmp12_; +#line 3997 "DirectPhotoPage.c" + } else { + const gchar* _tmp13_ = NULL; +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = _ ("_Save a Copy"); +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = _tmp13_; +#line 4004 "DirectPhotoPage.c" + } +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = g_strdup (_tmp10_); +#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save_option = _tmp14_; +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = _ ("Lose changes to %s?"); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = photo; +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = media_source_get_basename (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = _tmp17_; +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = g_strdup_printf (_tmp15_, _tmp18_); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = _tmp19_; +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = save_option; +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = _ ("Close _without Saving"); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = app_window_negate_affirm_cancel_question (_tmp20_, _tmp21_, _tmp22_, NULL, NULL); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = _tmp23_; +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp20_); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp18_); +#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + response = _tmp24_; +#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = response; +#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp25_ == GTK_RESPONSE_YES) { +#line 4040 "DirectPhotoPage.c" + Photo* _tmp26_ = NULL; +#line 439 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = photo; +#line 439 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo_remove_all_transformations (_tmp26_); +#line 4046 "DirectPhotoPage.c" + } else { + GtkResponseType _tmp27_ = 0; +#line 440 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_ = response; +#line 440 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp27_ == GTK_RESPONSE_NO) { +#line 4053 "DirectPhotoPage.c" + gboolean _tmp28_ = FALSE; +#line 441 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = is_writeable; +#line 441 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp28_) { +#line 4059 "DirectPhotoPage.c" + Photo* _tmp29_ = NULL; + GFile* _tmp30_ = NULL; + GFile* _tmp31_ = NULL; + Photo* _tmp32_ = NULL; + Photo* _tmp33_ = NULL; + PhotoFileFormat _tmp34_ = 0; +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = photo; +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp30_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_ = _tmp30_; +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp32_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp33_ = _tmp32_; +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp34_ = photo_get_file_format (_tmp33_); +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_save (self, _tmp31_, 0, SCALE_CONSTRAINT_ORIGINAL, JPEG_QUALITY_HIGH, _tmp34_, FALSE, TRUE); +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp33_); +#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp31_); +#line 4084 "DirectPhotoPage.c" + } else { +#line 445 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_on_save_as (self); +#line 4088 "DirectPhotoPage.c" + } + } else { + gboolean _tmp35_ = FALSE; + gboolean _tmp36_ = FALSE; + GtkResponseType _tmp37_ = 0; +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp37_ = response; +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp37_ == GTK_RESPONSE_CANCEL) { +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp36_ = TRUE; +#line 4100 "DirectPhotoPage.c" + } else { + GtkResponseType _tmp38_ = 0; +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp38_ = response; +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp36_ = _tmp38_ == GTK_RESPONSE_DELETE_EVENT; +#line 4107 "DirectPhotoPage.c" + } +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp36_) { +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_ = TRUE; +#line 4113 "DirectPhotoPage.c" + } else { + GtkResponseType _tmp39_ = 0; +#line 447 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp39_ = response; +#line 447 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_ = _tmp39_ == GTK_RESPONSE_CLOSE; +#line 4120 "DirectPhotoPage.c" + } +#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp35_) { +#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = FALSE; +#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (save_option); +#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 4130 "DirectPhotoPage.c" + } + } + } +#line 451 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = TRUE; +#line 451 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (save_option); +#line 451 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 4140 "DirectPhotoPage.c" +} + + +gboolean direct_photo_page_check_quit (DirectPhotoPage* self) { + gboolean result = FALSE; + Photo* _tmp0_ = NULL; + Photo* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; +#line 454 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), FALSE); +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_; +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = direct_photo_page_check_ok_to_close_photo (self, _tmp1_); +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_; +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp1_); +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp3_; +#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 4166 "DirectPhotoPage.c" +} + + +static gboolean direct_photo_page_real_confirm_replace_photo (EditingHostPage* base, Photo* old_photo, Photo* new_photo) { + DirectPhotoPage * self; + gboolean result = FALSE; + gboolean _tmp0_ = FALSE; + Photo* _tmp1_ = NULL; +#line 458 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 458 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail ((old_photo == NULL) || IS_PHOTO (old_photo), FALSE); +#line 458 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (IS_PHOTO (new_photo), FALSE); +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = old_photo; +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp1_ != NULL) { +#line 4185 "DirectPhotoPage.c" + Photo* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = old_photo; +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = direct_photo_page_check_ok_to_close_photo (self, _tmp2_); +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = _tmp3_; +#line 4194 "DirectPhotoPage.c" + } else { +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = TRUE; +#line 4198 "DirectPhotoPage.c" + } +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp0_; +#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 4204 "DirectPhotoPage.c" +} + + +static void direct_photo_page_save (DirectPhotoPage* self, GFile* dest, gint scale, ScaleConstraint constraint, JpegQuality quality, PhotoFileFormat format, gboolean copy_unmodified, gboolean save_metadata) { + Scaling scaling = {0}; + ScaleConstraint _tmp0_ = 0; + gint _tmp1_ = 0; + Scaling _tmp2_ = {0}; + DirectPhoto* photo = NULL; + DirectPhotoSourceCollection* _tmp19_ = NULL; + GFile* _tmp20_ = NULL; + DirectPhoto* _tmp21_ = NULL; + gchar* _tmp22_ = NULL; + gchar* _tmp23_ = NULL; + DirectView* tmp_view = NULL; + DirectPhoto* _tmp24_ = NULL; + DirectView* _tmp25_ = NULL; + DirectViewCollection* _tmp26_ = NULL; + DirectView* _tmp27_ = NULL; + DirectPhotoSourceCollection* _tmp28_ = NULL; + DirectPhoto* _tmp29_ = NULL; + DirectViewCollection* _tmp30_ = NULL; + DirectPhoto* _tmp31_ = NULL; + GError * _inner_error_ = NULL; +#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (G_IS_FILE (dest)); +#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = constraint; +#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = scale; +#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + scaling_for_constraint (_tmp0_, _tmp1_, FALSE, &_tmp2_); +#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + scaling = _tmp2_; +#line 4241 "DirectPhotoPage.c" + { + Photo* _tmp3_ = NULL; + Photo* _tmp4_ = NULL; + GFile* _tmp5_ = NULL; + Scaling _tmp6_ = {0}; + JpegQuality _tmp7_ = 0; + PhotoFileFormat _tmp8_ = 0; + gboolean _tmp9_ = FALSE; + gboolean _tmp10_ = FALSE; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = _tmp3_; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = dest; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = scaling; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = quality; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = format; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = copy_unmodified; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = save_metadata; +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo_export (_tmp4_, _tmp5_, &_tmp6_, _tmp7_, _tmp8_, _tmp9_, _tmp10_, &_inner_error_); +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp4_); +#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 4273 "DirectPhotoPage.c" + goto __catch45_g_error; + } + } + goto __finally45; + __catch45_g_error: + { + GError* err = NULL; + const gchar* _tmp11_ = NULL; + GFile* _tmp12_ = NULL; + gchar* _tmp13_ = NULL; + gchar* _tmp14_ = NULL; + GError* _tmp15_ = NULL; + const gchar* _tmp16_ = NULL; + gchar* _tmp17_ = NULL; + gchar* _tmp18_ = NULL; +#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + err = _inner_error_; +#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _inner_error_ = NULL; +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = _ ("Error while saving to %s: %s"); +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = dest; +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = g_file_get_path (_tmp12_); +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = _tmp13_; +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = err; +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = _tmp15_->message; +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = g_strdup_printf (_tmp11_, _tmp14_, _tmp16_); +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = _tmp17_; +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + app_window_error_message (_tmp18_, NULL); +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp18_); +#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp14_); +#line 472 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_error_free0 (err); +#line 472 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return; +#line 4319 "DirectPhotoPage.c" + } + __finally45: +#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.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 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_clear_error (&_inner_error_); +#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return; +#line 4330 "DirectPhotoPage.c" + } +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = direct_photo_global; +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp20_ = dest; +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = direct_photo_source_collection_fetch (_tmp19_, _tmp20_, &_tmp21_, TRUE); +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (photo); +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + photo = _tmp21_; +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = _tmp22_; +#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp23_); +#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = photo; +#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = direct_view_new (_tmp24_); +#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + tmp_view = _tmp25_; +#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = self->priv->view_controller; +#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_ = tmp_view; +#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_DATA_OBJECT, DataObject)); +#line 482 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = direct_photo_global; +#line 482 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = photo; +#line 482 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_source_collection_reimport_photo (_tmp28_, _tmp29_); +#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp30_ = self->priv->view_controller; +#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_ = photo; +#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_display_mirror_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_PHOTO, Photo)); +#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (tmp_view); +#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (photo); +#line 4374 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_save (DirectPhotoPage* self) { + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + Photo* _tmp2_ = NULL; + Photo* _tmp3_ = NULL; + gboolean _tmp4_ = FALSE; + gboolean _tmp5_ = FALSE; + Photo* _tmp11_ = NULL; + Photo* _tmp12_ = NULL; + GFile* _tmp13_ = NULL; + GFile* _tmp14_ = NULL; + Photo* _tmp15_ = NULL; + Photo* _tmp16_ = NULL; + PhotoFileFormat _tmp17_ = 0; +#line 486 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_; +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = photo_has_alterations (_tmp3_); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = !_tmp4_; +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp3_); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp5_) { +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = TRUE; +#line 4408 "DirectPhotoPage.c" + } else { + Photo* _tmp6_ = NULL; + Photo* _tmp7_ = NULL; + PhotoFileFormat _tmp8_ = 0; + gboolean _tmp9_ = FALSE; +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = _tmp6_; +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = photo_get_file_format (_tmp7_); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = photo_file_format_can_write (_tmp8_); +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = !_tmp9_; +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp7_); +#line 4426 "DirectPhotoPage.c" + } +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp1_) { +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = TRUE; +#line 4432 "DirectPhotoPage.c" + } else { + gboolean _tmp10_ = FALSE; +#line 488 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 488 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = _tmp10_; +#line 4439 "DirectPhotoPage.c" + } +#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp0_) { +#line 489 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return; +#line 4445 "DirectPhotoPage.c" + } +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = _tmp11_; +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = _tmp13_; +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = _tmp15_; +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = photo_get_file_format (_tmp16_); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_save (self, _tmp14_, 0, SCALE_CONSTRAINT_ORIGINAL, JPEG_QUALITY_HIGH, _tmp17_, FALSE, TRUE); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp16_); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp14_); +#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp12_); +#line 4469 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_save_as (DirectPhotoPage* self) { + ExportDialog* export_dialog = NULL; + const gchar* _tmp0_ = NULL; + ExportDialog* _tmp1_ = NULL; + gint scale = 0; + ScaleConstraint constraint = 0; + ExportFormatParameters export_params = {0}; + ExportFormatParameters _tmp2_ = {0}; + ExportDialog* _tmp3_ = NULL; + gint _tmp4_ = 0; + ScaleConstraint _tmp5_ = 0; + gboolean _tmp6_ = FALSE; + gchar* filename = NULL; + Photo* _tmp7_ = NULL; + Photo* _tmp8_ = NULL; + ExportFormatParameters _tmp9_ = {0}; + gchar* _tmp10_ = NULL; + gchar* _tmp11_ = NULL; + PhotoFileFormat effective_export_format = 0; + Photo* _tmp12_ = NULL; + Photo* _tmp13_ = NULL; + ExportFormatParameters _tmp14_ = {0}; + PhotoFileFormat _tmp15_ = 0; + PhotoFileFormat _tmp16_ = 0; + gchar** output_format_extensions = NULL; + PhotoFileFormat _tmp17_ = 0; + PhotoFileFormatProperties* _tmp18_ = NULL; + PhotoFileFormatProperties* _tmp19_ = NULL; + gint _tmp20_ = 0; + gchar** _tmp21_ = NULL; + gchar** _tmp22_ = NULL; + gint _tmp22__length1 = 0; + gint output_format_extensions_length1 = 0; + gint _output_format_extensions_size_ = 0; + GtkFileFilter* output_format_filter = NULL; + GtkFileFilter* _tmp23_ = NULL; + gchar** _tmp24_ = NULL; + gint _tmp24__length1 = 0; + GtkFileChooserDialog* save_as_dialog = NULL; + const gchar* _tmp36_ = NULL; + AppWindow* _tmp37_ = NULL; + AppWindow* _tmp38_ = NULL; + GtkFileChooserDialog* _tmp39_ = NULL; + GtkFileChooserDialog* _tmp40_ = NULL; + GtkFileChooserDialog* _tmp41_ = NULL; + GtkFileChooserDialog* _tmp42_ = NULL; + const gchar* _tmp43_ = NULL; + GtkFileChooserDialog* _tmp44_ = NULL; + GFile* _tmp45_ = NULL; + gchar* _tmp46_ = NULL; + gchar* _tmp47_ = NULL; + GtkFileChooserDialog* _tmp48_ = NULL; + GtkFileFilter* _tmp49_ = NULL; + GtkFileFilter* _tmp50_ = NULL; + GtkFileChooserDialog* _tmp51_ = NULL; + GtkFileChooserDialog* _tmp52_ = NULL; + gint response = 0; + GtkFileChooserDialog* _tmp53_ = NULL; + gint _tmp54_ = 0; + gint _tmp55_ = 0; + GtkFileChooserDialog* _tmp74_ = NULL; +#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = _ ("Save As"); +#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = export_dialog_new (_tmp0_); +#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_object_ref_sink (_tmp1_); +#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + export_dialog = _tmp1_; +#line 501 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + export_format_parameters_last (&_tmp2_); +#line 501 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + export_params = _tmp2_; +#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = export_dialog; +#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = export_dialog_execute (_tmp3_, &_tmp4_, &_tmp5_, &export_params); +#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + scale = _tmp4_; +#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + constraint = _tmp5_; +#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (!_tmp6_) { +#line 503 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (export_dialog); +#line 503 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return; +#line 4562 "DirectPhotoPage.c" + } +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = _tmp7_; +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = export_params; +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp10_ = photo_get_export_basename_for_parameters (_tmp8_, &_tmp9_); +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp11_ = _tmp10_; +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp8_); +#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + filename = _tmp11_; +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp12_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp13_ = _tmp12_; +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp14_ = export_params; +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp15_ = photo_get_export_format_for_parameters (_tmp13_, &_tmp14_); +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp16_ = _tmp15_; +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp13_); +#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + effective_export_format = _tmp16_; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp17_ = effective_export_format; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp18_ = photo_file_format_get_properties (_tmp17_); +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp19_ = _tmp18_; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp21_ = photo_file_format_properties_get_known_extensions (_tmp19_, &_tmp20_); +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22_ = _tmp21_; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp22__length1 = _tmp20_; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _photo_file_format_properties_unref0 (_tmp19_); +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + output_format_extensions = _tmp22_; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + output_format_extensions_length1 = _tmp22__length1; +#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _output_format_extensions_size_ = output_format_extensions_length1; +#line 511 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp23_ = gtk_file_filter_new (); +#line 511 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_object_ref_sink (_tmp23_); +#line 511 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + output_format_filter = _tmp23_; +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24_ = output_format_extensions; +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp24__length1 = output_format_extensions_length1; +#line 4622 "DirectPhotoPage.c" + { + gchar** extension_collection = NULL; + gint extension_collection_length1 = 0; + gint _extension_collection_size_ = 0; + gint extension_it = 0; +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + extension_collection = _tmp24_; +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + extension_collection_length1 = _tmp24__length1; +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + for (extension_it = 0; extension_it < _tmp24__length1; extension_it = extension_it + 1) { +#line 4634 "DirectPhotoPage.c" + gchar* _tmp25_ = NULL; + gchar* extension = NULL; +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp25_ = g_strdup (extension_collection[extension_it]); +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + extension = _tmp25_; +#line 4641 "DirectPhotoPage.c" + { + gchar* uppercase_extension = NULL; + const gchar* _tmp26_ = NULL; + gchar* _tmp27_ = NULL; + GtkFileFilter* _tmp28_ = NULL; + const gchar* _tmp29_ = NULL; + gchar* _tmp30_ = NULL; + gchar* _tmp31_ = NULL; + GtkFileFilter* _tmp32_ = NULL; + const gchar* _tmp33_ = NULL; + gchar* _tmp34_ = NULL; + gchar* _tmp35_ = NULL; +#line 513 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp26_ = extension; +#line 513 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp27_ = g_utf8_strup (_tmp26_, (gssize) -1); +#line 513 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + uppercase_extension = _tmp27_; +#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp28_ = output_format_filter; +#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp29_ = extension; +#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp30_ = g_strconcat ("*.", _tmp29_, NULL); +#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp31_ = _tmp30_; +#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_filter_add_pattern (_tmp28_, _tmp31_); +#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp31_); +#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp32_ = output_format_filter; +#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp33_ = uppercase_extension; +#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp34_ = g_strconcat ("*.", _tmp33_, NULL); +#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp35_ = _tmp34_; +#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_filter_add_pattern (_tmp32_, _tmp35_); +#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp35_); +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (uppercase_extension); +#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (extension); +#line 4688 "DirectPhotoPage.c" + } + } + } +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp36_ = _ ("Save As"); +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp37_ = app_window_get_instance (); +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp38_ = _tmp37_; +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp39_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_window_get_type (), GtkWindow), GTK_FILE_CHOOSER_ACTION_SAVE, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL); +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_object_ref_sink (_tmp39_); +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp40_ = _tmp39_; +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp38_); +#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + save_as_dialog = _tmp40_; +#line 521 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp41_ = save_as_dialog; +#line 521 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_chooser_set_select_multiple (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE); +#line 522 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp42_ = save_as_dialog; +#line 522 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp43_ = filename; +#line 522 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_chooser_set_current_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp43_); +#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp44_ = save_as_dialog; +#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp45_ = self->priv->current_save_dir; +#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp46_ = g_file_get_path (_tmp45_); +#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp47_ = _tmp46_; +#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp47_); +#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp47_); +#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp48_ = save_as_dialog; +#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp49_ = output_format_filter; +#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp50_ = _g_object_ref0 (_tmp49_); +#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_chooser_add_filter (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp50_); +#line 525 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp51_ = save_as_dialog; +#line 525 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_chooser_set_do_overwrite_confirmation (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), TRUE); +#line 526 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp52_ = save_as_dialog; +#line 526 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE); +#line 528 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp53_ = save_as_dialog; +#line 528 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp54_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_dialog_get_type (), GtkDialog)); +#line 528 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + response = _tmp54_; +#line 529 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp55_ = response; +#line 529 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp55_ == ((gint) GTK_RESPONSE_OK)) { +#line 4756 "DirectPhotoPage.c" + GtkFileChooserDialog* _tmp56_ = NULL; + gchar* _tmp57_ = NULL; + gchar* _tmp58_ = NULL; + GFile* _tmp59_ = NULL; + GFile* _tmp60_ = NULL; + gint _tmp61_ = 0; + ScaleConstraint _tmp62_ = 0; + ExportFormatParameters _tmp63_ = {0}; + JpegQuality _tmp64_ = 0; + PhotoFileFormat _tmp65_ = 0; + ExportFormatParameters _tmp66_ = {0}; + ExportFormatMode _tmp67_ = 0; + ExportFormatParameters _tmp68_ = {0}; + gboolean _tmp69_ = FALSE; + GtkFileChooserDialog* _tmp70_ = NULL; + gchar* _tmp71_ = NULL; + gchar* _tmp72_ = NULL; + GFile* _tmp73_ = NULL; +#line 532 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->drop_if_dirty = TRUE; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp56_ = save_as_dialog; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp57_ = gtk_file_chooser_get_uri (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser)); +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp58_ = _tmp57_; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp59_ = g_file_new_for_uri (_tmp58_); +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp60_ = _tmp59_; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp61_ = scale; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp62_ = constraint; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp63_ = export_params; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp64_ = _tmp63_.quality; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp65_ = effective_export_format; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp66_ = export_params; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp67_ = _tmp66_.mode; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp68_ = export_params; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp69_ = _tmp68_.export_metadata; +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_save (self, _tmp60_, _tmp61_, _tmp62_, _tmp64_, _tmp65_, _tmp67_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp69_); +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp60_); +#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp58_); +#line 536 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->drop_if_dirty = FALSE; +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp70_ = save_as_dialog; +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp71_ = gtk_file_chooser_get_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser)); +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp72_ = _tmp71_; +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp73_ = g_file_new_for_path (_tmp72_); +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self->priv->current_save_dir); +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->current_save_dir = _tmp73_; +#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (_tmp72_); +#line 4827 "DirectPhotoPage.c" + } +#line 541 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp74_ = save_as_dialog; +#line 541 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, gtk_widget_get_type (), GtkWidget)); +#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (save_as_dialog); +#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (output_format_filter); +#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + output_format_extensions = (_vala_array_free (output_format_extensions, output_format_extensions_length1, (GDestroyNotify) g_free), NULL); +#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_free0 (filename); +#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (export_dialog); +#line 4843 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_send_to (DirectPhotoPage* self) { + gboolean _tmp0_ = FALSE; +#line 544 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 545 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 545 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp0_) { +#line 4855 "DirectPhotoPage.c" + ViewCollection* _tmp1_ = NULL; + ViewCollection* _tmp2_ = NULL; + GeeList* _tmp3_ = NULL; + GeeCollection* _tmp4_ = NULL; +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = _tmp1_; +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = view_collection_get_selected_sources (_tmp2_); +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection); +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + desktop_integration_send_to (_tmp4_); +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp4_); +#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (_tmp2_); +#line 4874 "DirectPhotoPage.c" + } +} + + +static gboolean direct_photo_page_real_on_app_key_pressed (Page* base, GdkEventKey* event) { + DirectPhotoPage * self; + gboolean result = FALSE; + gboolean handled = FALSE; + GdkEventKey* _tmp0_ = NULL; + guint _tmp1_ = 0U; + const gchar* _tmp2_ = NULL; + const gchar* _tmp3_ = NULL; + GQuark _tmp5_ = 0U; +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + static GQuark _tmp4_label0 = 0; +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + static GQuark _tmp4_label1 = 0; +#line 4892 "DirectPhotoPage.c" + gboolean _tmp6_ = FALSE; + gboolean _tmp7_ = FALSE; +#line 549 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 549 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 550 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + handled = TRUE; +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = event; +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_->keyval; +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = gdk_keyval_name (_tmp1_); +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_; +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_); +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("bracketright")))) { +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + switch (0) { +#line 4915 "DirectPhotoPage.c" + default: + { +#line 554 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise"); +#line 555 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + break; +#line 4922 "DirectPhotoPage.c" + } + } + } else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("bracketleft")))) { +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + switch (0) { +#line 4928 "DirectPhotoPage.c" + default: + { +#line 558 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise"); +#line 559 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + break; +#line 4935 "DirectPhotoPage.c" + } + } + } else { +#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + switch (0) { +#line 4941 "DirectPhotoPage.c" + default: + { +#line 562 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + handled = FALSE; +#line 563 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + break; +#line 4948 "DirectPhotoPage.c" + } + } + } +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = handled; +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp7_) { +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = TRUE; +#line 4958 "DirectPhotoPage.c" + } else { + GdkEventKey* _tmp8_ = NULL; + gboolean _tmp9_ = FALSE; +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = event; +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = PAGE_CLASS (direct_photo_page_parent_class)->on_app_key_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp8_); +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = _tmp9_; +#line 4968 "DirectPhotoPage.c" + } +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = _tmp6_; +#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 4974 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_print (DirectPhotoPage* self) { + ViewCollection* _tmp0_ = NULL; + ViewCollection* _tmp1_ = NULL; + gint _tmp2_ = 0; + gboolean _tmp3_ = FALSE; +#line 569 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = _tmp0_; +#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp2_ = view_collection_get_selected_count (_tmp1_); +#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp3_ = _tmp2_ > 0; +#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (_tmp1_); +#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (_tmp3_) { +#line 4997 "DirectPhotoPage.c" + PrintManager* _tmp4_ = NULL; + PrintManager* _tmp5_ = NULL; + ViewCollection* _tmp6_ = NULL; + ViewCollection* _tmp7_ = NULL; + GeeList* _tmp8_ = NULL; + GeeCollection* _tmp9_ = NULL; +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp4_ = print_manager_get_instance (); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp5_ = _tmp4_; +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp7_ = _tmp6_; +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp8_ = view_collection_get_selected_sources_of_type (_tmp7_, TYPE_PHOTO); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + print_manager_spool_photo (_tmp5_, _tmp9_); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (_tmp9_); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (_tmp7_); +#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _print_manager_unref0 (_tmp5_); +#line 5024 "DirectPhotoPage.c" + } +} + + +static Block6Data* block6_data_ref (Block6Data* _data6_) { +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_atomic_int_inc (&_data6_->_ref_count_); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return _data6_; +#line 5034 "DirectPhotoPage.c" +} + + +static void block6_data_unref (void * _userdata_) { + Block6Data* _data6_; + _data6_ = (Block6Data*) _userdata_; +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) { +#line 5043 "DirectPhotoPage.c" + DirectPhotoPage* self; +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = _data6_->self; +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_slice_free (Block6Data, _data6_); +#line 5051 "DirectPhotoPage.c" + } +} + + +static gboolean __lambda14_ (Block6Data* _data6_) { + DirectPhotoPage* self; + gboolean result = FALSE; + gboolean _tmp0_ = FALSE; +#line 580 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = _data6_->self; +#line 581 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = _data6_->should_allow_rotation; +#line 581 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + editing_host_page_enable_rotate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp0_); +#line 583 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = FALSE; +#line 583 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 5070 "DirectPhotoPage.c" +} + + +static gboolean ___lambda14__gsource_func (gpointer self) { + gboolean result; + result = __lambda14_ (self); +#line 580 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 5079 "DirectPhotoPage.c" +} + + +static void direct_photo_page_on_dphoto_can_rotate_changed (DirectPhotoPage* self, gboolean should_allow_rotation) { + Block6Data* _data6_; + gboolean _tmp0_ = FALSE; +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self)); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data6_ = g_slice_new0 (Block6Data); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data6_->_ref_count_ = 1; +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data6_->self = g_object_ref (self); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = should_allow_rotation; +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data6_->should_allow_rotation = _tmp0_; +#line 580 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda14__gsource_func, block6_data_ref (_data6_), block6_data_unref); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + block6_data_unref (_data6_); +#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data6_ = NULL; +#line 5104 "DirectPhotoPage.c" +} + + +static DataView* direct_photo_page_real_create_photo_view (EditingHostPage* base, DataSource* source) { + DirectPhotoPage * self; + DataView* result = NULL; + DataSource* _tmp0_ = NULL; + DirectView* _tmp1_ = NULL; +#line 587 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 587 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (IS_DATA_SOURCE (source), NULL); +#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = source; +#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp1_ = direct_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto)); +#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView); +#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return result; +#line 5125 "DirectPhotoPage.c" +} + + +static void direct_photo_page_class_init (DirectPhotoPageClass * klass) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_photo_page_parent_class = g_type_class_peek_parent (klass); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_type_class_add_private (klass, sizeof (DirectPhotoPagePrivate)); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->init_collect_ui_filenames = direct_photo_page_real_init_collect_ui_filenames; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->init_collect_action_entries = direct_photo_page_real_init_collect_action_entries; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->init_collect_injection_groups = direct_photo_page_real_init_collect_injection_groups; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((GtkWidgetClass *) klass)->realize = direct_photo_page_real_realize; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->photo_changing = direct_photo_page_real_photo_changing; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->on_context_buttonpress = direct_photo_page_real_on_context_buttonpress; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->on_increase_size = direct_photo_page_real_on_increase_size; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->on_decrease_size = direct_photo_page_real_on_decrease_size; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->on_double_click = direct_photo_page_real_on_double_click; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->update_ui = direct_photo_page_real_update_ui; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->update_actions = direct_photo_page_real_update_actions; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->confirm_replace_photo = direct_photo_page_real_confirm_replace_photo; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->on_app_key_pressed = direct_photo_page_real_on_app_key_pressed; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((EditingHostPageClass *) klass)->create_photo_view = direct_photo_page_real_create_photo_view; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + G_OBJECT_CLASS (klass)->finalize = direct_photo_page_finalize; +#line 5164 "DirectPhotoPage.c" +} + + +static void direct_photo_page_instance_init (DirectPhotoPage * self) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv = DIRECT_PHOTO_PAGE_GET_PRIVATE (self); +#line 9 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->view_controller = NULL; +#line 11 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self->priv->drop_if_dirty = FALSE; +#line 5175 "DirectPhotoPage.c" +} + + +static void direct_photo_page_finalize (GObject* obj) { + DirectPhotoPage * self; + DirectPhotoSourceCollection* _tmp0_ = NULL; + guint _tmp1_ = 0U; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = direct_photo_global; +#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE); +#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _direct_photo_page_on_photos_altered_data_collection_items_altered, self); +#line 8 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self->priv->initial_file); +#line 9 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _data_collection_unref0 (self->priv->view_controller); +#line 10 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _g_object_unref0 (self->priv->current_save_dir); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + G_OBJECT_CLASS (direct_photo_page_parent_class)->finalize (obj); +#line 5199 "DirectPhotoPage.c" +} + + +GType direct_photo_page_get_type (void) { + static volatile gsize direct_photo_page_type_id__volatile = 0; + if (g_once_init_enter (&direct_photo_page_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectPhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectPhotoPage), 0, (GInstanceInitFunc) direct_photo_page_instance_init, NULL }; + GType direct_photo_page_type_id; + direct_photo_page_type_id = g_type_register_static (TYPE_EDITING_HOST_PAGE, "DirectPhotoPage", &g_define_type_info, 0); + g_once_init_leave (&direct_photo_page_type_id__volatile, direct_photo_page_type_id); + } + return direct_photo_page_type_id__volatile; +} + + +DirectFullscreenPhotoPage* direct_fullscreen_photo_page_construct (GType object_type, GFile* file) { + DirectFullscreenPhotoPage * self = NULL; + GFile* _tmp0_ = NULL; +#line 593 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_val_if_fail (G_IS_FILE (file), NULL); +#line 594 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = file; +#line 594 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = (DirectFullscreenPhotoPage*) direct_photo_page_construct (object_type, _tmp0_); +#line 593 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return self; +#line 5226 "DirectPhotoPage.c" +} + + +DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file) { +#line 593 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + return direct_fullscreen_photo_page_construct (TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, file); +#line 5233 "DirectPhotoPage.c" +} + + +static void direct_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) { + DirectFullscreenPhotoPage * self; + GeeList* _tmp0_ = NULL; +#line 597 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage); +#line 597 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + g_return_if_fail (GEE_IS_LIST (ui_filenames)); +#line 600 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + _tmp0_ = ui_filenames; +#line 600 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), "direct_context.ui"); +#line 5248 "DirectPhotoPage.c" +} + + +static void direct_fullscreen_photo_page_class_init (DirectFullscreenPhotoPageClass * klass) { +#line 592 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + direct_fullscreen_photo_page_parent_class = g_type_class_peek_parent (klass); +#line 592 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala" + ((PageClass *) klass)->init_collect_ui_filenames = direct_fullscreen_photo_page_real_init_collect_ui_filenames; +#line 5257 "DirectPhotoPage.c" +} + + +static void direct_fullscreen_photo_page_instance_init (DirectFullscreenPhotoPage * self) { +} + + +GType direct_fullscreen_photo_page_get_type (void) { + static volatile gsize direct_fullscreen_photo_page_type_id__volatile = 0; + if (g_once_init_enter (&direct_fullscreen_photo_page_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectFullscreenPhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_fullscreen_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectFullscreenPhotoPage), 0, (GInstanceInitFunc) direct_fullscreen_photo_page_instance_init, NULL }; + GType direct_fullscreen_photo_page_type_id; + direct_fullscreen_photo_page_type_id = g_type_register_static (TYPE_DIRECT_PHOTO_PAGE, "DirectFullscreenPhotoPage", &g_define_type_info, 0); + g_once_init_leave (&direct_fullscreen_photo_page_type_id__volatile, direct_fullscreen_photo_page_type_id); + } + return direct_fullscreen_photo_page_type_id__volatile; +} + + +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); +} + + + diff --git a/src/direct/DirectView.c b/src/direct/DirectView.c new file mode 100644 index 0000000..e3cebb7 --- /dev/null +++ b/src/direct/DirectView.c @@ -0,0 +1,827 @@ +/* DirectView.c generated by valac 0.32.1, the Vala compiler + * generated from DirectView.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 <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gio/gio.h> +#include <gee.h> + + +#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; +typedef struct _DataObjectPrivate DataObjectPrivate; + +#define TYPE_ALTERATION (alteration_get_type ()) +#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration)) +#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass)) +#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION)) +#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION)) +#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass)) + +typedef struct _Alteration Alteration; +typedef struct _AlterationClass AlterationClass; + +#define TYPE_DATA_COLLECTION (data_collection_get_type ()) +#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection)) +#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass)) +#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION)) +#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION)) +#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass)) + +typedef struct _DataCollection DataCollection; +typedef struct _DataCollectionClass DataCollectionClass; + +#define TYPE_DATA_VIEW (data_view_get_type ()) +#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView)) +#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass)) +#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW)) +#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW)) +#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass)) + +typedef struct _DataView DataView; +typedef struct _DataViewClass DataViewClass; +typedef struct _DataViewPrivate DataViewPrivate; + +#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_DIRECT_VIEW (direct_view_get_type ()) +#define DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW, DirectView)) +#define DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW, DirectViewClass)) +#define IS_DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW)) +#define IS_DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW)) +#define DIRECT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW, DirectViewClass)) + +typedef struct _DirectView DirectView; +typedef struct _DirectViewClass DirectViewClass; +typedef struct _DirectViewPrivate DirectViewPrivate; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +#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_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 TYPE_DIRECT_PHOTO (direct_photo_get_type ()) +#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto)) +#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass)) +#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO)) +#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO)) +#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass)) + +typedef struct _DirectPhoto DirectPhoto; +typedef struct _DirectPhotoClass DirectPhotoClass; +typedef struct _DataCollectionPrivate DataCollectionPrivate; + +#define TYPE_MARKER (marker_get_type ()) +#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker)) +#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER)) +#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface)) + +typedef struct _Marker Marker; +typedef struct _MarkerIface MarkerIface; + +#define TYPE_VIEW_COLLECTION (view_collection_get_type ()) +#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection)) +#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass)) +#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION)) +#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION)) +#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass)) + +typedef struct _ViewCollection ViewCollection; +typedef struct _ViewCollectionClass ViewCollectionClass; +typedef struct _ViewCollectionPrivate ViewCollectionPrivate; + +#define TYPE_VIEW_FILTER (view_filter_get_type ()) +#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter)) +#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass)) +#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER)) +#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER)) +#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass)) + +typedef struct _ViewFilter ViewFilter; +typedef struct _ViewFilterClass ViewFilterClass; + +#define TYPE_DIRECT_VIEW_COLLECTION (direct_view_collection_get_type ()) +#define DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollection)) +#define DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass)) +#define IS_DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW_COLLECTION)) +#define IS_DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW_COLLECTION)) +#define DIRECT_VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass)) + +typedef struct _DirectViewCollection DirectViewCollection; +typedef struct _DirectViewCollectionClass DirectViewCollectionClass; +typedef struct _DirectViewCollectionPrivate DirectViewCollectionPrivate; + +#define TYPE_SOURCE_COLLECTION (source_collection_get_type ()) +#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection)) +#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass)) +#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION)) +#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION)) +#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass)) + +typedef struct _SourceCollection SourceCollection; +typedef struct _SourceCollectionClass SourceCollectionClass; + +#define TYPE_VIEW_MANAGER (view_manager_get_type ()) +#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager)) +#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass)) +#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER)) +#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER)) +#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass)) + +typedef struct _ViewManager ViewManager; +typedef struct _ViewManagerClass ViewManagerClass; + +#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ()) +#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor)) +#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass)) +#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR)) +#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR)) +#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass)) + +typedef struct _ViewCollectionMonitor ViewCollectionMonitor; +typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass; + +#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ()) +#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection)) +#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass)) +#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION)) +#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION)) +#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass)) + +typedef struct _DatabaseSourceCollection DatabaseSourceCollection; +typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass; + +#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ()) +#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection)) +#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass)) +#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION)) +#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION)) +#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass)) + +typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection; +typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass; + +#define DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER (direct_view_collection_direct_view_manager_get_type ()) +#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManager)) +#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManagerClass)) +#define DIRECT_VIEW_COLLECTION_IS_DIRECT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER)) +#define DIRECT_VIEW_COLLECTION_IS_DIRECT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER)) +#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManagerClass)) + +typedef struct _DirectViewCollectionDirectViewManager DirectViewCollectionDirectViewManager; +typedef struct _DirectViewCollectionDirectViewManagerClass DirectViewCollectionDirectViewManagerClass; +#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL))) +#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL))) +typedef struct _ViewManagerPrivate ViewManagerPrivate; +typedef struct _DirectViewCollectionDirectViewManagerPrivate DirectViewCollectionDirectViewManagerPrivate; + +struct _DataObject { + GObject parent_instance; + DataObjectPrivate * priv; +}; + +struct _DataObjectClass { + GObjectClass parent_class; + void (*notify_altered) (DataObject* self, Alteration* alteration); + void (*notify_membership_changed) (DataObject* self, DataCollection* collection); + void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val); + void (*notify_collection_property_cleared) (DataObject* self, const gchar* name); + gchar* (*get_name) (DataObject* self); + gchar* (*to_string) (DataObject* self); +}; + +struct _DataView { + DataObject parent_instance; + DataViewPrivate * priv; +}; + +struct _DataViewClass { + DataObjectClass parent_class; + void (*notify_view_altered) (DataView* self); + void (*notify_geometry_altered) (DataView* self); + void (*notify_unsubscribed) (DataView* self, DataSource* source); + void (*state_changed) (DataView* self, gboolean selected); + void (*visibility_changed) (DataView* self, gboolean visible); + void (*view_altered) (DataView* self); + void (*geometry_altered) (DataView* self); + void (*unsubscribed) (DataView* self, DataSource* source); +}; + +struct _DirectView { + DataView parent_instance; + DirectViewPrivate * priv; +}; + +struct _DirectViewClass { + DataViewClass parent_class; +}; + +struct _DirectViewPrivate { + GFile* file; + gchar* collate_key; +}; + +typedef gint64 (*Comparator) (void* a, void* b, void* user_data); +typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data); +typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data); +struct _MarkerIface { + GTypeInterface parent_iface; + void (*mark) (Marker* self, DataObject* object); + void (*unmark) (Marker* self, DataObject* object); + gboolean (*toggle) (Marker* self, DataObject* object); + void (*mark_many) (Marker* self, GeeCollection* list); + void (*unmark_many) (Marker* self, GeeCollection* list); + void (*mark_all) (Marker* self); + gint (*get_count) (Marker* self); + GeeCollection* (*get_all) (Marker* self); +}; + +struct _DataCollection { + GTypeInstance parent_instance; + volatile int ref_count; + DataCollectionPrivate * priv; +}; + +struct _DataCollectionClass { + GTypeClass parent_class; + void (*finalize) (DataCollection *self); + gchar* (*to_string) (DataCollection* self); + void (*notify_items_added) (DataCollection* self, GeeIterable* added); + void (*notify_items_removed) (DataCollection* self, GeeIterable* removed); + void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed); + void (*notify_items_altered) (DataCollection* self, GeeMap* items); + void (*notify_ordering_changed) (DataCollection* self); + void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val); + void (*notify_property_cleared) (DataCollection* self, const gchar* name); + gboolean (*valid_type) (DataCollection* self, DataObject* object); + void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target); + void (*reset_comparator) (DataCollection* self); + GeeCollection* (*get_all) (DataCollection* self); + gint (*get_count) (DataCollection* self); + DataObject* (*get_at) (DataCollection* self, gint index); + gint (*index_of) (DataCollection* self, DataObject* object); + gboolean (*contains) (DataCollection* self, DataObject* object); + gboolean (*add) (DataCollection* self, DataObject* object); + GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target); + void (*remove_marked) (DataCollection* self, Marker* m); + void (*clear) (DataCollection* self); + void (*close) (DataCollection* self); + void (*notify_frozen) (DataCollection* self); + void (*notify_thawed) (DataCollection* self); + void (*items_added) (DataCollection* self, GeeIterable* added); + void (*items_removed) (DataCollection* self, GeeIterable* removed); + void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed); + void (*items_altered) (DataCollection* self, GeeMap* items); + void (*ordering_changed) (DataCollection* self); + void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val); + void (*property_cleared) (DataCollection* self, const gchar* name); + void (*frozen) (DataCollection* self); + void (*thawed) (DataCollection* self); +}; + +struct _ViewCollection { + DataCollection parent_instance; + ViewCollectionPrivate * priv; +}; + +struct _ViewCollectionClass { + DataCollectionClass parent_class; + void (*notify_items_selected_unselected) (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected); + void (*notify_selection_group_altered) (ViewCollection* self); + void (*notify_item_view_altered) (ViewCollection* self, DataView* view); + void (*notify_views_altered) (ViewCollection* self, GeeCollection* views); + void (*notify_item_geometry_altered) (ViewCollection* self, DataView* view); + void (*notify_geometries_altered) (ViewCollection* self, GeeCollection* views); + void (*notify_items_shown) (ViewCollection* self, GeeCollection* shown); + void (*notify_items_hidden) (ViewCollection* self, GeeCollection* hidden); + void (*notify_items_visibility_changed) (ViewCollection* self, GeeCollection* changed); + void (*notify_view_filter_installed) (ViewCollection* self, ViewFilter* filter); + void (*notify_view_filter_removed) (ViewCollection* self, ViewFilter* filter); + DataView* (*get_first) (ViewCollection* self); + DataView* (*get_first_unrejected) (ViewCollection* self); + DataView* (*get_last) (ViewCollection* self); + DataView* (*get_next) (ViewCollection* self, DataView* view); + DataView* (*get_previous) (ViewCollection* self, DataView* view); + void (*items_selected) (ViewCollection* self, GeeIterable* selected); + void (*items_unselected) (ViewCollection* self, GeeIterable* unselected); + void (*items_state_changed) (ViewCollection* self, GeeIterable* changed); + void (*selection_group_altered) (ViewCollection* self); + void (*items_shown) (ViewCollection* self, GeeCollection* visible); + void (*items_hidden) (ViewCollection* self, GeeCollection* hidden); + void (*items_visibility_changed) (ViewCollection* self, GeeCollection* changed); + void (*item_view_altered) (ViewCollection* self, DataView* view); + void (*item_geometry_altered) (ViewCollection* self, DataView* view); + void (*views_altered) (ViewCollection* self, GeeCollection* views); + void (*geometries_altered) (ViewCollection* self, GeeCollection* views); + void (*view_filter_installed) (ViewCollection* self, ViewFilter* filer); + void (*view_filter_removed) (ViewCollection* self, ViewFilter* filer); +}; + +struct _DirectViewCollection { + ViewCollection parent_instance; + DirectViewCollectionPrivate * priv; +}; + +struct _DirectViewCollectionClass { + ViewCollectionClass parent_class; +}; + +struct _ViewManager { + GTypeInstance parent_instance; + volatile int ref_count; + ViewManagerPrivate * priv; +}; + +struct _ViewManagerClass { + GTypeClass parent_class; + void (*finalize) (ViewManager *self); + gboolean (*include_in_view) (ViewManager* self, DataSource* source); + DataView* (*create_view) (ViewManager* self, DataSource* source); +}; + +struct _DirectViewCollectionDirectViewManager { + ViewManager parent_instance; + DirectViewCollectionDirectViewManagerPrivate * priv; +}; + +struct _DirectViewCollectionDirectViewManagerClass { + ViewManagerClass parent_class; +}; + + +static gpointer direct_view_parent_class = NULL; +static gpointer direct_view_collection_parent_class = NULL; +extern DirectPhotoSourceCollection* direct_photo_global; +static gpointer direct_view_collection_direct_view_manager_parent_class = NULL; + +GType data_object_get_type (void) G_GNUC_CONST; +gpointer alteration_ref (gpointer instance); +void alteration_unref (gpointer instance); +GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_alteration (GValue* value, gpointer v_object); +void value_take_alteration (GValue* value, gpointer v_object); +gpointer value_get_alteration (const GValue* value); +GType alteration_get_type (void) G_GNUC_CONST; +gpointer data_collection_ref (gpointer instance); +void data_collection_unref (gpointer instance); +GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_data_collection (GValue* value, gpointer v_object); +void value_take_data_collection (GValue* value, gpointer v_object); +gpointer value_get_data_collection (const GValue* value); +GType data_collection_get_type (void) G_GNUC_CONST; +GType data_view_get_type (void) G_GNUC_CONST; +GType data_source_get_type (void) G_GNUC_CONST; +GType direct_view_get_type (void) G_GNUC_CONST; +#define DIRECT_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_VIEW, DirectViewPrivate)) +enum { + DIRECT_VIEW_DUMMY_PROPERTY +}; +GType thumbnail_source_get_type (void) G_GNUC_CONST; +GType media_source_get_type (void) G_GNUC_CONST; +GType photo_source_get_type (void) G_GNUC_CONST; +GType photo_get_type (void) G_GNUC_CONST; +GType direct_photo_get_type (void) G_GNUC_CONST; +DirectView* direct_view_new (DirectPhoto* source); +DirectView* direct_view_construct (GType object_type, DirectPhoto* source); +DataView* data_view_new (DataSource* source); +DataView* data_view_construct (GType object_type, DataSource* source); +GFile* media_source_get_file (MediaSource* self); +GFile* direct_view_get_file (DirectView* self); +gchar* direct_view_get_collate_key (DirectView* self); +static void direct_view_finalize (GObject* obj); +GType marker_get_type (void) G_GNUC_CONST; +GType view_collection_get_type (void) G_GNUC_CONST; +gpointer view_filter_ref (gpointer instance); +void view_filter_unref (gpointer instance); +GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_view_filter (GValue* value, gpointer v_object); +void value_take_view_filter (GValue* value, gpointer v_object); +gpointer value_get_view_filter (const GValue* value); +GType view_filter_get_type (void) G_GNUC_CONST; +GType direct_view_collection_get_type (void) G_GNUC_CONST; +enum { + DIRECT_VIEW_COLLECTION_DUMMY_PROPERTY +}; +DirectViewCollection* direct_view_collection_new (void); +DirectViewCollection* direct_view_collection_construct (GType object_type); +ViewCollection* view_collection_new (const gchar* name); +ViewCollection* view_collection_construct (GType object_type, const gchar* name); +void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target); +static gint64 direct_view_collection_filename_comparator (void* a, void* b); +static gint64 _direct_view_collection_filename_comparator_comparator (void* a, void* b, gpointer self); +GType source_collection_get_type (void) G_GNUC_CONST; +gpointer view_manager_ref (gpointer instance); +void view_manager_unref (gpointer instance); +GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_view_manager (GValue* value, gpointer v_object); +void value_take_view_manager (GValue* value, gpointer v_object); +gpointer value_get_view_manager (const GValue* value); +GType view_manager_get_type (void) G_GNUC_CONST; +gpointer view_collection_monitor_ref (gpointer instance); +void view_collection_monitor_unref (gpointer instance); +GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void view_collection_value_set_monitor (GValue* value, gpointer v_object); +void view_collection_value_take_monitor (GValue* value, gpointer v_object); +gpointer view_collection_value_get_monitor (const GValue* value); +GType view_collection_monitor_get_type (void) G_GNUC_CONST; +ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target); +GType database_source_collection_get_type (void) G_GNUC_CONST; +GType direct_photo_source_collection_get_type (void) G_GNUC_CONST; +static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_new (void); +static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_construct (GType object_type); +static GType direct_view_collection_direct_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +enum { + DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_DUMMY_PROPERTY +}; +static DataView* direct_view_collection_direct_view_manager_real_create_view (ViewManager* base, DataSource* source); +ViewManager* view_manager_construct (GType object_type); + + +DirectView* direct_view_construct (GType object_type, DirectPhoto* source) { + DirectView * self = NULL; + DirectPhoto* _tmp0_ = NULL; + DirectPhoto* _tmp1_ = NULL; + GFile* _tmp2_ = NULL; +#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + g_return_val_if_fail (IS_DIRECT_PHOTO (source), NULL); +#line 12 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp0_ = source; +#line 12 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self = (DirectView*) data_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource)); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp1_ = source; +#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), TYPE_MEDIA_SOURCE, MediaSource)); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_object_unref0 (self->priv->file); +#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self->priv->file = _tmp2_; +#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return self; +#line 522 "DirectView.c" +} + + +DirectView* direct_view_new (DirectPhoto* source) { +#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return direct_view_construct (TYPE_DIRECT_VIEW, source); +#line 529 "DirectView.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return self ? g_object_ref (self) : NULL; +#line 536 "DirectView.c" +} + + +GFile* direct_view_get_file (DirectView* self) { + GFile* result = NULL; + GFile* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; +#line 17 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + g_return_val_if_fail (IS_DIRECT_VIEW (self), NULL); +#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp0_ = self->priv->file; +#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + result = _tmp1_; +#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return result; +#line 554 "DirectView.c" +} + + +gchar* direct_view_get_collate_key (DirectView* self) { + gchar* result = NULL; + const gchar* _tmp0_ = NULL; + const gchar* _tmp5_ = NULL; + gchar* _tmp6_ = NULL; +#line 21 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + g_return_val_if_fail (IS_DIRECT_VIEW (self), NULL); +#line 22 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp0_ = self->priv->collate_key; +#line 22 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + if (_tmp0_ == NULL) { +#line 569 "DirectView.c" + GFile* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + gchar* _tmp3_ = NULL; + gchar* _tmp4_ = NULL; +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp1_ = self->priv->file; +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp2_ = g_file_get_basename (_tmp1_); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp3_ = _tmp2_; +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp4_ = g_utf8_collate_key_for_filename (_tmp3_, (gssize) -1); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_free0 (self->priv->collate_key); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self->priv->collate_key = _tmp4_; +#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_free0 (_tmp3_); +#line 588 "DirectView.c" + } +#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp5_ = self->priv->collate_key; +#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp6_ = g_strdup (_tmp5_); +#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + result = _tmp6_; +#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return result; +#line 598 "DirectView.c" +} + + +static void direct_view_class_init (DirectViewClass * klass) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + direct_view_parent_class = g_type_class_peek_parent (klass); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + g_type_class_add_private (klass, sizeof (DirectViewPrivate)); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + G_OBJECT_CLASS (klass)->finalize = direct_view_finalize; +#line 609 "DirectView.c" +} + + +static void direct_view_instance_init (DirectView * self) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self->priv = DIRECT_VIEW_GET_PRIVATE (self); +#line 9 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self->priv->collate_key = NULL; +#line 618 "DirectView.c" +} + + +static void direct_view_finalize (GObject* obj) { + DirectView * self; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_VIEW, DirectView); +#line 8 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_object_unref0 (self->priv->file); +#line 9 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_free0 (self->priv->collate_key); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + G_OBJECT_CLASS (direct_view_parent_class)->finalize (obj); +#line 632 "DirectView.c" +} + + +GType direct_view_get_type (void) { + static volatile gsize direct_view_type_id__volatile = 0; + if (g_once_init_enter (&direct_view_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectView), 0, (GInstanceInitFunc) direct_view_instance_init, NULL }; + GType direct_view_type_id; + direct_view_type_id = g_type_register_static (TYPE_DATA_VIEW, "DirectView", &g_define_type_info, 0); + g_once_init_leave (&direct_view_type_id__volatile, direct_view_type_id); + } + return direct_view_type_id__volatile; +} + + +static gint64 _direct_view_collection_filename_comparator_comparator (void* a, void* b, gpointer self) { + gint64 result; + result = direct_view_collection_filename_comparator (a, b); +#line 39 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return result; +#line 653 "DirectView.c" +} + + +DirectViewCollection* direct_view_collection_construct (GType object_type) { + DirectViewCollection* self = NULL; + DirectPhotoSourceCollection* _tmp0_ = NULL; + DirectViewCollectionDirectViewManager* _tmp1_ = NULL; + DirectViewCollectionDirectViewManager* _tmp2_ = NULL; + ViewCollectionMonitor* _tmp3_ = NULL; + ViewCollectionMonitor* _tmp4_ = NULL; +#line 37 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self = (DirectViewCollection*) view_collection_construct (object_type, "DirectViewCollection"); +#line 39 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _direct_view_collection_filename_comparator_comparator, NULL, NULL, NULL); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp0_ = direct_photo_global; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp1_ = direct_view_collection_direct_view_manager_new (); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp2_ = _tmp1_; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp3_ = view_collection_monitor_source_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, NULL, NULL); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp4_ = _tmp3_; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _view_collection_monitor_unref0 (_tmp4_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _view_manager_unref0 (_tmp2_); +#line 36 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return self; +#line 684 "DirectView.c" +} + + +DirectViewCollection* direct_view_collection_new (void) { +#line 36 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return direct_view_collection_construct (TYPE_DIRECT_VIEW_COLLECTION); +#line 691 "DirectView.c" +} + + +static gint64 direct_view_collection_filename_comparator (void* a, void* b) { + gint64 result = 0LL; + DirectView* aview = NULL; + void* _tmp0_ = NULL; + DirectView* bview = NULL; + void* _tmp1_ = NULL; + GCompareFunc _tmp2_ = NULL; + gchar* _tmp3_ = NULL; + gchar* _tmp4_ = NULL; + gchar* _tmp5_ = NULL; + gchar* _tmp6_ = NULL; + gint _tmp7_ = 0; + gint64 _tmp8_ = 0LL; +#line 44 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp0_ = a; +#line 44 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + aview = (DirectView*) _tmp0_; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp1_ = b; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + bview = (DirectView*) _tmp1_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp2_ = g_strcmp0; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp3_ = direct_view_get_collate_key (G_TYPE_CHECK_INSTANCE_CAST (aview, TYPE_DIRECT_VIEW, DirectView)); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp4_ = _tmp3_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp5_ = direct_view_get_collate_key (G_TYPE_CHECK_INSTANCE_CAST (bview, TYPE_DIRECT_VIEW, DirectView)); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp6_ = _tmp5_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp7_ = _tmp2_ (_tmp4_, _tmp6_); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp8_ = (gint64) _tmp7_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_free0 (_tmp6_); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _g_free0 (_tmp4_); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + result = _tmp8_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return result; +#line 738 "DirectView.c" +} + + +static DataView* direct_view_collection_direct_view_manager_real_create_view (ViewManager* base, DataSource* source) { + DirectViewCollectionDirectViewManager * self; + DataView* result = NULL; + DataSource* _tmp0_ = NULL; + DirectView* _tmp1_ = NULL; +#line 31 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManager); +#line 31 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + g_return_val_if_fail (IS_DATA_SOURCE (source), NULL); +#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp0_ = source; +#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + _tmp1_ = direct_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto)); +#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView); +#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return result; +#line 759 "DirectView.c" +} + + +static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_construct (GType object_type) { + DirectViewCollectionDirectViewManager* self = NULL; +#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + self = (DirectViewCollectionDirectViewManager*) view_manager_construct (object_type); +#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return self; +#line 769 "DirectView.c" +} + + +static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_new (void) { +#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + return direct_view_collection_direct_view_manager_construct (DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER); +#line 776 "DirectView.c" +} + + +static void direct_view_collection_direct_view_manager_class_init (DirectViewCollectionDirectViewManagerClass * klass) { +#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + direct_view_collection_direct_view_manager_parent_class = g_type_class_peek_parent (klass); +#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + ((ViewManagerClass *) klass)->create_view = direct_view_collection_direct_view_manager_real_create_view; +#line 785 "DirectView.c" +} + + +static void direct_view_collection_direct_view_manager_instance_init (DirectViewCollectionDirectViewManager * self) { +} + + +static GType direct_view_collection_direct_view_manager_get_type (void) { + static volatile gsize direct_view_collection_direct_view_manager_type_id__volatile = 0; + if (g_once_init_enter (&direct_view_collection_direct_view_manager_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectViewCollectionDirectViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_collection_direct_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectViewCollectionDirectViewManager), 0, (GInstanceInitFunc) direct_view_collection_direct_view_manager_instance_init, NULL }; + GType direct_view_collection_direct_view_manager_type_id; + direct_view_collection_direct_view_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "DirectViewCollectionDirectViewManager", &g_define_type_info, 0); + g_once_init_leave (&direct_view_collection_direct_view_manager_type_id__volatile, direct_view_collection_direct_view_manager_type_id); + } + return direct_view_collection_direct_view_manager_type_id__volatile; +} + + +static void direct_view_collection_class_init (DirectViewCollectionClass * klass) { +#line 29 "/home/jens/Source/shotwell/src/direct/DirectView.vala" + direct_view_collection_parent_class = g_type_class_peek_parent (klass); +#line 808 "DirectView.c" +} + + +static void direct_view_collection_instance_init (DirectViewCollection * self) { +} + + +GType direct_view_collection_get_type (void) { + static volatile gsize direct_view_collection_type_id__volatile = 0; + if (g_once_init_enter (&direct_view_collection_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectViewCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectViewCollection), 0, (GInstanceInitFunc) direct_view_collection_instance_init, NULL }; + GType direct_view_collection_type_id; + direct_view_collection_type_id = g_type_register_static (TYPE_VIEW_COLLECTION, "DirectViewCollection", &g_define_type_info, 0); + g_once_init_leave (&direct_view_collection_type_id__volatile, direct_view_collection_type_id); + } + return direct_view_collection_type_id__volatile; +} + + + diff --git a/src/direct/DirectWindow.c b/src/direct/DirectWindow.c new file mode 100644 index 0000000..dcba026 --- /dev/null +++ b/src/direct/DirectWindow.c @@ -0,0 +1,935 @@ +/* DirectWindow.c generated by valac 0.32.1, the Vala compiler + * generated from DirectWindow.vala, do not modify */ + +/* Copyright 2016 Software Freedom Conservancy Inc. + * + * This software is licensed under the GNU LGPL (version 2.1 or later). + * See the COPYING file in this distribution. + */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <stdlib.h> +#include <string.h> +#include <gio/gio.h> +#include <gee.h> +#include <glib/gi18n-lib.h> +#include <gdk/gdk.h> + + +#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; +typedef struct _PageWindowPrivate PageWindowPrivate; + +#define TYPE_PAGE (page_get_type ()) +#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page)) +#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass)) +#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE)) +#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE)) +#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass)) + +typedef struct _Page Page; +typedef struct _PageClass PageClass; + +#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 _AppWindowPrivate AppWindowPrivate; + +#define TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; + +#define TYPE_DIRECT_WINDOW (direct_window_get_type ()) +#define DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_WINDOW, DirectWindow)) +#define DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_WINDOW, DirectWindowClass)) +#define IS_DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_WINDOW)) +#define IS_DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_WINDOW)) +#define DIRECT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_WINDOW, DirectWindowClass)) + +typedef struct _DirectWindow DirectWindow; +typedef struct _DirectWindowClass DirectWindowClass; +typedef struct _DirectWindowPrivate DirectWindowPrivate; + +#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ()) +#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)) +#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass)) +#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE)) +#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE)) +#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass)) + +typedef struct _SinglePhotoPage SinglePhotoPage; +typedef struct _SinglePhotoPageClass SinglePhotoPageClass; + +#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ()) +#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage)) +#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass)) +#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE)) +#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE)) +#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass)) + +typedef struct _EditingHostPage EditingHostPage; +typedef struct _EditingHostPageClass EditingHostPageClass; + +#define TYPE_DIRECT_PHOTO_PAGE (direct_photo_page_get_type ()) +#define DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage)) +#define DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass)) +#define IS_DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_PAGE)) +#define IS_DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_PAGE)) +#define DIRECT_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass)) + +typedef struct _DirectPhotoPage DirectPhotoPage; +typedef struct _DirectPhotoPageClass DirectPhotoPageClass; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) + +#define TYPE_DATA_COLLECTION (data_collection_get_type ()) +#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection)) +#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass)) +#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION)) +#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION)) +#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass)) + +typedef struct _DataCollection DataCollection; +typedef struct _DataCollectionClass DataCollectionClass; + +#define TYPE_VIEW_COLLECTION (view_collection_get_type ()) +#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection)) +#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass)) +#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION)) +#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION)) +#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass)) + +typedef struct _ViewCollection ViewCollection; +typedef struct _ViewCollectionClass ViewCollectionClass; + +#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_ALTERATION (alteration_get_type ()) +#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration)) +#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass)) +#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION)) +#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION)) +#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass)) + +typedef struct _Alteration Alteration; +typedef struct _AlterationClass AlterationClass; +#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL))) + +#define TYPE_DATA_VIEW (data_view_get_type ()) +#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView)) +#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass)) +#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW)) +#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW)) +#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass)) + +typedef struct _DataView DataView; +typedef struct _DataViewClass DataViewClass; +#define _g_free0(var) (var = (g_free (var), NULL)) + +#define TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE (direct_fullscreen_photo_page_get_type ()) +#define DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage)) +#define DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass)) +#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE)) +#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE)) +#define DIRECT_FULLSCREEN_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass)) + +typedef struct _DirectFullscreenPhotoPage DirectFullscreenPhotoPage; +typedef struct _DirectFullscreenPhotoPageClass DirectFullscreenPhotoPageClass; + +#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_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 TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ()) +#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade)) +#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass)) +#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE)) +#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE)) +#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass)) + +typedef struct _ConfigurationFacade ConfigurationFacade; +typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass; + +#define CONFIG_TYPE_FACADE (config_facade_get_type ()) +#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade)) +#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass)) +#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE)) +#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE)) +#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass)) + +typedef struct _ConfigFacade ConfigFacade; +typedef struct _ConfigFacadeClass ConfigFacadeClass; + +struct _PageWindow { + GtkWindow parent_instance; + PageWindowPrivate * priv; + GtkUIManager* ui; +}; + +struct _PageWindowClass { + GtkWindowClass parent_class; + void (*switched_pages) (PageWindow* self, Page* old_page, Page* new_page); + void (*set_current_page) (PageWindow* self, Page* page); + void (*clear_current_page) (PageWindow* self); +}; + +struct _Dimensions { + gint width; + gint height; +}; + +struct _AppWindow { + PageWindow parent_instance; + AppWindowPrivate * priv; + GtkActionGroup** common_action_groups; + gint common_action_groups_length1; + gboolean maximized; + Dimensions dimensions; + gint pos_x; + gint pos_y; +}; + +struct _AppWindowClass { + PageWindowClass parent_class; + void (*on_fullscreen) (AppWindow* self); + gchar* (*get_app_role) (AppWindow* self); + void (*on_quit) (AppWindow* self); + GtkActionGroup** (*create_common_action_groups) (AppWindow* self, int* result_length1); + void (*replace_common_placeholders) (AppWindow* self, GtkUIManager* ui); + void (*update_common_action_availability) (AppWindow* self, Page* old_page, Page* new_page); + void (*update_common_actions) (AppWindow* self, Page* page, gint selected_count, gint count); +}; + +struct _DirectWindow { + AppWindow parent_instance; + DirectWindowPrivate * priv; +}; + +struct _DirectWindowClass { + AppWindowClass parent_class; +}; + +struct _DirectWindowPrivate { + DirectPhotoPage* direct_photo_page; +}; + + +static gpointer direct_window_parent_class = NULL; +extern AppWindow* app_window_instance; + +GType page_window_get_type (void) G_GNUC_CONST; +GType page_get_type (void) G_GNUC_CONST; +GType app_window_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); +GType direct_window_get_type (void) G_GNUC_CONST; +GType single_photo_page_get_type (void) G_GNUC_CONST; +GType editing_host_page_get_type (void) G_GNUC_CONST; +GType direct_photo_page_get_type (void) G_GNUC_CONST; +#define DIRECT_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_WINDOW, DirectWindowPrivate)) +enum { + DIRECT_WINDOW_DUMMY_PROPERTY +}; +DirectWindow* direct_window_new (GFile* file); +DirectWindow* direct_window_construct (GType object_type, GFile* file); +AppWindow* app_window_construct (GType object_type); +DirectPhotoPage* direct_photo_page_new (GFile* file); +DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file); +gpointer data_collection_ref (gpointer instance); +void data_collection_unref (gpointer instance); +GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_data_collection (GValue* value, gpointer v_object); +void value_take_data_collection (GValue* value, gpointer v_object); +gpointer value_get_data_collection (const GValue* value); +GType data_collection_get_type (void) G_GNUC_CONST; +GType view_collection_get_type (void) G_GNUC_CONST; +ViewCollection* page_get_view (Page* self); +static void direct_window_on_photo_changed (DirectWindow* self); +GType data_object_get_type (void) G_GNUC_CONST; +gpointer alteration_ref (gpointer instance); +void alteration_unref (gpointer instance); +GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_alteration (GValue* value, gpointer v_object); +void value_take_alteration (GValue* value, gpointer v_object); +gpointer value_get_alteration (const GValue* value); +GType alteration_get_type (void) G_GNUC_CONST; +static void _direct_window_on_photo_changed_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self); +GType data_view_get_type (void) G_GNUC_CONST; +static void _direct_window_on_photo_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self); +void page_window_set_current_page (PageWindow* self, Page* page); +void direct_window_update_title (DirectWindow* self, GFile* file, gboolean modified); +void page_switched_to (Page* self); +GtkMenuBar* page_get_menubar (Page* self); +GtkToolbar* page_get_toolbar (Page* self); +DirectWindow* direct_window_get_app (void); +DirectPhotoPage* direct_window_get_direct_page (DirectWindow* self); +Page* page_window_get_current_page (PageWindow* self); +gchar* get_display_pathname (GFile* file); +#define RESOURCES_APP_TITLE "Shotwell" +static void direct_window_real_on_fullscreen (AppWindow* base); +GFile* direct_photo_page_get_current_file (DirectPhotoPage* self); +void app_window_go_fullscreen (AppWindow* self, Page* page); +DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file); +DirectFullscreenPhotoPage* direct_fullscreen_photo_page_construct (GType object_type, GFile* file); +GType direct_fullscreen_photo_page_get_type (void) G_GNUC_CONST; +static gchar* direct_window_real_get_app_role (AppWindow* base); +#define RESOURCES_APP_DIRECT_ROLE _ ("Photo Viewer") +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 photo_source_get_type (void) G_GNUC_CONST; +GType photo_get_type (void) G_GNUC_CONST; +Photo* editing_host_page_get_photo (EditingHostPage* self); +GFile* media_source_get_file (MediaSource* self); +gboolean photo_has_alterations (Photo* self); +static void direct_window_real_on_quit (AppWindow* base); +gboolean direct_photo_page_check_quit (DirectPhotoPage* self); +GType configuration_facade_get_type (void) G_GNUC_CONST; +GType config_facade_get_type (void) G_GNUC_CONST; +ConfigFacade* config_facade_get_instance (void); +void configuration_facade_set_direct_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions); +void app_window_on_quit (AppWindow* self); +static gboolean direct_window_real_delete_event (GtkWidget* base, GdkEventAny* event); +static gboolean direct_window_real_button_press_event (GtkWidget* base, GdkEventButton* event); +void app_window_on_fullscreen (AppWindow* self); +static gboolean direct_window_real_key_press_event (GtkWidget* base, GdkEventKey* event); +static void direct_window_finalize (GObject* obj); + + +static void _direct_window_on_photo_changed_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) { +#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + direct_window_on_photo_changed ((DirectWindow*) self); +#line 371 "DirectWindow.c" +} + + +static void _direct_window_on_photo_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) { +#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + direct_window_on_photo_changed ((DirectWindow*) self); +#line 378 "DirectWindow.c" +} + + +DirectWindow* direct_window_construct (GType object_type, GFile* file) { + DirectWindow * self = NULL; + GFile* _tmp0_ = NULL; + DirectPhotoPage* _tmp1_ = NULL; + DirectPhotoPage* _tmp2_ = NULL; + ViewCollection* _tmp3_ = NULL; + ViewCollection* _tmp4_ = NULL; + DirectPhotoPage* _tmp5_ = NULL; + ViewCollection* _tmp6_ = NULL; + ViewCollection* _tmp7_ = NULL; + DirectPhotoPage* _tmp8_ = NULL; + GFile* _tmp9_ = NULL; + DirectPhotoPage* _tmp10_ = NULL; + GtkBox* layout = NULL; + GtkBox* _tmp11_ = NULL; + DirectPhotoPage* _tmp12_ = NULL; + GtkMenuBar* _tmp13_ = NULL; + GtkMenuBar* _tmp14_ = NULL; + DirectPhotoPage* _tmp15_ = NULL; + DirectPhotoPage* _tmp16_ = NULL; + GtkToolbar* _tmp17_ = NULL; + GtkToolbar* _tmp18_ = NULL; +#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_val_if_fail (G_IS_FILE (file), NULL); +#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = (DirectWindow*) app_window_construct (object_type); +#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = file; +#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = direct_photo_page_new (_tmp0_); +#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_object_ref_sink (_tmp1_); +#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (self->priv->direct_photo_page); +#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self->priv->direct_photo_page = _tmp1_; +#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = self->priv->direct_photo_page; +#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PAGE, Page)); +#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = _tmp3_; +#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _direct_window_on_photo_changed_data_collection_items_altered, self, 0); +#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _data_collection_unref0 (_tmp4_); +#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = self->priv->direct_photo_page; +#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE, Page)); +#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp7_ = _tmp6_; +#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_signal_connect_object (_tmp7_, "items-state-changed", (GCallback) _direct_window_on_photo_changed_view_collection_items_state_changed, self, 0); +#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _data_collection_unref0 (_tmp7_); +#line 15 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp8_ = self->priv->direct_photo_page; +#line 15 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + page_window_set_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE, Page)); +#line 17 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp9_ = file; +#line 17 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + direct_window_update_title (self, _tmp9_, FALSE); +#line 19 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp10_ = self->priv->direct_photo_page; +#line 19 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + page_switched_to (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PAGE, Page)); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp11_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_object_ref_sink (_tmp11_); +#line 23 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + layout = _tmp11_; +#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp12_ = self->priv->direct_photo_page; +#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp13_ = page_get_menubar (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PAGE, Page)); +#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp14_ = _tmp13_; +#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + gtk_box_pack_start (layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0); +#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp14_); +#line 25 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp15_ = self->priv->direct_photo_page; +#line 25 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + gtk_box_pack_start (layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0); +#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp16_ = self->priv->direct_photo_page; +#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp17_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PAGE, Page)); +#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp18_ = _tmp17_; +#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + gtk_box_pack_end (layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0); +#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp18_); +#line 28 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_widget_get_type (), GtkWidget)); +#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (layout); +#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return self; +#line 486 "DirectWindow.c" +} + + +DirectWindow* direct_window_new (GFile* file) { +#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return direct_window_construct (TYPE_DIRECT_WINDOW, file); +#line 493 "DirectWindow.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return self ? g_object_ref (self) : NULL; +#line 500 "DirectWindow.c" +} + + +DirectWindow* direct_window_get_app (void) { + DirectWindow* result = NULL; + AppWindow* _tmp0_ = NULL; + DirectWindow* _tmp1_ = NULL; +#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = app_window_instance; +#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_WINDOW, DirectWindow)); +#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = _tmp1_; +#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 516 "DirectWindow.c" +} + + +DirectPhotoPage* direct_window_get_direct_page (DirectWindow* self) { + DirectPhotoPage* result = NULL; + Page* _tmp0_ = NULL; +#line 35 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_val_if_fail (IS_DIRECT_WINDOW (self), NULL); +#line 36 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)); +#line 36 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage); +#line 36 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 531 "DirectWindow.c" +} + + +void direct_window_update_title (DirectWindow* self, GFile* file, gboolean modified) { + const gchar* _tmp0_ = NULL; + gboolean _tmp1_ = FALSE; + GFile* _tmp2_ = NULL; + gchar* _tmp3_ = NULL; + gchar* _tmp4_ = NULL; + GFile* _tmp5_ = NULL; + GFile* _tmp6_ = NULL; + GFile* _tmp7_ = NULL; + gchar* _tmp8_ = NULL; + gchar* _tmp9_ = NULL; + gchar* _tmp10_ = NULL; + gchar* _tmp11_ = NULL; +#line 39 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_if_fail (IS_DIRECT_WINDOW (self)); +#line 39 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_if_fail (G_IS_FILE (file)); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = modified; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (_tmp1_) { +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = "*"; +#line 558 "DirectWindow.c" + } else { +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = ""; +#line 562 "DirectWindow.c" + } +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = file; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = g_file_get_basename (_tmp2_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = _tmp3_; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = file; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp6_ = g_file_get_parent (_tmp5_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp7_ = _tmp6_; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp8_ = get_display_pathname (_tmp7_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp9_ = _tmp8_; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp10_ = g_strdup_printf ("%s%s (%s) - %s", _tmp0_, _tmp4_, _tmp9_, RESOURCES_APP_TITLE); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp11_ = _tmp10_; +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp11_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_free0 (_tmp11_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_free0 (_tmp9_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp7_); +#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_free0 (_tmp4_); +#line 594 "DirectWindow.c" +} + + +static void direct_window_real_on_fullscreen (AppWindow* base) { + DirectWindow * self; + GFile* file = NULL; + DirectPhotoPage* _tmp0_ = NULL; + DirectPhotoPage* _tmp1_ = NULL; + GFile* _tmp2_ = NULL; + GFile* _tmp3_ = NULL; + DirectFullscreenPhotoPage* _tmp4_ = NULL; + DirectFullscreenPhotoPage* _tmp5_ = NULL; +#line 44 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow); +#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = direct_window_get_direct_page (self); +#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = _tmp0_; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = direct_photo_page_get_current_file (_tmp1_); +#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = _tmp2_; +#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp1_); +#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + file = _tmp3_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = direct_fullscreen_photo_page_new (file); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_object_ref_sink (_tmp4_); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = _tmp4_; +#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + app_window_go_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE, Page)); +#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp5_); +#line 44 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (file); +#line 633 "DirectWindow.c" +} + + +static gchar* direct_window_real_get_app_role (AppWindow* base) { + DirectWindow * self; + gchar* result = NULL; + gchar* _tmp0_ = NULL; +#line 50 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow); +#line 51 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = g_strdup (RESOURCES_APP_DIRECT_ROLE); +#line 51 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = _tmp0_; +#line 51 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 649 "DirectWindow.c" +} + + +static void direct_window_on_photo_changed (DirectWindow* self) { + Photo* photo = NULL; + DirectPhotoPage* _tmp0_ = NULL; + Photo* _tmp1_ = NULL; + Photo* _tmp2_ = NULL; +#line 54 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_if_fail (IS_DIRECT_WINDOW (self)); +#line 55 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = self->priv->direct_photo_page; +#line 55 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EDITING_HOST_PAGE, EditingHostPage)); +#line 55 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + photo = _tmp1_; +#line 56 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = photo; +#line 56 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (_tmp2_ != NULL) { +#line 670 "DirectWindow.c" + Photo* _tmp3_ = NULL; + GFile* _tmp4_ = NULL; + GFile* _tmp5_ = NULL; + Photo* _tmp6_ = NULL; + gboolean _tmp7_ = FALSE; +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = photo; +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource)); +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = _tmp4_; +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp6_ = photo; +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp7_ = photo_has_alterations (_tmp6_); +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + direct_window_update_title (self, _tmp5_, _tmp7_); +#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp5_); +#line 690 "DirectWindow.c" + } +#line 54 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (photo); +#line 694 "DirectWindow.c" +} + + +static void direct_window_real_on_quit (AppWindow* base) { + DirectWindow * self; + DirectPhotoPage* _tmp0_ = NULL; + DirectPhotoPage* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; + ConfigFacade* _tmp4_ = NULL; + ConfigFacade* _tmp5_ = NULL; + gboolean _tmp6_ = FALSE; + Dimensions _tmp7_ = {0}; +#line 60 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow); +#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = direct_window_get_direct_page (self); +#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = _tmp0_; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = direct_photo_page_check_quit (_tmp1_); +#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = !_tmp2_; +#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp1_); +#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (_tmp3_) { +#line 62 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return; +#line 724 "DirectWindow.c" + } +#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = config_facade_get_instance (); +#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = _tmp4_; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)->maximized; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)->dimensions; +#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + configuration_facade_set_direct_window_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp6_, &_tmp7_); +#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp5_); +#line 66 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + APP_WINDOW_CLASS (direct_window_parent_class)->on_quit (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)); +#line 740 "DirectWindow.c" +} + + +static gboolean direct_window_real_delete_event (GtkWidget* base, GdkEventAny* event) { + DirectWindow * self; + gboolean result = FALSE; + DirectPhotoPage* _tmp0_ = NULL; + DirectPhotoPage* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; + gboolean _tmp4_ = FALSE; +#line 69 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow); +#line 69 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = direct_window_get_direct_page (self); +#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = _tmp0_; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = direct_photo_page_check_quit (_tmp1_); +#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = !_tmp2_; +#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (_tmp1_); +#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (_tmp3_) { +#line 71 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = TRUE; +#line 71 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 772 "DirectWindow.c" + } +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (GTK_WIDGET_CLASS (direct_window_parent_class)->delete_event != NULL) { +#line 776 "DirectWindow.c" + GdkEventAny* _tmp5_ = NULL; + gboolean _tmp6_ = FALSE; +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = event; +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp6_ = GTK_WIDGET_CLASS (direct_window_parent_class)->delete_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), gtk_widget_get_type (), GtkWidget), _tmp5_); +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = _tmp6_; +#line 785 "DirectWindow.c" + } else { +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = FALSE; +#line 789 "DirectWindow.c" + } +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = _tmp4_; +#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 795 "DirectWindow.c" +} + + +static gboolean direct_window_real_button_press_event (GtkWidget* base, GdkEventButton* event) { + DirectWindow * self; + gboolean result = FALSE; + GdkEventButton* _tmp0_ = NULL; + GdkEventType _tmp1_ = 0; +#line 76 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow); +#line 76 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 77 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = event; +#line 77 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = _tmp0_->type; +#line 77 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (_tmp1_ == GDK_2BUTTON_PRESS) { +#line 78 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + app_window_on_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)); +#line 80 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = TRUE; +#line 80 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 820 "DirectWindow.c" + } +#line 83 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = FALSE; +#line 83 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 826 "DirectWindow.c" +} + + +static gboolean direct_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) { + DirectWindow * self; + gboolean result = FALSE; + GdkEventKey* _tmp0_ = NULL; + guint _tmp1_ = 0U; + const gchar* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; +#line 86 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow); +#line 86 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_return_val_if_fail (event != NULL, FALSE); +#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp0_ = event; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp1_ = _tmp0_->keyval; +#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp2_ = gdk_keyval_name (_tmp1_); +#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (g_strcmp0 (_tmp2_, "Escape") == 0) { +#line 89 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + app_window_on_quit (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)); +#line 91 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = TRUE; +#line 91 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 855 "DirectWindow.c" + } +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + if (GTK_WIDGET_CLASS (direct_window_parent_class)->key_press_event != NULL) { +#line 859 "DirectWindow.c" + GdkEventKey* _tmp4_ = NULL; + gboolean _tmp5_ = FALSE; +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp4_ = event; +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp5_ = GTK_WIDGET_CLASS (direct_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), gtk_widget_get_type (), GtkWidget), _tmp4_); +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = _tmp5_; +#line 868 "DirectWindow.c" + } else { +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _tmp3_ = FALSE; +#line 872 "DirectWindow.c" + } +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + result = _tmp3_; +#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + return result; +#line 878 "DirectWindow.c" +} + + +static void direct_window_class_init (DirectWindowClass * klass) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + direct_window_parent_class = g_type_class_peek_parent (klass); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + g_type_class_add_private (klass, sizeof (DirectWindowPrivate)); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + ((AppWindowClass *) klass)->on_fullscreen = direct_window_real_on_fullscreen; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + ((AppWindowClass *) klass)->get_app_role = direct_window_real_get_app_role; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + ((AppWindowClass *) klass)->on_quit = direct_window_real_on_quit; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + ((GtkWidgetClass *) klass)->delete_event = direct_window_real_delete_event; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + ((GtkWidgetClass *) klass)->button_press_event = direct_window_real_button_press_event; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + ((GtkWidgetClass *) klass)->key_press_event = direct_window_real_key_press_event; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + G_OBJECT_CLASS (klass)->finalize = direct_window_finalize; +#line 901 "DirectWindow.c" +} + + +static void direct_window_instance_init (DirectWindow * self) { +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self->priv = DIRECT_WINDOW_GET_PRIVATE (self); +#line 908 "DirectWindow.c" +} + + +static void direct_window_finalize (GObject* obj) { + DirectWindow * self; +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_WINDOW, DirectWindow); +#line 8 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + _g_object_unref0 (self->priv->direct_photo_page); +#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala" + G_OBJECT_CLASS (direct_window_parent_class)->finalize (obj); +#line 920 "DirectWindow.c" +} + + +GType direct_window_get_type (void) { + static volatile gsize direct_window_type_id__volatile = 0; + if (g_once_init_enter (&direct_window_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (DirectWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectWindow), 0, (GInstanceInitFunc) direct_window_instance_init, NULL }; + GType direct_window_type_id; + direct_window_type_id = g_type_register_static (TYPE_APP_WINDOW, "DirectWindow", &g_define_type_info, 0); + g_once_init_leave (&direct_window_type_id__volatile, direct_window_type_id); + } + return direct_window_type_id__volatile; +} + + + diff --git a/src/direct/mk/direct.mk b/src/direct/mk/direct.mk deleted file mode 100644 index 4c0f226..0000000 --- a/src/direct/mk/direct.mk +++ /dev/null @@ -1,36 +0,0 @@ - -# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with -# a init() and terminate() function declared in the namespace. -UNIT_NAME := Direct - -# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all -# lowercase. The name of this file should be UNIT_DIR.mk. -UNIT_DIR := direct - -# All Vala files in the unit should be listed here with no subdirectory prefix. -# -# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala. -UNIT_FILES := \ - DirectWindow.vala \ - DirectPhoto.vala \ - DirectPhotoPage.vala \ - DirectView.vala - -# Any unit this unit relies upon (and should be initialized before it's initialized) should -# be listed here using its Vala namespace. -# -# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here. -UNIT_USES := \ - Db \ - Util \ - Photos \ - Slideshow \ - Core - -# List any additional files that are used in the build process as a part of this unit that should -# be packaged in the tarball. File names should be relative to the unit's home directory. -UNIT_RC := - -# unitize.mk must be called at the end of each UNIT_DIR.mk file. -include unitize.mk - |