/* SearchBoolean.c generated by valac 0.36.6, the Vala compiler
 * generated from SearchBoolean.vala, do not modify */

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU LGPL (version 2.1 or later).
 * See the COPYING file in this distribution.
 */
/* For specifying whether a search should be ORed (any) or ANDed (all).*/

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <gee.h>
#include <time.h>
#include <gtk/gtk.h>
#include <gobject/gvaluecollector.h>


#define TYPE_SEARCH_OPERATOR (search_operator_get_type ())

#define TYPE_SEARCH_CONDITION (search_condition_get_type ())
#define SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION, SearchCondition))
#define SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION, SearchConditionClass))
#define IS_SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION))
#define IS_SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION))
#define SEARCH_CONDITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION, SearchConditionClass))

typedef struct _SearchCondition SearchCondition;
typedef struct _SearchConditionClass SearchConditionClass;
typedef struct _SearchConditionPrivate SearchConditionPrivate;

#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 SEARCH_CONDITION_TYPE_SEARCH_TYPE (search_condition_search_type_get_type ())
typedef struct _ParamSpecSearchCondition ParamSpecSearchCondition;

#define TYPE_SEARCH_CONDITION_TEXT (search_condition_text_get_type ())
#define SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionText))
#define SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
#define IS_SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_TEXT))
#define IS_SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_TEXT))
#define SEARCH_CONDITION_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))

typedef struct _SearchConditionText SearchConditionText;
typedef struct _SearchConditionTextClass SearchConditionTextClass;
typedef struct _SearchConditionTextPrivate SearchConditionTextPrivate;

#define SEARCH_CONDITION_TEXT_TYPE_CONTEXT (search_condition_text_context_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_TAG (tag_get_type ())
#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))

typedef struct _Tag Tag;
typedef struct _TagClass TagClass;

#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_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_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))

typedef struct _ContainerSourceCollection ContainerSourceCollection;
typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;

#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))

typedef struct _TagSourceCollection TagSourceCollection;
typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TYPE_EVENT_SOURCE (event_source_get_type ())
#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))

typedef struct _EventSource EventSource;
typedef struct _EventSourceClass EventSourceClass;

#define TYPE_EVENT (event_get_type ())
#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))

typedef struct _Event Event;
typedef struct _EventClass EventClass;

#define TYPE_SEARCH_CONDITION_MEDIA_TYPE (search_condition_media_type_get_type ())
#define SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType))
#define SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
#define IS_SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
#define IS_SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
#define SEARCH_CONDITION_MEDIA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))

typedef struct _SearchConditionMediaType SearchConditionMediaType;
typedef struct _SearchConditionMediaTypeClass SearchConditionMediaTypeClass;
typedef struct _SearchConditionMediaTypePrivate SearchConditionMediaTypePrivate;

#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_MEDIA_TYPE (search_condition_media_type_media_type_get_type ())

#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_CONTEXT (search_condition_media_type_context_get_type ())

#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_PHOTO_FILE_FORMAT (photo_file_format_get_type ())

#define TYPE_VIDEO_SOURCE (video_source_get_type ())
#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))

typedef struct _VideoSource VideoSource;
typedef struct _VideoSourceClass VideoSourceClass;

#define TYPE_SEARCH_CONDITION_FLAGGED (search_condition_flagged_get_type ())
#define SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged))
#define SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
#define IS_SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_FLAGGED))
#define IS_SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_FLAGGED))
#define SEARCH_CONDITION_FLAGGED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))

typedef struct _SearchConditionFlagged SearchConditionFlagged;
typedef struct _SearchConditionFlaggedClass SearchConditionFlaggedClass;
typedef struct _SearchConditionFlaggedPrivate SearchConditionFlaggedPrivate;

#define SEARCH_CONDITION_FLAGGED_TYPE_STATE (search_condition_flagged_state_get_type ())

#define TYPE_FLAGGABLE (flaggable_get_type ())
#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))

typedef struct _Flaggable Flaggable;
typedef struct _FlaggableIface FlaggableIface;

#define TYPE_SEARCH_CONDITION_MODIFIED (search_condition_modified_get_type ())
#define SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified))
#define SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
#define IS_SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MODIFIED))
#define IS_SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MODIFIED))
#define SEARCH_CONDITION_MODIFIED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))

typedef struct _SearchConditionModified SearchConditionModified;
typedef struct _SearchConditionModifiedClass SearchConditionModifiedClass;
typedef struct _SearchConditionModifiedPrivate SearchConditionModifiedPrivate;

#define SEARCH_CONDITION_MODIFIED_TYPE_STATE (search_condition_modified_state_get_type ())

#define SEARCH_CONDITION_MODIFIED_TYPE_CONTEXT (search_condition_modified_context_get_type ())

#define TYPE_SEARCH_CONDITION_RATING (search_condition_rating_get_type ())
#define SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRating))
#define SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
#define IS_SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_RATING))
#define IS_SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_RATING))
#define SEARCH_CONDITION_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))

typedef struct _SearchConditionRating SearchConditionRating;
typedef struct _SearchConditionRatingClass SearchConditionRatingClass;
typedef struct _SearchConditionRatingPrivate SearchConditionRatingPrivate;

#define TYPE_RATING (rating_get_type ())

#define SEARCH_CONDITION_RATING_TYPE_CONTEXT (search_condition_rating_context_get_type ())

#define TYPE_SEARCH_CONDITION_DATE (search_condition_date_get_type ())
#define SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDate))
#define SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
#define IS_SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_DATE))
#define IS_SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_DATE))
#define SEARCH_CONDITION_DATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))

typedef struct _SearchConditionDate SearchConditionDate;
typedef struct _SearchConditionDateClass SearchConditionDateClass;
typedef struct _SearchConditionDatePrivate SearchConditionDatePrivate;

#define SEARCH_CONDITION_DATE_TYPE_CONTEXT (search_condition_date_context_get_type ())
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
typedef struct _DataObjectPrivate DataObjectPrivate;

#define TYPE_ALTERATION (alteration_get_type ())
#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))

typedef struct _Alteration Alteration;
typedef struct _AlterationClass AlterationClass;
typedef struct _DataSourcePrivate DataSourcePrivate;

#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))

typedef struct _SourceHoldingTank SourceHoldingTank;
typedef struct _SourceHoldingTankClass SourceHoldingTankClass;

#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))

typedef struct _SourceSnapshot SourceSnapshot;
typedef struct _SourceSnapshotClass SourceSnapshotClass;

#define TYPE_SAVED_SEARCH (saved_search_get_type ())
#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))

typedef struct _SavedSearch SavedSearch;
typedef struct _SavedSearchClass SavedSearchClass;
typedef struct _SavedSearchPrivate SavedSearchPrivate;

#define TYPE_SAVED_SEARCH_ROW (saved_search_row_get_type ())
#define SAVED_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_ROW, SavedSearchRow))
#define SAVED_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_ROW, SavedSearchRowClass))
#define IS_SAVED_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_ROW))
#define IS_SAVED_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_ROW))
#define SAVED_SEARCH_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_ROW, SavedSearchRowClass))

typedef struct _SavedSearchRow SavedSearchRow;
typedef struct _SavedSearchRowClass SavedSearchRowClass;
#define _saved_search_row_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_row_unref (var), NULL)))
typedef struct _SavedSearchRowPrivate SavedSearchRowPrivate;

#define TYPE_SAVED_SEARCH_ID (saved_search_id_get_type ())
typedef struct _SavedSearchID SavedSearchID;
#define _search_condition_unref0(var) ((var == NULL) ? NULL : (var = (search_condition_unref (var), NULL)))

#define TYPE_DATABASE_TABLE (database_table_get_type ())
#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))

typedef struct _DatabaseTable DatabaseTable;
typedef struct _DatabaseTableClass DatabaseTableClass;

#define TYPE_SAVED_SEARCH_DB_TABLE (saved_search_db_table_get_type ())
#define SAVED_SEARCH_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTable))
#define SAVED_SEARCH_DB_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTableClass))
#define IS_SAVED_SEARCH_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DB_TABLE))
#define IS_SAVED_SEARCH_DB_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DB_TABLE))
#define SAVED_SEARCH_DB_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTableClass))

typedef struct _SavedSearchDBTable SavedSearchDBTable;
typedef struct _SavedSearchDBTableClass SavedSearchDBTableClass;
#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define TYPE_SAVED_SEARCH_TABLE (saved_search_table_get_type ())
#define SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTable))
#define SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
#define IS_SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_TABLE))
#define IS_SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_TABLE))
#define SAVED_SEARCH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))

typedef struct _SavedSearchTable SavedSearchTable;
typedef struct _SavedSearchTableClass SavedSearchTableClass;
#define _saved_search_table_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_table_unref (var), NULL)))

#define TYPE_PAGE_WINDOW (page_window_get_type ())
#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))

typedef struct _PageWindow PageWindow;
typedef struct _PageWindowClass PageWindowClass;

#define TYPE_APP_WINDOW (app_window_get_type ())
#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))

typedef struct _AppWindow AppWindow;
typedef struct _AppWindowClass AppWindowClass;

#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))

typedef struct _LibraryWindow LibraryWindow;
typedef struct _LibraryWindowClass LibraryWindowClass;
typedef struct _SavedSearchTablePrivate SavedSearchTablePrivate;
typedef struct _ParamSpecSavedSearchTable ParamSpecSavedSearchTable;
enum  {
	SAVED_SEARCH_TABLE_SEARCH_ADDED_SIGNAL,
	SAVED_SEARCH_TABLE_SEARCH_REMOVED_SIGNAL,
	SAVED_SEARCH_TABLE_LAST_SIGNAL
};
static guint saved_search_table_signals[SAVED_SEARCH_TABLE_LAST_SIGNAL] = {0};

typedef enum  {
	SEARCH_OPERATOR_ANY = 0,
	SEARCH_OPERATOR_ALL,
	SEARCH_OPERATOR_NONE
} SearchOperator;

struct _SearchCondition {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SearchConditionPrivate * priv;
};

struct _SearchConditionClass {
	GTypeClass parent_class;
	void (*finalize) (SearchCondition *self);
	gboolean (*predicate) (SearchCondition* self, MediaSource* source);
};

typedef enum  {
	SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT = 0,
	SEARCH_CONDITION_SEARCH_TYPE_TITLE,
	SEARCH_CONDITION_SEARCH_TYPE_TAG,
	SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME,
	SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME,
	SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE,
	SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE,
	SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE,
	SEARCH_CONDITION_SEARCH_TYPE_RATING,
	SEARCH_CONDITION_SEARCH_TYPE_COMMENT,
	SEARCH_CONDITION_SEARCH_TYPE_DATE
} SearchConditionSearchType;

struct _SearchConditionPrivate {
	SearchConditionSearchType _search_type;
};

struct _ParamSpecSearchCondition {
	GParamSpec parent_instance;
};

struct _SearchConditionText {
	SearchCondition parent_instance;
	SearchConditionTextPrivate * priv;
};

struct _SearchConditionTextClass {
	SearchConditionClass parent_class;
};

typedef enum  {
	SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS = 0,
	SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY,
	SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH,
	SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH,
	SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN,
	SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET,
	SEARCH_CONDITION_TEXT_CONTEXT_IS_SET
} SearchConditionTextContext;

struct _SearchConditionTextPrivate {
	gchar* _text;
	SearchConditionTextContext _context;
};

struct _SearchConditionMediaType {
	SearchCondition parent_instance;
	SearchConditionMediaTypePrivate * priv;
};

struct _SearchConditionMediaTypeClass {
	SearchConditionClass parent_class;
};

typedef enum  {
	SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL = 0,
	SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW,
	SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO
} SearchConditionMediaTypeMediaType;

typedef enum  {
	SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS = 0,
	SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT
} SearchConditionMediaTypeContext;

struct _SearchConditionMediaTypePrivate {
	SearchConditionMediaTypeMediaType _media_type;
	SearchConditionMediaTypeContext _context;
};

typedef enum  {
	PHOTO_FILE_FORMAT_JFIF,
	PHOTO_FILE_FORMAT_RAW,
	PHOTO_FILE_FORMAT_PNG,
	PHOTO_FILE_FORMAT_TIFF,
	PHOTO_FILE_FORMAT_BMP,
	PHOTO_FILE_FORMAT_UNKNOWN
} PhotoFileFormat;

struct _SearchConditionFlagged {
	SearchCondition parent_instance;
	SearchConditionFlaggedPrivate * priv;
};

struct _SearchConditionFlaggedClass {
	SearchConditionClass parent_class;
};

typedef enum  {
	SEARCH_CONDITION_FLAGGED_STATE_FLAGGED = 0,
	SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED
} SearchConditionFlaggedState;

struct _SearchConditionFlaggedPrivate {
	SearchConditionFlaggedState _state;
};

struct _FlaggableIface {
	GTypeInterface parent_iface;
	gboolean (*is_flagged) (Flaggable* self);
	void (*mark_flagged) (Flaggable* self);
	void (*mark_unflagged) (Flaggable* self);
};

struct _SearchConditionModified {
	SearchCondition parent_instance;
	SearchConditionModifiedPrivate * priv;
};

struct _SearchConditionModifiedClass {
	SearchConditionClass parent_class;
};

typedef enum  {
	SEARCH_CONDITION_MODIFIED_STATE_MODIFIED = 0,
	SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES,
	SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES
} SearchConditionModifiedState;

typedef enum  {
	SEARCH_CONDITION_MODIFIED_CONTEXT_HAS = 0,
	SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO
} SearchConditionModifiedContext;

struct _SearchConditionModifiedPrivate {
	SearchConditionModifiedState _state;
	SearchConditionModifiedContext _context;
};

struct _SearchConditionRating {
	SearchCondition parent_instance;
	SearchConditionRatingPrivate * priv;
};

struct _SearchConditionRatingClass {
	SearchConditionClass parent_class;
};

typedef enum  {
	RATING_REJECTED = -1,
	RATING_UNRATED = 0,
	RATING_ONE = 1,
	RATING_TWO = 2,
	RATING_THREE = 3,
	RATING_FOUR = 4,
	RATING_FIVE = 5
} Rating;

typedef enum  {
	SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER = 0,
	SEARCH_CONDITION_RATING_CONTEXT_ONLY,
	SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER
} SearchConditionRatingContext;

struct _SearchConditionRatingPrivate {
	Rating _rating;
	SearchConditionRatingContext _context;
};

struct _SearchConditionDate {
	SearchCondition parent_instance;
	SearchConditionDatePrivate * priv;
};

struct _SearchConditionDateClass {
	SearchConditionClass parent_class;
};

typedef enum  {
	SEARCH_CONDITION_DATE_CONTEXT_EXACT = 0,
	SEARCH_CONDITION_DATE_CONTEXT_AFTER,
	SEARCH_CONDITION_DATE_CONTEXT_BEFORE,
	SEARCH_CONDITION_DATE_CONTEXT_BETWEEN,
	SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET
} SearchConditionDateContext;

struct _SearchConditionDatePrivate {
	GDateTime* _date_one;
	GDateTime* _date_two;
	SearchConditionDateContext _context;
};

struct _DataObject {
	GObject parent_instance;
	DataObjectPrivate * priv;
};

struct _DataObjectClass {
	GObjectClass parent_class;
	void (*notify_altered) (DataObject* self, Alteration* alteration);
	void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
	void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
	void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
	gchar* (*get_name) (DataObject* self);
	gchar* (*to_string) (DataObject* self);
};

struct _DataSource {
	DataObject parent_instance;
	DataSourcePrivate * priv;
};

struct _DataSourceClass {
	DataObjectClass parent_class;
	void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
	void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
	void (*notify_unlinked) (DataSource* self);
	void (*notify_relinking) (DataSource* self, SourceCollection* collection);
	void (*notify_relinked) (DataSource* self);
	gchar* (*get_typename) (DataSource* self);
	gint64 (*get_instance_id) (DataSource* self);
	gchar* (*get_source_id) (DataSource* self);
	void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
	SourceSnapshot* (*save_snapshot) (DataSource* self);
	gboolean (*internal_delete_backing) (DataSource* self, GError** error);
	gboolean (*equals) (DataSource* self, DataSource* source);
	void (*destroy) (DataSource* self);
	void (*unlinked) (DataSource* self, SourceCollection* sources);
	void (*relinked) (DataSource* self, SourceCollection* sources);
	void (*destroyed) (DataSource* self);
};

struct _SavedSearch {
	DataSource parent_instance;
	SavedSearchPrivate * priv;
};

struct _SavedSearchClass {
	DataSourceClass parent_class;
};

struct _SavedSearchPrivate {
	SavedSearchRow* row;
};

struct _SavedSearchID {
	gint64 id;
};

struct _SavedSearchRow {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SavedSearchRowPrivate * priv;
	SavedSearchID search_id;
	gchar* name;
	SearchOperator operator;
	GeeList* conditions;
};

struct _SavedSearchRowClass {
	GTypeClass parent_class;
	void (*finalize) (SavedSearchRow *self);
};

typedef enum  {
	DATABASE_ERROR_ERROR,
	DATABASE_ERROR_BACKING,
	DATABASE_ERROR_MEMORY,
	DATABASE_ERROR_ABORT,
	DATABASE_ERROR_LIMITS,
	DATABASE_ERROR_TYPESPEC
} DatabaseError;
#define DATABASE_ERROR database_error_quark ()
struct _SavedSearchTable {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SavedSearchTablePrivate * priv;
};

struct _SavedSearchTableClass {
	GTypeClass parent_class;
	void (*finalize) (SavedSearchTable *self);
};

struct _SavedSearchTablePrivate {
	GeeHashMap* search_map;
};

struct _ParamSpecSavedSearchTable {
	GParamSpec parent_instance;
};


static gpointer search_condition_parent_class = NULL;
static gpointer search_condition_text_parent_class = NULL;
extern TagSourceCollection* tag_global;
static gpointer search_condition_media_type_parent_class = NULL;
static gpointer search_condition_flagged_parent_class = NULL;
static gpointer search_condition_modified_parent_class = NULL;
static gpointer search_condition_rating_parent_class = NULL;
static gpointer search_condition_date_parent_class = NULL;
static gpointer saved_search_parent_class = NULL;
static gpointer saved_search_table_parent_class = NULL;
static SavedSearchTable* saved_search_table_instance;
static SavedSearchTable* saved_search_table_instance = NULL;

