/* DirectPhotoPage.c generated by valac 0.36.6, 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 <gio/gio.h>
#include <gee.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include <gdk-pixbuf/gdk-pixbuf.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 _Block7Data Block7Data;

#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;
	GtkBuilder* builder;
	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);
	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 (*add_actions) (Page* self, GActionMap* map);
	void (*remove_actions) (Page* self, GActionMap* map);
	void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
	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;
	GtkMenu* context_menu;
};

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 _Block7Data {
	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);
static void direct_photo_page_on_save (DirectPhotoPage* self);
static void _direct_photo_page_on_save_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void direct_photo_page_on_save_as (DirectPhotoPage* self);
static void _direct_photo_page_on_save_as_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void direct_photo_page_on_send_to (DirectPhotoPage* self);
static void _direct_photo_page_on_send_to_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void direct_photo_page_on_print (DirectPhotoPage* self);
static void _direct_photo_page_on_print_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void single_photo_page_on_previous_photo (SinglePhotoPage* self);
static void _single_photo_page_on_previous_photo_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void single_photo_page_on_next_photo (SinglePhotoPage* self);
static void _single_photo_page_on_next_photo_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_rotate_clockwise (EditingHostPage* self);
static void _editing_host_page_on_rotate_clockwise_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_rotate_counterclockwise (EditingHostPage* self);
static void _editing_host_page_on_rotate_counterclockwise_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_flip_horizontally (EditingHostPage* self);
static void _editing_host_page_on_flip_horizontally_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_flip_vertically (EditingHostPage* self);
static void _editing_host_page_on_flip_vertically_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_enhance (EditingHostPage* self);
static void _editing_host_page_on_enhance_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_toggle_crop (EditingHostPage* self);
static void _editing_host_page_toggle_crop_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_toggle_straighten (EditingHostPage* self);
static void _editing_host_page_toggle_straighten_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_toggle_redeye (EditingHostPage* self);
static void _editing_host_page_toggle_redeye_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_toggle_adjust (EditingHostPage* self);
static void _editing_host_page_toggle_adjust_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_revert (EditingHostPage* self);
static void _editing_host_page_on_revert_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_adjust_date_time (EditingHostPage* self);
static void _editing_host_page_on_adjust_date_time_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_set_background (EditingHostPage* self);
static void _editing_host_page_on_set_background_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_increase_size (EditingHostPage* self);
static void _editing_host_page_on_increase_size_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_on_decrease_size (EditingHostPage* self);
static void _editing_host_page_on_decrease_size_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_snap_zoom_to_min (EditingHostPage* self);
static void _editing_host_page_snap_zoom_to_min_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_snap_zoom_to_isomorphic (EditingHostPage* self);
static void _editing_host_page_snap_zoom_to_isomorphic_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
void editing_host_page_snap_zoom_to_max (EditingHostPage* self);
static void _editing_host_page_snap_zoom_to_max_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, 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 void direct_photo_page_real_add_actions (Page* base, GActionMap* map);
void page_add_actions (Page* self, GActionMap* map);
static void direct_photo_page_real_remove_actions (Page* base, GActionMap* map);
void page_remove_actions (Page* self, GActionMap* map);
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, const gchar* accellerator);
static void _vala_array_add61 (InjectionGroup** * array, int* length, int* size, InjectionGroup* value);
static void _vala_array_add62 (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 GtkMenu* direct_photo_page_get_context_menu (DirectPhotoPage* self);
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);
gboolean data_source_equals (DataSource* self, DataSource* source);
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 Block7Data* block7_data_ref (Block7Data* _data7_);
static void block7_data_unref (void * _userdata_);
static gboolean __lambda16_ (Block7Data* _data7_);
void editing_host_page_enable_rotate (EditingHostPage* self, gboolean should_enable);
static gboolean ___lambda16__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 const GActionEntry DIRECT_PHOTO_PAGE_entries[23] = {{"Save", _direct_photo_page_on_save_gsimple_action_activate_callback}, {"SaveAs", _direct_photo_page_on_save_as_gsimple_action_activate_callback}, {"SendTo", _direct_photo_page_on_send_to_gsimple_action_activate_callback}, {"Print", _direct_photo_page_on_print_gsimple_action_activate_callback}, {"PrevPhoto", _single_photo_page_on_previous_photo_gsimple_action_activate_callback}, {"NextPhoto", _single_photo_page_on_next_photo_gsimple_action_activate_callback}, {"RotateClockwise", _editing_host_page_on_rotate_clockwise_gsimple_action_activate_callback}, {"RotateCounterclockwise", _editing_host_page_on_rotate_counterclockwise_gsimple_action_activate_callback}, {"FlipHorizontally", _editing_host_page_on_flip_horizontally_gsimple_action_activate_callback}, {"FlipVertically", _editing_host_page_on_flip_vertically_gsimple_action_activate_callback}, {"Enhance", _editing_host_page_on_enhance_gsimple_action_activate_callback}, {"Crop", _editing_host_page_toggle_crop_gsimple_action_activate_callback}, {"Straighten", _editing_host_page_toggle_straighten_gsimple_action_activate_callback}, {"RedEye", _editing_host_page_toggle_redeye_gsimple_action_activate_callback}, {"Adjust", _editing_host_page_toggle_adjust_gsimple_action_activate_callback}, {"Revert", _editing_host_page_on_revert_gsimple_action_activate_callback}, {"AdjustDateTime", _editing_host_page_on_adjust_date_time_gsimple_action_activate_callback}, {"SetBackground", _editing_host_page_on_set_background_gsimple_action_activate_callback}, {"IncreaseSize", _editing_host_page_on_increase_size_gsimple_action_activate_callback}, {"DecreaseSize", _editing_host_page_on_decrease_size_gsimple_action_activate_callback}, {"ZoomFit", _editing_host_page_snap_zoom_to_min_gsimple_action_activate_callback}, {"Zoom100", _editing_host_page_snap_zoom_to_isomorphic_gsimple_action_activate_callback}, {"Zoom200", _editing_host_page_snap_zoom_to_max_gsimple_action_activate_callback}};

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 870 "DirectPhotoPage.c"
}


static void _direct_photo_page_on_save_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_on_save ((DirectPhotoPage*) self);
#line 877 "DirectPhotoPage.c"
}


static void _direct_photo_page_on_save_as_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_on_save_as ((DirectPhotoPage*) self);
#line 884 "DirectPhotoPage.c"
}


static void _direct_photo_page_on_send_to_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_on_send_to ((DirectPhotoPage*) self);
#line 891 "DirectPhotoPage.c"
}


static void _direct_photo_page_on_print_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_on_print ((DirectPhotoPage*) self);
#line 898 "DirectPhotoPage.c"
}


static void _single_photo_page_on_previous_photo_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	single_photo_page_on_previous_photo ((SinglePhotoPage*) self);
#line 905 "DirectPhotoPage.c"
}


static void _single_photo_page_on_next_photo_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	single_photo_page_on_next_photo ((SinglePhotoPage*) self);
#line 912 "DirectPhotoPage.c"
}


static void _editing_host_page_on_rotate_clockwise_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_rotate_clockwise ((EditingHostPage*) self);
#line 919 "DirectPhotoPage.c"
}


static void _editing_host_page_on_rotate_counterclockwise_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_rotate_counterclockwise ((EditingHostPage*) self);
#line 926 "DirectPhotoPage.c"
}


static void _editing_host_page_on_flip_horizontally_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_flip_horizontally ((EditingHostPage*) self);
#line 933 "DirectPhotoPage.c"
}


static void _editing_host_page_on_flip_vertically_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_flip_vertically ((EditingHostPage*) self);
#line 940 "DirectPhotoPage.c"
}


static void _editing_host_page_on_enhance_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_enhance ((EditingHostPage*) self);
#line 947 "DirectPhotoPage.c"
}


static void _editing_host_page_toggle_crop_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_toggle_crop ((EditingHostPage*) self);
#line 954 "DirectPhotoPage.c"
}


static void _editing_host_page_toggle_straighten_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_toggle_straighten ((EditingHostPage*) self);
#line 961 "DirectPhotoPage.c"
}


static void _editing_host_page_toggle_redeye_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_toggle_redeye ((EditingHostPage*) self);
#line 968 "DirectPhotoPage.c"
}


static void _editing_host_page_toggle_adjust_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_toggle_adjust ((EditingHostPage*) self);
#line 975 "DirectPhotoPage.c"
}


static void _editing_host_page_on_revert_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_revert ((EditingHostPage*) self);
#line 982 "DirectPhotoPage.c"
}


static void _editing_host_page_on_adjust_date_time_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_adjust_date_time ((EditingHostPage*) self);
#line 989 "DirectPhotoPage.c"
}


static void _editing_host_page_on_set_background_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_set_background ((EditingHostPage*) self);
#line 996 "DirectPhotoPage.c"
}


static void _editing_host_page_on_increase_size_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_increase_size ((EditingHostPage*) self);
#line 1003 "DirectPhotoPage.c"
}


static void _editing_host_page_on_decrease_size_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_on_decrease_size ((EditingHostPage*) self);
#line 1010 "DirectPhotoPage.c"
}


static void _editing_host_page_snap_zoom_to_min_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_snap_zoom_to_min ((EditingHostPage*) self);
#line 1017 "DirectPhotoPage.c"
}


static void _editing_host_page_snap_zoom_to_isomorphic_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_snap_zoom_to_isomorphic ((EditingHostPage*) self);
#line 1024 "DirectPhotoPage.c"
}


static void _editing_host_page_snap_zoom_to_max_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	editing_host_page_snap_zoom_to_max ((EditingHostPage*) self);
#line 1031 "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 1038 "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 1045 "DirectPhotoPage.c"
}


DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file) {
	DirectPhotoPage * self = NULL;
	DirectPhotoSourceCollection* _tmp0_;
	GFile* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	GFile* _tmp4_;
	gboolean _tmp5_;
	GFile* _tmp8_;
	GFile* _tmp9_;
	DirectViewCollection* _tmp10_;
	GFile* _tmp11_;
	GFile* _tmp12_;
	DirectPhotoSourceCollection* _tmp13_;
	ViewCollection* _tmp14_;
	ViewCollection* _tmp15_;
#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 1085 "DirectPhotoPage.c"
		Application* _tmp6_;
		Application* _tmp7_;
#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 1098 "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 1136 "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 1143 "DirectPhotoPage.c"
}


static void direct_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
	DirectPhotoPage * self;
	GeeList* _tmp0_;
	GeeList* _tmp1_;
	GeeList* _tmp2_;
#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 1168 "DirectPhotoPage.c"
}


static void direct_photo_page_real_add_actions (Page* base, GActionMap* map) {
	DirectPhotoPage * self;
	GActionMap* _tmp0_;
	GActionMap* _tmp1_;
#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (G_IS_ACTION_MAP (map));
#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = map;
#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	PAGE_CLASS (direct_photo_page_parent_class)->add_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp0_);
#line 71 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = map;
#line 71 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_action_map_add_action_entries (_tmp1_, DIRECT_PHOTO_PAGE_entries, G_N_ELEMENTS (DIRECT_PHOTO_PAGE_entries), self);
#line 1188 "DirectPhotoPage.c"
}


static void direct_photo_page_real_remove_actions (Page* base, GActionMap* map) {
	DirectPhotoPage * self;
	GActionMap* _tmp0_;
#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (G_IS_ACTION_MAP (map));
#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = map;
#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	PAGE_CLASS (direct_photo_page_parent_class)->remove_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp0_);
#line 1203 "DirectPhotoPage.c"
	{
		GActionEntry* entry_collection = NULL;
		gint entry_collection_length1 = 0;
		gint _entry_collection_size_ = 0;
		gint entry_it = 0;
#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		entry_collection = DIRECT_PHOTO_PAGE_entries;
#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		entry_collection_length1 = G_N_ELEMENTS (DIRECT_PHOTO_PAGE_entries);
#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		for (entry_it = 0; entry_it < G_N_ELEMENTS (DIRECT_PHOTO_PAGE_entries); entry_it = entry_it + 1) {
#line 1215 "DirectPhotoPage.c"
			GActionEntry entry = {0};
#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			entry = entry_collection[entry_it];
#line 1219 "DirectPhotoPage.c"
			{
				GActionMap* _tmp1_;
				GActionEntry _tmp2_;
				const gchar* _tmp3_;
#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp1_ = map;
#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp2_ = entry;
#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp3_ = _tmp2_.name;
#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				g_action_map_remove_action (_tmp1_, _tmp3_);
#line 1232 "DirectPhotoPage.c"
			}
		}
	}
}


static gpointer _injection_group_ref0 (gpointer self) {
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return self ? injection_group_ref (self) : NULL;
#line 1242 "DirectPhotoPage.c"
}


static void _vala_array_add61 (InjectionGroup** * array, int* length, int* size, InjectionGroup* value) {
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if ((*length) == (*size)) {
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		*array = g_renew (InjectionGroup*, *array, (*size) + 1);
#line 1253 "DirectPhotoPage.c"
	}
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	(*array)[(*length)++] = value;
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	(*array)[*length] = NULL;
#line 1259 "DirectPhotoPage.c"
}


static void _vala_array_add62 (InjectionGroup** * array, int* length, int* size, InjectionGroup* value) {
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if ((*length) == (*size)) {
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		*array = g_renew (InjectionGroup*, *array, (*size) + 1);
#line 1270 "DirectPhotoPage.c"
	}
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	(*array)[(*length)++] = value;
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	(*array)[*length] = NULL;
#line 1276 "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_;
	InjectionGroup** _tmp1_;
	gint groups_length1;
	gint _groups_size_;
	InjectionGroup* print_group = NULL;
	InjectionGroup* _tmp2_;
	InjectionGroup** _tmp3_;
	gint _tmp3__length1;
	InjectionGroup* _tmp4_;
	InjectionGroup* bg_group = NULL;
	InjectionGroup* _tmp5_;
	InjectionGroup** _tmp6_;
	gint _tmp6__length1;
	InjectionGroup* _tmp7_;
	InjectionGroup** _tmp8_;
	gint _tmp8__length1;
#line 81 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 82 "/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 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	groups = _tmp1_;
#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	groups_length1 = _tmp0_;
#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_groups_size_ = groups_length1;
#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = injection_group_new ("PrintPlaceholder");
#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	print_group = _tmp2_;
#line 85 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	injection_group_add_menu_item (print_group, _ ("_Print"), "Print", "<Primary>p");
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = groups;
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3__length1 = groups_length1;
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp4_ = _injection_group_ref0 (print_group);
#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_vala_array_add61 (&groups, &groups_length1, &_groups_size_, _tmp4_);
#line 89 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp5_ = injection_group_new ("SetBackgroundPlaceholder");
#line 89 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	bg_group = _tmp5_;
#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	injection_group_add_menu_item (bg_group, _ ("Set as _Desktop Background"), "SetBackground", "<Primary>b");
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp6_ = groups;
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp6__length1 = groups_length1;
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp7_ = _injection_group_ref0 (bg_group);
#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_vala_array_add62 (&groups, &groups_length1, &_groups_size_, _tmp7_);
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8_ = groups;
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8__length1 = groups_length1;
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (result_length1) {
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		*result_length1 = _tmp8__length1;
#line 1346 "DirectPhotoPage.c"
	}
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp8_;
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_injection_group_unref0 (bg_group);
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_injection_group_unref0 (print_group);
#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 1356 "DirectPhotoPage.c"
}


static gboolean direct_photo_page_check_editable_file (GFile* file) {
	gboolean result = FALSE;
	GFile* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
#line 97 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (G_IS_FILE (file), FALSE);
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = file;
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = g_file_get_path (_tmp0_);
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = _tmp1_;
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = g_file_test (_tmp2_, G_FILE_TEST_EXISTS);
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp4_ = !_tmp3_;
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (_tmp2_);
#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp4_) {
#line 1383 "DirectPhotoPage.c"
		GFile* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp5_ = file;
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = g_file_get_path (_tmp5_);
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp7_ = _tmp6_;
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = g_strdup_printf (_ ("%s does not exist."), _tmp7_);
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp9_ = _tmp8_;
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		app_window_error_message (_tmp9_, NULL);
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp9_);
#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp7_);
#line 1405 "DirectPhotoPage.c"
	} else {
		GFile* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gboolean _tmp13_;
		gboolean _tmp14_;
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp10_ = file;
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp11_ = g_file_get_path (_tmp10_);
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp12_ = _tmp11_;
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp13_ = g_file_test (_tmp12_, G_FILE_TEST_IS_REGULAR);
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp14_ = !_tmp13_;
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp12_);
#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		if (_tmp14_) {
#line 1426 "DirectPhotoPage.c"
			GFile* _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
			gchar* _tmp18_;
			gchar* _tmp19_;
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp15_ = file;
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp16_ = g_file_get_path (_tmp15_);
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp17_ = _tmp16_;
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp18_ = g_strdup_printf (_ ("%s is not a file."), _tmp17_);
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp19_ = _tmp18_;
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			app_window_error_message (_tmp19_, NULL);
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_g_free0 (_tmp19_);
#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_g_free0 (_tmp17_);
#line 1448 "DirectPhotoPage.c"
		} else {
			GFile* _tmp20_;
			gboolean _tmp21_;
#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp20_ = file;
#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp21_ = photo_file_format_is_file_supported (_tmp20_);
#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			if (!_tmp21_) {
#line 1458 "DirectPhotoPage.c"
				GFile* _tmp22_;
				gchar* _tmp23_;
				gchar* _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp22_ = file;
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp23_ = g_file_get_path (_tmp22_);
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp24_ = _tmp23_;
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp25_ = g_strdup_printf (_ ("%s does not support the file format of\n%s."), RESOURCES_APP_TITLE, _tmp24_);
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp26_ = _tmp25_;
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				app_window_error_message (_tmp26_, NULL);
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (_tmp26_);
#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (_tmp24_);
#line 1480 "DirectPhotoPage.c"
			} else {
#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				result = TRUE;
#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				return result;
#line 1486 "DirectPhotoPage.c"
			}
		}
	}
#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = FALSE;
#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 1494 "DirectPhotoPage.c"
}


static void direct_photo_page_real_realize (GtkWidget* base) {
	DirectPhotoPage * self;
	DirectPhoto* photo = NULL;
	DirectPhotoSourceCollection* _tmp0_;
	GFile* _tmp1_;
	DirectPhoto* _tmp2_;
	DirectPhoto* _tmp3_;
#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 112 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (GTK_WIDGET_CLASS (direct_photo_page_parent_class)->realize != NULL) {
#line 113 "/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 1511 "DirectPhotoPage.c"
	}
#line 115 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = direct_photo_global;
#line 115 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = self->priv->initial_file;
#line 115 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = direct_photo_source_collection_get_file_source (_tmp0_, _tmp1_);
#line 115 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	photo = _tmp2_;
#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = photo;
#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp3_ != NULL) {
#line 1525 "DirectPhotoPage.c"
		DirectViewCollection* _tmp4_;
		DirectPhoto* _tmp5_;
#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = self->priv->view_controller;
#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp5_ = photo;
#line 118 "/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 1534 "DirectPhotoPage.c"
	} else {
		GFile* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = self->priv->initial_file;
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp7_ = g_file_get_path (_tmp6_);
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = _tmp7_;
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp9_ = g_strdup_printf (_ ("Unable open photo %s. Sorry."), _tmp8_);
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp10_ = _tmp9_;
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		app_window_panic (_tmp10_);
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp10_);
#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp8_);
#line 1557 "DirectPhotoPage.c"
	}
#line 123 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (self->priv->initial_file);
#line 123 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self->priv->initial_file = NULL;
#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (photo);
#line 1565 "DirectPhotoPage.c"
}


static void _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed (DirectPhoto* _sender, gboolean b, gpointer self) {
#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_on_dphoto_can_rotate_changed ((DirectPhotoPage*) self, b);
#line 1572 "DirectPhotoPage.c"
}


static void direct_photo_page_real_photo_changing (EditingHostPage* base, Photo* new_photo) {
	DirectPhotoPage * self;
	Photo* _tmp0_;
	Photo* _tmp1_;
	gboolean _tmp2_;
	Photo* _tmp8_;
	DirectPhoto* tmp = NULL;
	Photo* _tmp9_;
	DirectPhoto* _tmp10_;
	DirectPhoto* _tmp11_;
#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_PHOTO (new_photo));
#line 127 "/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 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = _tmp1_ != NULL;
#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp1_);
#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp2_) {
#line 1600 "DirectPhotoPage.c"
		DirectPhoto* tmp = NULL;
		Photo* _tmp3_;
		DirectPhoto* _tmp4_;
		DirectPhoto* _tmp5_;
#line 128 "/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 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_DIRECT_PHOTO) ? ((DirectPhoto*) _tmp3_) : NULL;
#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		if (_tmp4_ == NULL) {
#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_g_object_unref0 (_tmp3_);
#line 1613 "DirectPhotoPage.c"
		}
#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		tmp = _tmp4_;
#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp5_ = tmp;
#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		if (_tmp5_ != NULL) {
#line 1621 "DirectPhotoPage.c"
			DirectPhoto* _tmp6_;
			guint _tmp7_;
#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp6_ = tmp;
#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			g_signal_parse_name ("can-rotate-changed", TYPE_DIRECT_PHOTO, &_tmp7_, NULL, FALSE);
#line 131 "/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 1630 "DirectPhotoPage.c"
		}
#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (tmp);
#line 1634 "DirectPhotoPage.c"
	}
#line 135 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8_ = new_photo;
#line 135 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_demand_load (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DIRECT_PHOTO, DirectPhoto));
#line 137 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp9_ = new_photo;
#line 137 "/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 137 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	tmp = _tmp10_;
#line 139 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp11_ = tmp;
#line 139 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp11_ != NULL) {
#line 1650 "DirectPhotoPage.c"
		DirectPhoto* _tmp12_;
#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp12_ = tmp;
#line 140 "/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 1656 "DirectPhotoPage.c"
	}
#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (tmp);
#line 1660 "DirectPhotoPage.c"
}


GFile* direct_photo_page_get_current_file (DirectPhotoPage* self) {
	GFile* result = NULL;
	Photo* _tmp0_;
	Photo* _tmp1_;
	GFile* _tmp2_;
	GFile* _tmp3_;
#line 144 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), NULL);
#line 145 "/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 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = _tmp2_;
#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp1_);
#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp3_;
#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 1686 "DirectPhotoPage.c"
}


static gboolean direct_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event) {
	DirectPhotoPage * self;
	gboolean result = FALSE;
	GtkMenu* _tmp0_;
	GtkMenu* _tmp1_;
	GdkEventButton* _tmp2_;
#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 149 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = direct_photo_page_get_context_menu (self);
#line 149 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 149 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = event;
#line 149 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, _tmp2_);
#line 149 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp1_);
#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = TRUE;
#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 1714 "DirectPhotoPage.c"
}


static GtkMenu* direct_photo_page_get_context_menu (DirectPhotoPage* self) {
	GtkMenu* result = NULL;
	GtkMenu* _tmp0_;
	GtkMenu* _tmp7_;
	GtkMenu* _tmp8_;
#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), NULL);
#line 157 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = self->priv->context_menu;
#line 157 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp0_ == NULL) {
#line 1729 "DirectPhotoPage.c"
		GMenuModel* model = NULL;
		GtkBuilder* _tmp1_;
		GObject* _tmp2_;
		GMenuModel* _tmp3_;
		GMenuModel* _tmp4_;
		GtkMenu* _tmp5_;
		GtkMenu* _tmp6_;
#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->builder;
#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp2_ = gtk_builder_get_object (_tmp1_, "DirectContextMenu");
#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, g_menu_model_get_type ()) ? ((GMenuModel*) _tmp2_) : NULL);
#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		model = _tmp3_;
#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = model;
#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp5_ = (GtkMenu*) gtk_menu_new_from_model (_tmp4_);
#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		g_object_ref_sink (_tmp5_);
#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (self->priv->context_menu);
#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		self->priv->context_menu = _tmp5_;
#line 161 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = self->priv->context_menu;
#line 161 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		gtk_menu_attach_to_widget (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), NULL);
#line 157 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (model);
#line 1761 "DirectPhotoPage.c"
	}
#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp7_ = self->priv->context_menu;
#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8_ = _g_object_ref0 (_tmp7_);
#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp8_;
#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 1771 "DirectPhotoPage.c"
}


static void direct_photo_page_update_zoom_menu_item_sensitivity (DirectPhotoPage* self) {
	gboolean _tmp0_ = FALSE;
	ZoomState _tmp1_ = {0};
	gboolean _tmp2_;
	gboolean _tmp4_ = FALSE;
	ZoomState _tmp5_ = {0};
	gboolean _tmp6_;
#line 167 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 168 "/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 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = zoom_state_is_max (&_tmp1_);
#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (!_tmp2_) {
#line 1790 "DirectPhotoPage.c"
		gboolean _tmp3_;
#line 168 "/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 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp0_ = !_tmp3_;
#line 1796 "DirectPhotoPage.c"
	} else {
#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp0_ = FALSE;
#line 1800 "DirectPhotoPage.c"
	}
#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp0_);
#line 169 "/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 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp6_ = zoom_state_is_default (&_tmp5_);
#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (!_tmp6_) {
#line 1810 "DirectPhotoPage.c"
		gboolean _tmp7_;
#line 169 "/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 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = !_tmp7_;
#line 1816 "DirectPhotoPage.c"
	} else {
#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = FALSE;
#line 1820 "DirectPhotoPage.c"
	}
#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp4_);
#line 1824 "DirectPhotoPage.c"
}


static void direct_photo_page_real_on_increase_size (EditingHostPage* base) {
	DirectPhotoPage * self;
#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 173 "/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 175 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_update_zoom_menu_item_sensitivity (self);
#line 1836 "DirectPhotoPage.c"
}


static void direct_photo_page_real_on_decrease_size (EditingHostPage* base) {
	DirectPhotoPage * self;
#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 179 "/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 181 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_page_update_zoom_menu_item_sensitivity (self);
#line 1848 "DirectPhotoPage.c"
}


static void direct_photo_page_on_photos_altered (DirectPhotoPage* self, GeeMap* map) {
	gboolean contains = FALSE;
	gboolean _tmp0_;
	gboolean _tmp14_ = FALSE;
	gboolean _tmp15_;
	gboolean sensitive = FALSE;
	gboolean _tmp17_;
	gboolean _tmp19_ = FALSE;
	gboolean _tmp20_;
	gboolean _tmp25_;
#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (GEE_IS_MAP (map));
#line 185 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	contains = FALSE;
#line 186 "/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 186 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp0_) {
#line 1872 "DirectPhotoPage.c"
		Photo* photo = NULL;
		Photo* _tmp1_;
#line 187 "/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 187 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		photo = _tmp1_;
#line 1879 "DirectPhotoPage.c"
		{
			GeeIterator* _object_it = NULL;
			GeeMap* _tmp2_;
			GeeSet* _tmp3_;
			GeeSet* _tmp4_;
			GeeSet* _tmp5_;
			GeeIterator* _tmp6_;
			GeeIterator* _tmp7_;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp2_ = map;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp3_ = gee_map_get_keys (_tmp2_);
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp4_ = _tmp3_;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp5_ = _tmp4_;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp7_ = _tmp6_;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_g_object_unref0 (_tmp5_);
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_object_it = _tmp7_;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			while (TRUE) {
#line 1906 "DirectPhotoPage.c"
				GeeIterator* _tmp8_;
				gboolean _tmp9_;
				DataObject* object = NULL;
				GeeIterator* _tmp10_;
				gpointer _tmp11_;
				DataObject* _tmp12_;
				Photo* _tmp13_;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp8_ = _object_it;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp9_ = gee_iterator_next (_tmp8_);
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				if (!_tmp9_) {
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
					break;
#line 1922 "DirectPhotoPage.c"
				}
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp10_ = _object_it;
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp11_ = gee_iterator_get (_tmp10_);
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				object = (DataObject*) _tmp11_;
#line 189 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp12_ = object;
#line 189 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp13_ = photo;
#line 189 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				if (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO, Photo) == _tmp13_) {
#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
					contains = TRUE;
#line 192 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
					_g_object_unref0 (object);
#line 192 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
					break;
#line 1942 "DirectPhotoPage.c"
				}
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_object_unref0 (object);
#line 1946 "DirectPhotoPage.c"
			}
#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_g_object_unref0 (_object_it);
#line 1950 "DirectPhotoPage.c"
		}
#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (photo);
#line 1954 "DirectPhotoPage.c"
	}
#line 197 "/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 197 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp15_) {
#line 1960 "DirectPhotoPage.c"
		gboolean _tmp16_;
#line 197 "/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 197 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp14_ = !_tmp16_;
#line 1966 "DirectPhotoPage.c"
	} else {
#line 197 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp14_ = FALSE;
#line 1970 "DirectPhotoPage.c"
	}
#line 197 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	sensitive = _tmp14_;
#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp17_ = sensitive;
#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp17_) {
#line 1978 "DirectPhotoPage.c"
		gboolean _tmp18_;
#line 199 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp18_ = contains;
#line 199 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		sensitive = _tmp18_;
#line 1984 "DirectPhotoPage.c"
	}
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp20_ = sensitive;
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp20_) {
#line 1990 "DirectPhotoPage.c"
		Photo* _tmp21_;
		Photo* _tmp22_;
		PhotoFileFormat _tmp23_;
		gboolean _tmp24_;
#line 201 "/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 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp22_ = _tmp21_;
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp23_ = photo_get_file_format (_tmp22_);
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp24_ = photo_file_format_can_write (_tmp23_);
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp19_ = _tmp24_;
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp22_);
#line 2007 "DirectPhotoPage.c"
	} else {
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp19_ = FALSE;
#line 2011 "DirectPhotoPage.c"
	}
#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Save", _tmp19_);
#line 202 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp25_ = sensitive;
#line 202 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp25_);
#line 2019 "DirectPhotoPage.c"
}


static void direct_photo_page_on_selection_group_altered (DirectPhotoPage* self) {
	CommandManager* _tmp0_;
	CommandManager* _tmp1_;
#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	command_manager_reset (_tmp1_);
#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_command_manager_unref0 (_tmp1_);
#line 2036 "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_;
	FullscreenWindow* _tmp1_;
	FullscreenWindow* _tmp2_;
	GdkEventButton* _tmp4_;
	gboolean _tmp5_;
#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 216 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 216 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FULLSCREEN_WINDOW) ? ((FullscreenWindow*) _tmp0_) : NULL;
#line 216 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp1_ == NULL) {
#line 216 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp0_);
#line 2061 "DirectPhotoPage.c"
	}
#line 216 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	fs = _tmp1_;
#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = fs;
#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp2_ != NULL) {
#line 2069 "DirectPhotoPage.c"
		FullscreenWindow* _tmp3_;
#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp3_ = fs;
#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		fullscreen_window_close (_tmp3_);
#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		result = TRUE;
#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (fs);
#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return result;
#line 2081 "DirectPhotoPage.c"
	}
#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp4_ = event;
#line 223 "/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 223 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp5_;
#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (fs);
#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 2093 "DirectPhotoPage.c"
}


static void direct_photo_page_real_update_ui (EditingHostPage* base, gboolean missing) {
	DirectPhotoPage * self;
	gboolean sensitivity = FALSE;
	gboolean _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
	gboolean _tmp12_;
	gboolean _tmp13_;
	gboolean _tmp14_;
	gboolean _tmp15_;
	gboolean _tmp16_;
	gboolean _tmp17_;
	gboolean _tmp18_;
	gboolean _tmp19_;
	gboolean _tmp20_;
	gboolean _tmp21_;
	gboolean _tmp22_;
	gboolean _tmp23_;
	gboolean _tmp24_;
	gboolean _tmp25_;
	gboolean _tmp26_ = FALSE;
	gboolean _tmp27_;
	gboolean _tmp29_;
#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = missing;
#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	sensitivity = !_tmp0_;
#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = sensitivity;
#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Save", _tmp1_);
#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = sensitivity;
#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SaveAs", _tmp2_);
#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = sensitivity;
#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SendTo", _tmp3_);
#line 232 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp4_ = sensitivity;
#line 232 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", _tmp4_);
#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp5_ = sensitivity;
#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Print", _tmp5_);
#line 234 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp6_ = sensitivity;
#line 234 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonJumpToFile", _tmp6_);
#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp7_ = sensitivity;
#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonUndo", _tmp7_);
#line 237 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8_ = sensitivity;
#line 237 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonRedo", _tmp8_);
#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp9_ = sensitivity;
#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp9_);
#line 240 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp10_ = sensitivity;
#line 240 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp10_);
#line 241 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp11_ = sensitivity;
#line 241 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ZoomFit", _tmp11_);
#line 242 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp12_ = sensitivity;
#line 242 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom100", _tmp12_);
#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp13_ = sensitivity;
#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom200", _tmp13_);
#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp14_ = sensitivity;
#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp14_);
#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp15_ = sensitivity;
#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp15_);
#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp16_ = sensitivity;
#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp16_);
#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp17_ = sensitivity;
#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp17_);
#line 249 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp18_ = sensitivity;
#line 249 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp18_);
#line 250 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp19_ = sensitivity;
#line 250 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp19_);
#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp20_ = sensitivity;
#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Straighten", _tmp20_);
#line 252 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp21_ = sensitivity;
#line 252 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp21_);
#line 253 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp22_ = sensitivity;
#line 253 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Adjust", _tmp22_);
#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp23_ = sensitivity;
#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp23_);
#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp24_ = sensitivity;
#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", _tmp24_);
#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp25_ = sensitivity;
#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Fullscreen", _tmp25_);
#line 258 "/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 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp27_) {
#line 2239 "DirectPhotoPage.c"
		gboolean _tmp28_;
#line 258 "/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 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp26_ = !_tmp28_;
#line 2245 "DirectPhotoPage.c"
	} else {
#line 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp26_ = FALSE;
#line 2249 "DirectPhotoPage.c"
	}
#line 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp26_);
#line 260 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp29_ = missing;
#line 260 "/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 2257 "DirectPhotoPage.c"
}


static void direct_photo_page_real_update_actions (Page* base, gint selected_count, gint count) {
	DirectPhotoPage * self;
	gboolean multiple = FALSE;
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	gint _tmp2_;
	gboolean _tmp3_;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_;
	gboolean revert_possible = FALSE;
	gboolean _tmp12_ = FALSE;
	gboolean _tmp13_;
	gboolean rotate_possible = FALSE;
	gboolean _tmp17_ = FALSE;
	gboolean _tmp18_;
	gboolean enhance_possible = FALSE;
	gboolean _tmp22_;
	gboolean _tmp23_;
	gboolean _tmp24_;
	gboolean _tmp25_;
	gboolean _tmp26_;
	gboolean _tmp27_;
	gboolean _tmp28_;
	gboolean _tmp29_;
	gboolean _tmp30_;
	gboolean _tmp31_;
	Photo* _tmp40_;
	Photo* _tmp41_;
	gboolean _tmp42_;
	gint _tmp46_;
	gint _tmp47_;
#line 263 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = _tmp2_ > 1;
#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_data_collection_unref0 (_tmp1_);
#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	multiple = _tmp3_;
#line 265 "/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 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp5_) {
#line 2310 "DirectPhotoPage.c"
		gboolean _tmp6_ = FALSE;
		Photo* _tmp7_;
		Photo* _tmp8_;
		gboolean _tmp9_;
		gboolean _tmp10_;
#line 265 "/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 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = _tmp7_;
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp9_ = photo_has_transformations (_tmp8_);
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp10_ = _tmp9_;
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp8_);
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		if (_tmp10_) {
#line 2328 "DirectPhotoPage.c"
			gboolean _tmp11_;
#line 266 "/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 266 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp6_ = !_tmp11_;
#line 2334 "DirectPhotoPage.c"
		} else {
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp6_ = FALSE;
#line 2338 "DirectPhotoPage.c"
		}
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = _tmp6_;
#line 2342 "DirectPhotoPage.c"
	} else {
#line 266 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = FALSE;
#line 2346 "DirectPhotoPage.c"
	}
#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	revert_possible = _tmp4_;
#line 267 "/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 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp13_) {
#line 2354 "DirectPhotoPage.c"
		Photo* _tmp14_;
		Photo* _tmp15_;
		gboolean _tmp16_;
#line 267 "/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 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp15_ = _tmp14_;
#line 267 "/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 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp12_ = _tmp16_;
#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp15_);
#line 2368 "DirectPhotoPage.c"
	} else {
#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp12_ = FALSE;
#line 2372 "DirectPhotoPage.c"
	}
#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	rotate_possible = _tmp12_;
#line 268 "/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 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp18_) {
#line 2380 "DirectPhotoPage.c"
		Photo* _tmp19_;
		Photo* _tmp20_;
		gboolean _tmp21_;
#line 268 "/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 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp20_ = _tmp19_;
#line 268 "/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 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp17_ = _tmp21_;
#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp20_);
#line 2394 "DirectPhotoPage.c"
	} else {
#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp17_ = FALSE;
#line 2398 "DirectPhotoPage.c"
	}
#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	enhance_possible = _tmp17_;
#line 270 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp22_ = multiple;
#line 270 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PrevPhoto", _tmp22_);
#line 271 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp23_ = multiple;
#line 271 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "NextPhoto", _tmp23_);
#line 272 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp24_ = rotate_possible;
#line 272 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp24_);
#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp25_ = rotate_possible;
#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp25_);
#line 274 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp26_ = rotate_possible;
#line 274 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp26_);
#line 275 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp27_ = rotate_possible;
#line 275 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp27_);
#line 276 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp28_ = revert_possible;
#line 276 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp28_);
#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp29_ = enhance_possible;
#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp29_);
#line 279 "/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 279 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp30_);
#line 281 "/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 281 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp31_) {
#line 2442 "DirectPhotoPage.c"
		Photo* _tmp32_;
		Photo* _tmp33_;
		Scaling _tmp34_ = {0};
		gboolean _tmp35_;
		Photo* _tmp36_;
		Photo* _tmp37_;
		Scaling _tmp38_ = {0};
		gboolean _tmp39_;
#line 282 "/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 282 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp33_ = _tmp32_;
#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		scaling_for_original (&_tmp34_);
#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp35_ = editing_tools_crop_tool_is_available (_tmp33_, &_tmp34_);
#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp35_);
#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp33_);
#line 283 "/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 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp37_ = _tmp36_;
#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		scaling_for_original (&_tmp38_);
#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp39_ = editing_tools_redeye_tool_is_available (_tmp37_, &_tmp38_);
#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp39_);
#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp37_);
#line 2475 "DirectPhotoPage.c"
	}
#line 289 "/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 289 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp41_ = _tmp40_;
#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp42_ = _tmp41_ != NULL;
#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp41_);
#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp42_) {
#line 2487 "DirectPhotoPage.c"
		Photo* _tmp43_;
		Photo* _tmp44_;
		PhotoFileFormat _tmp45_;
#line 290 "/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 290 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp44_ = _tmp43_;
#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp45_ = photo_get_file_format (_tmp44_);
#line 290 "/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 290 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp44_);
#line 2501 "DirectPhotoPage.c"
	} else {
#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", FALSE);
#line 2505 "DirectPhotoPage.c"
	}
#line 295 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp46_ = selected_count;
#line 295 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp47_ = count;
#line 295 "/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 2513 "DirectPhotoPage.c"
}


static gboolean direct_photo_page_check_ok_to_close_photo (DirectPhotoPage* self, Photo* photo) {
	gboolean result = FALSE;
	Photo* _tmp0_;
	Photo* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean is_writeable = FALSE;
	Photo* _tmp5_;
	Photo* _tmp6_;
	PhotoFileFormat _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	const gchar* _tmp10_ = NULL;
	gboolean _tmp11_;
	gchar* save_option = NULL;
	gchar* _tmp12_;
	GtkResponseType response = 0;
	Photo* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	const gchar* _tmp18_;
	GtkResponseType _tmp19_;
	GtkResponseType _tmp20_;
	GtkResponseType _tmp21_;
#line 298 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), FALSE);
#line 298 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail ((photo == NULL) || IS_PHOTO (photo), FALSE);
#line 301 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = photo;
#line 301 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp0_ == NULL) {
#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		result = TRUE;
#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return result;
#line 2555 "DirectPhotoPage.c"
	}
#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = photo;
#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = photo_has_alterations (_tmp1_);
#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (!_tmp2_) {
#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		result = TRUE;
#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return result;
#line 2567 "DirectPhotoPage.c"
	}
#line 307 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = self->priv->drop_if_dirty;
#line 307 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp3_) {
#line 2573 "DirectPhotoPage.c"
		Photo* _tmp4_;
#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = photo;
#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		photo_remove_all_transformations (_tmp4_);
#line 312 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		result = TRUE;
#line 312 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return result;
#line 2583 "DirectPhotoPage.c"
	}
#line 315 "/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 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp6_ = _tmp5_;
#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp7_ = photo_get_file_format (_tmp6_);
#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8_ = photo_file_format_can_write (_tmp7_);
#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp9_ = _tmp8_;
#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp6_);
#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	is_writeable = _tmp9_;
#line 316 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp11_ = is_writeable;
#line 316 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp11_) {
#line 316 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp10_ = _ ("_Save");
#line 2605 "DirectPhotoPage.c"
	} else {
#line 316 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp10_ = _ ("_Save a Copy");
#line 2609 "DirectPhotoPage.c"
	}
#line 316 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp12_ = g_strdup (_tmp10_);
#line 316 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	save_option = _tmp12_;
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp13_ = photo;
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp14_ = media_source_get_basename (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_MEDIA_SOURCE, MediaSource));
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp15_ = _tmp14_;
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp16_ = g_strdup_printf (_ ("Lose changes to %s?"), _tmp15_);
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp17_ = _tmp16_;
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp18_ = save_option;
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp19_ = app_window_negate_affirm_cancel_question (_tmp17_, _tmp18_, _ ("Close _without Saving"), NULL, NULL);
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp20_ = _tmp19_;
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (_tmp17_);
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (_tmp15_);
#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	response = _tmp20_;
#line 322 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp21_ = response;
#line 322 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp21_ == GTK_RESPONSE_YES) {
#line 2641 "DirectPhotoPage.c"
		Photo* _tmp22_;
#line 323 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp22_ = photo;
#line 323 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		photo_remove_all_transformations (_tmp22_);
#line 2647 "DirectPhotoPage.c"
	} else {
		GtkResponseType _tmp23_;
#line 324 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp23_ = response;
#line 324 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		if (_tmp23_ == GTK_RESPONSE_NO) {
#line 2654 "DirectPhotoPage.c"
			gboolean _tmp24_;
#line 325 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp24_ = is_writeable;
#line 325 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			if (_tmp24_) {
#line 2660 "DirectPhotoPage.c"
				Photo* _tmp25_;
				GFile* _tmp26_;
				GFile* _tmp27_;
				Photo* _tmp28_;
				Photo* _tmp29_;
				PhotoFileFormat _tmp30_;
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp25_ = photo;
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp26_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_MEDIA_SOURCE, MediaSource));
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp27_ = _tmp26_;
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp28_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp29_ = _tmp28_;
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp30_ = photo_get_file_format (_tmp29_);
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				direct_photo_page_save (self, _tmp27_, 0, SCALE_CONSTRAINT_ORIGINAL, JPEG_QUALITY_HIGH, _tmp30_, FALSE, TRUE);
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_object_unref0 (_tmp29_);
#line 326 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_object_unref0 (_tmp27_);
#line 2685 "DirectPhotoPage.c"
			} else {
#line 329 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				direct_photo_page_on_save_as (self);
#line 2689 "DirectPhotoPage.c"
			}
		} else {
			gboolean _tmp31_ = FALSE;
			gboolean _tmp32_ = FALSE;
			GtkResponseType _tmp33_;
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp33_ = response;
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			if (_tmp33_ == GTK_RESPONSE_CANCEL) {
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp32_ = TRUE;
#line 2701 "DirectPhotoPage.c"
			} else {
				GtkResponseType _tmp34_;
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp34_ = response;
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp32_ = _tmp34_ == GTK_RESPONSE_DELETE_EVENT;
#line 2708 "DirectPhotoPage.c"
			}
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			if (_tmp32_) {
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp31_ = TRUE;
#line 2714 "DirectPhotoPage.c"
			} else {
				GtkResponseType _tmp35_;
#line 331 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp35_ = response;
#line 331 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp31_ = _tmp35_ == GTK_RESPONSE_CLOSE;
#line 2721 "DirectPhotoPage.c"
			}
#line 330 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			if (_tmp31_) {
#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				result = FALSE;
#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (save_option);
#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				return result;
#line 2731 "DirectPhotoPage.c"
			}
		}
	}
#line 335 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = TRUE;
#line 335 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (save_option);
#line 335 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 2741 "DirectPhotoPage.c"
}


gboolean direct_photo_page_check_quit (DirectPhotoPage* self) {
	gboolean result = FALSE;
	Photo* _tmp0_;
	Photo* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
#line 338 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), FALSE);
#line 339 "/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 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = direct_photo_page_check_ok_to_close_photo (self, _tmp1_);
#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = _tmp2_;
#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp1_);
#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp3_;
#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 2767 "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_;
#line 342 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 342 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail ((old_photo == NULL) || IS_PHOTO (old_photo), FALSE);
#line 342 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (IS_PHOTO (new_photo), FALSE);
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = old_photo;
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp1_ != NULL) {
#line 2786 "DirectPhotoPage.c"
		Photo* _tmp2_;
		gboolean _tmp3_;
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp2_ = old_photo;
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp3_ = direct_photo_page_check_ok_to_close_photo (self, _tmp2_);
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp0_ = _tmp3_;
#line 2795 "DirectPhotoPage.c"
	} else {
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp0_ = TRUE;
#line 2799 "DirectPhotoPage.c"
	}
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp0_;
#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 2805 "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_;
	gint _tmp1_;
	Scaling _tmp2_ = {0};
	DirectPhoto* photo = NULL;
	DirectPhotoSourceCollection* _tmp18_;
	GFile* _tmp19_;
	DirectPhoto* _tmp20_ = NULL;
	gchar* _tmp21_;
	gchar* _tmp22_;
	Photo* _tmp23_;
	Photo* _tmp24_;
	DirectPhoto* _tmp25_;
	gboolean _tmp26_;
	gboolean _tmp27_;
	DirectPhotoSourceCollection* _tmp32_;
	DirectPhoto* _tmp33_;
	DirectViewCollection* _tmp34_;
	DirectPhoto* _tmp35_;
	GError * _inner_error_ = NULL;
#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (G_IS_FILE (dest));
#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = constraint;
#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = scale;
#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	scaling_for_constraint (_tmp0_, _tmp1_, FALSE, &_tmp2_);
#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	scaling = _tmp2_;
#line 2842 "DirectPhotoPage.c"
	{
		Photo* _tmp3_;
		Photo* _tmp4_;
		GFile* _tmp5_;
		Scaling _tmp6_;
		JpegQuality _tmp7_;
		PhotoFileFormat _tmp8_;
		gboolean _tmp9_;
		gboolean _tmp10_;
#line 351 "/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 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = _tmp3_;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp5_ = dest;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = scaling;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp7_ = quality;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = format;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp9_ = copy_unmodified;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp10_ = save_metadata;
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		photo_export (_tmp4_, _tmp5_, &_tmp6_, _tmp7_, _tmp8_, _tmp9_, _tmp10_, &_inner_error_);
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp4_);
#line 351 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2874 "DirectPhotoPage.c"
			goto __catch48_g_error;
		}
	}
	goto __finally48;
	__catch48_g_error:
	{
		GError* err = NULL;
		GFile* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		GError* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		err = _inner_error_;
#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_inner_error_ = NULL;
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp11_ = dest;
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp12_ = g_file_get_path (_tmp11_);
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp13_ = _tmp12_;
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp14_ = err;
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp15_ = _tmp14_->message;
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp16_ = g_strdup_printf (_ ("Error while saving to %s: %s"), _tmp13_, _tmp15_);
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp17_ = _tmp16_;
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		app_window_error_message (_tmp17_, NULL);
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp17_);
#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp13_);
#line 356 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_error_free0 (err);
#line 356 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return;
#line 2917 "DirectPhotoPage.c"
	}
	__finally48:
#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 350 "/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 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		g_clear_error (&_inner_error_);
#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return;
#line 2928 "DirectPhotoPage.c"
	}
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp18_ = direct_photo_global;
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp19_ = dest;
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp21_ = direct_photo_source_collection_fetch (_tmp18_, _tmp19_, &_tmp20_, TRUE);
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (photo);
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	photo = _tmp20_;
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp22_ = _tmp21_;
#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (_tmp22_);
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp23_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp24_ = _tmp23_;
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp25_ = photo;
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp26_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_SOURCE, DataSource));
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp27_ = !_tmp26_;
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp24_);
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp27_) {
#line 2958 "DirectPhotoPage.c"
		DirectView* tmp_view = NULL;
		DirectPhoto* _tmp28_;
		DirectView* _tmp29_;
		DirectViewCollection* _tmp30_;
		DirectView* _tmp31_;
#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp28_ = photo;
#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp29_ = direct_view_new (_tmp28_);
#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		tmp_view = _tmp29_;
#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp30_ = self->priv->view_controller;
#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp31_ = tmp_view;
#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_OBJECT, DataObject));
#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (tmp_view);
#line 2978 "DirectPhotoPage.c"
	}
#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp32_ = direct_photo_global;
#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp33_ = photo;
#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_photo_source_collection_reimport_photo (_tmp32_, _tmp33_);
#line 369 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp34_ = self->priv->view_controller;
#line 369 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp35_ = photo;
#line 369 "/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 (_tmp34_, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_PHOTO, Photo));
#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (photo);
#line 2994 "DirectPhotoPage.c"
}


static void direct_photo_page_on_save (DirectPhotoPage* self) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	Photo* _tmp2_;
	Photo* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	Photo* _tmp11_;
	Photo* _tmp12_;
	GFile* _tmp13_;
	GFile* _tmp14_;
	Photo* _tmp15_;
	Photo* _tmp16_;
	PhotoFileFormat _tmp17_;
#line 372 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 373 "/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 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = _tmp2_;
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp4_ = photo_has_alterations (_tmp3_);
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp5_ = !_tmp4_;
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp3_);
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp5_) {
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp1_ = TRUE;
#line 3028 "DirectPhotoPage.c"
	} else {
		Photo* _tmp6_;
		Photo* _tmp7_;
		PhotoFileFormat _tmp8_;
		gboolean _tmp9_;
#line 373 "/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 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp7_ = _tmp6_;
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = photo_get_file_format (_tmp7_);
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp9_ = photo_file_format_can_write (_tmp8_);
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp1_ = !_tmp9_;
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp7_);
#line 3046 "DirectPhotoPage.c"
	}
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp1_) {
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp0_ = TRUE;
#line 3052 "DirectPhotoPage.c"
	} else {
		gboolean _tmp10_;
#line 374 "/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 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp0_ = _tmp10_;
#line 3059 "DirectPhotoPage.c"
	}
#line 373 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp0_) {
#line 375 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return;
#line 3065 "DirectPhotoPage.c"
	}
#line 378 "/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 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp12_ = _tmp11_;
#line 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp13_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MEDIA_SOURCE, MediaSource));
#line 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp14_ = _tmp13_;
#line 378 "/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 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp16_ = _tmp15_;
#line 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp17_ = photo_get_file_format (_tmp16_);
#line 378 "/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 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp16_);
#line 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp14_);
#line 378 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp12_);
#line 3089 "DirectPhotoPage.c"
}


static void direct_photo_page_on_save_as (DirectPhotoPage* self) {
	ExportDialog* export_dialog = NULL;
	ExportDialog* _tmp0_;
	gint scale = 0;
	ScaleConstraint constraint = 0;
	ExportFormatParameters export_params = {0};
	ExportFormatParameters _tmp1_ = {0};
	ExportDialog* _tmp2_;
	gint _tmp3_ = 0;
	ScaleConstraint _tmp4_ = 0;
	gboolean _tmp5_;
	gchar* filename = NULL;
	Photo* _tmp6_;
	Photo* _tmp7_;
	ExportFormatParameters _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	PhotoFileFormat effective_export_format = 0;
	Photo* _tmp11_;
	Photo* _tmp12_;
	ExportFormatParameters _tmp13_;
	PhotoFileFormat _tmp14_;
	PhotoFileFormat _tmp15_;
	gchar** output_format_extensions = NULL;
	PhotoFileFormat _tmp16_;
	PhotoFileFormatProperties* _tmp17_;
	PhotoFileFormatProperties* _tmp18_;
	gint _tmp19_;
	gchar** _tmp20_;
	gchar** _tmp21_;
	gint _tmp21__length1;
	gint output_format_extensions_length1;
	gint _output_format_extensions_size_;
	GtkFileFilter* output_format_filter = NULL;
	GtkFileFilter* _tmp22_;
	gchar** _tmp23_;
	gint _tmp23__length1;
	GtkFileChooserDialog* save_as_dialog = NULL;
	AppWindow* _tmp35_;
	AppWindow* _tmp36_;
	GtkFileChooserDialog* _tmp37_;
	GtkFileChooserDialog* _tmp38_;
	GtkFileChooserDialog* _tmp39_;
	GtkFileChooserDialog* _tmp40_;
	const gchar* _tmp41_;
	GtkFileChooserDialog* _tmp42_;
	GFile* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	GtkFileChooserDialog* _tmp46_;
	GtkFileFilter* _tmp47_;
	GtkFileFilter* _tmp48_;
	GtkFileChooserDialog* _tmp49_;
	GtkFileChooserDialog* _tmp50_;
	gint response = 0;
	GtkFileChooserDialog* _tmp51_;
	gint _tmp52_;
	gint _tmp53_;
	GtkFileChooserDialog* _tmp72_;
#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = export_dialog_new (_ ("Save As"));
#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_object_ref_sink (_tmp0_);
#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	export_dialog = _tmp0_;
#line 387 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	export_format_parameters_last (&_tmp1_);
#line 387 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	export_params = _tmp1_;
#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = export_dialog;
#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp5_ = export_dialog_execute (_tmp2_, &_tmp3_, &_tmp4_, &export_params);
#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	scale = _tmp3_;
#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	constraint = _tmp4_;
#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (!_tmp5_) {
#line 389 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (export_dialog);
#line 389 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		return;
#line 3178 "DirectPhotoPage.c"
	}
#line 391 "/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 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp7_ = _tmp6_;
#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp8_ = export_params;
#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp9_ = photo_get_export_basename_for_parameters (_tmp7_, &_tmp8_);
#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp10_ = _tmp9_;
#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp7_);
#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	filename = _tmp10_;
#line 392 "/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 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp12_ = _tmp11_;
#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp13_ = export_params;
#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp14_ = photo_get_export_format_for_parameters (_tmp12_, &_tmp13_);
#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp15_ = _tmp14_;
#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp12_);
#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	effective_export_format = _tmp15_;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp16_ = effective_export_format;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp17_ = photo_file_format_get_properties (_tmp16_);
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp18_ = _tmp17_;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp20_ = photo_file_format_properties_get_known_extensions (_tmp18_, &_tmp19_);
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp21_ = _tmp20_;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp21__length1 = _tmp19_;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_photo_file_format_properties_unref0 (_tmp18_);
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	output_format_extensions = _tmp21_;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	output_format_extensions_length1 = _tmp21__length1;
#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_output_format_extensions_size_ = output_format_extensions_length1;
#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp22_ = gtk_file_filter_new ();
#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_object_ref_sink (_tmp22_);
#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	output_format_filter = _tmp22_;
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp23_ = output_format_extensions;
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp23__length1 = output_format_extensions_length1;
#line 3238 "DirectPhotoPage.c"
	{
		gchar** extension_collection = NULL;
		gint extension_collection_length1 = 0;
		gint _extension_collection_size_ = 0;
		gint extension_it = 0;
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		extension_collection = _tmp23_;
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		extension_collection_length1 = _tmp23__length1;
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		for (extension_it = 0; extension_it < _tmp23__length1; extension_it = extension_it + 1) {
#line 3250 "DirectPhotoPage.c"
			gchar* _tmp24_;
			gchar* extension = NULL;
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			_tmp24_ = g_strdup (extension_collection[extension_it]);
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
			extension = _tmp24_;
#line 3257 "DirectPhotoPage.c"
			{
				gchar* uppercase_extension = NULL;
				const gchar* _tmp25_;
				gchar* _tmp26_;
				GtkFileFilter* _tmp27_;
				const gchar* _tmp28_;
				gchar* _tmp29_;
				gchar* _tmp30_;
				GtkFileFilter* _tmp31_;
				const gchar* _tmp32_;
				gchar* _tmp33_;
				gchar* _tmp34_;
#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp25_ = extension;
#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp26_ = g_utf8_strup (_tmp25_, (gssize) -1);
#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				uppercase_extension = _tmp26_;
#line 400 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp27_ = output_format_filter;
#line 400 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp28_ = extension;
#line 400 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp29_ = g_strconcat ("*.", _tmp28_, NULL);
#line 400 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp30_ = _tmp29_;
#line 400 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				gtk_file_filter_add_pattern (_tmp27_, _tmp30_);
#line 400 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (_tmp30_);
#line 401 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp31_ = output_format_filter;
#line 401 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp32_ = uppercase_extension;
#line 401 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp33_ = g_strconcat ("*.", _tmp32_, NULL);
#line 401 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_tmp34_ = _tmp33_;
#line 401 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				gtk_file_filter_add_pattern (_tmp31_, _tmp34_);
#line 401 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (_tmp34_);
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (uppercase_extension);
#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				_g_free0 (extension);
#line 3304 "DirectPhotoPage.c"
			}
		}
	}
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp35_ = app_window_get_instance ();
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp36_ = _tmp35_;
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp37_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Save As"), G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_window_get_type (), GtkWindow), GTK_FILE_CHOOSER_ACTION_SAVE, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL);
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_object_ref_sink (_tmp37_);
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp38_ = _tmp37_;
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (_tmp36_);
#line 404 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	save_as_dialog = _tmp38_;
#line 407 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp39_ = save_as_dialog;
#line 407 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_file_chooser_set_select_multiple (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
#line 408 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp40_ = save_as_dialog;
#line 408 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp41_ = filename;
#line 408 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_file_chooser_set_current_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp41_);
#line 409 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp42_ = save_as_dialog;
#line 409 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp43_ = self->priv->current_save_dir;
#line 409 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp44_ = g_file_get_path (_tmp43_);
#line 409 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp45_ = _tmp44_;
#line 409 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp45_);
#line 409 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (_tmp45_);
#line 410 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp46_ = save_as_dialog;
#line 410 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp47_ = output_format_filter;
#line 410 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp48_ = _g_object_ref0 (_tmp47_);
#line 410 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_file_chooser_add_filter (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp48_);
#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp49_ = save_as_dialog;
#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_file_chooser_set_do_overwrite_confirmation (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), TRUE);
#line 412 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp50_ = save_as_dialog;
#line 412 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp51_ = save_as_dialog;
#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp52_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_dialog_get_type (), GtkDialog));
#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	response = _tmp52_;
#line 415 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp53_ = response;
#line 415 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp53_ == ((gint) GTK_RESPONSE_OK)) {
#line 3370 "DirectPhotoPage.c"
		GtkFileChooserDialog* _tmp54_;
		gchar* _tmp55_;
		gchar* _tmp56_;
		GFile* _tmp57_;
		GFile* _tmp58_;
		gint _tmp59_;
		ScaleConstraint _tmp60_;
		ExportFormatParameters _tmp61_;
		JpegQuality _tmp62_;
		PhotoFileFormat _tmp63_;
		ExportFormatParameters _tmp64_;
		ExportFormatMode _tmp65_;
		ExportFormatParameters _tmp66_;
		gboolean _tmp67_;
		GtkFileChooserDialog* _tmp68_;
		gchar* _tmp69_;
		gchar* _tmp70_;
		GFile* _tmp71_;
#line 418 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		self->priv->drop_if_dirty = TRUE;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp54_ = save_as_dialog;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp55_ = gtk_file_chooser_get_uri (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp56_ = _tmp55_;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp57_ = g_file_new_for_uri (_tmp56_);
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp58_ = _tmp57_;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp59_ = scale;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp60_ = constraint;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp61_ = export_params;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp62_ = _tmp61_.quality;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp63_ = effective_export_format;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp64_ = export_params;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp65_ = _tmp64_.mode;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp66_ = export_params;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp67_ = _tmp66_.export_metadata;
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		direct_photo_page_save (self, _tmp58_, _tmp59_, _tmp60_, _tmp62_, _tmp63_, _tmp65_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp67_);
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp58_);
#line 419 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp56_);
#line 422 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		self->priv->drop_if_dirty = FALSE;
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp68_ = save_as_dialog;
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp69_ = gtk_file_chooser_get_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp70_ = _tmp69_;
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp71_ = g_file_new_for_path (_tmp70_);
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (self->priv->current_save_dir);
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		self->priv->current_save_dir = _tmp71_;
#line 424 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_free0 (_tmp70_);
#line 3441 "DirectPhotoPage.c"
	}
#line 427 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp72_ = save_as_dialog;
#line 427 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_widget_get_type (), GtkWidget));
#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (save_as_dialog);
#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (output_format_filter);
#line 382 "/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 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_free0 (filename);
#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (export_dialog);
#line 3457 "DirectPhotoPage.c"
}


static void direct_photo_page_on_send_to (DirectPhotoPage* self) {
	gboolean _tmp0_;
#line 430 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 431 "/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 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp0_) {
#line 3469 "DirectPhotoPage.c"
		ViewCollection* _tmp1_;
		ViewCollection* _tmp2_;
		GeeList* _tmp3_;
		GeeCollection* _tmp4_;
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp2_ = _tmp1_;
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp3_ = view_collection_get_selected_sources (_tmp2_);
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		desktop_integration_send_to (_tmp4_);
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp4_);
#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_data_collection_unref0 (_tmp2_);
#line 3488 "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_;
	guint _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	GQuark _tmp5_ = 0U;
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	static GQuark _tmp4_label0 = 0;
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	static GQuark _tmp4_label1 = 0;
#line 3506 "DirectPhotoPage.c"
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_;
#line 435 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 435 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 436 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	handled = TRUE;
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = event;
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_->keyval;
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = gdk_keyval_name (_tmp1_);
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = _tmp2_;
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("bracketright")))) {
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		switch (0) {
#line 3529 "DirectPhotoPage.c"
			default:
			{
#line 440 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
#line 441 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				break;
#line 3536 "DirectPhotoPage.c"
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("bracketleft")))) {
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		switch (0) {
#line 3542 "DirectPhotoPage.c"
			default:
			{
#line 444 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
#line 445 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				break;
#line 3549 "DirectPhotoPage.c"
			}
		}
	} else {
#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		switch (0) {
#line 3555 "DirectPhotoPage.c"
			default:
			{
#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				handled = FALSE;
#line 449 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
				break;
#line 3562 "DirectPhotoPage.c"
			}
		}
	}
#line 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp7_ = handled;
#line 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp7_) {
#line 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = TRUE;
#line 3572 "DirectPhotoPage.c"
	} else {
		GdkEventKey* _tmp8_;
		gboolean _tmp9_;
#line 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = event;
#line 452 "/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 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = _tmp9_;
#line 3582 "DirectPhotoPage.c"
	}
#line 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = _tmp6_;
#line 452 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 3588 "DirectPhotoPage.c"
}


static void direct_photo_page_on_print (DirectPhotoPage* self) {
	ViewCollection* _tmp0_;
	ViewCollection* _tmp1_;
	gint _tmp2_;
	gboolean _tmp3_;
#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
#line 456 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 456 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = _tmp0_;
#line 456 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp2_ = view_collection_get_selected_count (_tmp1_);
#line 456 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp3_ = _tmp2_ > 0;
#line 456 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_data_collection_unref0 (_tmp1_);
#line 456 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (_tmp3_) {
#line 3611 "DirectPhotoPage.c"
		PrintManager* _tmp4_;
		PrintManager* _tmp5_;
		ViewCollection* _tmp6_;
		ViewCollection* _tmp7_;
		GeeList* _tmp8_;
		GeeCollection* _tmp9_;
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp4_ = print_manager_get_instance ();
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp5_ = _tmp4_;
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp7_ = _tmp6_;
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp8_ = view_collection_get_selected_sources_of_type (_tmp7_, TYPE_PHOTO);
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection);
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		print_manager_spool_photo (_tmp5_, _tmp9_);
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (_tmp9_);
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_data_collection_unref0 (_tmp7_);
#line 457 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_print_manager_unref0 (_tmp5_);
#line 3638 "DirectPhotoPage.c"
	}
}


static Block7Data* block7_data_ref (Block7Data* _data7_) {
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_atomic_int_inc (&_data7_->_ref_count_);
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return _data7_;
#line 3648 "DirectPhotoPage.c"
}


static void block7_data_unref (void * _userdata_) {
	Block7Data* _data7_;
	_data7_ = (Block7Data*) _userdata_;
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	if (g_atomic_int_dec_and_test (&_data7_->_ref_count_)) {
#line 3657 "DirectPhotoPage.c"
		DirectPhotoPage* self;
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		self = _data7_->self;
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		_g_object_unref0 (self);
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
		g_slice_free (Block7Data, _data7_);
#line 3665 "DirectPhotoPage.c"
	}
}


static gboolean __lambda16_ (Block7Data* _data7_) {
	DirectPhotoPage* self;
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = _data7_->self;
#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = _data7_->should_allow_rotation;
#line 467 "/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 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = FALSE;
#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 3684 "DirectPhotoPage.c"
}


static gboolean ___lambda16__gsource_func (gpointer self) {
	gboolean result;
	result = __lambda16_ (self);
#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 3693 "DirectPhotoPage.c"
}


static void direct_photo_page_on_dphoto_can_rotate_changed (DirectPhotoPage* self, gboolean should_allow_rotation) {
	Block7Data* _data7_;
	gboolean _tmp0_;
#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"
	_data7_ = g_slice_new0 (Block7Data);
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_data7_->_ref_count_ = 1;
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_data7_->self = g_object_ref (self);
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = should_allow_rotation;
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_data7_->should_allow_rotation = _tmp0_;
#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda16__gsource_func, block7_data_ref (_data7_), block7_data_unref);
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	block7_data_unref (_data7_);
#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_data7_ = NULL;
#line 3718 "DirectPhotoPage.c"
}


static DataView* direct_photo_page_real_create_photo_view (EditingHostPage* base, DataSource* source) {
	DirectPhotoPage * self;
	DataView* result = NULL;
	DataSource* _tmp0_;
	DirectView* _tmp1_;
#line 473 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
#line 473 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
#line 474 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = source;
#line 474 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp1_ = direct_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto));
#line 474 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
#line 474 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return result;
#line 3739 "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 = (void (*) (Page *, GeeList*)) direct_photo_page_real_init_collect_ui_filenames;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->add_actions = (void (*) (Page *, GActionMap*)) direct_photo_page_real_add_actions;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->remove_actions = (void (*) (Page *, GActionMap*)) direct_photo_page_real_remove_actions;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->init_collect_injection_groups = (InjectionGroup** (*) (Page *, int*)) direct_photo_page_real_init_collect_injection_groups;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((GtkWidgetClass *) klass)->realize = (void (*) (GtkWidget *)) direct_photo_page_real_realize;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->photo_changing = (void (*) (EditingHostPage *, Photo*)) direct_photo_page_real_photo_changing;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->on_context_buttonpress = (gboolean (*) (Page *, GdkEventButton*)) direct_photo_page_real_on_context_buttonpress;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->on_increase_size = (void (*) (EditingHostPage *)) direct_photo_page_real_on_increase_size;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->on_decrease_size = (void (*) (EditingHostPage *)) direct_photo_page_real_on_decrease_size;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->on_double_click = (gboolean (*) (EditingHostPage *, GdkEventButton*)) direct_photo_page_real_on_double_click;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->update_ui = (void (*) (EditingHostPage *, gboolean)) direct_photo_page_real_update_ui;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->update_actions = (void (*) (Page *, gint, gint)) direct_photo_page_real_update_actions;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->confirm_replace_photo = (gboolean (*) (EditingHostPage *, Photo*, Photo*)) direct_photo_page_real_confirm_replace_photo;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->on_app_key_pressed = (gboolean (*) (Page *, GdkEventKey*)) direct_photo_page_real_on_app_key_pressed;
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((EditingHostPageClass *) klass)->create_photo_view = (DataView* (*) (EditingHostPage *, DataSource*)) 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 3780 "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 3791 "DirectPhotoPage.c"
}


static void direct_photo_page_finalize (GObject * obj) {
	DirectPhotoPage * self;
	DirectPhotoSourceCollection* _tmp0_;
	guint _tmp1_;
#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 154 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_g_object_unref0 (self->priv->context_menu);
#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	G_OBJECT_CLASS (direct_photo_page_parent_class)->finalize (obj);
#line 3817 "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_;
#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_val_if_fail (G_IS_FILE (file), NULL);
#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = file;
#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = (DirectFullscreenPhotoPage*) direct_photo_page_construct (object_type, _tmp0_);
#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return self;
#line 3844 "DirectPhotoPage.c"
}


DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file) {
#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	return direct_fullscreen_photo_page_construct (TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, file);
#line 3851 "DirectPhotoPage.c"
}


static void direct_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
	DirectFullscreenPhotoPage * self;
	GeeList* _tmp0_;
#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage);
#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	g_return_if_fail (GEE_IS_LIST (ui_filenames));
#line 486 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	_tmp0_ = ui_filenames;
#line 486 "/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 3866 "DirectPhotoPage.c"
}


static void direct_fullscreen_photo_page_class_init (DirectFullscreenPhotoPageClass * klass) {
#line 478 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	direct_fullscreen_photo_page_parent_class = g_type_class_peek_parent (klass);
#line 478 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
	((PageClass *) klass)->init_collect_ui_filenames = (void (*) (Page *, GeeList*)) direct_fullscreen_photo_page_real_init_collect_ui_filenames;
#line 3875 "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);
}