GType search_operator_get_type (void) G_GNUC_CONST;
gchar* search_operator_to_string (SearchOperator self);
SearchOperator search_operator_from_string (const gchar* str);
gpointer search_condition_ref (gpointer instance);
void search_condition_unref (gpointer instance);
GParamSpec* param_spec_search_condition (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_search_condition (GValue* value, gpointer v_object);
void value_take_search_condition (GValue* value, gpointer v_object);
gpointer value_get_search_condition (const GValue* value);
GType search_condition_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 search_condition_search_type_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION, SearchConditionPrivate))
enum  {
	SEARCH_CONDITION_DUMMY_PROPERTY
};
SearchConditionSearchType* search_condition_search_type_as_array (int* result_length1);
void search_condition_search_type_sort_array (SearchConditionSearchType** array, int* array_length1);
static gint __lambda13_ (void* a, void* b);
gint utf8_cs_compare (void* a, void* b);
gchar* search_condition_search_type_display_text (SearchConditionSearchType self);
static gint ___lambda13____compar_fn_t (void* key1, void* key2);
gchar* search_condition_search_type_to_string (SearchConditionSearchType self);
SearchConditionSearchType search_condition_search_type_from_string (const gchar* str);
gboolean search_condition_predicate (SearchCondition* self, MediaSource* source);
static gboolean search_condition_real_predicate (SearchCondition* self, MediaSource* source);
SearchCondition* search_condition_construct (GType object_type);
SearchConditionSearchType search_condition_get_search_type (SearchCondition* self);
void search_condition_set_search_type (SearchCondition* self, SearchConditionSearchType value);
static void search_condition_finalize (SearchCondition * obj);
GType search_condition_text_get_type (void) G_GNUC_CONST;
GType search_condition_text_context_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_TEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextPrivate))
enum  {
	SEARCH_CONDITION_TEXT_DUMMY_PROPERTY
};
gchar* search_condition_text_context_to_string (SearchConditionTextContext self);
SearchConditionTextContext search_condition_text_context_from_string (const gchar* str);
SearchConditionText* search_condition_text_new (SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
SearchConditionText* search_condition_text_construct (GType object_type, SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
gchar* string_remove_diacritics (const gchar* istring);
static void search_condition_text_set_text (SearchConditionText* self, const gchar* value);
static void search_condition_text_set_context (SearchConditionText* self, SearchConditionTextContext value);
static gboolean search_condition_text_string_match (SearchConditionText* self, const gchar* needle, const gchar* haystack);
SearchConditionTextContext search_condition_text_get_context (SearchConditionText* self);
gboolean is_string_empty (const gchar* s);
static gboolean search_condition_text_real_predicate (SearchCondition* base, MediaSource* source);
gchar* media_source_get_title (MediaSource* self);
const gchar* search_condition_text_get_text (SearchConditionText* self);
GType tag_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 source_collection_get_type (void) G_GNUC_CONST;
GType database_source_collection_get_type (void) G_GNUC_CONST;
GType container_source_collection_get_type (void) G_GNUC_CONST;
GType tag_source_collection_get_type (void) G_GNUC_CONST;
GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
gchar* tag_get_searchable_name (Tag* self);
GType event_source_get_type (void) G_GNUC_CONST;
GType event_get_type (void) G_GNUC_CONST;
Event* media_source_get_event (MediaSource* self);
gchar* data_object_get_name (DataObject* self);
gchar* media_source_get_comment (MediaSource* self);
gchar* media_source_get_basename (MediaSource* self);
static void search_condition_text_finalize (SearchCondition * obj);
GType search_condition_media_type_get_type (void) G_GNUC_CONST;
GType search_condition_media_type_media_type_get_type (void) G_GNUC_CONST;
GType search_condition_media_type_context_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_MEDIA_TYPE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypePrivate))
enum  {
	SEARCH_CONDITION_MEDIA_TYPE_DUMMY_PROPERTY
};
gchar* search_condition_media_type_context_to_string (SearchConditionMediaTypeContext self);
SearchConditionMediaTypeContext search_condition_media_type_context_from_string (const gchar* str);
gchar* search_condition_media_type_media_type_to_string (SearchConditionMediaTypeMediaType self);
SearchConditionMediaTypeMediaType search_condition_media_type_media_type_from_string (const gchar* str);
SearchConditionMediaType* search_condition_media_type_new (SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
SearchConditionMediaType* search_condition_media_type_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
static void search_condition_media_type_set_context (SearchConditionMediaType* self, SearchConditionMediaTypeContext value);
static void search_condition_media_type_set_media_type (SearchConditionMediaType* self, SearchConditionMediaTypeMediaType value);
static gboolean search_condition_media_type_real_predicate (SearchCondition* base, MediaSource* source);
SearchConditionMediaTypeMediaType search_condition_media_type_get_media_type (SearchConditionMediaType* self);
GType photo_source_get_type (void) G_GNUC_CONST;
GType photo_get_type (void) G_GNUC_CONST;
SearchConditionMediaTypeContext search_condition_media_type_get_context (SearchConditionMediaType* self);
GType photo_file_format_get_type (void) G_GNUC_CONST;
PhotoFileFormat photo_get_master_file_format (Photo* self);
GType video_source_get_type (void) G_GNUC_CONST;
static void search_condition_media_type_finalize (SearchCondition * obj);
GType search_condition_flagged_get_type (void) G_GNUC_CONST;
GType search_condition_flagged_state_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_FLAGGED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedPrivate))
enum  {
	SEARCH_CONDITION_FLAGGED_DUMMY_PROPERTY
};
gchar* search_condition_flagged_state_to_string (SearchConditionFlaggedState self);
SearchConditionFlaggedState search_condition_flagged_state_from_string (const gchar* str);
SearchConditionFlagged* search_condition_flagged_new (SearchConditionSearchType search_type, SearchConditionFlaggedState state);
SearchConditionFlagged* search_condition_flagged_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionFlaggedState state);
static void search_condition_flagged_set_state (SearchConditionFlagged* self, SearchConditionFlaggedState value);
static gboolean search_condition_flagged_real_predicate (SearchCondition* base, MediaSource* source);
SearchConditionFlaggedState search_condition_flagged_get_state (SearchConditionFlagged* self);
GType flaggable_get_type (void) G_GNUC_CONST;
gboolean flaggable_is_flagged (Flaggable* self);
static void search_condition_flagged_finalize (SearchCondition * obj);
GType search_condition_modified_get_type (void) G_GNUC_CONST;
GType search_condition_modified_state_get_type (void) G_GNUC_CONST;
GType search_condition_modified_context_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_MODIFIED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedPrivate))
enum  {
	SEARCH_CONDITION_MODIFIED_DUMMY_PROPERTY
};
gchar* search_condition_modified_context_to_string (SearchConditionModifiedContext self);
SearchConditionModifiedContext search_condition_modified_context_from_string (const gchar* str);
gchar* search_condition_modified_state_to_string (SearchConditionModifiedState self);
SearchConditionModifiedState search_condition_modified_state_from_string (const gchar* str);
SearchConditionModified* search_condition_modified_new (SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
SearchConditionModified* search_condition_modified_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
static void search_condition_modified_set_context (SearchConditionModified* self, SearchConditionModifiedContext value);
static void search_condition_modified_set_state (SearchConditionModified* self, SearchConditionModifiedState value);
static gboolean search_condition_modified_real_predicate (SearchCondition* base, MediaSource* source);
SearchConditionModifiedState search_condition_modified_get_state (SearchConditionModified* self);
gboolean photo_has_transformations (Photo* self);
gboolean photo_has_editable (Photo* self);
SearchConditionModifiedContext search_condition_modified_get_context (SearchConditionModified* self);
static void search_condition_modified_finalize (SearchCondition * obj);
GType search_condition_rating_get_type (void) G_GNUC_CONST;
GType rating_get_type (void) G_GNUC_CONST;
GType search_condition_rating_context_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_RATING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingPrivate))
enum  {
	SEARCH_CONDITION_RATING_DUMMY_PROPERTY
};
gchar* search_condition_rating_context_to_string (SearchConditionRatingContext self);
SearchConditionRatingContext search_condition_rating_context_from_string (const gchar* str);
SearchConditionRating* search_condition_rating_new (SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
SearchConditionRating* search_condition_rating_construct (GType object_type, SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
static void search_condition_rating_set_rating (SearchConditionRating* self, Rating value);
static void search_condition_rating_set_context (SearchConditionRating* self, SearchConditionRatingContext value);
static gboolean search_condition_rating_real_predicate (SearchCondition* base, MediaSource* source);
Rating media_source_get_rating (MediaSource* self);
SearchConditionRatingContext search_condition_rating_get_context (SearchConditionRating* self);
Rating search_condition_rating_get_rating (SearchConditionRating* self);
static void search_condition_rating_finalize (SearchCondition * obj);
GType search_condition_date_get_type (void) G_GNUC_CONST;
GType search_condition_date_context_get_type (void) G_GNUC_CONST;
#define SEARCH_CONDITION_DATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_DATE, SearchConditionDatePrivate))
enum  {
	SEARCH_CONDITION_DATE_DUMMY_PROPERTY
};
gchar* search_condition_date_context_to_string (SearchConditionDateContext self);
SearchConditionDateContext search_condition_date_context_from_string (const gchar* str);
SearchConditionDate* search_condition_date_new (SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
SearchConditionDate* search_condition_date_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
static void search_condition_date_set_context (SearchConditionDate* self, SearchConditionDateContext value);
static void search_condition_date_set_date_one (SearchConditionDate* self, GDateTime* value);
static void search_condition_date_set_date_two (SearchConditionDate* self, GDateTime* value);
static gboolean search_condition_date_real_predicate (SearchCondition* base, MediaSource* source);
time_t media_source_get_exposure_time (MediaSource* self);
SearchConditionDateContext search_condition_date_get_context (SearchConditionDate* self);
GDateTime* search_condition_date_get_date_one (SearchConditionDate* self);
GDateTime* search_condition_date_get_date_two (SearchConditionDate* self);
static void search_condition_date_finalize (SearchCondition * obj);
gpointer alteration_ref (gpointer instance);
void alteration_unref (gpointer instance);
GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_alteration (GValue* value, gpointer v_object);
void value_take_alteration (GValue* value, gpointer v_object);
gpointer value_get_alteration (const GValue* value);
GType alteration_get_type (void) G_GNUC_CONST;
gpointer source_holding_tank_ref (gpointer instance);
void source_holding_tank_unref (gpointer instance);
GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_source_holding_tank (GValue* value, gpointer v_object);
void value_take_source_holding_tank (GValue* value, gpointer v_object);
gpointer value_get_source_holding_tank (const GValue* value);
GType source_holding_tank_get_type (void) G_GNUC_CONST;
gpointer source_snapshot_ref (gpointer instance);
void source_snapshot_unref (gpointer instance);
GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_source_snapshot (GValue* value, gpointer v_object);
void value_take_source_snapshot (GValue* value, gpointer v_object);
gpointer value_get_source_snapshot (const GValue* value);
GType source_snapshot_get_type (void) G_GNUC_CONST;
GType saved_search_get_type (void) G_GNUC_CONST;
gpointer saved_search_row_ref (gpointer instance);
void saved_search_row_unref (gpointer instance);
GParamSpec* param_spec_saved_search_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_saved_search_row (GValue* value, gpointer v_object);
void value_take_saved_search_row (GValue* value, gpointer v_object);
gpointer value_get_saved_search_row (const GValue* value);
GType saved_search_row_get_type (void) G_GNUC_CONST;
#define SAVED_SEARCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH, SavedSearchPrivate))
enum  {
	SAVED_SEARCH_DUMMY_PROPERTY
};
#define SAVED_SEARCH_TYPENAME "saved_search"
SavedSearch* saved_search_new (SavedSearchRow* row, gint64 object_id);
SavedSearch* saved_search_construct (GType object_type, SavedSearchRow* row, gint64 object_id);
DataSource* data_source_construct (GType object_type, gint64 object_id);
static gchar* saved_search_real_get_name (DataObject* base);
GType saved_search_id_get_type (void) G_GNUC_CONST;
SavedSearchID* saved_search_id_dup (const SavedSearchID* self);
void saved_search_id_free (SavedSearchID* self);
static gchar* saved_search_real_to_string (DataObject* base);
static gchar* saved_search_real_get_typename (DataSource* base);
void saved_search_get_saved_search_id (SavedSearch* self, SavedSearchID* result);
static gint64 saved_search_real_get_instance_id (DataSource* base);
gint saved_search_compare_names (void* a, void* b);
gint string_collated_compare (void* a, void* b);
gboolean saved_search_predicate (SavedSearch* self, MediaSource* source);
void saved_search_reconstitute (SavedSearch* self);
gpointer database_table_ref (gpointer instance);
void database_table_unref (gpointer instance);
GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_database_table (GValue* value, gpointer v_object);
void value_take_database_table (GValue* value, gpointer v_object);
gpointer value_get_database_table (const GValue* value);
GType database_table_get_type (void) G_GNUC_CONST;
GType saved_search_db_table_get_type (void) G_GNUC_CONST;
SavedSearchDBTable* saved_search_db_table_get_instance (void);
GQuark database_error_quark (void);
void saved_search_db_table_create_from_row (SavedSearchDBTable* self, SavedSearchRow* row, SavedSearchID* result, GError** error);
void app_window_database_error (GError* err);
gpointer saved_search_table_ref (gpointer instance);
void saved_search_table_unref (gpointer instance);
GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_saved_search_table (GValue* value, gpointer v_object);
void value_take_saved_search_table (GValue* value, gpointer v_object);
gpointer value_get_saved_search_table (const GValue* value);
GType saved_search_table_get_type (void) G_GNUC_CONST;
SavedSearchTable* saved_search_table_get_instance (void);
void saved_search_table_add_to_map (SavedSearchTable* self, SavedSearch* search);
gchar* data_object_to_string (DataObject* self);
gboolean saved_search_rename (SavedSearch* self, const gchar* new_name);
gboolean saved_search_table_exists (SavedSearchTable* self, const gchar* search_name);
void saved_search_db_table_rename (SavedSearchDBTable* self, SavedSearchID* search_id, const gchar* new_name, GError** error);
void saved_search_table_remove_from_map (SavedSearchTable* self, SavedSearch* search);
GType page_window_get_type (void) G_GNUC_CONST;
GType app_window_get_type (void) G_GNUC_CONST;
GType library_window_get_type (void) G_GNUC_CONST;
LibraryWindow* library_window_get_app (void);
void library_window_switch_to_saved_search (LibraryWindow* self, SavedSearch* search);
GeeList* saved_search_get_conditions (SavedSearch* self);
SearchOperator saved_search_get_operator (SavedSearch* self);
static void saved_search_finalize (GObject * obj);
#define SAVED_SEARCH_TABLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH_TABLE, SavedSearchTablePrivate))
enum  {
	SAVED_SEARCH_TABLE_DUMMY_PROPERTY
};
static SavedSearchTable* saved_search_table_new (void);
static SavedSearchTable* saved_search_table_construct (GType object_type);
GeeList* saved_search_db_table_get_all_rows (SavedSearchDBTable* self, GError** error);
#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
GeeCollection* saved_search_table_get_all (SavedSearchTable* self);
SavedSearch* saved_search_table_create (SavedSearchTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions);
SavedSearchRow* saved_search_db_table_add (SavedSearchDBTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions, GError** error);
void saved_search_table_remove (SavedSearchTable* self, SavedSearch* search);
void saved_search_db_table_remove (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error);
GeeIterable* saved_search_table_get_saved_searches (SavedSearchTable* self);
gint saved_search_table_get_count (SavedSearchTable* self);
gchar* saved_search_table_generate_unique_name (SavedSearchTable* self);
#define RESOURCES_DEFAULT_SAVED_SEARCH_NAME _ ("Saved Search")
static void saved_search_table_finalize (SavedSearchTable * obj);


gchar* search_operator_to_string (SearchOperator self) {
	gchar* result = NULL;
#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_OPERATOR_ANY:
#line 1011 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 16 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("ANY");
#line 16 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 16 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1020 "SearchBoolean.c"
		}
#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_OPERATOR_ALL:
#line 1024 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 19 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("ALL");
#line 19 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 19 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1033 "SearchBoolean.c"
		}
#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_OPERATOR_NONE:
#line 1037 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 22 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("NONE");
#line 22 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 22 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1046 "SearchBoolean.c"
		}
		default:
		{
#line 25 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:25: unrecognized search operator enumeration value");
#line 1052 "SearchBoolean.c"
		}
	}
}


SearchOperator search_operator_from_string (const gchar* str) {
	SearchOperator result = 0;
	const gchar* _tmp0_;
#line 29 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 30 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 30 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "ANY") == 0) {
#line 31 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_OPERATOR_ANY;
#line 31 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 1071 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 33 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 33 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "ALL") == 0) {
#line 34 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_OPERATOR_ALL;
#line 34 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1082 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 36 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 36 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp2_, "NONE") == 0) {
#line 37 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_OPERATOR_NONE;
#line 37 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 1093 "SearchBoolean.c"
			} else {
				const gchar* _tmp3_;
#line 40 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = str;
#line 40 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				g_error ("SearchBoolean.vala:40: unrecognized search operator name: %s", _tmp3_);
#line 1100 "SearchBoolean.c"
			}
		}
	}
}


GType search_operator_get_type (void) {
	static volatile gsize search_operator_type_id__volatile = 0;
	if (g_once_init_enter (&search_operator_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_OPERATOR_ANY, "SEARCH_OPERATOR_ANY", "any"}, {SEARCH_OPERATOR_ALL, "SEARCH_OPERATOR_ALL", "all"}, {SEARCH_OPERATOR_NONE, "SEARCH_OPERATOR_NONE", "none"}, {0, NULL, NULL}};
		GType search_operator_type_id;
		search_operator_type_id = g_enum_register_static ("SearchOperator", values);
		g_once_init_leave (&search_operator_type_id__volatile, search_operator_type_id);
	}
	return search_operator_type_id__volatile;
}


SearchConditionSearchType* search_condition_search_type_as_array (int* result_length1) {
	SearchConditionSearchType* result = NULL;
	SearchConditionSearchType* _tmp0_;
	SearchConditionSearchType* _tmp1_;
	gint _tmp1__length1;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = g_new0 (SearchConditionSearchType, 11);
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[0] = SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[1] = SEARCH_CONDITION_SEARCH_TYPE_TITLE;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[2] = SEARCH_CONDITION_SEARCH_TYPE_TAG;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[3] = SEARCH_CONDITION_SEARCH_TYPE_COMMENT;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[4] = SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[5] = SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[6] = SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[7] = SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[8] = SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[9] = SEARCH_CONDITION_SEARCH_TYPE_RATING;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_[10] = SEARCH_CONDITION_SEARCH_TYPE_DATE;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1__length1 = 11;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (result_length1) {
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*result_length1 = _tmp1__length1;
#line 1156 "SearchBoolean.c"
	}
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp1_;
#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 1162 "SearchBoolean.c"
}


static gint __lambda13_ (void* a, void* b) {
	gint result = 0;
	void* _tmp0_;
	gchar* _tmp1_;
	void* _tmp2_;
	gchar* _tmp3_;
	gint _tmp4_;
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = a;
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = search_condition_search_type_display_text (*((SearchConditionSearchType*) _tmp0_));
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = b;
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = search_condition_search_type_display_text (*((SearchConditionSearchType*) _tmp2_));
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp4_ = utf8_cs_compare (_tmp1_, _tmp3_);
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp4_;
#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 1187 "SearchBoolean.c"
}


static gint ___lambda13____compar_fn_t (void* key1, void* key2) {
	gint result;
	result = __lambda13_ (key1, key2);
#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 1196 "SearchBoolean.c"
}


void search_condition_search_type_sort_array (SearchConditionSearchType** array, int* array_length1) {
	SearchConditionSearchType* _tmp0_;
	gint _tmp0__length1;
	SearchConditionSearchType* _tmp1_;
	gint _tmp1__length1;
#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = *array;
#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0__length1 = *array_length1;
#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = *array;
#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1__length1 = *array_length1;
#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	qsort (_tmp0_, (gsize) _tmp1__length1, (gsize) sizeof (SearchConditionSearchType), ___lambda13____compar_fn_t);
#line 1215 "SearchBoolean.c"
}


gchar* search_condition_search_type_to_string (SearchConditionSearchType self) {
	gchar* result = NULL;
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT:
#line 1225 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 79 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("ANY_TEXT");
#line 79 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 79 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1234 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_TITLE:
#line 1238 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 82 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("TITLE");
#line 82 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 82 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1247 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_TAG:
#line 1251 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 85 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("TAG");
#line 85 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 85 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1260 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_COMMENT:
#line 1264 "SearchBoolean.c"
		{
			gchar* _tmp3_;
#line 88 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp3_ = g_strdup ("COMMENT");
#line 88 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp3_;
#line 88 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1273 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME:
#line 1277 "SearchBoolean.c"
		{
			gchar* _tmp4_;
#line 91 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = g_strdup ("EVENT_NAME");
#line 91 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp4_;
#line 91 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1286 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME:
#line 1290 "SearchBoolean.c"
		{
			gchar* _tmp5_;
#line 94 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = g_strdup ("FILE_NAME");
#line 94 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp5_;
#line 94 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1299 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE:
#line 1303 "SearchBoolean.c"
		{
			gchar* _tmp6_;
#line 97 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp6_ = g_strdup ("MEDIA_TYPE");
#line 97 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp6_;
#line 97 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1312 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE:
#line 1316 "SearchBoolean.c"
		{
			gchar* _tmp7_;
#line 100 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp7_ = g_strdup ("FLAG_STATE");
#line 100 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp7_;
#line 100 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1325 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE:
#line 1329 "SearchBoolean.c"
		{
			gchar* _tmp8_;
#line 103 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = g_strdup ("MODIFIED_STATE");
#line 103 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp8_;
#line 103 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1338 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_RATING:
#line 1342 "SearchBoolean.c"
		{
			gchar* _tmp9_;
#line 106 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp9_ = g_strdup ("RATING");
#line 106 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp9_;
#line 106 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1351 "SearchBoolean.c"
		}
#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_DATE:
#line 1355 "SearchBoolean.c"
		{
			gchar* _tmp10_;
#line 109 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp10_ = g_strdup ("DATE");
#line 109 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp10_;
#line 109 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1364 "SearchBoolean.c"
		}
		default:
		{
#line 112 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:112: unrecognized search type enumeration value");
#line 1370 "SearchBoolean.c"
		}
	}
}


SearchConditionSearchType search_condition_search_type_from_string (const gchar* str) {
	SearchConditionSearchType result = 0;
	const gchar* _tmp0_;
#line 116 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 117 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 117 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "ANY_TEXT") == 0) {
#line 118 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT;
#line 118 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 1389 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 120 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 120 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "TITLE") == 0) {
#line 121 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_SEARCH_TYPE_TITLE;
#line 121 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1400 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 123 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 123 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp2_, "TAG") == 0) {
#line 124 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_CONDITION_SEARCH_TYPE_TAG;
#line 124 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 1411 "SearchBoolean.c"
			} else {
				const gchar* _tmp3_;
#line 126 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = str;
#line 126 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (g_strcmp0 (_tmp3_, "COMMENT") == 0) {
#line 127 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					result = SEARCH_CONDITION_SEARCH_TYPE_COMMENT;
#line 127 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					return result;
#line 1422 "SearchBoolean.c"
				} else {
					const gchar* _tmp4_;
#line 129 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp4_ = str;
#line 129 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					if (g_strcmp0 (_tmp4_, "EVENT_NAME") == 0) {
#line 130 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						result = SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME;
#line 130 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						return result;
#line 1433 "SearchBoolean.c"
					} else {
						const gchar* _tmp5_;
#line 132 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						_tmp5_ = str;
#line 132 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						if (g_strcmp0 (_tmp5_, "FILE_NAME") == 0) {
#line 133 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							result = SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME;
#line 133 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							return result;
#line 1444 "SearchBoolean.c"
						} else {
							const gchar* _tmp6_;
#line 135 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							_tmp6_ = str;
#line 135 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							if (g_strcmp0 (_tmp6_, "MEDIA_TYPE") == 0) {
#line 136 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								result = SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE;
#line 136 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								return result;
#line 1455 "SearchBoolean.c"
							} else {
								const gchar* _tmp7_;
#line 138 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								_tmp7_ = str;
#line 138 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								if (g_strcmp0 (_tmp7_, "FLAG_STATE") == 0) {
#line 139 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
									result = SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE;
#line 139 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
									return result;
#line 1466 "SearchBoolean.c"
								} else {
									const gchar* _tmp8_;
#line 141 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
									_tmp8_ = str;
#line 141 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
									if (g_strcmp0 (_tmp8_, "MODIFIED_STATE") == 0) {
#line 142 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
										result = SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE;
#line 142 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
										return result;
#line 1477 "SearchBoolean.c"
									} else {
										const gchar* _tmp9_;
#line 144 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
										_tmp9_ = str;
#line 144 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
										if (g_strcmp0 (_tmp9_, "RATING") == 0) {
#line 145 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
											result = SEARCH_CONDITION_SEARCH_TYPE_RATING;
#line 145 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
											return result;
#line 1488 "SearchBoolean.c"
										} else {
											const gchar* _tmp10_;
#line 147 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
											_tmp10_ = str;
#line 147 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
											if (g_strcmp0 (_tmp10_, "DATE") == 0) {
#line 148 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
												result = SEARCH_CONDITION_SEARCH_TYPE_DATE;
#line 148 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
												return result;
#line 1499 "SearchBoolean.c"
											} else {
												const gchar* _tmp11_;
#line 151 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
												_tmp11_ = str;
#line 151 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
												g_error ("SearchBoolean.vala:151: unrecognized search type name: %s", _tmp11_);
#line 1506 "SearchBoolean.c"
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}


gchar* search_condition_search_type_display_text (SearchConditionSearchType self) {
	gchar* result = NULL;
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT:
#line 1527 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup (_ ("Any text"));
#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1536 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_TITLE:
#line 1540 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup (_ ("Title"));
#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1549 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_TAG:
#line 1553 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup (_ ("Tag"));
#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1562 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_COMMENT:
#line 1566 "SearchBoolean.c"
		{
			gchar* _tmp3_;
#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp3_ = g_strdup (_ ("Comment"));
#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp3_;
#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1575 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME:
#line 1579 "SearchBoolean.c"
		{
			gchar* _tmp4_;
#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = g_strdup (_ ("Event name"));
#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp4_;
#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1588 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME:
#line 1592 "SearchBoolean.c"
		{
			gchar* _tmp5_;
#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = g_strdup (_ ("File name"));
#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp5_;
#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1601 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE:
#line 1605 "SearchBoolean.c"
		{
			gchar* _tmp6_;
#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp6_ = g_strdup (_ ("Media type"));
#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp6_;
#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1614 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE:
#line 1618 "SearchBoolean.c"
		{
			gchar* _tmp7_;
#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp7_ = g_strdup (_ ("Flag state"));
#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp7_;
#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1627 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE:
#line 1631 "SearchBoolean.c"
		{
			gchar* _tmp8_;
#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = g_strdup (_ ("Photo state"));
#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp8_;
#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1640 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_RATING:
#line 1644 "SearchBoolean.c"
		{
			gchar* _tmp9_;
#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp9_ = g_strdup (_ ("Rating"));
#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp9_;
#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1653 "SearchBoolean.c"
		}
#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_SEARCH_TYPE_DATE:
#line 1657 "SearchBoolean.c"
		{
			gchar* _tmp10_;
#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp10_ = g_strdup (_ ("Date"));
#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp10_;
#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 1666 "SearchBoolean.c"
		}
		default:
		{
#line 190 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:190: unrecognized search type enumeration value");
#line 1672 "SearchBoolean.c"
		}
	}
}


GType search_condition_search_type_get_type (void) {
	static volatile gsize search_condition_search_type_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_search_type_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT, "SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT", "any-text"}, {SEARCH_CONDITION_SEARCH_TYPE_TITLE, "SEARCH_CONDITION_SEARCH_TYPE_TITLE", "title"}, {SEARCH_CONDITION_SEARCH_TYPE_TAG, "SEARCH_CONDITION_SEARCH_TYPE_TAG", "tag"}, {SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME, "SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME", "event-name"}, {SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME, "SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME", "file-name"}, {SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE, "SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE", "media-type"}, {SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE, "SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE", "flag-state"}, {SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE, "SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE", "modified-state"}, {SEARCH_CONDITION_SEARCH_TYPE_RATING, "SEARCH_CONDITION_SEARCH_TYPE_RATING", "rating"}, {SEARCH_CONDITION_SEARCH_TYPE_COMMENT, "SEARCH_CONDITION_SEARCH_TYPE_COMMENT", "comment"}, {SEARCH_CONDITION_SEARCH_TYPE_DATE, "SEARCH_CONDITION_SEARCH_TYPE_DATE", "date"}, {0, NULL, NULL}};
		GType search_condition_search_type_type_id;
		search_condition_search_type_type_id = g_enum_register_static ("SearchConditionSearchType", values);
		g_once_init_leave (&search_condition_search_type_type_id__volatile, search_condition_search_type_type_id);
	}
	return search_condition_search_type_type_id__volatile;
}


static gboolean search_condition_real_predicate (SearchCondition* self, MediaSource* source) {
	gboolean _tmp0_ = FALSE;
#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_critical ("Type `%s' does not implement abstract method `search_condition_predicate'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return _tmp0_;
#line 1696 "SearchBoolean.c"
}


gboolean search_condition_predicate (SearchCondition* self, MediaSource* source) {
#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION (self), FALSE);
#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return SEARCH_CONDITION_GET_CLASS (self)->predicate (self, source);
#line 1705 "SearchBoolean.c"
}


SearchCondition* search_condition_construct (GType object_type) {
	SearchCondition* self = NULL;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchCondition*) g_type_create_instance (object_type);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 1715 "SearchBoolean.c"
}


SearchConditionSearchType search_condition_get_search_type (SearchCondition* self) {
	SearchConditionSearchType result;
	SearchConditionSearchType _tmp0_;
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION (self), 0);
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_search_type;
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 1730 "SearchBoolean.c"
}


void search_condition_set_search_type (SearchCondition* self, SearchConditionSearchType value) {
	SearchConditionSearchType _tmp0_;
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION (self));
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_search_type = _tmp0_;
#line 1742 "SearchBoolean.c"
}


static void value_search_condition_init (GValue* value) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	value->data[0].v_pointer = NULL;
#line 1749 "SearchBoolean.c"
}


static void value_search_condition_free_value (GValue* value) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (value->data[0].v_pointer) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_unref (value->data[0].v_pointer);
#line 1758 "SearchBoolean.c"
	}
}


static void value_search_condition_copy_value (const GValue* src_value, GValue* dest_value) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (src_value->data[0].v_pointer) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		dest_value->data[0].v_pointer = search_condition_ref (src_value->data[0].v_pointer);
#line 1768 "SearchBoolean.c"
	} else {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		dest_value->data[0].v_pointer = NULL;
#line 1772 "SearchBoolean.c"
	}
}


static gpointer value_search_condition_peek_pointer (const GValue* value) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return value->data[0].v_pointer;
#line 1780 "SearchBoolean.c"
}


static gchar* value_search_condition_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (collect_values[0].v_pointer) {
#line 1787 "SearchBoolean.c"
		SearchCondition * object;
		object = collect_values[0].v_pointer;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (object->parent_instance.g_class == NULL) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 1794 "SearchBoolean.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 1798 "SearchBoolean.c"
		}
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = search_condition_ref (object);
#line 1802 "SearchBoolean.c"
	} else {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = NULL;
#line 1806 "SearchBoolean.c"
	}
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return NULL;
#line 1810 "SearchBoolean.c"
}


static gchar* value_search_condition_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	SearchCondition ** object_p;
	object_p = collect_values[0].v_pointer;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (!object_p) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 1821 "SearchBoolean.c"
	}
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (!value->data[0].v_pointer) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*object_p = NULL;
#line 1827 "SearchBoolean.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*object_p = value->data[0].v_pointer;
#line 1831 "SearchBoolean.c"
	} else {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*object_p = search_condition_ref (value->data[0].v_pointer);
#line 1835 "SearchBoolean.c"
	}
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return NULL;
#line 1839 "SearchBoolean.c"
}


GParamSpec* param_spec_search_condition (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	ParamSpecSearchCondition* spec;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (g_type_is_a (object_type, TYPE_SEARCH_CONDITION), NULL);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return G_PARAM_SPEC (spec);
#line 1853 "SearchBoolean.c"
}


gpointer value_get_search_condition (const GValue* value) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_CONDITION), NULL);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return value->data[0].v_pointer;
#line 1862 "SearchBoolean.c"
}


void value_set_search_condition (GValue* value, gpointer v_object) {
	SearchCondition * old;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_CONDITION));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	old = value->data[0].v_pointer;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (v_object) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SEARCH_CONDITION));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = v_object;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_ref (value->data[0].v_pointer);
#line 1882 "SearchBoolean.c"
	} else {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = NULL;
#line 1886 "SearchBoolean.c"
	}
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (old) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_unref (old);
#line 1892 "SearchBoolean.c"
	}
}


void value_take_search_condition (GValue* value, gpointer v_object) {
	SearchCondition * old;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_CONDITION));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	old = value->data[0].v_pointer;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (v_object) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SEARCH_CONDITION));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = v_object;
#line 1911 "SearchBoolean.c"
	} else {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = NULL;
#line 1915 "SearchBoolean.c"
	}
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (old) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_unref (old);
#line 1921 "SearchBoolean.c"
	}
}


static void search_condition_class_init (SearchConditionClass * klass) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_parent_class = g_type_class_peek_parent (klass);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_finalize;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionPrivate));
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_real_predicate;
#line 1935 "SearchBoolean.c"
}


static void search_condition_instance_init (SearchCondition * self) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_GET_PRIVATE (self);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->ref_count = 1;
#line 1944 "SearchBoolean.c"
}


static void search_condition_finalize (SearchCondition * obj) {
	SearchCondition * self;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION, SearchCondition);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_signal_handlers_destroy (self);
#line 1954 "SearchBoolean.c"
}


GType search_condition_get_type (void) {
	static volatile gsize search_condition_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { value_search_condition_init, value_search_condition_free_value, value_search_condition_copy_value, value_search_condition_peek_pointer, "p", value_search_condition_collect_value, "p", value_search_condition_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchCondition), 0, (GInstanceInitFunc) search_condition_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType search_condition_type_id;
		search_condition_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SearchCondition", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&search_condition_type_id__volatile, search_condition_type_id);
	}
	return search_condition_type_id__volatile;
}


gpointer search_condition_ref (gpointer instance) {
	SearchCondition * self;
	self = instance;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_atomic_int_inc (&self->ref_count);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return instance;
#line 1979 "SearchBoolean.c"
}


void search_condition_unref (gpointer instance) {
	SearchCondition * self;
	self = instance;
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		SEARCH_CONDITION_GET_CLASS (self)->finalize (self);
#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 1992 "SearchBoolean.c"
	}
}


gchar* search_condition_text_context_to_string (SearchConditionTextContext self) {
	gchar* result = NULL;
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS:
#line 2003 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 215 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("CONTAINS");
#line 215 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 215 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2012 "SearchBoolean.c"
		}
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY:
#line 2016 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 218 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("IS_EXACTLY");
#line 218 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 218 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2025 "SearchBoolean.c"
		}
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH:
#line 2029 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 221 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("STARTS_WITH");
#line 221 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 221 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2038 "SearchBoolean.c"
		}
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH:
#line 2042 "SearchBoolean.c"
		{
			gchar* _tmp3_;
#line 224 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp3_ = g_strdup ("ENDS_WITH");
#line 224 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp3_;
#line 224 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2051 "SearchBoolean.c"
		}
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN:
#line 2055 "SearchBoolean.c"
		{
			gchar* _tmp4_;
#line 227 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = g_strdup ("DOES_NOT_CONTAIN");
#line 227 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp4_;
#line 227 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2064 "SearchBoolean.c"
		}
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET:
#line 2068 "SearchBoolean.c"
		{
			gchar* _tmp5_;
#line 230 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = g_strdup ("IS_NOT_SET");
#line 230 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp5_;
#line 230 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2077 "SearchBoolean.c"
		}
#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_IS_SET:
#line 2081 "SearchBoolean.c"
		{
			gchar* _tmp6_;
#line 233 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp6_ = g_strdup ("IS_SET");
#line 233 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp6_;
#line 233 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2090 "SearchBoolean.c"
		}
		default:
		{
#line 236 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:236: unrecognized text search context enumeration v" \
"alue");
#line 2096 "SearchBoolean.c"
		}
	}
}


SearchConditionTextContext search_condition_text_context_from_string (const gchar* str) {
	SearchConditionTextContext result = 0;
	const gchar* _tmp0_;
#line 240 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 241 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 241 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "CONTAINS") == 0) {
#line 242 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS;
#line 242 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 2115 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 244 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 244 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "IS_EXACTLY") == 0) {
#line 245 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY;
#line 245 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2126 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 247 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 247 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp2_, "STARTS_WITH") == 0) {
#line 248 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH;
#line 248 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 2137 "SearchBoolean.c"
			} else {
				const gchar* _tmp3_;
#line 250 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = str;
#line 250 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (g_strcmp0 (_tmp3_, "ENDS_WITH") == 0) {
#line 251 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					result = SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH;
#line 251 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					return result;
#line 2148 "SearchBoolean.c"
				} else {
					const gchar* _tmp4_;
#line 253 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp4_ = str;
#line 253 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					if (g_strcmp0 (_tmp4_, "DOES_NOT_CONTAIN") == 0) {
#line 254 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						result = SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN;
#line 254 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						return result;
#line 2159 "SearchBoolean.c"
					} else {
						const gchar* _tmp5_;
#line 256 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						_tmp5_ = str;
#line 256 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						if (g_strcmp0 (_tmp5_, "IS_NOT_SET") == 0) {
#line 257 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							result = SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET;
#line 257 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							return result;
#line 2170 "SearchBoolean.c"
						} else {
							const gchar* _tmp6_;
#line 259 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							_tmp6_ = str;
#line 259 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
							if (g_strcmp0 (_tmp6_, "IS_SET") == 0) {
#line 260 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								result = SEARCH_CONDITION_TEXT_CONTEXT_IS_SET;
#line 260 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								return result;
#line 2181 "SearchBoolean.c"
							} else {
								const gchar* _tmp7_;
#line 263 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								_tmp7_ = str;
#line 263 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
								g_error ("SearchBoolean.vala:263: unrecognized text search context name: %s", _tmp7_);
#line 2188 "SearchBoolean.c"
							}
						}
					}
				}
			}
		}
	}
}


GType search_condition_text_context_get_type (void) {
	static volatile gsize search_condition_text_context_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_text_context_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS, "SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS", "contains"}, {SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY, "SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY", "is-exactly"}, {SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH, "SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH", "starts-with"}, {SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH, "SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH", "ends-with"}, {SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN, "SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN", "does-not-contain"}, {SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET, "SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET", "is-not-set"}, {SEARCH_CONDITION_TEXT_CONTEXT_IS_SET, "SEARCH_CONDITION_TEXT_CONTEXT_IS_SET", "is-set"}, {0, NULL, NULL}};
		GType search_condition_text_context_type_id;
		search_condition_text_context_type_id = g_enum_register_static ("SearchConditionTextContext", values);
		g_once_init_leave (&search_condition_text_context_type_id__volatile, search_condition_text_context_type_id);
	}
	return search_condition_text_context_type_id__volatile;
}


SearchConditionText* search_condition_text_construct (GType object_type, SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context) {
	SearchConditionText* self = NULL;
	SearchConditionSearchType _tmp0_;
	gchar* _tmp1_ = NULL;
	const gchar* _tmp2_;
	SearchConditionTextContext _tmp8_;
#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchConditionText*) search_condition_construct (object_type);
#line 274 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = search_type;
#line 274 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = text;
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp2_ != NULL) {
#line 2227 "SearchBoolean.c"
		const gchar* _tmp3_;
		gchar* _tmp4_;
		gchar* _tmp5_;
		gchar* _tmp6_;
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = text;
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = g_utf8_strdown (_tmp3_, (gssize) -1);
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = _tmp4_;
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = string_remove_diacritics (_tmp5_);
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp1_);
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = _tmp6_;
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp5_);
#line 2246 "SearchBoolean.c"
	} else {
		gchar* _tmp7_;
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = g_strdup ("");
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp1_);
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = _tmp7_;
#line 2255 "SearchBoolean.c"
	}
#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_text_set_text (self, _tmp1_);
#line 276 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp8_ = context;
#line 276 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_text_set_context (self, _tmp8_);
#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (_tmp1_);
#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 2267 "SearchBoolean.c"
}


SearchConditionText* search_condition_text_new (SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context) {
#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return search_condition_text_construct (TYPE_SEARCH_CONDITION_TEXT, search_type, text, context);
#line 2274 "SearchBoolean.c"
}


static gboolean string_contains (const gchar* self, const gchar* needle) {
	gboolean result = FALSE;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	g_return_val_if_fail (needle != NULL, FALSE);
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp0_ = needle;
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	result = _tmp1_ != NULL;
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	return result;
#line 2294 "SearchBoolean.c"
}


static gboolean search_condition_text_string_match (SearchConditionText* self, const gchar* needle, const gchar* haystack) {
	gboolean result = FALSE;
	SearchConditionTextContext _tmp0_;
#line 280 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_TEXT (self), FALSE);
#line 280 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (needle != NULL, FALSE);
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_context;
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (_tmp0_) {
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS:
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN:
#line 2313 "SearchBoolean.c"
		{
			gboolean _tmp1_ = FALSE;
			const gchar* _tmp2_;
			gboolean _tmp3_;
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = haystack;
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp3_ = is_string_empty (_tmp2_);
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (!_tmp3_) {
#line 2324 "SearchBoolean.c"
				const gchar* _tmp4_;
				const gchar* _tmp5_;
				gboolean _tmp6_;
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp4_ = haystack;
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp5_ = needle;
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp6_ = string_contains (_tmp4_, _tmp5_);
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp1_ = _tmp6_;
#line 2336 "SearchBoolean.c"
			} else {
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp1_ = FALSE;
#line 2340 "SearchBoolean.c"
			}
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2346 "SearchBoolean.c"
		}
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY:
#line 2350 "SearchBoolean.c"
		{
			gboolean _tmp7_ = FALSE;
			const gchar* _tmp8_;
			gboolean _tmp9_;
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = haystack;
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp9_ = is_string_empty (_tmp8_);
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (!_tmp9_) {
#line 2361 "SearchBoolean.c"
				const gchar* _tmp10_;
				const gchar* _tmp11_;
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp10_ = haystack;
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp11_ = needle;
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp7_ = g_strcmp0 (_tmp10_, _tmp11_) == 0;
#line 2370 "SearchBoolean.c"
			} else {
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp7_ = FALSE;
#line 2374 "SearchBoolean.c"
			}
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp7_;
#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2380 "SearchBoolean.c"
		}
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH:
#line 2384 "SearchBoolean.c"
		{
			gboolean _tmp12_ = FALSE;
			const gchar* _tmp13_;
			gboolean _tmp14_;
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp13_ = haystack;
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp14_ = is_string_empty (_tmp13_);
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (!_tmp14_) {
#line 2395 "SearchBoolean.c"
				const gchar* _tmp15_;
				const gchar* _tmp16_;
				gboolean _tmp17_;
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp15_ = haystack;
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp16_ = needle;
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp17_ = g_str_has_prefix (_tmp15_, _tmp16_);
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp12_ = _tmp17_;
#line 2407 "SearchBoolean.c"
			} else {
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp12_ = FALSE;
#line 2411 "SearchBoolean.c"
			}
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp12_;
#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2417 "SearchBoolean.c"
		}
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH:
#line 2421 "SearchBoolean.c"
		{
			gboolean _tmp18_ = FALSE;
			const gchar* _tmp19_;
			gboolean _tmp20_;
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp19_ = haystack;
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp20_ = is_string_empty (_tmp19_);
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (!_tmp20_) {
#line 2432 "SearchBoolean.c"
				const gchar* _tmp21_;
				const gchar* _tmp22_;
				gboolean _tmp23_;
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp21_ = haystack;
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp22_ = needle;
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp23_ = g_str_has_suffix (_tmp21_, _tmp22_);
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp18_ = _tmp23_;
#line 2444 "SearchBoolean.c"
			} else {
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp18_ = FALSE;
#line 2448 "SearchBoolean.c"
			}
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp18_;
#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2454 "SearchBoolean.c"
		}
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET:
#line 2458 "SearchBoolean.c"
		{
			const gchar* _tmp24_;
			gboolean _tmp25_;
#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp24_ = haystack;
#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp25_ = is_string_empty (_tmp24_);
#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp25_;
#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2470 "SearchBoolean.c"
		}
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_TEXT_CONTEXT_IS_SET:
#line 2474 "SearchBoolean.c"
		{
			const gchar* _tmp26_;
			gboolean _tmp27_;
#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp26_ = haystack;
#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp27_ = is_string_empty (_tmp26_);
#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = !_tmp27_;
#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 2486 "SearchBoolean.c"
		}
		default:
#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		break;
#line 2491 "SearchBoolean.c"
	}
#line 302 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = FALSE;
#line 302 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 2497 "SearchBoolean.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self ? g_object_ref (self) : NULL;
#line 2504 "SearchBoolean.c"
}


static gboolean search_condition_text_real_predicate (SearchCondition* base, MediaSource* source) {
	SearchConditionText * self;
	gboolean result = FALSE;
	gboolean ret = FALSE;
	gboolean _tmp0_ = FALSE;
	SearchConditionSearchType _tmp1_;
	SearchConditionSearchType _tmp2_;
	gboolean _tmp21_ = FALSE;
	SearchConditionSearchType _tmp22_;
	SearchConditionSearchType _tmp23_;
	gboolean _tmp52_ = FALSE;
	SearchConditionSearchType _tmp53_;
	SearchConditionSearchType _tmp54_;
	gboolean _tmp75_ = FALSE;
	SearchConditionSearchType _tmp76_;
	SearchConditionSearchType _tmp77_;
	gboolean _tmp91_ = FALSE;
	SearchConditionSearchType _tmp92_;
	SearchConditionSearchType _tmp93_;
	gboolean _tmp106_ = FALSE;
	SearchConditionTextContext _tmp107_;
#line 306 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_TEXT, SearchConditionText);
#line 306 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 307 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	ret = FALSE;
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = _tmp1_;
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp2_) {
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = TRUE;
#line 2543 "SearchBoolean.c"
	} else {
		SearchConditionSearchType _tmp3_;
		SearchConditionSearchType _tmp4_;
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = _tmp3_;
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = SEARCH_CONDITION_SEARCH_TYPE_TITLE == _tmp4_;
#line 2553 "SearchBoolean.c"
	}
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp0_) {
#line 2557 "SearchBoolean.c"
		gchar* _tmp5_ = NULL;
		MediaSource* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gboolean _tmp9_;
		gchar* title = NULL;
		gchar* _tmp16_;
		gboolean _tmp17_;
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		gboolean _tmp20_;
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = source;
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = media_source_get_title (_tmp6_);
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp8_ = _tmp7_;
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp9_ = NULL != _tmp8_;
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp8_);
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (_tmp9_) {
#line 2581 "SearchBoolean.c"
			MediaSource* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			gchar* _tmp14_;
			gchar* _tmp15_;
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp10_ = source;
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp11_ = media_source_get_title (_tmp10_);
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp12_ = _tmp11_;
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp13_ = g_utf8_strdown (_tmp12_, (gssize) -1);
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp14_ = _tmp13_;
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp15_ = string_remove_diacritics (_tmp14_);
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp5_);
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = _tmp15_;
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp14_);
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp12_);
#line 2608 "SearchBoolean.c"
		} else {
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp5_);
#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = NULL;
#line 2614 "SearchBoolean.c"
		}
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp16_ = g_strdup (_tmp5_);
#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		title = _tmp16_;
#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp17_ = ret;
#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp18_ = self->priv->_text;
#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp19_ = title;
#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp20_ = search_condition_text_string_match (self, _tmp18_, _tmp19_);
#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		ret = _tmp17_ | _tmp20_;
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (title);
#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp5_);
#line 2634 "SearchBoolean.c"
	}
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp22_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp23_ = _tmp22_;
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp23_) {
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp21_ = TRUE;
#line 2644 "SearchBoolean.c"
	} else {
		SearchConditionSearchType _tmp24_;
		SearchConditionSearchType _tmp25_;
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp24_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp25_ = _tmp24_;
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp21_ = SEARCH_CONDITION_SEARCH_TYPE_TAG == _tmp25_;
#line 2654 "SearchBoolean.c"
	}
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp21_) {
#line 2658 "SearchBoolean.c"
		GeeList* tag_list = NULL;
		TagSourceCollection* _tmp26_;
		MediaSource* _tmp27_;
		GeeList* _tmp28_;
		GeeList* _tmp29_;
#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp26_ = tag_global;
#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp27_ = source;
#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp28_ = tag_source_collection_fetch_for_source (_tmp26_, _tmp27_);
#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		tag_list = _tmp28_;
#line 319 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp29_ = tag_list;
#line 319 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (NULL != _tmp29_) {
#line 2676 "SearchBoolean.c"
			gchar* itag = NULL;
			{
				GeeList* _tag_list = NULL;
				GeeList* _tmp30_;
				GeeList* _tmp31_;
				gint _tag_size = 0;
				GeeList* _tmp32_;
				gint _tmp33_;
				gint _tmp34_;
				gint _tag_index = 0;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp30_ = tag_list;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp31_ = _g_object_ref0 (_tmp30_);
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tag_list = _tmp31_;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp32_ = _tag_list;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp33_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_COLLECTION, GeeCollection));
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp34_ = _tmp33_;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tag_size = _tmp34_;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tag_index = -1;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				while (TRUE) {
#line 2705 "SearchBoolean.c"
					gint _tmp35_;
					gint _tmp36_;
					gint _tmp37_;
					Tag* tag = NULL;
					GeeList* _tmp38_;
					gint _tmp39_;
					gpointer _tmp40_;
					Tag* _tmp41_;
					gchar* _tmp42_;
					gchar* _tmp43_;
					gchar* _tmp44_;
					gboolean _tmp45_;
					const gchar* _tmp46_;
					const gchar* _tmp47_;
					gboolean _tmp48_;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp35_ = _tag_index;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tag_index = _tmp35_ + 1;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp36_ = _tag_index;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp37_ = _tag_size;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					if (!(_tmp36_ < _tmp37_)) {
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						break;
#line 2733 "SearchBoolean.c"
					}
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp38_ = _tag_list;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp39_ = _tag_index;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp40_ = gee_list_get (_tmp38_, _tmp39_);
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					tag = (Tag*) _tmp40_;
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp41_ = tag;
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp42_ = tag_get_searchable_name (_tmp41_);
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp43_ = _tmp42_;
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp44_ = g_utf8_strdown (_tmp43_, (gssize) -1);
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_g_free0 (itag);
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					itag = _tmp44_;
#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_g_free0 (_tmp43_);
#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp45_ = ret;
#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp46_ = self->priv->_text;
#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp47_ = itag;
#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp48_ = search_condition_text_string_match (self, _tmp46_, _tmp47_);
#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					ret = _tmp45_ | _tmp48_;
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_g_object_unref0 (tag);
#line 2769 "SearchBoolean.c"
				}
#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_g_object_unref0 (_tag_list);
#line 2773 "SearchBoolean.c"
			}
#line 319 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (itag);
#line 2777 "SearchBoolean.c"
		} else {
			gboolean _tmp49_;
			const gchar* _tmp50_;
			gboolean _tmp51_;
#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp49_ = ret;
#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp50_ = self->priv->_text;
#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp51_ = search_condition_text_string_match (self, _tmp50_, NULL);
#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			ret = _tmp49_ | _tmp51_;
#line 2790 "SearchBoolean.c"
		}
#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (tag_list);
#line 2794 "SearchBoolean.c"
	}
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp53_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp54_ = _tmp53_;
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp54_) {
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp52_ = TRUE;
#line 2804 "SearchBoolean.c"
	} else {
		SearchConditionSearchType _tmp55_;
		SearchConditionSearchType _tmp56_;
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp55_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp56_ = _tmp55_;
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp52_ = SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME == _tmp56_;
#line 2814 "SearchBoolean.c"
	}
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp52_) {
#line 2818 "SearchBoolean.c"
		gchar* _tmp57_ = NULL;
		MediaSource* _tmp58_;
		Event* _tmp59_;
		Event* _tmp60_;
		gboolean _tmp61_;
		gchar* event_name = NULL;
		gchar* _tmp70_;
		gboolean _tmp71_;
		const gchar* _tmp72_;
		const gchar* _tmp73_;
		gboolean _tmp74_;
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp58_ = source;
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp59_ = media_source_get_event (_tmp58_);
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp60_ = _tmp59_;
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp61_ = NULL != _tmp60_;
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (_tmp60_);
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (_tmp61_) {
#line 2842 "SearchBoolean.c"
			MediaSource* _tmp62_;
			Event* _tmp63_;
			Event* _tmp64_;
			gchar* _tmp65_;
			gchar* _tmp66_;
			gchar* _tmp67_;
			gchar* _tmp68_;
			gchar* _tmp69_;
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp62_ = source;
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp63_ = media_source_get_event (_tmp62_);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp64_ = _tmp63_;
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp65_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, TYPE_DATA_OBJECT, DataObject));
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp66_ = _tmp65_;
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp67_ = g_utf8_strdown (_tmp66_, (gssize) -1);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp68_ = _tmp67_;
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp69_ = string_remove_diacritics (_tmp68_);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp57_);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp57_ = _tmp69_;
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp68_);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp66_);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_object_unref0 (_tmp64_);
#line 2877 "SearchBoolean.c"
		} else {
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp57_);
#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp57_ = NULL;
#line 2883 "SearchBoolean.c"
		}
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp70_ = g_strdup (_tmp57_);
#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		event_name = _tmp70_;
#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp71_ = ret;
#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp72_ = self->priv->_text;
#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp73_ = event_name;
#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp74_ = search_condition_text_string_match (self, _tmp72_, _tmp73_);
#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		ret = _tmp71_ | _tmp74_;
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (event_name);
#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp57_);
#line 2903 "SearchBoolean.c"
	}
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp76_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp77_ = _tmp76_;
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp77_) {
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp75_ = TRUE;
#line 2913 "SearchBoolean.c"
	} else {
		SearchConditionSearchType _tmp78_;
		SearchConditionSearchType _tmp79_;
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp78_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp79_ = _tmp78_;
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp75_ = SEARCH_CONDITION_SEARCH_TYPE_COMMENT == _tmp79_;
#line 2923 "SearchBoolean.c"
	}
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp75_) {
#line 2927 "SearchBoolean.c"
		gchar* comment = NULL;
		MediaSource* _tmp80_;
		gchar* _tmp81_;
		const gchar* _tmp82_;
#line 339 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp80_ = source;
#line 339 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp81_ = media_source_get_comment (_tmp80_);
#line 339 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		comment = _tmp81_;
#line 340 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp82_ = comment;
#line 340 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (NULL != _tmp82_) {
#line 2942 "SearchBoolean.c"
			gboolean _tmp83_;
			const gchar* _tmp84_;
			const gchar* _tmp85_;
			gchar* _tmp86_;
			gchar* _tmp87_;
			gchar* _tmp88_;
			gchar* _tmp89_;
			gboolean _tmp90_;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp83_ = ret;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp84_ = self->priv->_text;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp85_ = comment;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp86_ = g_utf8_strdown (_tmp85_, (gssize) -1);
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp87_ = _tmp86_;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp88_ = string_remove_diacritics (_tmp87_);
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp89_ = _tmp88_;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp90_ = search_condition_text_string_match (self, _tmp84_, _tmp89_);
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			ret = _tmp83_ | _tmp90_;
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp89_);
#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_free0 (_tmp87_);
#line 2973 "SearchBoolean.c"
		}
#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (comment);
#line 2977 "SearchBoolean.c"
	}
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp92_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp93_ = _tmp92_;
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp93_) {
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp91_ = TRUE;
#line 2987 "SearchBoolean.c"
	} else {
		SearchConditionSearchType _tmp94_;
		SearchConditionSearchType _tmp95_;
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp94_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp95_ = _tmp94_;
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp91_ = SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME == _tmp95_;
#line 2997 "SearchBoolean.c"
	}
#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp91_) {
#line 3001 "SearchBoolean.c"
		gboolean _tmp96_;
		const gchar* _tmp97_;
		MediaSource* _tmp98_;
		gchar* _tmp99_;
		gchar* _tmp100_;
		gchar* _tmp101_;
		gchar* _tmp102_;
		gchar* _tmp103_;
		gchar* _tmp104_;
		gboolean _tmp105_;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp96_ = ret;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp97_ = self->priv->_text;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp98_ = source;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp99_ = media_source_get_basename (_tmp98_);
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp100_ = _tmp99_;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp101_ = g_utf8_strdown (_tmp100_, (gssize) -1);
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp102_ = _tmp101_;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp103_ = string_remove_diacritics (_tmp102_);
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp104_ = _tmp103_;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp105_ = search_condition_text_string_match (self, _tmp97_, _tmp104_);
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		ret = _tmp96_ | _tmp105_;
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp104_);
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp102_);
#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_free0 (_tmp100_);
#line 3040 "SearchBoolean.c"
	}
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp107_ = self->priv->_context;
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp107_ == SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN) {
#line 3046 "SearchBoolean.c"
		gboolean _tmp108_;
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp108_ = ret;
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp106_ = !_tmp108_;
#line 3052 "SearchBoolean.c"
	} else {
		gboolean _tmp109_;
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp109_ = ret;
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp106_ = _tmp109_;
#line 3059 "SearchBoolean.c"
	}
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp106_;
#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 3065 "SearchBoolean.c"
}


const gchar* search_condition_text_get_text (SearchConditionText* self) {
	const gchar* result;
	const gchar* _tmp0_;
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_TEXT (self), NULL);
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_text;
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 3080 "SearchBoolean.c"
}


static void search_condition_text_set_text (SearchConditionText* self, const gchar* value) {
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_TEXT (self));
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (self->priv->_text);
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_text = _tmp1_;
#line 3097 "SearchBoolean.c"
}


SearchConditionTextContext search_condition_text_get_context (SearchConditionText* self) {
	SearchConditionTextContext result;
	SearchConditionTextContext _tmp0_;
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_TEXT (self), 0);
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_context;
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 3112 "SearchBoolean.c"
}


static void search_condition_text_set_context (SearchConditionText* self, SearchConditionTextContext value) {
	SearchConditionTextContext _tmp0_;
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_TEXT (self));
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_context = _tmp0_;
#line 3124 "SearchBoolean.c"
}


static void search_condition_text_class_init (SearchConditionTextClass * klass) {
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_text_parent_class = g_type_class_peek_parent (klass);
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_text_finalize;
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionTextPrivate));
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_text_real_predicate;
#line 3137 "SearchBoolean.c"
}


static void search_condition_text_instance_init (SearchConditionText * self) {
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_TEXT_GET_PRIVATE (self);
#line 3144 "SearchBoolean.c"
}


static void search_condition_text_finalize (SearchCondition * obj) {
	SearchConditionText * self;
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_TEXT, SearchConditionText);
#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (self->priv->_text);
#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	SEARCH_CONDITION_CLASS (search_condition_text_parent_class)->finalize (obj);
#line 3156 "SearchBoolean.c"
}


GType search_condition_text_get_type (void) {
	static volatile gsize search_condition_text_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_text_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionText), 0, (GInstanceInitFunc) search_condition_text_instance_init, NULL };
		GType search_condition_text_type_id;
		search_condition_text_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionText", &g_define_type_info, 0);
		g_once_init_leave (&search_condition_text_type_id__volatile, search_condition_text_type_id);
	}
	return search_condition_text_type_id__volatile;
}


gchar* search_condition_media_type_context_to_string (SearchConditionMediaTypeContext self) {
	gchar* result = NULL;
#line 360 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 360 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS:
#line 3178 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 362 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("IS");
#line 362 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 362 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3187 "SearchBoolean.c"
		}
#line 360 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT:
#line 3191 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 365 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("IS_NOT");
#line 365 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 365 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3200 "SearchBoolean.c"
		}
		default:
		{
#line 368 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:368: unrecognized media search context enumeration " \
"value");
#line 3206 "SearchBoolean.c"
		}
	}
}


SearchConditionMediaTypeContext search_condition_media_type_context_from_string (const gchar* str) {
	SearchConditionMediaTypeContext result = 0;
	const gchar* _tmp0_;
#line 372 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 373 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 373 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "IS") == 0) {
#line 374 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
#line 374 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 3225 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 376 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 376 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "IS_NOT") == 0) {
#line 377 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
#line 377 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3236 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 380 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 380 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:380: unrecognized media search context name: %s", _tmp2_);
#line 3243 "SearchBoolean.c"
		}
	}
}


GType search_condition_media_type_context_get_type (void) {
	static volatile gsize search_condition_media_type_context_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_media_type_context_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS, "SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS", "is"}, {SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT, "SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT", "is-not"}, {0, NULL, NULL}};
		GType search_condition_media_type_context_type_id;
		search_condition_media_type_context_type_id = g_enum_register_static ("SearchConditionMediaTypeContext", values);
		g_once_init_leave (&search_condition_media_type_context_type_id__volatile, search_condition_media_type_context_type_id);
	}
	return search_condition_media_type_context_type_id__volatile;
}


gchar* search_condition_media_type_media_type_to_string (SearchConditionMediaTypeMediaType self) {
	gchar* result = NULL;
#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL:
#line 3267 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 392 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("PHOTO_ALL");
#line 392 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 392 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3276 "SearchBoolean.c"
		}
#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW:
#line 3280 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 395 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("PHOTO_RAW");
#line 395 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 395 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3289 "SearchBoolean.c"
		}
#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO:
#line 3293 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 398 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("VIDEO");
#line 398 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 398 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3302 "SearchBoolean.c"
		}
		default:
		{
#line 401 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:401: unrecognized media search type enumeration val" \
"ue");
#line 3308 "SearchBoolean.c"
		}
	}
}


SearchConditionMediaTypeMediaType search_condition_media_type_media_type_from_string (const gchar* str) {
	SearchConditionMediaTypeMediaType result = 0;
	const gchar* _tmp0_;
#line 405 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 406 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 406 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "PHOTO_ALL") == 0) {
#line 407 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL;
#line 407 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 3327 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 409 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 409 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "PHOTO_RAW") == 0) {
#line 410 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW;
#line 410 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3338 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 412 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 412 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp2_, "VIDEO") == 0) {
#line 413 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO;
#line 413 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3349 "SearchBoolean.c"
			} else {
				const gchar* _tmp3_;
#line 416 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = str;
#line 416 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				g_error ("SearchBoolean.vala:416: unrecognized media search type name: %s", _tmp3_);
#line 3356 "SearchBoolean.c"
			}
		}
	}
}


GType search_condition_media_type_media_type_get_type (void) {
	static volatile gsize search_condition_media_type_media_type_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_media_type_media_type_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL, "SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL", "photo-all"}, {SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW, "SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW", "photo-raw"}, {SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO, "SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO", "video"}, {0, NULL, NULL}};
		GType search_condition_media_type_media_type_type_id;
		search_condition_media_type_media_type_type_id = g_enum_register_static ("SearchConditionMediaTypeMediaType", values);
		g_once_init_leave (&search_condition_media_type_media_type_type_id__volatile, search_condition_media_type_media_type_type_id);
	}
	return search_condition_media_type_media_type_type_id__volatile;
}


SearchConditionMediaType* search_condition_media_type_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type) {
	SearchConditionMediaType* self = NULL;
	SearchConditionSearchType _tmp0_;
	SearchConditionMediaTypeContext _tmp1_;
	SearchConditionMediaTypeMediaType _tmp2_;
#line 426 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchConditionMediaType*) search_condition_construct (object_type);
#line 427 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = search_type;
#line 427 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
#line 428 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = context;
#line 428 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_media_type_set_context (self, _tmp1_);
#line 429 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = media_type;
#line 429 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_media_type_set_media_type (self, _tmp2_);
#line 426 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 3396 "SearchBoolean.c"
}


SearchConditionMediaType* search_condition_media_type_new (SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type) {
#line 426 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return search_condition_media_type_construct (TYPE_SEARCH_CONDITION_MEDIA_TYPE, search_type, context, media_type);
#line 3403 "SearchBoolean.c"
}


static gboolean search_condition_media_type_real_predicate (SearchCondition* base, MediaSource* source) {
	SearchConditionMediaType * self;
	gboolean result = FALSE;
	SearchConditionMediaTypeMediaType _tmp0_;
#line 433 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType);
#line 433 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_media_type;
#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (_tmp0_) {
#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL:
#line 3421 "SearchBoolean.c"
		{
			MediaSource* _tmp1_;
#line 438 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = source;
#line 438 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_PHOTO)) {
#line 3428 "SearchBoolean.c"
				SearchConditionMediaTypeContext _tmp2_;
#line 439 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp2_ = self->priv->_context;
#line 439 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp2_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
#line 439 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3436 "SearchBoolean.c"
			} else {
				SearchConditionMediaTypeContext _tmp3_;
#line 441 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = self->priv->_context;
#line 441 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp3_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
#line 441 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3445 "SearchBoolean.c"
			}
		}
#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW:
#line 3450 "SearchBoolean.c"
		{
			gboolean _tmp4_ = FALSE;
			MediaSource* _tmp5_;
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = source;
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_PHOTO)) {
#line 3458 "SearchBoolean.c"
				MediaSource* _tmp6_;
				PhotoFileFormat _tmp7_;
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp6_ = source;
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp7_ = photo_get_master_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PHOTO, Photo));
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp4_ = _tmp7_ == PHOTO_FILE_FORMAT_RAW;
#line 3467 "SearchBoolean.c"
			} else {
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp4_ = FALSE;
#line 3471 "SearchBoolean.c"
			}
#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_tmp4_) {
#line 3475 "SearchBoolean.c"
				SearchConditionMediaTypeContext _tmp8_;
#line 445 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp8_ = self->priv->_context;
#line 445 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp8_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
#line 445 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3483 "SearchBoolean.c"
			} else {
				SearchConditionMediaTypeContext _tmp9_;
#line 447 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp9_ = self->priv->_context;
#line 447 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp9_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
#line 447 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3492 "SearchBoolean.c"
			}
		}
#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO:
#line 3497 "SearchBoolean.c"
		{
			MediaSource* _tmp10_;
#line 450 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp10_ = source;
#line 450 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_VIDEO_SOURCE)) {
#line 3504 "SearchBoolean.c"
				SearchConditionMediaTypeContext _tmp11_;
#line 451 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp11_ = self->priv->_context;
#line 451 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp11_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
#line 451 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3512 "SearchBoolean.c"
			} else {
				SearchConditionMediaTypeContext _tmp12_;
#line 453 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp12_ = self->priv->_context;
#line 453 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp12_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
#line 453 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 3521 "SearchBoolean.c"
			}
		}
		default:
		{
#line 456 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:456: unrecognized media search type enumeration val" \
"ue");
#line 3528 "SearchBoolean.c"
		}
	}
}


SearchConditionMediaTypeMediaType search_condition_media_type_get_media_type (SearchConditionMediaType* self) {
	SearchConditionMediaTypeMediaType result;
	SearchConditionMediaTypeMediaType _tmp0_;
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self), 0);
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_media_type;
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 3545 "SearchBoolean.c"
}


static void search_condition_media_type_set_media_type (SearchConditionMediaType* self, SearchConditionMediaTypeMediaType value) {
	SearchConditionMediaTypeMediaType _tmp0_;
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self));
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_media_type = _tmp0_;
#line 3557 "SearchBoolean.c"
}


SearchConditionMediaTypeContext search_condition_media_type_get_context (SearchConditionMediaType* self) {
	SearchConditionMediaTypeContext result;
	SearchConditionMediaTypeContext _tmp0_;
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self), 0);
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_context;
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 3572 "SearchBoolean.c"
}


static void search_condition_media_type_set_context (SearchConditionMediaType* self, SearchConditionMediaTypeContext value) {
	SearchConditionMediaTypeContext _tmp0_;
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self));
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_context = _tmp0_;
#line 3584 "SearchBoolean.c"
}


static void search_condition_media_type_class_init (SearchConditionMediaTypeClass * klass) {
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_media_type_parent_class = g_type_class_peek_parent (klass);
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_media_type_finalize;
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionMediaTypePrivate));
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_media_type_real_predicate;
#line 3597 "SearchBoolean.c"
}


static void search_condition_media_type_instance_init (SearchConditionMediaType * self) {
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_MEDIA_TYPE_GET_PRIVATE (self);
#line 3604 "SearchBoolean.c"
}


static void search_condition_media_type_finalize (SearchCondition * obj) {
	SearchConditionMediaType * self;
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType);
#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	SEARCH_CONDITION_CLASS (search_condition_media_type_parent_class)->finalize (obj);
#line 3614 "SearchBoolean.c"
}


GType search_condition_media_type_get_type (void) {
	static volatile gsize search_condition_media_type_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_media_type_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionMediaTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_media_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionMediaType), 0, (GInstanceInitFunc) search_condition_media_type_instance_init, NULL };
		GType search_condition_media_type_type_id;
		search_condition_media_type_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionMediaType", &g_define_type_info, 0);
		g_once_init_leave (&search_condition_media_type_type_id__volatile, search_condition_media_type_type_id);
	}
	return search_condition_media_type_type_id__volatile;
}


gchar* search_condition_flagged_state_to_string (SearchConditionFlaggedState self) {
	gchar* result = NULL;
#line 468 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 468 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_FLAGGED_STATE_FLAGGED:
#line 3636 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 470 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("FLAGGED");
#line 470 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 470 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3645 "SearchBoolean.c"
		}
#line 468 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED:
#line 3649 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 473 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("UNFLAGGED");
#line 473 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 473 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3658 "SearchBoolean.c"
		}
		default:
		{
#line 476 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:476: unrecognized flagged search state enumeration " \
"value");
#line 3664 "SearchBoolean.c"
		}
	}
}


SearchConditionFlaggedState search_condition_flagged_state_from_string (const gchar* str) {
	SearchConditionFlaggedState result = 0;
	const gchar* _tmp0_;
#line 480 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 481 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 481 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "FLAGGED") == 0) {
#line 482 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_FLAGGED_STATE_FLAGGED;
#line 482 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 3683 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 484 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 484 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "UNFLAGGED") == 0) {
#line 485 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED;
#line 485 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3694 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 488 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 488 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:488: unrecognized flagged search state name: %s", _tmp2_);
#line 3701 "SearchBoolean.c"
		}
	}
}


GType search_condition_flagged_state_get_type (void) {
	static volatile gsize search_condition_flagged_state_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_flagged_state_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_FLAGGED_STATE_FLAGGED, "SEARCH_CONDITION_FLAGGED_STATE_FLAGGED", "flagged"}, {SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED, "SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED", "unflagged"}, {0, NULL, NULL}};
		GType search_condition_flagged_state_type_id;
		search_condition_flagged_state_type_id = g_enum_register_static ("SearchConditionFlaggedState", values);
		g_once_init_leave (&search_condition_flagged_state_type_id__volatile, search_condition_flagged_state_type_id);
	}
	return search_condition_flagged_state_type_id__volatile;
}


SearchConditionFlagged* search_condition_flagged_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionFlaggedState state) {
	SearchConditionFlagged* self = NULL;
	SearchConditionSearchType _tmp0_;
	SearchConditionFlaggedState _tmp1_;
#line 495 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchConditionFlagged*) search_condition_construct (object_type);
#line 496 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = search_type;
#line 496 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
#line 497 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = state;
#line 497 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_flagged_set_state (self, _tmp1_);
#line 495 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 3735 "SearchBoolean.c"
}


SearchConditionFlagged* search_condition_flagged_new (SearchConditionSearchType search_type, SearchConditionFlaggedState state) {
#line 495 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return search_condition_flagged_construct (TYPE_SEARCH_CONDITION_FLAGGED, search_type, state);
#line 3742 "SearchBoolean.c"
}


static gboolean search_condition_flagged_real_predicate (SearchCondition* base, MediaSource* source) {
	SearchConditionFlagged * self;
	gboolean result = FALSE;
	SearchConditionFlaggedState _tmp0_;
#line 501 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged);
#line 501 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 502 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_state;
#line 502 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp0_ == SEARCH_CONDITION_FLAGGED_STATE_FLAGGED) {
#line 3758 "SearchBoolean.c"
		MediaSource* _tmp1_;
		gboolean _tmp2_;
#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = source;
#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_FLAGGABLE, Flaggable));
#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = _tmp2_;
#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 3769 "SearchBoolean.c"
	} else {
		SearchConditionFlaggedState _tmp3_;
#line 504 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = self->priv->_state;
#line 504 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (_tmp3_ == SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED) {
#line 3776 "SearchBoolean.c"
			MediaSource* _tmp4_;
			gboolean _tmp5_;
#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = source;
#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_FLAGGABLE, Flaggable));
#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = !_tmp5_;
#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3787 "SearchBoolean.c"
		} else {
#line 507 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:507: unrecognized flagged search state");
#line 3791 "SearchBoolean.c"
		}
	}
}


SearchConditionFlaggedState search_condition_flagged_get_state (SearchConditionFlagged* self) {
	SearchConditionFlaggedState result;
	SearchConditionFlaggedState _tmp0_;
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_FLAGGED (self), 0);
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_state;
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 3808 "SearchBoolean.c"
}


static void search_condition_flagged_set_state (SearchConditionFlagged* self, SearchConditionFlaggedState value) {
	SearchConditionFlaggedState _tmp0_;
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_FLAGGED (self));
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_state = _tmp0_;
#line 3820 "SearchBoolean.c"
}


static void search_condition_flagged_class_init (SearchConditionFlaggedClass * klass) {
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_flagged_parent_class = g_type_class_peek_parent (klass);
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_flagged_finalize;
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionFlaggedPrivate));
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_flagged_real_predicate;
#line 3833 "SearchBoolean.c"
}


static void search_condition_flagged_instance_init (SearchConditionFlagged * self) {
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_FLAGGED_GET_PRIVATE (self);
#line 3840 "SearchBoolean.c"
}


static void search_condition_flagged_finalize (SearchCondition * obj) {
	SearchConditionFlagged * self;
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged);
#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	SEARCH_CONDITION_CLASS (search_condition_flagged_parent_class)->finalize (obj);
#line 3850 "SearchBoolean.c"
}


GType search_condition_flagged_get_type (void) {
	static volatile gsize search_condition_flagged_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_flagged_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionFlaggedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_flagged_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionFlagged), 0, (GInstanceInitFunc) search_condition_flagged_instance_init, NULL };
		GType search_condition_flagged_type_id;
		search_condition_flagged_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionFlagged", &g_define_type_info, 0);
		g_once_init_leave (&search_condition_flagged_type_id__volatile, search_condition_flagged_type_id);
	}
	return search_condition_flagged_type_id__volatile;
}


gchar* search_condition_modified_context_to_string (SearchConditionModifiedContext self) {
	gchar* result = NULL;
#line 520 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 520 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MODIFIED_CONTEXT_HAS:
#line 3872 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 522 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("HAS");
#line 522 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 522 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3881 "SearchBoolean.c"
		}
#line 520 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO:
#line 3885 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 525 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("HAS_NO");
#line 525 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 525 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3894 "SearchBoolean.c"
		}
		default:
		{
#line 528 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:528: unrecognized modified search context enumerati" \
"on value");
#line 3900 "SearchBoolean.c"
		}
	}
}


SearchConditionModifiedContext search_condition_modified_context_from_string (const gchar* str) {
	SearchConditionModifiedContext result = 0;
	const gchar* _tmp0_;
#line 532 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 533 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 533 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "HAS") == 0) {
#line 534 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_MODIFIED_CONTEXT_HAS;
#line 534 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 3919 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 536 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 536 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "HAS_NO") == 0) {
#line 537 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO;
#line 537 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3930 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 540 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 540 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:540: unrecognized modified search context name: %s", _tmp2_);
#line 3937 "SearchBoolean.c"
		}
	}
}


GType search_condition_modified_context_get_type (void) {
	static volatile gsize search_condition_modified_context_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_modified_context_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_MODIFIED_CONTEXT_HAS, "SEARCH_CONDITION_MODIFIED_CONTEXT_HAS", "has"}, {SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO, "SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO", "has-no"}, {0, NULL, NULL}};
		GType search_condition_modified_context_type_id;
		search_condition_modified_context_type_id = g_enum_register_static ("SearchConditionModifiedContext", values);
		g_once_init_leave (&search_condition_modified_context_type_id__volatile, search_condition_modified_context_type_id);
	}
	return search_condition_modified_context_type_id__volatile;
}


gchar* search_condition_modified_state_to_string (SearchConditionModifiedState self) {
	gchar* result = NULL;
#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MODIFIED_STATE_MODIFIED:
#line 3961 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 552 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("MODIFIED");
#line 552 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 552 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3970 "SearchBoolean.c"
		}
#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES:
#line 3974 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 555 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("INTERNAL_CHANGES");
#line 555 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 555 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3983 "SearchBoolean.c"
		}
#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES:
#line 3987 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 558 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("EXTERNAL_CHANGES");
#line 558 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 558 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 3996 "SearchBoolean.c"
		}
		default:
		{
#line 561 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:561: unrecognized modified search state enumeration" \
" value");
#line 4002 "SearchBoolean.c"
		}
	}
}


SearchConditionModifiedState search_condition_modified_state_from_string (const gchar* str) {
	SearchConditionModifiedState result = 0;
	const gchar* _tmp0_;
#line 565 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 566 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 566 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "MODIFIED") == 0) {
#line 567 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_MODIFIED_STATE_MODIFIED;
#line 567 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4021 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 569 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 569 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "INTERNAL_CHANGES") == 0) {
#line 570 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES;
#line 570 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4032 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 572 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 572 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp2_, "EXTERNAL_CHANGES") == 0) {
#line 573 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES;
#line 573 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 4043 "SearchBoolean.c"
			} else {
				const gchar* _tmp3_;
#line 576 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = str;
#line 576 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				g_error ("SearchBoolean.vala:576: unrecognized modified search state name: %s", _tmp3_);
#line 4050 "SearchBoolean.c"
			}
		}
	}
}


GType search_condition_modified_state_get_type (void) {
	static volatile gsize search_condition_modified_state_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_modified_state_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_MODIFIED_STATE_MODIFIED, "SEARCH_CONDITION_MODIFIED_STATE_MODIFIED", "modified"}, {SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES, "SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES", "internal-changes"}, {SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES, "SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES", "external-changes"}, {0, NULL, NULL}};
		GType search_condition_modified_state_type_id;
		search_condition_modified_state_type_id = g_enum_register_static ("SearchConditionModifiedState", values);
		g_once_init_leave (&search_condition_modified_state_type_id__volatile, search_condition_modified_state_type_id);
	}
	return search_condition_modified_state_type_id__volatile;
}


SearchConditionModified* search_condition_modified_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state) {
	SearchConditionModified* self = NULL;
	SearchConditionSearchType _tmp0_;
	SearchConditionModifiedContext _tmp1_;
	SearchConditionModifiedState _tmp2_;
#line 586 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchConditionModified*) search_condition_construct (object_type);
#line 587 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = search_type;
#line 587 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
#line 588 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = context;
#line 588 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_modified_set_context (self, _tmp1_);
#line 589 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = state;
#line 589 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_modified_set_state (self, _tmp2_);
#line 586 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 4090 "SearchBoolean.c"
}


SearchConditionModified* search_condition_modified_new (SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state) {
#line 586 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return search_condition_modified_construct (TYPE_SEARCH_CONDITION_MODIFIED, search_type, context, state);
#line 4097 "SearchBoolean.c"
}


static gboolean search_condition_modified_real_predicate (SearchCondition* base, MediaSource* source) {
	SearchConditionModified * self;
	gboolean result = FALSE;
	Photo* photo = NULL;
	MediaSource* _tmp0_;
	Photo* _tmp1_;
	Photo* _tmp2_;
	gboolean match = FALSE;
	SearchConditionModifiedState _tmp3_;
	gboolean _tmp15_;
#line 593 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified);
#line 593 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 595 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = source;
#line 595 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO) ? ((Photo*) _tmp0_) : NULL);
#line 595 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	photo = _tmp1_;
#line 596 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = photo;
#line 596 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp2_ == NULL) {
#line 597 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = FALSE;
#line 597 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (photo);
#line 597 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4131 "SearchBoolean.c"
	}
#line 600 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = self->priv->_state;
#line 600 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp3_ == SEARCH_CONDITION_MODIFIED_STATE_MODIFIED) {
#line 4137 "SearchBoolean.c"
		gboolean _tmp4_ = FALSE;
		Photo* _tmp5_;
		gboolean _tmp6_;
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = photo;
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = photo_has_transformations (_tmp5_);
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (_tmp6_) {
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = TRUE;
#line 4149 "SearchBoolean.c"
		} else {
			Photo* _tmp7_;
			gboolean _tmp8_;
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp7_ = photo;
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = photo_has_editable (_tmp7_);
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = _tmp8_;
#line 4159 "SearchBoolean.c"
		}
#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		match = _tmp4_;
#line 4163 "SearchBoolean.c"
	} else {
		SearchConditionModifiedState _tmp9_;
#line 602 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp9_ = self->priv->_state;
#line 602 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (_tmp9_ == SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES) {
#line 4170 "SearchBoolean.c"
			Photo* _tmp10_;
			gboolean _tmp11_;
#line 603 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp10_ = photo;
#line 603 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp11_ = photo_has_transformations (_tmp10_);
#line 603 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			match = _tmp11_;
#line 4179 "SearchBoolean.c"
		} else {
			SearchConditionModifiedState _tmp12_;
#line 604 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp12_ = self->priv->_state;
#line 604 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_tmp12_ == SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES) {
#line 4186 "SearchBoolean.c"
				Photo* _tmp13_;
				gboolean _tmp14_;
#line 605 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp13_ = photo;
#line 605 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp14_ = photo_has_editable (_tmp13_);
#line 605 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				match = _tmp14_;
#line 4195 "SearchBoolean.c"
			} else {
#line 607 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				g_error ("SearchBoolean.vala:607: unrecognized modified search state");
#line 4199 "SearchBoolean.c"
			}
		}
	}
#line 609 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp15_ = match;
#line 609 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp15_) {
#line 4207 "SearchBoolean.c"
		SearchConditionModifiedContext _tmp16_;
#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp16_ = self->priv->_context;
#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = _tmp16_ == SEARCH_CONDITION_MODIFIED_CONTEXT_HAS;
#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (photo);
#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4217 "SearchBoolean.c"
	} else {
		SearchConditionModifiedContext _tmp17_;
#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp17_ = self->priv->_context;
#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = _tmp17_ == SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO;
#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (photo);
#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4228 "SearchBoolean.c"
	}
#line 593 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_object_unref0 (photo);
#line 4232 "SearchBoolean.c"
}


SearchConditionModifiedState search_condition_modified_get_state (SearchConditionModified* self) {
	SearchConditionModifiedState result;
	SearchConditionModifiedState _tmp0_;
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_MODIFIED (self), 0);
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_state;
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 4247 "SearchBoolean.c"
}


static void search_condition_modified_set_state (SearchConditionModified* self, SearchConditionModifiedState value) {
	SearchConditionModifiedState _tmp0_;
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_MODIFIED (self));
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_state = _tmp0_;
#line 4259 "SearchBoolean.c"
}


SearchConditionModifiedContext search_condition_modified_get_context (SearchConditionModified* self) {
	SearchConditionModifiedContext result;
	SearchConditionModifiedContext _tmp0_;
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_MODIFIED (self), 0);
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_context;
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 4274 "SearchBoolean.c"
}


static void search_condition_modified_set_context (SearchConditionModified* self, SearchConditionModifiedContext value) {
	SearchConditionModifiedContext _tmp0_;
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_MODIFIED (self));
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_context = _tmp0_;
#line 4286 "SearchBoolean.c"
}


static void search_condition_modified_class_init (SearchConditionModifiedClass * klass) {
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_modified_parent_class = g_type_class_peek_parent (klass);
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_modified_finalize;
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionModifiedPrivate));
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_modified_real_predicate;
#line 4299 "SearchBoolean.c"
}


static void search_condition_modified_instance_init (SearchConditionModified * self) {
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_MODIFIED_GET_PRIVATE (self);
#line 4306 "SearchBoolean.c"
}


static void search_condition_modified_finalize (SearchCondition * obj) {
	SearchConditionModified * self;
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified);
#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	SEARCH_CONDITION_CLASS (search_condition_modified_parent_class)->finalize (obj);
#line 4316 "SearchBoolean.c"
}


GType search_condition_modified_get_type (void) {
	static volatile gsize search_condition_modified_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_modified_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionModifiedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_modified_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionModified), 0, (GInstanceInitFunc) search_condition_modified_instance_init, NULL };
		GType search_condition_modified_type_id;
		search_condition_modified_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionModified", &g_define_type_info, 0);
		g_once_init_leave (&search_condition_modified_type_id__volatile, search_condition_modified_type_id);
	}
	return search_condition_modified_type_id__volatile;
}


gchar* search_condition_rating_context_to_string (SearchConditionRatingContext self) {
	gchar* result = NULL;
#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER:
#line 4338 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 627 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("AND_HIGHER");
#line 627 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 627 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4347 "SearchBoolean.c"
		}
#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_RATING_CONTEXT_ONLY:
#line 4351 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 630 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("ONLY");
#line 630 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 630 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4360 "SearchBoolean.c"
		}
#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER:
#line 4364 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 633 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("AND_LOWER");
#line 633 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 633 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4373 "SearchBoolean.c"
		}
		default:
		{
#line 636 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:636: unrecognized rating search context enumeration" \
" value");
#line 4379 "SearchBoolean.c"
		}
	}
}


SearchConditionRatingContext search_condition_rating_context_from_string (const gchar* str) {
	SearchConditionRatingContext result = 0;
	const gchar* _tmp0_;
#line 640 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 641 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 641 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "AND_HIGHER") == 0) {
#line 642 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER;
#line 642 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4398 "SearchBoolean.c"
	} else {
		const gchar* _tmp1_;
#line 644 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = str;
#line 644 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp1_, "ONLY") == 0) {
#line 645 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_RATING_CONTEXT_ONLY;
#line 645 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4409 "SearchBoolean.c"
		} else {
			const gchar* _tmp2_;
#line 647 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = str;
#line 647 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp2_, "AND_LOWER") == 0) {
#line 648 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER;
#line 648 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 4420 "SearchBoolean.c"
			} else {
				const gchar* _tmp3_;
#line 651 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = str;
#line 651 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				g_error ("SearchBoolean.vala:651: unrecognized rating search context name: %s", _tmp3_);
#line 4427 "SearchBoolean.c"
			}
		}
	}
}


GType search_condition_rating_context_get_type (void) {
	static volatile gsize search_condition_rating_context_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_rating_context_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER, "SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER", "and-higher"}, {SEARCH_CONDITION_RATING_CONTEXT_ONLY, "SEARCH_CONDITION_RATING_CONTEXT_ONLY", "only"}, {SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER, "SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER", "and-lower"}, {0, NULL, NULL}};
		GType search_condition_rating_context_type_id;
		search_condition_rating_context_type_id = g_enum_register_static ("SearchConditionRatingContext", values);
		g_once_init_leave (&search_condition_rating_context_type_id__volatile, search_condition_rating_context_type_id);
	}
	return search_condition_rating_context_type_id__volatile;
}


SearchConditionRating* search_condition_rating_construct (GType object_type, SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context) {
	SearchConditionRating* self = NULL;
	SearchConditionSearchType _tmp0_;
	Rating _tmp1_;
	SearchConditionRatingContext _tmp2_;
#line 661 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchConditionRating*) search_condition_construct (object_type);
#line 662 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = search_type;
#line 662 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
#line 663 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = rating;
#line 663 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_rating_set_rating (self, _tmp1_);
#line 664 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = context;
#line 664 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_rating_set_context (self, _tmp2_);
#line 661 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 4467 "SearchBoolean.c"
}


SearchConditionRating* search_condition_rating_new (SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context) {
#line 661 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return search_condition_rating_construct (TYPE_SEARCH_CONDITION_RATING, search_type, rating, context);
#line 4474 "SearchBoolean.c"
}


static gboolean search_condition_rating_real_predicate (SearchCondition* base, MediaSource* source) {
	SearchConditionRating * self;
	gboolean result = FALSE;
	Rating source_rating = 0;
	MediaSource* _tmp0_;
	Rating _tmp1_;
	SearchConditionRatingContext _tmp2_;
#line 668 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_RATING, SearchConditionRating);
#line 668 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 669 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = source;
#line 669 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = media_source_get_rating (_tmp0_);
#line 669 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	source_rating = _tmp1_;
#line 670 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = self->priv->_context;
#line 670 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp2_ == SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER) {
#line 4499 "SearchBoolean.c"
		Rating _tmp3_;
		Rating _tmp4_;
#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = source_rating;
#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = self->priv->_rating;
#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = _tmp3_ >= _tmp4_;
#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4510 "SearchBoolean.c"
	} else {
		SearchConditionRatingContext _tmp5_;
#line 672 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = self->priv->_context;
#line 672 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (_tmp5_ == SEARCH_CONDITION_RATING_CONTEXT_ONLY) {
#line 4517 "SearchBoolean.c"
			Rating _tmp6_;
			Rating _tmp7_;
#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp6_ = source_rating;
#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp7_ = self->priv->_rating;
#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp6_ == _tmp7_;
#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4528 "SearchBoolean.c"
		} else {
			SearchConditionRatingContext _tmp8_;
#line 674 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = self->priv->_context;
#line 674 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_tmp8_ == SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER) {
#line 4535 "SearchBoolean.c"
				Rating _tmp9_;
				Rating _tmp10_;
#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp9_ = source_rating;
#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp10_ = self->priv->_rating;
#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = _tmp9_ <= _tmp10_;
#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 4546 "SearchBoolean.c"
			} else {
#line 677 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				g_error ("SearchBoolean.vala:677: unknown rating search context");
#line 4550 "SearchBoolean.c"
			}
		}
	}
}


Rating search_condition_rating_get_rating (SearchConditionRating* self) {
	Rating result;
	Rating _tmp0_;
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_RATING (self), 0);
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_rating;
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 4568 "SearchBoolean.c"
}


static void search_condition_rating_set_rating (SearchConditionRating* self, Rating value) {
	Rating _tmp0_;
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_RATING (self));
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_rating = _tmp0_;
#line 4580 "SearchBoolean.c"
}


SearchConditionRatingContext search_condition_rating_get_context (SearchConditionRating* self) {
	SearchConditionRatingContext result;
	SearchConditionRatingContext _tmp0_;
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_RATING (self), 0);
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_context;
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 4595 "SearchBoolean.c"
}


static void search_condition_rating_set_context (SearchConditionRating* self, SearchConditionRatingContext value) {
	SearchConditionRatingContext _tmp0_;
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_RATING (self));
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_context = _tmp0_;
#line 4607 "SearchBoolean.c"
}


static void search_condition_rating_class_init (SearchConditionRatingClass * klass) {
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_rating_parent_class = g_type_class_peek_parent (klass);
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_rating_finalize;
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionRatingPrivate));
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_rating_real_predicate;
#line 4620 "SearchBoolean.c"
}


static void search_condition_rating_instance_init (SearchConditionRating * self) {
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_RATING_GET_PRIVATE (self);
#line 4627 "SearchBoolean.c"
}


static void search_condition_rating_finalize (SearchCondition * obj) {
	SearchConditionRating * self;
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_RATING, SearchConditionRating);
#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	SEARCH_CONDITION_CLASS (search_condition_rating_parent_class)->finalize (obj);
#line 4637 "SearchBoolean.c"
}


GType search_condition_rating_get_type (void) {
	static volatile gsize search_condition_rating_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_rating_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionRatingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_rating_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionRating), 0, (GInstanceInitFunc) search_condition_rating_instance_init, NULL };
		GType search_condition_rating_type_id;
		search_condition_rating_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionRating", &g_define_type_info, 0);
		g_once_init_leave (&search_condition_rating_type_id__volatile, search_condition_rating_type_id);
	}
	return search_condition_rating_type_id__volatile;
}


gchar* search_condition_date_context_to_string (SearchConditionDateContext self) {
	gchar* result = NULL;
#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (self) {
#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_EXACT:
#line 4659 "SearchBoolean.c"
		{
			gchar* _tmp0_;
#line 694 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = g_strdup ("EXACT");
#line 694 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp0_;
#line 694 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4668 "SearchBoolean.c"
		}
#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_AFTER:
#line 4672 "SearchBoolean.c"
		{
			gchar* _tmp1_;
#line 697 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp1_ = g_strdup ("AFTER");
#line 697 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp1_;
#line 697 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4681 "SearchBoolean.c"
		}
#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_BEFORE:
#line 4685 "SearchBoolean.c"
		{
			gchar* _tmp2_;
#line 700 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp2_ = g_strdup ("BEFORE");
#line 700 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp2_;
#line 700 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4694 "SearchBoolean.c"
		}
#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_BETWEEN:
#line 4698 "SearchBoolean.c"
		{
			gchar* _tmp3_;
#line 703 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp3_ = g_strdup ("BETWEEN");
#line 703 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp3_;
#line 703 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4707 "SearchBoolean.c"
		}
#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET:
#line 4711 "SearchBoolean.c"
		{
			gchar* _tmp4_;
#line 706 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp4_ = g_strdup ("IS_NOT_SET");
#line 706 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp4_;
#line 706 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4720 "SearchBoolean.c"
		}
		default:
		{
#line 709 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:709: unrecognized date search context enumeration v" \
"alue");
#line 4726 "SearchBoolean.c"
		}
	}
}


SearchConditionDateContext search_condition_date_context_from_string (const gchar* str) {
	SearchConditionDateContext result = 0;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
#line 713 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (str != NULL, 0);
#line 714 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = str;
#line 714 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp0_, "EXACT") == 0) {
#line 715 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_DATE_CONTEXT_EXACT;
#line 715 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4746 "SearchBoolean.c"
	}
#line 717 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = str;
#line 717 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_strcmp0 (_tmp1_, "AFTER") == 0) {
#line 718 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = SEARCH_CONDITION_DATE_CONTEXT_AFTER;
#line 718 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4756 "SearchBoolean.c"
	} else {
		const gchar* _tmp2_;
#line 720 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = str;
#line 720 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (g_strcmp0 (_tmp2_, "BEFORE") == 0) {
#line 721 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = SEARCH_CONDITION_DATE_CONTEXT_BEFORE;
#line 721 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4767 "SearchBoolean.c"
		} else {
			const gchar* _tmp3_;
#line 723 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp3_ = str;
#line 723 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (g_strcmp0 (_tmp3_, "BETWEEN") == 0) {
#line 724 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				result = SEARCH_CONDITION_DATE_CONTEXT_BETWEEN;
#line 724 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				return result;
#line 4778 "SearchBoolean.c"
			} else {
				const gchar* _tmp4_;
#line 726 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp4_ = str;
#line 726 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (g_strcmp0 (_tmp4_, "IS_NOT_SET") == 0) {
#line 727 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					result = SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET;
#line 727 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					return result;
#line 4789 "SearchBoolean.c"
				} else {
					const gchar* _tmp5_;
#line 730 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp5_ = str;
#line 730 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					g_error ("SearchBoolean.vala:730: unrecognized date search context name: %s", _tmp5_);
#line 4796 "SearchBoolean.c"
				}
			}
		}
	}
}


GType search_condition_date_context_get_type (void) {
	static volatile gsize search_condition_date_context_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_date_context_type_id__volatile)) {
		static const GEnumValue values[] = {{SEARCH_CONDITION_DATE_CONTEXT_EXACT, "SEARCH_CONDITION_DATE_CONTEXT_EXACT", "exact"}, {SEARCH_CONDITION_DATE_CONTEXT_AFTER, "SEARCH_CONDITION_DATE_CONTEXT_AFTER", "after"}, {SEARCH_CONDITION_DATE_CONTEXT_BEFORE, "SEARCH_CONDITION_DATE_CONTEXT_BEFORE", "before"}, {SEARCH_CONDITION_DATE_CONTEXT_BETWEEN, "SEARCH_CONDITION_DATE_CONTEXT_BETWEEN", "between"}, {SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET, "SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET", "is-not-set"}, {0, NULL, NULL}};
		GType search_condition_date_context_type_id;
		search_condition_date_context_type_id = g_enum_register_static ("SearchConditionDateContext", values);
		g_once_init_leave (&search_condition_date_context_type_id__volatile, search_condition_date_context_type_id);
	}
	return search_condition_date_context_type_id__volatile;
}


SearchConditionDate* search_condition_date_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two) {
	SearchConditionDate* self = NULL;
	SearchConditionSearchType _tmp0_;
	SearchConditionDateContext _tmp1_;
	gboolean _tmp2_ = FALSE;
	SearchConditionDateContext _tmp3_;
#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (date_one != NULL, NULL);
#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (date_two != NULL, NULL);
#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SearchConditionDate*) search_condition_construct (object_type);
#line 743 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = search_type;
#line 743 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
#line 744 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = context;
#line 744 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_date_set_context (self, _tmp1_);
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = context;
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp3_ != SEARCH_CONDITION_DATE_CONTEXT_BETWEEN) {
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = TRUE;
#line 4842 "SearchBoolean.c"
	} else {
		GDateTime* _tmp4_;
		GDateTime* _tmp5_;
		gint _tmp6_;
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = date_two;
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = date_one;
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = g_date_time_compare (_tmp4_, _tmp5_);
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = _tmp6_ >= 1;
#line 4855 "SearchBoolean.c"
	}
#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp2_) {
#line 4859 "SearchBoolean.c"
		GDateTime* _tmp7_;
		GDateTime* _tmp8_;
#line 746 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = date_one;
#line 746 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_date_set_date_one (self, _tmp7_);
#line 747 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp8_ = date_two;
#line 747 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_date_set_date_two (self, _tmp8_);
#line 4870 "SearchBoolean.c"
	} else {
		GDateTime* _tmp9_;
		GDateTime* _tmp10_;
#line 749 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp9_ = date_two;
#line 749 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_date_set_date_one (self, _tmp9_);
#line 750 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp10_ = date_one;
#line 750 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search_condition_date_set_date_two (self, _tmp10_);
#line 4882 "SearchBoolean.c"
	}
#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 4886 "SearchBoolean.c"
}


SearchConditionDate* search_condition_date_new (SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two) {
#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return search_condition_date_construct (TYPE_SEARCH_CONDITION_DATE, search_type, context, date_one, date_two);
#line 4893 "SearchBoolean.c"
}


static gboolean search_condition_date_real_predicate (SearchCondition* base, MediaSource* source) {
	SearchConditionDate * self;
	gboolean result = FALSE;
	time_t exposure_time = 0;
	MediaSource* _tmp0_;
	time_t _tmp1_;
	time_t _tmp2_;
	GDateTime* dt = NULL;
	time_t _tmp4_;
	GDateTime* _tmp5_;
	SearchConditionDateContext _tmp6_;
#line 756 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_DATE, SearchConditionDate);
#line 756 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 757 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = source;
#line 757 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = media_source_get_exposure_time (_tmp0_);
#line 757 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	exposure_time = _tmp1_;
#line 758 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = exposure_time;
#line 758 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp2_ == ((time_t) 0)) {
#line 4922 "SearchBoolean.c"
		SearchConditionDateContext _tmp3_;
#line 759 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = self->priv->_context;
#line 759 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = _tmp3_ == SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET;
#line 759 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 4930 "SearchBoolean.c"
	}
#line 761 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp4_ = exposure_time;
#line 761 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp5_ = g_date_time_new_from_unix_local ((gint64) _tmp4_);
#line 761 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	dt = _tmp5_;
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp6_ = self->priv->_context;
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	switch (_tmp6_) {
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_EXACT:
#line 4944 "SearchBoolean.c"
		{
			GDateTime* second = NULL;
			GDateTime* _tmp7_;
			GDateTime* _tmp8_;
			gboolean _tmp9_ = FALSE;
			GDateTime* _tmp10_;
			GDateTime* _tmp11_;
			gint _tmp12_;
#line 764 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp7_ = self->priv->_date_one;
#line 764 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = g_date_time_add_days (_tmp7_, 1);
#line 764 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			second = _tmp8_;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp10_ = dt;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp11_ = self->priv->_date_one;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp12_ = g_date_time_compare (_tmp10_, _tmp11_);
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_tmp12_ >= 0) {
#line 4967 "SearchBoolean.c"
				GDateTime* _tmp13_;
				GDateTime* _tmp14_;
				gint _tmp15_;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp13_ = dt;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp14_ = second;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp15_ = g_date_time_compare (_tmp13_, _tmp14_);
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp9_ = _tmp15_ < 0;
#line 4979 "SearchBoolean.c"
			} else {
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp9_ = FALSE;
#line 4983 "SearchBoolean.c"
			}
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp9_;
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (second);
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (dt);
#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 4993 "SearchBoolean.c"
		}
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_AFTER:
#line 4997 "SearchBoolean.c"
		{
			GDateTime* _tmp16_;
			GDateTime* _tmp17_;
			gint _tmp18_;
#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp16_ = dt;
#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp17_ = self->priv->_date_one;
#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp18_ = g_date_time_compare (_tmp16_, _tmp17_);
#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp18_ >= 0;
#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (dt);
#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 5014 "SearchBoolean.c"
		}
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_BEFORE:
#line 5018 "SearchBoolean.c"
		{
			GDateTime* _tmp19_;
			GDateTime* _tmp20_;
			gint _tmp21_;
#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp19_ = dt;
#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp20_ = self->priv->_date_one;
#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp21_ = g_date_time_compare (_tmp19_, _tmp20_);
#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp21_ <= 0;
#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (dt);
#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 5035 "SearchBoolean.c"
		}
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_BETWEEN:
#line 5039 "SearchBoolean.c"
		{
			GDateTime* second = NULL;
			GDateTime* _tmp22_;
			GDateTime* _tmp23_;
			gboolean _tmp24_ = FALSE;
			GDateTime* _tmp25_;
			GDateTime* _tmp26_;
			gint _tmp27_;
#line 774 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp22_ = self->priv->_date_two;
#line 774 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp23_ = g_date_time_add_days (_tmp22_, 1);
#line 774 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			second = _tmp23_;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp25_ = dt;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp26_ = self->priv->_date_one;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp27_ = g_date_time_compare (_tmp25_, _tmp26_);
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_tmp27_ >= 0) {
#line 5062 "SearchBoolean.c"
				GDateTime* _tmp28_;
				GDateTime* _tmp29_;
				gint _tmp30_;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp28_ = dt;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp29_ = second;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp30_ = g_date_time_compare (_tmp28_, _tmp29_);
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp24_ = _tmp30_ < 0;
#line 5074 "SearchBoolean.c"
			} else {
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp24_ = FALSE;
#line 5078 "SearchBoolean.c"
			}
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = _tmp24_;
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (second);
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (dt);
#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 5088 "SearchBoolean.c"
		}
#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		case SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET:
#line 5092 "SearchBoolean.c"
		{
#line 778 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			result = FALSE;
#line 778 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_date_time_unref0 (dt);
#line 778 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return result;
#line 5100 "SearchBoolean.c"
		}
		default:
		{
#line 781 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_error ("SearchBoolean.vala:781: unrecognized date search context enumeration v" \
"alue");
#line 5106 "SearchBoolean.c"
		}
	}
#line 756 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_date_time_unref0 (dt);
#line 5111 "SearchBoolean.c"
}


GDateTime* search_condition_date_get_date_one (SearchConditionDate* self) {
	GDateTime* result;
	GDateTime* _tmp0_;
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_DATE (self), NULL);
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_date_one;
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5126 "SearchBoolean.c"
}


static gpointer _g_date_time_ref0 (gpointer self) {
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self ? g_date_time_ref (self) : NULL;
#line 5133 "SearchBoolean.c"
}


static void search_condition_date_set_date_one (SearchConditionDate* self, GDateTime* value) {
	GDateTime* _tmp0_;
	GDateTime* _tmp1_;
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_DATE (self));
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _g_date_time_ref0 (_tmp0_);
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_date_time_unref0 (self->priv->_date_one);
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_date_one = _tmp1_;
#line 5150 "SearchBoolean.c"
}


GDateTime* search_condition_date_get_date_two (SearchConditionDate* self) {
	GDateTime* result;
	GDateTime* _tmp0_;
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_DATE (self), NULL);
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_date_two;
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5165 "SearchBoolean.c"
}


static void search_condition_date_set_date_two (SearchConditionDate* self, GDateTime* value) {
	GDateTime* _tmp0_;
	GDateTime* _tmp1_;
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_DATE (self));
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _g_date_time_ref0 (_tmp0_);
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_date_time_unref0 (self->priv->_date_two);
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_date_two = _tmp1_;
#line 5182 "SearchBoolean.c"
}


SearchConditionDateContext search_condition_date_get_context (SearchConditionDate* self) {
	SearchConditionDateContext result;
	SearchConditionDateContext _tmp0_;
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SEARCH_CONDITION_DATE (self), 0);
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->_context;
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5197 "SearchBoolean.c"
}


static void search_condition_date_set_context (SearchConditionDate* self, SearchConditionDateContext value) {
	SearchConditionDateContext _tmp0_;
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SEARCH_CONDITION_DATE (self));
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = value;
#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->_context = _tmp0_;
#line 5209 "SearchBoolean.c"
}


static void search_condition_date_class_init (SearchConditionDateClass * klass) {
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search_condition_date_parent_class = g_type_class_peek_parent (klass);
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->finalize = search_condition_date_finalize;
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SearchConditionDatePrivate));
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SearchConditionClass *) klass)->predicate = (gboolean (*) (SearchCondition *, MediaSource*)) search_condition_date_real_predicate;
#line 5222 "SearchBoolean.c"
}


static void search_condition_date_instance_init (SearchConditionDate * self) {
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SEARCH_CONDITION_DATE_GET_PRIVATE (self);
#line 5229 "SearchBoolean.c"
}


static void search_condition_date_finalize (SearchCondition * obj) {
	SearchConditionDate * self;
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_DATE, SearchConditionDate);
#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_date_time_unref0 (self->priv->_date_one);
#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_date_time_unref0 (self->priv->_date_two);
#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	SEARCH_CONDITION_CLASS (search_condition_date_parent_class)->finalize (obj);
#line 5243 "SearchBoolean.c"
}


GType search_condition_date_get_type (void) {
	static volatile gsize search_condition_date_type_id__volatile = 0;
	if (g_once_init_enter (&search_condition_date_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SearchConditionDateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_date_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionDate), 0, (GInstanceInitFunc) search_condition_date_instance_init, NULL };
		GType search_condition_date_type_id;
		search_condition_date_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionDate", &g_define_type_info, 0);
		g_once_init_leave (&search_condition_date_type_id__volatile, search_condition_date_type_id);
	}
	return search_condition_date_type_id__volatile;
}


static gpointer _saved_search_row_ref0 (gpointer self) {
#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self ? saved_search_row_ref (self) : NULL;
#line 5262 "SearchBoolean.c"
}


SavedSearch* saved_search_construct (GType object_type, SavedSearchRow* row, gint64 object_id) {
	SavedSearch * self = NULL;
	gint64 _tmp0_;
	SavedSearchRow* _tmp1_;
	SavedSearchRow* _tmp2_;
#line 794 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_ROW (row), NULL);
#line 795 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = object_id;
#line 795 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SavedSearch*) data_source_construct (object_type, _tmp0_);
#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = row;
#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = _saved_search_row_ref0 (_tmp1_);
#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_saved_search_row_unref0 (self->priv->row);
#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->row = _tmp2_;
#line 794 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 5287 "SearchBoolean.c"
}


SavedSearch* saved_search_new (SavedSearchRow* row, gint64 object_id) {
#line 794 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return saved_search_construct (TYPE_SAVED_SEARCH, row, object_id);
#line 5294 "SearchBoolean.c"
}


static gchar* saved_search_real_get_name (DataObject* base) {
	SavedSearch * self;
	gchar* result = NULL;
	SavedSearchRow* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
#line 800 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->row;
#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_->name;
#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp2_;
#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5316 "SearchBoolean.c"
}


static gchar* saved_search_real_to_string (DataObject* base) {
	SavedSearch * self;
	gchar* result = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
#line 804 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_;
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = g_strconcat ("SavedSearch ", _tmp1_, NULL);
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = _tmp2_;
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (_tmp1_);
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp3_;
#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5343 "SearchBoolean.c"
}


static gchar* saved_search_real_get_typename (DataSource* base) {
	SavedSearch * self;
	gchar* result = NULL;
	gchar* _tmp0_;
#line 808 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
#line 809 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = g_strdup (SAVED_SEARCH_TYPENAME);
#line 809 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp0_;
#line 809 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5359 "SearchBoolean.c"
}


void saved_search_get_saved_search_id (SavedSearch* self, SavedSearchID* result) {
	SavedSearchRow* _tmp0_;
	SavedSearchID _tmp1_;
#line 812 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH (self));
#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->row;
#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_->search_id;
#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	*result = _tmp1_;
#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return;
#line 5376 "SearchBoolean.c"
}


static gint64 saved_search_real_get_instance_id (DataSource* base) {
	SavedSearch * self;
	gint64 result = 0LL;
	SavedSearchID _tmp0_ = {0};
	gint64 _tmp1_;
#line 816 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_get_saved_search_id (self, &_tmp0_);
#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_.id;
#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp1_;
#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5395 "SearchBoolean.c"
}


gint saved_search_compare_names (void* a, void* b) {
	gint result = 0;
	SavedSearch* asearch = NULL;
	void* _tmp0_;
	SavedSearch* bsearch = NULL;
	void* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gint _tmp4_;
#line 821 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = a;
#line 821 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	asearch = (SavedSearch*) _tmp0_;
#line 822 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = b;
#line 822 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	bsearch = (SavedSearch*) _tmp1_;
#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (asearch, TYPE_DATA_OBJECT, DataObject));
#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (bsearch, TYPE_DATA_OBJECT, DataObject));
#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp4_ = string_collated_compare (_tmp2_, _tmp3_);
#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp4_;
#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5426 "SearchBoolean.c"
}


gboolean saved_search_predicate (SavedSearch* self, MediaSource* source) {
	gboolean result = FALSE;
	gboolean ret = FALSE;
	gboolean _tmp0_ = FALSE;
	SavedSearchRow* _tmp1_;
	SearchOperator _tmp2_;
#line 827 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH (self), FALSE);
#line 827 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = self->priv->row;
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = _tmp1_->operator;
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (SEARCH_OPERATOR_ALL == _tmp2_) {
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = TRUE;
#line 5448 "SearchBoolean.c"
	} else {
		SavedSearchRow* _tmp3_;
		SearchOperator _tmp4_;
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = self->priv->row;
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = _tmp3_->operator;
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = SEARCH_OPERATOR_NONE == _tmp4_;
#line 5458 "SearchBoolean.c"
	}
#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp0_) {
#line 830 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		ret = TRUE;
#line 5464 "SearchBoolean.c"
	} else {
#line 832 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		ret = FALSE;
#line 5468 "SearchBoolean.c"
	}
	{
		GeeList* _c_list = NULL;
		SavedSearchRow* _tmp5_;
		GeeList* _tmp6_;
		GeeList* _tmp7_;
		gint _c_size = 0;
		GeeList* _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _c_index = 0;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = self->priv->row;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = _tmp5_->conditions;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = _g_object_ref0 (_tmp6_);
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_c_list = _tmp7_;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp8_ = _c_list;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp10_ = _tmp9_;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_c_size = _tmp10_;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_c_index = -1;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		while (TRUE) {
#line 5500 "SearchBoolean.c"
			gint _tmp11_;
			gint _tmp12_;
			gint _tmp13_;
			SearchCondition* c = NULL;
			GeeList* _tmp14_;
			gint _tmp15_;
			gpointer _tmp16_;
			SavedSearchRow* _tmp17_;
			SearchOperator _tmp18_;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp11_ = _c_index;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_c_index = _tmp11_ + 1;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp12_ = _c_index;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp13_ = _c_size;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (!(_tmp12_ < _tmp13_)) {
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				break;
#line 5522 "SearchBoolean.c"
			}
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp14_ = _c_list;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp15_ = _c_index;
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp16_ = gee_list_get (_tmp14_, _tmp15_);
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			c = (SearchCondition*) _tmp16_;
#line 835 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp17_ = self->priv->row;
#line 835 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp18_ = _tmp17_->operator;
#line 835 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (SEARCH_OPERATOR_ALL == _tmp18_) {
#line 5538 "SearchBoolean.c"
				gboolean _tmp19_;
				SearchCondition* _tmp20_;
				MediaSource* _tmp21_;
				gboolean _tmp22_;
#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp19_ = ret;
#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp20_ = c;
#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp21_ = source;
#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp22_ = search_condition_predicate (_tmp20_, _tmp21_);
#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				ret = _tmp19_ & _tmp22_;
#line 5553 "SearchBoolean.c"
			} else {
				SavedSearchRow* _tmp23_;
				SearchOperator _tmp24_;
#line 837 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp23_ = self->priv->row;
#line 837 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp24_ = _tmp23_->operator;
#line 837 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (SEARCH_OPERATOR_ANY == _tmp24_) {
#line 5563 "SearchBoolean.c"
					gboolean _tmp25_;
					SearchCondition* _tmp26_;
					MediaSource* _tmp27_;
					gboolean _tmp28_;
#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp25_ = ret;
#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp26_ = c;
#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp27_ = source;
#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp28_ = search_condition_predicate (_tmp26_, _tmp27_);
#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					ret = _tmp25_ | _tmp28_;
#line 5578 "SearchBoolean.c"
				} else {
					SavedSearchRow* _tmp29_;
					SearchOperator _tmp30_;
#line 839 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp29_ = self->priv->row;
#line 839 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp30_ = _tmp29_->operator;
#line 839 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					if (SEARCH_OPERATOR_NONE == _tmp30_) {
#line 5588 "SearchBoolean.c"
						gboolean _tmp31_;
						SearchCondition* _tmp32_;
						MediaSource* _tmp33_;
						gboolean _tmp34_;
#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						_tmp31_ = ret;
#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						_tmp32_ = c;
#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						_tmp33_ = source;
#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						_tmp34_ = search_condition_predicate (_tmp32_, _tmp33_);
#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
						ret = _tmp31_ & (!_tmp34_);
#line 5603 "SearchBoolean.c"
					}
				}
			}
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_search_condition_unref0 (c);
#line 5609 "SearchBoolean.c"
		}
#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (_c_list);
#line 5613 "SearchBoolean.c"
	}
#line 842 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = ret;
#line 842 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5619 "SearchBoolean.c"
}


void saved_search_reconstitute (SavedSearch* self) {
	SavedSearchTable* _tmp8_;
	SavedSearchTable* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	GError * _inner_error_ = NULL;
#line 845 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH (self));
#line 5631 "SearchBoolean.c"
	{
		SavedSearchID _tmp0_ = {0};
		SavedSearchDBTable* _tmp1_;
		SavedSearchDBTable* _tmp2_;
		SavedSearchRow* _tmp3_;
		SavedSearchID _tmp4_ = {0};
		SavedSearchID _tmp5_;
		SavedSearchRow* _tmp6_;
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = saved_search_db_table_get_instance ();
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = _tmp1_;
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = self->priv->row;
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_db_table_create_from_row (_tmp2_, _tmp3_, &_tmp4_, &_inner_error_);
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = _tmp4_;
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_database_table_unref0 (_tmp2_);
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = _tmp5_;
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_inner_error_->domain == DATABASE_ERROR) {
#line 5658 "SearchBoolean.c"
				goto __catch86_database_error;
			}
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_clear_error (&_inner_error_);
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return;
#line 5667 "SearchBoolean.c"
		}
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = self->priv->row;
#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_->search_id = _tmp0_;
#line 5673 "SearchBoolean.c"
	}
	goto __finally86;
	__catch86_database_error:
	{
		GError* err = NULL;
		GError* _tmp7_;
#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		err = _inner_error_;
#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_inner_error_ = NULL;
#line 849 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = err;
#line 849 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		app_window_database_error (_tmp7_);
#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_error_free0 (err);
#line 5690 "SearchBoolean.c"
	}
	__finally86:
#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.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 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_clear_error (&_inner_error_);
#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return;
#line 5701 "SearchBoolean.c"
	}
#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp8_ = saved_search_table_get_instance ();
#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp9_ = _tmp8_;
#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_add_to_map (_tmp9_, self);
#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_saved_search_table_unref0 (_tmp9_);
#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp10_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp11_ = _tmp10_;
#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_debug ("SearchBoolean.vala:853: Reconstituted %s", _tmp11_);
#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (_tmp11_);
#line 5719 "SearchBoolean.c"
}


gboolean saved_search_rename (SavedSearch* self, const gchar* new_name) {
	gboolean result = FALSE;
	const gchar* _tmp0_;
	gboolean _tmp1_;
	SavedSearchTable* _tmp2_;
	SavedSearchTable* _tmp3_;
	const gchar* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	SavedSearchTable* _tmp15_;
	SavedSearchTable* _tmp16_;
	SavedSearchRow* _tmp17_;
	const gchar* _tmp18_;
	gchar* _tmp19_;
	SavedSearchTable* _tmp20_;
	SavedSearchTable* _tmp21_;
	LibraryWindow* _tmp22_;
	LibraryWindow* _tmp23_;
	GError * _inner_error_ = NULL;
#line 857 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH (self), FALSE);
#line 857 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (new_name != NULL, FALSE);
#line 858 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = new_name;
#line 858 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = is_string_empty (_tmp0_);
#line 858 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp1_) {
#line 859 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = FALSE;
#line 859 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 5756 "SearchBoolean.c"
	}
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = saved_search_table_get_instance ();
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = _tmp2_;
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp4_ = new_name;
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp5_ = saved_search_table_exists (_tmp3_, _tmp4_);
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp6_ = _tmp5_;
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_saved_search_table_unref0 (_tmp3_);
#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp6_) {
#line 862 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = FALSE;
#line 862 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 5776 "SearchBoolean.c"
	}
	{
		SavedSearchDBTable* _tmp7_;
		SavedSearchDBTable* _tmp8_;
		SavedSearchRow* _tmp9_;
		SavedSearchID _tmp10_;
		const gchar* _tmp11_;
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = saved_search_db_table_get_instance ();
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp8_ = _tmp7_;
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp9_ = self->priv->row;
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp10_ = _tmp9_->search_id;
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp11_ = new_name;
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_db_table_rename (_tmp8_, &_tmp10_, _tmp11_, &_inner_error_);
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_database_table_unref0 (_tmp8_);
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 5800 "SearchBoolean.c"
			gboolean _tmp12_ = FALSE;
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_inner_error_->domain == DATABASE_ERROR) {
#line 5804 "SearchBoolean.c"
				goto __catch87_database_error;
			}
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_clear_error (&_inner_error_);
#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return _tmp12_;
#line 5813 "SearchBoolean.c"
		}
	}
	goto __finally87;
	__catch87_database_error:
	{
		GError* err = NULL;
		GError* _tmp13_;
#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		err = _inner_error_;
#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_inner_error_ = NULL;
#line 867 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp13_ = err;
#line 867 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		app_window_database_error (_tmp13_);
#line 868 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		result = FALSE;
#line 868 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_error_free0 (err);
#line 868 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return result;
#line 5835 "SearchBoolean.c"
	}
	__finally87:
#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 5840 "SearchBoolean.c"
		gboolean _tmp14_ = FALSE;
#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.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 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_clear_error (&_inner_error_);
#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return _tmp14_;
#line 5848 "SearchBoolean.c"
	}
#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp15_ = saved_search_table_get_instance ();
#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp16_ = _tmp15_;
#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_remove_from_map (_tmp16_, self);
#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_saved_search_table_unref0 (_tmp16_);
#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp17_ = self->priv->row;
#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp18_ = new_name;
#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp19_ = g_strdup (_tmp18_);
#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (_tmp17_->name);
#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp17_->name = _tmp19_;
#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp20_ = saved_search_table_get_instance ();
#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp21_ = _tmp20_;
#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_add_to_map (_tmp21_, self);
#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_saved_search_table_unref0 (_tmp21_);
#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp22_ = library_window_get_app ();
#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp23_ = _tmp22_;
#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	library_window_switch_to_saved_search (_tmp23_, self);
#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_object_unref0 (_tmp23_);
#line 876 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = TRUE;
#line 876 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5888 "SearchBoolean.c"
}


GeeList* saved_search_get_conditions (SavedSearch* self) {
	GeeList* result = NULL;
	SavedSearchRow* _tmp0_;
	GeeList* _tmp1_;
	GeeList* _tmp2_;
	GeeList* _tmp3_;
#line 879 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH (self), NULL);
#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->row;
#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_->conditions;
#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = gee_list_get_read_only_view (_tmp1_);
#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = _tmp2_;
#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp3_;
#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5912 "SearchBoolean.c"
}


SearchOperator saved_search_get_operator (SavedSearch* self) {
	SearchOperator result = 0;
	SavedSearchRow* _tmp0_;
	SearchOperator _tmp1_;
#line 883 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH (self), 0);
#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->row;
#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = _tmp0_->operator;
#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp1_;
#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 5930 "SearchBoolean.c"
}


static void saved_search_class_init (SavedSearchClass * klass) {
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_parent_class = g_type_class_peek_parent (klass);
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SavedSearchPrivate));
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((DataObjectClass *) klass)->get_name = (gchar* (*) (DataObject *)) saved_search_real_get_name;
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((DataObjectClass *) klass)->to_string = (gchar* (*) (DataObject *)) saved_search_real_to_string;
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((DataSourceClass *) klass)->get_typename = (gchar* (*) (DataSource *)) saved_search_real_get_typename;
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((DataSourceClass *) klass)->get_instance_id = (gint64 (*) (DataSource *)) saved_search_real_get_instance_id;
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	G_OBJECT_CLASS (klass)->finalize = saved_search_finalize;
#line 5949 "SearchBoolean.c"
}


static void saved_search_instance_init (SavedSearch * self) {
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SAVED_SEARCH_GET_PRIVATE (self);
#line 5956 "SearchBoolean.c"
}


static void saved_search_finalize (GObject * obj) {
	SavedSearch * self;
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH, SavedSearch);
#line 792 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_saved_search_row_unref0 (self->priv->row);
#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	G_OBJECT_CLASS (saved_search_parent_class)->finalize (obj);
#line 5968 "SearchBoolean.c"
}


GType saved_search_get_type (void) {
	static volatile gsize saved_search_type_id__volatile = 0;
	if (g_once_init_enter (&saved_search_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (SavedSearchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearch), 0, (GInstanceInitFunc) saved_search_instance_init, NULL };
		GType saved_search_type_id;
		saved_search_type_id = g_type_register_static (TYPE_DATA_SOURCE, "SavedSearch", &g_define_type_info, 0);
		g_once_init_leave (&saved_search_type_id__volatile, saved_search_type_id);
	}
	return saved_search_type_id__volatile;
}


static SavedSearchTable* saved_search_table_construct (GType object_type) {
	SavedSearchTable* self = NULL;
	GError * _inner_error_ = NULL;
#line 897 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = (SavedSearchTable*) g_type_create_instance (object_type);
#line 5989 "SearchBoolean.c"
	{
		GeeList* _tmp0_ = NULL;
		SavedSearchDBTable* _tmp1_;
		SavedSearchDBTable* _tmp2_;
		GeeList* _tmp3_;
		GeeList* _tmp4_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = saved_search_db_table_get_instance ();
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = _tmp1_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = saved_search_db_table_get_all_rows (_tmp2_, &_inner_error_);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = _tmp3_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_database_table_unref0 (_tmp2_);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = _tmp4_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_inner_error_->domain == DATABASE_ERROR) {
#line 6012 "SearchBoolean.c"
				goto __catch88_database_error;
			}
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_clear_error (&_inner_error_);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return NULL;
#line 6021 "SearchBoolean.c"
		}
		{
			GeeList* _row_list = NULL;
			GeeList* _tmp5_;
			gint _row_size = 0;
			GeeList* _tmp6_;
			gint _tmp7_;
			gint _tmp8_;
			gint _row_index = 0;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp5_ = _g_object_ref0 (_tmp0_);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_row_list = _tmp5_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp6_ = _row_list;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp8_ = _tmp7_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_row_size = _tmp8_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_row_index = -1;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			while (TRUE) {
#line 6047 "SearchBoolean.c"
				gint _tmp9_;
				gint _tmp10_;
				gint _tmp11_;
				SavedSearchRow* row = NULL;
				GeeList* _tmp12_;
				gint _tmp13_;
				gpointer _tmp14_;
				SavedSearchRow* _tmp15_;
				SavedSearch* _tmp16_;
				SavedSearch* _tmp17_;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp9_ = _row_index;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_row_index = _tmp9_ + 1;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp10_ = _row_index;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp11_ = _row_size;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (!(_tmp10_ < _tmp11_)) {
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					break;
#line 6070 "SearchBoolean.c"
				}
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp12_ = _row_list;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp13_ = _row_index;
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp14_ = gee_list_get (_tmp12_, _tmp13_);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				row = (SavedSearchRow*) _tmp14_;
#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp15_ = row;
#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp16_ = saved_search_new (_tmp15_, DATA_OBJECT_INVALID_OBJECT_ID);
#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp17_ = _tmp16_;
#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				saved_search_table_add_to_map (self, _tmp17_);
#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_g_object_unref0 (_tmp17_);
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_saved_search_row_unref0 (row);
#line 6092 "SearchBoolean.c"
			}
#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_object_unref0 (_row_list);
#line 6096 "SearchBoolean.c"
		}
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (_tmp0_);
#line 6100 "SearchBoolean.c"
	}
	goto __finally88;
	__catch88_database_error:
	{
		GError* err = NULL;
		GError* _tmp18_;
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		err = _inner_error_;
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_inner_error_ = NULL;
#line 903 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp18_ = err;
#line 903 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		app_window_database_error (_tmp18_);
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_error_free0 (err);
#line 6117 "SearchBoolean.c"
	}
	__finally88:
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.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 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_clear_error (&_inner_error_);
#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return NULL;
#line 6128 "SearchBoolean.c"
	}
#line 897 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self;
#line 6132 "SearchBoolean.c"
}


static SavedSearchTable* saved_search_table_new (void) {
#line 897 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return saved_search_table_construct (TYPE_SAVED_SEARCH_TABLE);
#line 6139 "SearchBoolean.c"
}


static gpointer _saved_search_table_ref0 (gpointer self) {
#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return self ? saved_search_table_ref (self) : NULL;
#line 6146 "SearchBoolean.c"
}


SavedSearchTable* saved_search_table_get_instance (void) {
	SavedSearchTable* result = NULL;
	SavedSearchTable* _tmp0_;
	SavedSearchTable* _tmp2_;
	SavedSearchTable* _tmp3_;
#line 909 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = saved_search_table_instance;
#line 909 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (_tmp0_ == NULL) {
#line 6159 "SearchBoolean.c"
		SavedSearchTable* _tmp1_;
#line 910 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = saved_search_table_new ();
#line 910 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_saved_search_table_unref0 (saved_search_table_instance);
#line 910 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_table_instance = _tmp1_;
#line 6167 "SearchBoolean.c"
	}
#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = saved_search_table_instance;
#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = _saved_search_table_ref0 (_tmp2_);
#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp3_;
#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6177 "SearchBoolean.c"
}


GeeCollection* saved_search_table_get_all (SavedSearchTable* self) {
	GeeCollection* result = NULL;
	GeeHashMap* _tmp0_;
	GeeCollection* _tmp1_;
	GeeCollection* _tmp2_;
#line 915 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->search_map;
#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = _tmp1_;
#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp2_;
#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6198 "SearchBoolean.c"
}


SavedSearch* saved_search_table_create (SavedSearchTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions) {
	SavedSearch* result = NULL;
	SavedSearch* search = NULL;
	SavedSearch* _tmp10_;
	LibraryWindow* _tmp11_;
	LibraryWindow* _tmp12_;
	SavedSearch* _tmp13_;
	GError * _inner_error_ = NULL;
#line 921 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
#line 921 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (name != NULL, NULL);
#line 921 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (GEE_IS_ARRAY_LIST (conditions), NULL);
#line 923 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	search = NULL;
#line 6218 "SearchBoolean.c"
	{
		SavedSearchRow* _tmp0_ = NULL;
		SavedSearchDBTable* _tmp1_;
		SavedSearchDBTable* _tmp2_;
		const gchar* _tmp3_;
		SearchOperator _tmp4_;
		GeeArrayList* _tmp5_;
		SavedSearchRow* _tmp6_;
		SavedSearchRow* _tmp7_;
		SavedSearch* _tmp8_;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = saved_search_db_table_get_instance ();
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = _tmp1_;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp3_ = name;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = operator;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp5_ = conditions;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp6_ = saved_search_db_table_add (_tmp2_, _tmp3_, _tmp4_, _tmp5_, &_inner_error_);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp7_ = _tmp6_;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_database_table_unref0 (_tmp2_);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = _tmp7_;
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_inner_error_->domain == DATABASE_ERROR) {
#line 6251 "SearchBoolean.c"
				goto __catch89_database_error;
			}
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_g_object_unref0 (search);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_clear_error (&_inner_error_);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return NULL;
#line 6262 "SearchBoolean.c"
		}
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp8_ = saved_search_new (_tmp0_, DATA_OBJECT_INVALID_OBJECT_ID);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (search);
#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		search = _tmp8_;
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_saved_search_row_unref0 (_tmp0_);
#line 6272 "SearchBoolean.c"
	}
	goto __finally89;
	__catch89_database_error:
	{
		GError* err = NULL;
		GError* _tmp9_;
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		err = _inner_error_;
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_inner_error_ = NULL;
#line 928 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp9_ = err;
#line 928 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		app_window_database_error (_tmp9_);
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_error_free0 (err);
#line 6289 "SearchBoolean.c"
	}
	__finally89:
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_object_unref0 (search);
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.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 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_clear_error (&_inner_error_);
#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return NULL;
#line 6302 "SearchBoolean.c"
	}
#line 932 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp10_ = search;
#line 932 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_add_to_map (self, _tmp10_);
#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp11_ = library_window_get_app ();
#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp12_ = _tmp11_;
#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp13_ = search;
#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	library_window_switch_to_saved_search (_tmp12_, _tmp13_);
#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_object_unref0 (_tmp12_);
#line 934 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = search;
#line 934 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6322 "SearchBoolean.c"
}


void saved_search_table_remove (SavedSearchTable* self, SavedSearch* search) {
	SavedSearch* _tmp5_;
	GError * _inner_error_ = NULL;
#line 938 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH_TABLE (self));
#line 938 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH (search));
#line 6333 "SearchBoolean.c"
	{
		SavedSearchDBTable* _tmp0_;
		SavedSearchDBTable* _tmp1_;
		SavedSearch* _tmp2_;
		SavedSearchID _tmp3_ = {0};
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp0_ = saved_search_db_table_get_instance ();
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp1_ = _tmp0_;
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp2_ = search;
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_get_saved_search_id (_tmp2_, &_tmp3_);
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_db_table_remove (_tmp1_, &_tmp3_, &_inner_error_);
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_database_table_unref0 (_tmp1_);
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			if (_inner_error_->domain == DATABASE_ERROR) {
#line 6355 "SearchBoolean.c"
				goto __catch90_database_error;
			}
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			g_clear_error (&_inner_error_);
#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return;
#line 6364 "SearchBoolean.c"
		}
	}
	goto __finally90;
	__catch90_database_error:
	{
		GError* err = NULL;
		GError* _tmp4_;
#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		err = _inner_error_;
#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_inner_error_ = NULL;
#line 942 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_tmp4_ = err;
#line 942 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		app_window_database_error (_tmp4_);
#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		_g_error_free0 (err);
#line 6382 "SearchBoolean.c"
	}
	__finally90:
#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.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 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_clear_error (&_inner_error_);
#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return;
#line 6393 "SearchBoolean.c"
	}
#line 945 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp5_ = search;
#line 945 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_remove_from_map (self, _tmp5_);
#line 6399 "SearchBoolean.c"
}


void saved_search_table_add_to_map (SavedSearchTable* self, SavedSearch* search) {
	GeeHashMap* _tmp0_;
	SavedSearch* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	SavedSearch* _tmp4_;
	SavedSearch* _tmp5_;
#line 948 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH_TABLE (self));
#line 948 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH (search));
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->search_map;
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = search;
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = _tmp2_;
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp4_ = search;
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_, _tmp4_);
#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (_tmp3_);
#line 950 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp5_ = search;
#line 950 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_signal_emit (self, saved_search_table_signals[SAVED_SEARCH_TABLE_SEARCH_ADDED_SIGNAL], 0, _tmp5_);
#line 6432 "SearchBoolean.c"
}


void saved_search_table_remove_from_map (SavedSearchTable* self, SavedSearch* search) {
	GeeHashMap* _tmp0_;
	SavedSearch* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	SavedSearch* _tmp4_;
#line 953 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH_TABLE (self));
#line 953 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (IS_SAVED_SEARCH (search));
#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->search_map;
#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = search;
#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp3_ = _tmp2_;
#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_, NULL);
#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_free0 (_tmp3_);
#line 955 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp4_ = search;
#line 955 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_signal_emit (self, saved_search_table_signals[SAVED_SEARCH_TABLE_SEARCH_REMOVED_SIGNAL], 0, _tmp4_);
#line 6462 "SearchBoolean.c"
}


GeeIterable* saved_search_table_get_saved_searches (SavedSearchTable* self) {
	GeeIterable* result = NULL;
	GeeHashMap* _tmp0_;
	GeeCollection* _tmp1_;
	GeeCollection* _tmp2_;
#line 958 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->search_map;
#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = _tmp1_;
#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable);
#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6483 "SearchBoolean.c"
}


gint saved_search_table_get_count (SavedSearchTable* self) {
	gint result = 0;
	GeeHashMap* _tmp0_;
	gint _tmp1_;
	gint _tmp2_;
#line 962 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), 0);
#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->search_map;
#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = _tmp1_;
#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp2_;
#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6504 "SearchBoolean.c"
}


gboolean saved_search_table_exists (SavedSearchTable* self, const gchar* search_name) {
	gboolean result = FALSE;
	GeeHashMap* _tmp0_;
	const gchar* _tmp1_;
	gboolean _tmp2_;
#line 966 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), FALSE);
#line 966 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (search_name != NULL, FALSE);
#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = self->priv->search_map;
#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp1_ = search_name;
#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp2_;
#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6527 "SearchBoolean.c"
}


gchar* saved_search_table_generate_unique_name (SavedSearchTable* self) {
	gchar* result = NULL;
	gchar* _tmp7_;
#line 971 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
#line 6536 "SearchBoolean.c"
	{
		gint ctr = 0;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		ctr = 1;
#line 6541 "SearchBoolean.c"
		{
			gboolean _tmp0_ = FALSE;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			_tmp0_ = TRUE;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			while (TRUE) {
#line 6548 "SearchBoolean.c"
				gint _tmp2_;
				gchar* name = NULL;
				gint _tmp3_;
				gchar* _tmp4_;
				const gchar* _tmp5_;
				gboolean _tmp6_;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (!_tmp0_) {
#line 6557 "SearchBoolean.c"
					gint _tmp1_;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					_tmp1_ = ctr;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					ctr = _tmp1_ + 1;
#line 6563 "SearchBoolean.c"
				}
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp0_ = FALSE;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp2_ = ctr;
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (!(_tmp2_ < G_MAXINT)) {
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					break;
#line 6573 "SearchBoolean.c"
				}
#line 973 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp3_ = ctr;
#line 973 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp4_ = g_strdup_printf ("%s %d", RESOURCES_DEFAULT_SAVED_SEARCH_NAME, _tmp3_);
#line 973 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				name = _tmp4_;
#line 975 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp5_ = name;
#line 975 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_tmp6_ = saved_search_table_exists (self, _tmp5_);
#line 975 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				if (!_tmp6_) {
#line 976 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					result = name;
#line 976 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
					return result;
#line 6591 "SearchBoolean.c"
				}
#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
				_g_free0 (name);
#line 6595 "SearchBoolean.c"
			}
		}
	}
#line 978 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp7_ = g_strdup ("");
#line 978 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	result = _tmp7_;
#line 978 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return result;
#line 6605 "SearchBoolean.c"
}


static void value_saved_search_table_init (GValue* value) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	value->data[0].v_pointer = NULL;
#line 6612 "SearchBoolean.c"
}


static void value_saved_search_table_free_value (GValue* value) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (value->data[0].v_pointer) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_table_unref (value->data[0].v_pointer);
#line 6621 "SearchBoolean.c"
	}
}


static void value_saved_search_table_copy_value (const GValue* src_value, GValue* dest_value) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (src_value->data[0].v_pointer) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		dest_value->data[0].v_pointer = saved_search_table_ref (src_value->data[0].v_pointer);
#line 6631 "SearchBoolean.c"
	} else {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		dest_value->data[0].v_pointer = NULL;
#line 6635 "SearchBoolean.c"
	}
}


static gpointer value_saved_search_table_peek_pointer (const GValue* value) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return value->data[0].v_pointer;
#line 6643 "SearchBoolean.c"
}


static gchar* value_saved_search_table_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (collect_values[0].v_pointer) {
#line 6650 "SearchBoolean.c"
		SavedSearchTable * object;
		object = collect_values[0].v_pointer;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		if (object->parent_instance.g_class == NULL) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 6657 "SearchBoolean.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 6661 "SearchBoolean.c"
		}
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = saved_search_table_ref (object);
#line 6665 "SearchBoolean.c"
	} else {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = NULL;
#line 6669 "SearchBoolean.c"
	}
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return NULL;
#line 6673 "SearchBoolean.c"
}


static gchar* value_saved_search_table_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	SavedSearchTable ** object_p;
	object_p = collect_values[0].v_pointer;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (!object_p) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 6684 "SearchBoolean.c"
	}
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (!value->data[0].v_pointer) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*object_p = NULL;
#line 6690 "SearchBoolean.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*object_p = value->data[0].v_pointer;
#line 6694 "SearchBoolean.c"
	} else {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		*object_p = saved_search_table_ref (value->data[0].v_pointer);
#line 6698 "SearchBoolean.c"
	}
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return NULL;
#line 6702 "SearchBoolean.c"
}


GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	ParamSpecSavedSearchTable* spec;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (g_type_is_a (object_type, TYPE_SAVED_SEARCH_TABLE), NULL);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return G_PARAM_SPEC (spec);
#line 6716 "SearchBoolean.c"
}


gpointer value_get_saved_search_table (const GValue* value) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_TABLE), NULL);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return value->data[0].v_pointer;
#line 6725 "SearchBoolean.c"
}


void value_set_saved_search_table (GValue* value, gpointer v_object) {
	SavedSearchTable * old;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_TABLE));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	old = value->data[0].v_pointer;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (v_object) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_TABLE));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = v_object;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_table_ref (value->data[0].v_pointer);
#line 6745 "SearchBoolean.c"
	} else {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = NULL;
#line 6749 "SearchBoolean.c"
	}
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (old) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_table_unref (old);
#line 6755 "SearchBoolean.c"
	}
}


void value_take_saved_search_table (GValue* value, gpointer v_object) {
	SavedSearchTable * old;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_TABLE));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	old = value->data[0].v_pointer;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (v_object) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_TABLE));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = v_object;
#line 6774 "SearchBoolean.c"
	} else {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		value->data[0].v_pointer = NULL;
#line 6778 "SearchBoolean.c"
	}
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (old) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		saved_search_table_unref (old);
#line 6784 "SearchBoolean.c"
	}
}


static void saved_search_table_class_init (SavedSearchTableClass * klass) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_parent_class = g_type_class_peek_parent (klass);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	((SavedSearchTableClass *) klass)->finalize = saved_search_table_finalize;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_type_class_add_private (klass, sizeof (SavedSearchTablePrivate));
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_signals[SAVED_SEARCH_TABLE_SEARCH_ADDED_SIGNAL] = g_signal_new ("search-added", TYPE_SAVED_SEARCH_TABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	saved_search_table_signals[SAVED_SEARCH_TABLE_SEARCH_REMOVED_SIGNAL] = g_signal_new ("search-removed", TYPE_SAVED_SEARCH_TABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
#line 6800 "SearchBoolean.c"
}


static void saved_search_table_instance_init (SavedSearchTable * self) {
	GeeHashMap* _tmp0_;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv = SAVED_SEARCH_TABLE_GET_PRIVATE (self);
#line 892 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TYPE_SAVED_SEARCH, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 892 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->priv->search_map = _tmp0_;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self->ref_count = 1;
#line 6814 "SearchBoolean.c"
}


static void saved_search_table_finalize (SavedSearchTable * obj) {
	SavedSearchTable * self;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_TABLE, SavedSearchTable);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_signal_handlers_destroy (self);
#line 892 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	_g_object_unref0 (self->priv->search_map);
#line 6826 "SearchBoolean.c"
}


GType saved_search_table_get_type (void) {
	static volatile gsize saved_search_table_type_id__volatile = 0;
	if (g_once_init_enter (&saved_search_table_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { value_saved_search_table_init, value_saved_search_table_free_value, value_saved_search_table_copy_value, value_saved_search_table_peek_pointer, "p", value_saved_search_table_collect_value, "p", value_saved_search_table_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (SavedSearchTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchTable), 0, (GInstanceInitFunc) saved_search_table_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType saved_search_table_type_id;
		saved_search_table_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SavedSearchTable", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&saved_search_table_type_id__volatile, saved_search_table_type_id);
	}
	return saved_search_table_type_id__volatile;
}


gpointer saved_search_table_ref (gpointer instance) {
	SavedSearchTable * self;
	self = instance;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	g_atomic_int_inc (&self->ref_count);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	return instance;
#line 6851 "SearchBoolean.c"
}


void saved_search_table_unref (gpointer instance) {
	SavedSearchTable * self;
	self = instance;
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		SAVED_SEARCH_TABLE_GET_CLASS (self)->finalize (self);
#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 6864 "SearchBoolean.c"
	}
}