/* icon-view.c generated by valac 0.37.1.4-3591e, the Vala compiler
 * generated from icon-view.vala, do not modify */

/* This file is part of GNOME Boxes. License: LGPLv2+*/

#include <glib.h>
#include <glib-object.h>
#include <libgd/gd.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <float.h>
#include <math.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <libcommon.h>
#include <glib/gi18n-lib.h>


#define BOXES_TYPE_SELECTION_CRITERIA (boxes_selection_criteria_get_type ())

#define BOXES_TYPE_ICOLLECTION_VIEW (boxes_icollection_view_get_type ())
#define BOXES_ICOLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICOLLECTION_VIEW, BoxesICollectionView))
#define BOXES_IS_ICOLLECTION_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICOLLECTION_VIEW))
#define BOXES_ICOLLECTION_VIEW_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_ICOLLECTION_VIEW, BoxesICollectionViewIface))

typedef struct _BoxesICollectionView BoxesICollectionView;
typedef struct _BoxesICollectionViewIface BoxesICollectionViewIface;

#define BOXES_TYPE_COLLECTION_ITEM (boxes_collection_item_get_type ())
#define BOXES_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItem))
#define BOXES_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))
#define BOXES_IS_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_IS_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))

typedef struct _BoxesCollectionItem BoxesCollectionItem;
typedef struct _BoxesCollectionItemClass BoxesCollectionItemClass;

#define BOXES_TYPE_COLLECTION_FILTER (boxes_collection_filter_get_type ())
#define BOXES_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilter))
#define BOXES_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))
#define BOXES_IS_COLLECTION_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_IS_COLLECTION_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_FILTER))
#define BOXES_COLLECTION_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_FILTER, BoxesCollectionFilterClass))

typedef struct _BoxesCollectionFilter BoxesCollectionFilter;
typedef struct _BoxesCollectionFilterClass BoxesCollectionFilterClass;

#define BOXES_TYPE_UI (boxes_ui_get_type ())
#define BOXES_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UI, BoxesUI))
#define BOXES_IS_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UI))
#define BOXES_UI_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_UI, BoxesUIIface))

typedef struct _BoxesUI BoxesUI;
typedef struct _BoxesUIIface BoxesUIIface;

#define BOXES_TYPE_UI_STATE (boxes_ui_state_get_type ())

#define BOXES_TYPE_ICON_VIEW (boxes_icon_view_get_type ())
#define BOXES_ICON_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICON_VIEW, BoxesIconView))
#define BOXES_ICON_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_ICON_VIEW, BoxesIconViewClass))
#define BOXES_IS_ICON_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICON_VIEW))
#define BOXES_IS_ICON_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_ICON_VIEW))
#define BOXES_ICON_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_ICON_VIEW, BoxesIconViewClass))

typedef struct _BoxesIconView BoxesIconView;
typedef struct _BoxesIconViewClass BoxesIconViewClass;
typedef struct _BoxesIconViewPrivate BoxesIconViewPrivate;

#define BOXES_TYPE_APP_WINDOW (boxes_app_window_get_type ())
#define BOXES_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP_WINDOW, BoxesAppWindow))
#define BOXES_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP_WINDOW, BoxesAppWindowClass))
#define BOXES_IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP_WINDOW))
#define BOXES_IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP_WINDOW))
#define BOXES_APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP_WINDOW, BoxesAppWindowClass))

typedef struct _BoxesAppWindow BoxesAppWindow;
typedef struct _BoxesAppWindowClass BoxesAppWindowClass;

#define BOXES_TYPE_CATEGORY (boxes_category_get_type ())
#define BOXES_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_CATEGORY, BoxesCategory))
#define BOXES_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_CATEGORY, BoxesCategoryClass))
#define BOXES_IS_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_CATEGORY))
#define BOXES_IS_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_CATEGORY))
#define BOXES_CATEGORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_CATEGORY, BoxesCategoryClass))

typedef struct _BoxesCategory BoxesCategory;
typedef struct _BoxesCategoryClass BoxesCategoryClass;

#define BOXES_TYPE_ACTIONS_POPOVER (boxes_actions_popover_get_type ())
#define BOXES_ACTIONS_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ACTIONS_POPOVER, BoxesActionsPopover))
#define BOXES_ACTIONS_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_ACTIONS_POPOVER, BoxesActionsPopoverClass))
#define BOXES_IS_ACTIONS_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ACTIONS_POPOVER))
#define BOXES_IS_ACTIONS_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_ACTIONS_POPOVER))
#define BOXES_ACTIONS_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_ACTIONS_POPOVER, BoxesActionsPopoverClass))

typedef struct _BoxesActionsPopover BoxesActionsPopover;
typedef struct _BoxesActionsPopoverClass BoxesActionsPopoverClass;
enum  {
	BOXES_ICON_VIEW_DUMMY_PROPERTY,
	BOXES_ICON_VIEW_PREVIOUS_UI_STATE,
	BOXES_ICON_VIEW_UI_STATE,
	BOXES_ICON_VIEW_CATEGORY,
	BOXES_ICON_VIEW_FILTER,
	BOXES_ICON_VIEW_LAST_PROPERTY
};
static GParamSpec* boxes_icon_view_properties[BOXES_ICON_VIEW_LAST_PROPERTY];

#define BOXES_ICON_VIEW_TYPE_MODEL_COLUMNS (boxes_icon_view_model_columns_get_type ())
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
typedef struct _Block28Data Block28Data;

#define BOXES_TYPE_MACHINE (boxes_machine_get_type ())
#define BOXES_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MACHINE, BoxesMachine))
#define BOXES_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MACHINE, BoxesMachineClass))
#define BOXES_IS_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MACHINE))
#define BOXES_IS_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MACHINE))
#define BOXES_MACHINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MACHINE, BoxesMachineClass))

typedef struct _BoxesMachine BoxesMachine;
typedef struct _BoxesMachineClass BoxesMachineClass;

#define BOXES_TYPE_MACHINE_THUMBNAILER (boxes_machine_thumbnailer_get_type ())
#define BOXES_MACHINE_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_MACHINE_THUMBNAILER, BoxesMachineThumbnailer))
#define BOXES_MACHINE_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_MACHINE_THUMBNAILER, BoxesMachineThumbnailerClass))
#define BOXES_IS_MACHINE_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_MACHINE_THUMBNAILER))
#define BOXES_IS_MACHINE_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_MACHINE_THUMBNAILER))
#define BOXES_MACHINE_THUMBNAILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_MACHINE_THUMBNAILER, BoxesMachineThumbnailerClass))

typedef struct _BoxesMachineThumbnailer BoxesMachineThumbnailer;
typedef struct _BoxesMachineThumbnailerClass BoxesMachineThumbnailerClass;
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _Block29Data Block29Data;
typedef struct _Block30Data Block30Data;
typedef struct _BoxesCollectionItemPrivate BoxesCollectionItemPrivate;

#define BOXES_TYPE_IPROPERTIES_PROVIDER (boxes_iproperties_provider_get_type ())
#define BOXES_IPROPERTIES_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_IPROPERTIES_PROVIDER, BoxesIPropertiesProvider))
#define BOXES_IS_IPROPERTIES_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_IPROPERTIES_PROVIDER))
#define BOXES_IPROPERTIES_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_IPROPERTIES_PROVIDER, BoxesIPropertiesProviderIface))

typedef struct _BoxesIPropertiesProvider BoxesIPropertiesProvider;
typedef struct _BoxesIPropertiesProviderIface BoxesIPropertiesProviderIface;

#define BOXES_TYPE_PROPERTIES_PAGE (boxes_properties_page_get_type ())

#define BOXES_TYPE_PROPERTY (boxes_property_get_type ())
#define BOXES_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_PROPERTY, BoxesProperty))
#define BOXES_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_PROPERTY, BoxesPropertyClass))
#define BOXES_IS_PROPERTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_PROPERTY))
#define BOXES_IS_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_PROPERTY))
#define BOXES_PROPERTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_PROPERTY, BoxesPropertyClass))

typedef struct _BoxesProperty BoxesProperty;
typedef struct _BoxesPropertyClass BoxesPropertyClass;
typedef struct _BoxesMachinePrivate BoxesMachinePrivate;

#define BOXES_MACHINE_TYPE_CONNECT_FLAGS (boxes_machine_connect_flags_get_type ())
typedef struct _Block31Data Block31Data;
#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))

#define BOXES_TYPE_APP (boxes_app_get_type ())
#define BOXES_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP, BoxesApp))
#define BOXES_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP, BoxesAppClass))
#define BOXES_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP))
#define BOXES_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP))
#define BOXES_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP, BoxesAppClass))

typedef struct _BoxesApp BoxesApp;
typedef struct _BoxesAppClass BoxesAppClass;

#define BOXES_TYPE_LIBVIRT_MACHINE (boxes_libvirt_machine_get_type ())
#define BOXES_LIBVIRT_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachine))
#define BOXES_LIBVIRT_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachineClass))
#define BOXES_IS_LIBVIRT_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_LIBVIRT_MACHINE))
#define BOXES_IS_LIBVIRT_MACHINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_LIBVIRT_MACHINE))
#define BOXES_LIBVIRT_MACHINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_LIBVIRT_MACHINE, BoxesLibvirtMachineClass))

typedef struct _BoxesLibvirtMachine BoxesLibvirtMachine;
typedef struct _BoxesLibvirtMachineClass BoxesLibvirtMachineClass;
typedef struct _Block32Data Block32Data;
typedef struct _Block33Data Block33Data;

#define BOXES_MACHINE_TYPE_MACHINE_STATE (boxes_machine_machine_state_get_type ())

#define BOXES_CATEGORY_TYPE_KIND (boxes_category_kind_get_type ())

typedef enum  {
	BOXES_SELECTION_CRITERIA_ALL,
	BOXES_SELECTION_CRITERIA_NONE,
	BOXES_SELECTION_CRITERIA_RUNNING
} BoxesSelectionCriteria;

struct _BoxesICollectionViewIface {
	GTypeInterface parent_iface;
	void (*add_item) (BoxesICollectionView* self, BoxesCollectionItem* item);
	void (*remove_item) (BoxesICollectionView* self, BoxesCollectionItem* item);
	GList* (*get_selected_items) (BoxesICollectionView* self);
	void (*activate_first_item) (BoxesICollectionView* self);
	void (*select_by_criteria) (BoxesICollectionView* self, BoxesSelectionCriteria criteria);
	BoxesCollectionFilter* (*get_filter) (BoxesICollectionView* self);
	void (*set_filter) (BoxesICollectionView* self, BoxesCollectionFilter* value);
};

typedef enum  {
	BOXES_UI_STATE_NONE,
	BOXES_UI_STATE_COLLECTION,
	BOXES_UI_STATE_CREDS,
	BOXES_UI_STATE_DISPLAY,
	BOXES_UI_STATE_WIZARD,
	BOXES_UI_STATE_PROPERTIES
} BoxesUIState;

struct _BoxesUIIface {
	GTypeInterface parent_iface;
	BoxesUIState (*get_previous_ui_state) (BoxesUI* self);
	void (*set_previous_ui_state) (BoxesUI* self, BoxesUIState value);
	BoxesUIState (*get_ui_state) (BoxesUI* self);
	void (*set_ui_state) (BoxesUI* self, BoxesUIState value);
};

struct _BoxesIconView {
	GdMainView parent_instance;
	BoxesIconViewPrivate * priv;
};

struct _BoxesIconViewClass {
	GdMainViewClass parent_class;
};

struct _BoxesIconViewPrivate {
	BoxesUIState _previous_ui_state;
	BoxesUIState _ui_state;
	BoxesAppWindow* window;
	BoxesCategory* _category;
	GtkListStore* store;
	GtkTreeModelFilter* model_filter;
	BoxesActionsPopover* context_popover;
	GList* hidden_items;
	BoxesCollectionFilter* _filter;
};

typedef enum  {
	BOXES_ICON_VIEW_MODEL_COLUMNS_SCREENSHOT = GD_MAIN_COLUMN_ICON,
	BOXES_ICON_VIEW_MODEL_COLUMNS_TITLE = GD_MAIN_COLUMN_PRIMARY_TEXT,
	BOXES_ICON_VIEW_MODEL_COLUMNS_INFO = GD_MAIN_COLUMN_SECONDARY_TEXT,
	BOXES_ICON_VIEW_MODEL_COLUMNS_SELECTED = GD_MAIN_COLUMN_SELECTED,
	BOXES_ICON_VIEW_MODEL_COLUMNS_PULSE = GD_MAIN_COLUMN_PULSE,
	BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM = GD_MAIN_COLUMN_LAST,
	BOXES_ICON_VIEW_MODEL_COLUMNS_LAST
} BoxesIconViewModelColumns;

struct _Block28Data {
	int _ref_count_;
	BoxesIconView* self;
	BoxesAppWindow* window;
};

struct _Block29Data {
	int _ref_count_;
	BoxesIconView* self;
	BoxesMachine* machine;
	BoxesAppWindow* window;
	GtkTreeIter iter;
	BoxesCollectionItem* item;
};

struct _Block30Data {
	int _ref_count_;
	Block29Data * _data29_;
	gulong ui_state_id;
};

struct _BoxesCollectionItem {
	GObject parent_instance;
	BoxesCollectionItemPrivate * priv;
};

struct _BoxesCollectionItemClass {
	GObjectClass parent_class;
	gint (*compare) (BoxesCollectionItem* self, BoxesCollectionItem* other);
};

typedef enum  {
	BOXES_PROPERTIES_PAGE_GENERAL,
	BOXES_PROPERTIES_PAGE_SYSTEM,
	BOXES_PROPERTIES_PAGE_DEVICES,
	BOXES_PROPERTIES_PAGE_SNAPSHOTS,
	BOXES_PROPERTIES_PAGE_LAST
} BoxesPropertiesPage;

struct _BoxesIPropertiesProviderIface {
	GTypeInterface parent_iface;
	GList* (*get_properties) (BoxesIPropertiesProvider* self, BoxesPropertiesPage page);
};

typedef enum  {
	BOXES_MACHINE_CONNECT_FLAGS_NONE = 0,
	BOXES_MACHINE_CONNECT_FLAGS_IGNORE_SAVED_STATE = 1 << 0
} BoxesMachineConnectFlags;

struct _BoxesMachine {
	BoxesCollectionItem parent_instance;
	BoxesMachinePrivate * priv;
	BoxesCollectionSource* source;
	BoxesBoxConfig* config;
	gboolean stay_on_display;
};

struct _BoxesMachineClass {
	BoxesCollectionItemClass parent_class;
	void (*save_real) (BoxesMachine* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*save_real_finish) (BoxesMachine* self, GAsyncResult* _res_, GError** error);
	void (*take_screenshot) (BoxesMachine* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	GdkPixbuf* (*take_screenshot_finish) (BoxesMachine* self, GAsyncResult* _res_, GError** error);
	GList* (*get_properties) (BoxesMachine* self, BoxesPropertiesPage page);
	void (*connect_display) (BoxesMachine* self, BoxesMachineConnectFlags flags, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*connect_display_finish) (BoxesMachine* self, GAsyncResult* _res_, GError** error);
	void (*restart) (BoxesMachine* self);
	void (*clone) (BoxesMachine* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*clone_finish) (BoxesMachine* self, GAsyncResult* _res_);
	void (*disconnect_display) (BoxesMachine* self);
	void (*update_status) (BoxesMachine* self);
	void (*delete) (BoxesMachine* self, gboolean by_user);
	gboolean (*get_suspend_at_exit) (BoxesMachine* self);
	gboolean (*get_can_save) (BoxesMachine* self);
	gboolean (*get_can_restart) (BoxesMachine* self);
	gboolean (*get_can_clone) (BoxesMachine* self);
	gboolean (*get_should_autosave) (BoxesMachine* self);
	gboolean (*get_is_local) (BoxesMachine* self);
};

struct _Block31Data {
	int _ref_count_;
	BoxesIconView* self;
	GList* selected;
};

struct _Block32Data {
	int _ref_count_;
	BoxesIconView* self;
	BoxesSelectionCriteria criteria;
};

struct _Block33Data {
	int _ref_count_;
	BoxesIconView* self;
	gint pulse;
	BoxesMachine* machine;
};

typedef enum  {
	BOXES_MACHINE_MACHINE_STATE_UNKNOWN,
	BOXES_MACHINE_MACHINE_STATE_STOPPED,
	BOXES_MACHINE_MACHINE_STATE_FORCE_STOPPED,
	BOXES_MACHINE_MACHINE_STATE_RUNNING,
	BOXES_MACHINE_MACHINE_STATE_PAUSED,
	BOXES_MACHINE_MACHINE_STATE_SAVED,
	BOXES_MACHINE_MACHINE_STATE_SLEEPING
} BoxesMachineMachineState;

typedef enum  {
	BOXES_CATEGORY_KIND_USER,
	BOXES_CATEGORY_KIND_NEW,
	BOXES_CATEGORY_KIND_FAVORITES,
	BOXES_CATEGORY_KIND_PRIVATE,
	BOXES_CATEGORY_KIND_SHARED
} BoxesCategoryKind;


static gpointer boxes_icon_view_parent_class = NULL;
extern BoxesApp* boxes_app_app;
static BoxesICollectionViewIface * boxes_icon_view_boxes_icollection_view_parent_iface = NULL;
static BoxesUIIface * boxes_icon_view_boxes_ui_parent_iface = NULL;

GType boxes_selection_criteria_get_type (void) G_GNUC_CONST;
GType boxes_collection_item_get_type (void) G_GNUC_CONST;
GType boxes_collection_filter_get_type (void) G_GNUC_CONST;
GType boxes_icollection_view_get_type (void) G_GNUC_CONST;
GType boxes_ui_state_get_type (void) G_GNUC_CONST;
GType boxes_ui_get_type (void) G_GNUC_CONST;
GType boxes_icon_view_get_type (void) G_GNUC_CONST;
GType boxes_app_window_get_type (void) G_GNUC_CONST;
GType boxes_category_get_type (void) G_GNUC_CONST;
GType boxes_actions_popover_get_type (void) G_GNUC_CONST;
#define BOXES_ICON_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_TYPE_ICON_VIEW, BoxesIconViewPrivate))
static GType boxes_icon_view_model_columns_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static void _g_object_unref0_ (gpointer var);
static inline void _g_list_free__g_object_unref0_ (GList* self);
#define BOXES_ICON_VIEW_FRAME_RADIUS 2.0
#define BOXES_ICON_VIEW_BIG_EMBLEM_SIZE 32
#define BOXES_ICON_VIEW_SMALL_EMBLEM_SIZE 16
#define BOXES_ICON_VIEW_EMBLEM_PADDING 8
void boxes_icon_view_setup_ui (BoxesIconView* self, BoxesAppWindow* window);
static Block28Data* block28_data_ref (Block28Data* _data28_);
static void block28_data_unref (void * _userdata_);
static void __lambda183_ (Block28Data* _data28_);
gboolean boxes_app_window_get_selection_mode (BoxesAppWindow* self);
static void ___lambda183__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static gboolean boxes_icon_view_on_button_press_event (BoxesIconView* self, GdkEventButton* event);
static gboolean _boxes_icon_view_on_button_press_event_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean boxes_icon_view_on_key_press_event (BoxesIconView* self, GdkEventKey* event);
static gboolean _boxes_icon_view_on_key_press_event_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
BoxesActionsPopover* boxes_actions_popover_new (BoxesAppWindow* window);
BoxesActionsPopover* boxes_actions_popover_construct (GType object_type, BoxesAppWindow* window);
static void boxes_icon_view_ui_state_changed (BoxesIconView* self);
BoxesUIState boxes_ui_get_ui_state (BoxesUI* self);
static void boxes_icon_view_update_screenshot (BoxesIconView* self, GtkTreeIter* iter);
GType boxes_machine_get_type (void) G_GNUC_CONST;
GType boxes_machine_thumbnailer_get_type (void) G_GNUC_CONST;
BoxesMachineThumbnailer* boxes_machine_get_thumbnailer (BoxesMachine* self);
GdkPixbuf* boxes_machine_thumbnailer_get_thumbnail (BoxesMachineThumbnailer* self);
static void boxes_icon_view_append (BoxesIconView* self, const gchar* title, const gchar* info, BoxesCollectionItem* item, GtkTreeIter* result);
static GtkTreeIter* _gtk_tree_iter_dup (GtkTreeIter* self);
static void boxes_icon_view_real_add_item (BoxesICollectionView* base, BoxesCollectionItem* item);
static Block29Data* block29_data_ref (Block29Data* _data29_);
static void block29_data_unref (void * _userdata_);
BoxesAppWindow* boxes_machine_get_window (BoxesMachine* self);
static Block30Data* block30_data_ref (Block30Data* _data30_);
static void block30_data_unref (void * _userdata_);
static void ___lambda209_ (Block30Data* _data30_);
void boxes_icollection_view_add_item (BoxesICollectionView* self, BoxesCollectionItem* item);
static void ____lambda209__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
const gchar* boxes_machine_get_status (BoxesMachine* self);
const gchar* boxes_machine_get_info (BoxesMachine* self);
const gchar* boxes_collection_item_get_name (BoxesCollectionItem* self);
static void __lambda210_ (Block29Data* _data29_);
static void ___lambda210__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
GType boxes_properties_page_get_type (void) G_GNUC_CONST;
GType boxes_property_get_type (void) G_GNUC_CONST;
GType boxes_iproperties_provider_get_type (void) G_GNUC_CONST;
GType boxes_machine_connect_flags_get_type (void) G_GNUC_CONST;
static void __lambda211_ (Block29Data* _data29_);
static void ___lambda211__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void __lambda212_ (Block29Data* _data29_);
static void ___lambda212__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void boxes_icon_view_on_machine_info_changed (BoxesIconView* self, GObject* object, GParamSpec* spec);
static void _boxes_icon_view_on_machine_info_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void boxes_icon_view_setup_activity (BoxesIconView* self, GtkTreeIter* iter, BoxesMachine* machine);
static void __lambda214_ (Block29Data* _data29_);
static void ___lambda214__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void __lambda215_ (Block29Data* _data29_);
static void ___lambda215__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
void boxes_ui_set_state (BoxesUI* self, BoxesUIState new_state);
static GList* boxes_icon_view_real_get_selected_items (BoxesICollectionView* base);
static Block31Data* block31_data_ref (Block31Data* _data31_);
static void block31_data_unref (void * _userdata_);
static gboolean __lambda216_ (Block31Data* _data31_, GtkTreeModel* store, GtkTreePath* path, GtkTreeIter* iter);
static gboolean ___lambda216__gtk_tree_model_foreach_func (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer self);
static void boxes_icon_view_real_remove_item (BoxesICollectionView* base, BoxesCollectionItem* item);
static BoxesCollectionItem* boxes_icon_view_get_item_for_iter (BoxesIconView* self, GtkTreeIter* iter);
static BoxesCollectionItem* boxes_icon_view_get_item_for_path (BoxesIconView* self, GtkTreePath* path);
static gboolean boxes_icon_view_model_visible (BoxesIconView* self, GtkTreeModel* model, GtkTreeIter* iter);
BoxesCollectionFilter* boxes_icollection_view_get_filter (BoxesICollectionView* self);
gboolean boxes_collection_filter_filter (BoxesCollectionFilter* self, BoxesCollectionItem* item);
static void boxes_icon_view_real_activate_first_item (BoxesICollectionView* base);
static void boxes_icon_view_setup_view (BoxesIconView* self);
static gint __lambda217_ (BoxesIconView* self, GtkTreeModel* store, GtkTreeIter* a, GtkTreeIter* b);
gint boxes_collection_item_compare (BoxesCollectionItem* self, BoxesCollectionItem* other);
static gint ___lambda217__gtk_tree_iter_compare_func (GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, gpointer self);
static void __lambda218_ (BoxesIconView* self);
GType boxes_app_get_type (void) G_GNUC_CONST;
static void ___lambda218__gtk_tree_model_row_deleted (GtkTreeModel* _sender, GtkTreePath* path, gpointer self);
static void __lambda219_ (BoxesIconView* self);
static void ___lambda219__gtk_tree_model_row_inserted (GtkTreeModel* _sender, GtkTreePath* path, GtkTreeIter* iter, gpointer self);
static gboolean _boxes_icon_view_model_visible_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
static void __lambda220_ (BoxesIconView* self, GdMainView* view, const gchar* id, GtkTreePath* path);
GType boxes_libvirt_machine_get_type (void) G_GNUC_CONST;
gboolean boxes_libvirt_machine_get_importing (BoxesLibvirtMachine* self);
void boxes_app_window_select_item (BoxesAppWindow* self, BoxesCollectionItem* item);
static void ___lambda220__gd_main_view_item_activated (GdMainView* _sender, const gchar* object, GtkTreePath* p0, gpointer self);
static void __lambda221_ (BoxesIconView* self);
static void ___lambda221__gd_main_view_view_selection_changed (GdMainView* _sender, gpointer self);
static void boxes_icon_view_real_select_by_criteria (BoxesICollectionView* base, BoxesSelectionCriteria criteria);
static Block32Data* block32_data_ref (Block32Data* _data32_);
static void block32_data_unref (void * _userdata_);
void boxes_app_window_set_selection_mode (BoxesAppWindow* self, gboolean value);
static gboolean __lambda222_ (Block32Data* _data32_, GtkTreeModel* filter_model, GtkTreePath* filter_path, GtkTreeIter* filter_iter);
gboolean boxes_machine_get_is_running (BoxesMachine* self);
static gboolean ___lambda222__gtk_tree_model_foreach_func (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer self);
static Block33Data* block33_data_ref (Block33Data* _data33_);
static void block33_data_unref (void * _userdata_);
gboolean boxes_machine_get_under_construction (BoxesMachine* self);
GType boxes_machine_machine_state_get_type (void) G_GNUC_CONST;
BoxesMachineMachineState boxes_machine_get_state (BoxesMachine* self);
static gboolean __lambda213_ (Block33Data* _data33_);
static gboolean ___lambda213__gsource_func (gpointer self);
static gboolean boxes_icon_view_launch_context_popover_for_path (BoxesIconView* self, GtkTreePath* path);
void boxes_actions_popover_update_for_item (BoxesActionsPopover* self, BoxesCollectionItem* item);
BoxesIconView* boxes_icon_view_new (void);
BoxesIconView* boxes_icon_view_construct (GType object_type);
BoxesCategory* boxes_icon_view_get_category (BoxesIconView* self);
void boxes_icon_view_set_category (BoxesIconView* self, BoxesCategory* value);
static GObject * boxes_icon_view_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
GType boxes_category_kind_get_type (void) G_GNUC_CONST;
BoxesCategory* boxes_category_new (const gchar* name, BoxesCategoryKind kind);
BoxesCategory* boxes_category_construct (GType object_type, const gchar* name, BoxesCategoryKind kind);
BoxesCollectionFilter* boxes_collection_filter_new (void);
BoxesCollectionFilter* boxes_collection_filter_construct (GType object_type);
void boxes_icollection_view_set_filter (BoxesICollectionView* self, BoxesCollectionFilter* value);
static void _boxes_icon_view_ui_state_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void _boxes_icon_view___lambda223_ (BoxesIconView* self);
static void __boxes_icon_view___lambda223__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void _boxes_icon_view___lambda224_ (BoxesIconView* self);
static void __boxes_icon_view___lambda224__boxes_collection_filter_filter_func_changed (BoxesCollectionFilter* _sender, gpointer self);
static void boxes_icon_view_finalize (GObject * obj);
BoxesUIState boxes_ui_get_previous_ui_state (BoxesUI* self);
static void _vala_boxes_icon_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
void boxes_ui_set_previous_ui_state (BoxesUI* self, BoxesUIState value);
void boxes_ui_set_ui_state (BoxesUI* self, BoxesUIState value);
static void _vala_boxes_icon_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);

static const GtkCornerType BOXES_ICON_VIEW_right_corners[2] = {GTK_CORNER_TOP_RIGHT, GTK_CORNER_BOTTOM_RIGHT};
static const GtkCornerType BOXES_ICON_VIEW_bottom_corners[2] = {GTK_CORNER_BOTTOM_LEFT, GTK_CORNER_BOTTOM_RIGHT};
const GdkRGBA BOXES_ICON_VIEW_FRAME_BORDER_COLOR = {0x3b / 255.0, 0x3c / 255.0, 0x38 / 255.0, 1.0};
const GdkRGBA BOXES_ICON_VIEW_FRAME_BACKGROUND_COLOR = {0x2d / 255.0, 0x2d / 255.0, 0x2d / 255.0, 1.0};
const GdkRGBA BOXES_ICON_VIEW_CENTERED_EMBLEM_COLOR = {0xbe / 255.0, 0xbe / 255.0, 0xbe / 255.0, 1.0};
const GdkRGBA BOXES_ICON_VIEW_SMALL_EMBLEM_COLOR = {1.0, 1.0, 1.0, 1.0};

GType boxes_selection_criteria_get_type (void) {
	static volatile gsize boxes_selection_criteria_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_selection_criteria_type_id__volatile)) {
		static const GEnumValue values[] = {{BOXES_SELECTION_CRITERIA_ALL, "BOXES_SELECTION_CRITERIA_ALL", "all"}, {BOXES_SELECTION_CRITERIA_NONE, "BOXES_SELECTION_CRITERIA_NONE", "none"}, {BOXES_SELECTION_CRITERIA_RUNNING, "BOXES_SELECTION_CRITERIA_RUNNING", "running"}, {0, NULL, NULL}};
		GType boxes_selection_criteria_type_id;
		boxes_selection_criteria_type_id = g_enum_register_static ("BoxesSelectionCriteria", values);
		g_once_init_leave (&boxes_selection_criteria_type_id__volatile, boxes_selection_criteria_type_id);
	}
	return boxes_selection_criteria_type_id__volatile;
}


static GType boxes_icon_view_model_columns_get_type (void) {
	static volatile gsize boxes_icon_view_model_columns_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_icon_view_model_columns_type_id__volatile)) {
		static const GEnumValue values[] = {{BOXES_ICON_VIEW_MODEL_COLUMNS_SCREENSHOT, "BOXES_ICON_VIEW_MODEL_COLUMNS_SCREENSHOT", "screenshot"}, {BOXES_ICON_VIEW_MODEL_COLUMNS_TITLE, "BOXES_ICON_VIEW_MODEL_COLUMNS_TITLE", "title"}, {BOXES_ICON_VIEW_MODEL_COLUMNS_INFO, "BOXES_ICON_VIEW_MODEL_COLUMNS_INFO", "info"}, {BOXES_ICON_VIEW_MODEL_COLUMNS_SELECTED, "BOXES_ICON_VIEW_MODEL_COLUMNS_SELECTED", "selected"}, {BOXES_ICON_VIEW_MODEL_COLUMNS_PULSE, "BOXES_ICON_VIEW_MODEL_COLUMNS_PULSE", "pulse"}, {BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, "BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM", "item"}, {BOXES_ICON_VIEW_MODEL_COLUMNS_LAST, "BOXES_ICON_VIEW_MODEL_COLUMNS_LAST", "last"}, {0, NULL, NULL}};
		GType boxes_icon_view_model_columns_type_id;
		boxes_icon_view_model_columns_type_id = g_enum_register_static ("BoxesIconViewModelColumns", values);
		g_once_init_leave (&boxes_icon_view_model_columns_type_id__volatile, boxes_icon_view_model_columns_type_id);
	}
	return boxes_icon_view_model_columns_type_id__volatile;
}


static void _g_object_unref0_ (gpointer var) {
#line 38 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 551 "icon-view.c"
}


static inline void _g_list_free__g_object_unref0_ (GList* self) {
#line 38 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_list_free_full (self, (GDestroyNotify) _g_object_unref0_);
#line 558 "icon-view.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return self ? g_object_ref (self) : NULL;
#line 565 "icon-view.c"
}


static Block28Data* block28_data_ref (Block28Data* _data28_) {
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data28_->_ref_count_);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data28_;
#line 574 "icon-view.c"
}


static void block28_data_unref (void * _userdata_) {
	Block28Data* _data28_;
	_data28_ = (Block28Data*) _userdata_;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data28_->_ref_count_)) {
#line 583 "icon-view.c"
		BoxesIconView* self;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data28_->self;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data28_->window);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block28Data, _data28_);
#line 593 "icon-view.c"
	}
}


static void __lambda183_ (Block28Data* _data28_) {
	BoxesIconView* self;
	BoxesAppWindow* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	BoxesAppWindow* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
#line 72 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data28_->self;
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data28_->window;
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_app_window_get_selection_mode (_tmp0_);
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _tmp1_;
#line 73 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gd_main_view_set_selection_mode ((GdMainView*) self, _tmp2_);
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _data28_->window;
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_app_window_get_selection_mode (_tmp3_);
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _tmp4_;
#line 74 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (!_tmp5_) {
#line 75 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		gd_main_view_unselect_all ((GdMainView*) self);
#line 626 "icon-view.c"
	}
}


static void ___lambda183__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 72 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda183_ (self);
#line 634 "icon-view.c"
}


static gboolean _boxes_icon_view_on_button_press_event_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = boxes_icon_view_on_button_press_event ((BoxesIconView*) self, event);
#line 79 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 643 "icon-view.c"
}


static gboolean _boxes_icon_view_on_key_press_event_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
	gboolean result;
	result = boxes_icon_view_on_key_press_event ((BoxesIconView*) self, event);
#line 80 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 652 "icon-view.c"
}


void boxes_icon_view_setup_ui (BoxesIconView* self, BoxesAppWindow* window) {
	Block28Data* _data28_;
	BoxesAppWindow* _tmp0_;
	BoxesAppWindow* _tmp1_;
	BoxesAppWindow* _tmp2_;
	BoxesAppWindow* _tmp3_;
	BoxesAppWindow* _tmp4_;
	GtkIconView* icon_view = NULL;
	GtkWidget* _tmp5_;
	GtkIconView* _tmp6_;
	BoxesAppWindow* _tmp7_;
	BoxesActionsPopover* _tmp8_;
	BoxesActionsPopover* _tmp9_;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (window != NULL);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_ = g_slice_new0 (Block28Data);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_->_ref_count_ = 1;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_->self = g_object_ref (self);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = window;
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_data28_->window);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_->window = _tmp1_;
#line 70 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _data28_->window;
#line 70 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 70 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->window);
#line 70 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->window = _tmp3_;
#line 72 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _data28_->window;
#line 72 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_data ((GObject*) _tmp4_, "notify::selection-mode", (GCallback) ___lambda183__g_object_notify, block28_data_ref (_data28_), (GClosureNotify) block28_data_unref, 0);
#line 78 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = gd_main_view_get_generic_view ((GdMainView*) self);
#line 78 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, gtk_icon_view_get_type ()) ? ((GtkIconView*) _tmp5_) : NULL);
#line 78 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	icon_view = _tmp6_;
#line 79 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GtkWidget*) icon_view, "button-release-event", (GCallback) _boxes_icon_view_on_button_press_event_gtk_widget_button_release_event, self, 0);
#line 80 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GtkWidget*) icon_view, "key-press-event", (GCallback) _boxes_icon_view_on_key_press_event_gtk_widget_key_press_event, self, 0);
#line 81 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _data28_->window;
#line 81 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = boxes_actions_popover_new (_tmp7_);
#line 81 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_ref_sink (_tmp8_);
#line 81 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->context_popover);
#line 81 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->context_popover = _tmp8_;
#line 82 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = self->priv->context_popover;
#line 82 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_popover_set_relative_to ((GtkPopover*) _tmp9_, (GtkWidget*) icon_view);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (icon_view);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block28_data_unref (_data28_);
#line 69 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data28_ = NULL;
#line 729 "icon-view.c"
}


static void boxes_icon_view_ui_state_changed (BoxesIconView* self) {
	BoxesUIState _tmp0_;
	BoxesUIState _tmp1_;
#line 85 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 86 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_ui_get_ui_state ((BoxesUI*) self);
#line 86 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _tmp0_;
#line 86 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp1_ == BOXES_UI_STATE_COLLECTION) {
#line 87 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		gd_main_view_unselect_all ((GdMainView*) self);
#line 746 "icon-view.c"
	}
}


static void boxes_icon_view_update_screenshot (BoxesIconView* self, GtkTreeIter* iter) {
	BoxesCollectionItem* item = NULL;
	GtkListStore* _tmp0_;
	GtkTreeIter _tmp1_;
	BoxesMachine* machine = NULL;
	BoxesMachine* _tmp2_;
	GdkPixbuf* pixbuf = NULL;
	BoxesMachineThumbnailer* _tmp3_;
	BoxesMachineThumbnailer* _tmp4_;
	GdkPixbuf* _tmp5_;
	GdkPixbuf* _tmp6_;
	GdkPixbuf* _tmp7_;
	GtkListStore* _tmp8_;
	GtkTreeIter _tmp9_;
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (iter != NULL);
#line 93 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->store;
#line 93 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = *iter;
#line 93 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_get ((GtkTreeModel*) _tmp0_, &_tmp1_, BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, &item, -1);
#line 94 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (item, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) item) : NULL);
#line 94 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	machine = _tmp2_;
#line 95 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (machine != NULL);
#line 96 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = boxes_machine_get_thumbnailer (machine);
#line 96 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _tmp3_;
#line 96 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = boxes_machine_thumbnailer_get_thumbnail (_tmp4_);
#line 96 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _tmp5_;
#line 96 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 96 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	pixbuf = _tmp7_;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = self->priv->store;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = *iter;
#line 98 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp8_, &_tmp9_, BOXES_ICON_VIEW_MODEL_COLUMNS_SCREENSHOT, pixbuf, -1);
#line 99 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (pixbuf);
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (machine);
#line 90 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 807 "icon-view.c"
}


static GtkTreeIter* _gtk_tree_iter_dup (GtkTreeIter* self) {
	GtkTreeIter* dup;
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	dup = g_new0 (GtkTreeIter, 1);
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	memcpy (dup, self, sizeof (GtkTreeIter));
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return dup;
#line 819 "icon-view.c"
}


static gpointer __gtk_tree_iter_dup0 (gpointer self) {
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return self ? _gtk_tree_iter_dup (self) : NULL;
#line 826 "icon-view.c"
}


static void boxes_icon_view_append (BoxesIconView* self, const gchar* title, const gchar* info, BoxesCollectionItem* item, GtkTreeIter* result) {
	GtkTreeIter iter = {0};
	GtkListStore* _tmp0_;
	GtkTreeIter _tmp1_ = {0};
	GtkListStore* _tmp2_;
	GtkTreeIter _tmp3_;
	BoxesCollectionItem* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	GtkListStore* _tmp7_;
	GtkTreeIter _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	GtkListStore* _tmp14_;
	GtkTreeIter _tmp15_;
	GtkListStore* _tmp16_;
	GtkTreeIter _tmp17_;
	BoxesCollectionItem* _tmp18_;
	GtkTreeIter _tmp19_;
	BoxesCollectionItem* _tmp20_;
	GtkTreeIter _tmp21_;
	GtkTreeIter* _tmp22_;
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (title != NULL);
#line 102 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (item != NULL);
#line 107 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->store;
#line 107 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_append (_tmp0_, &_tmp1_);
#line 107 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iter = _tmp1_;
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = self->priv->store;
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = iter;
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = item;
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = g_strdup_printf ("%p", _tmp4_);
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _tmp5_;
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp2_, &_tmp3_, GD_MAIN_COLUMN_ID, _tmp6_, -1);
#line 108 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_free0 (_tmp6_);
#line 109 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = self->priv->store;
#line 109 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = iter;
#line 109 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = title;
#line 109 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp7_, &_tmp8_, BOXES_ICON_VIEW_MODEL_COLUMNS_TITLE, _tmp9_, -1);
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = info;
#line 110 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp10_ != NULL) {
#line 890 "icon-view.c"
		GtkListStore* _tmp11_;
		GtkTreeIter _tmp12_;
		const gchar* _tmp13_;
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp11_ = self->priv->store;
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp12_ = iter;
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp13_ = info;
#line 111 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		gtk_list_store_set (_tmp11_, &_tmp12_, BOXES_ICON_VIEW_MODEL_COLUMNS_INFO, _tmp13_, -1);
#line 902 "icon-view.c"
	}
#line 112 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp14_ = self->priv->store;
#line 112 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp15_ = iter;
#line 112 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp14_, &_tmp15_, BOXES_ICON_VIEW_MODEL_COLUMNS_SELECTED, FALSE, -1);
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp16_ = self->priv->store;
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp17_ = iter;
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp18_ = item;
#line 113 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp16_, &_tmp17_, BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, _tmp18_, -1);
#line 114 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp19_ = iter;
#line 114 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_update_screenshot (self, &_tmp19_);
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp20_ = item;
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp21_ = iter;
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp22_ = __gtk_tree_iter_dup0 (&_tmp21_);
#line 116 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp20_, "iter", _tmp22_, g_free);
#line 118 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	*result = iter;
#line 118 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return;
#line 934 "icon-view.c"
}


static Block29Data* block29_data_ref (Block29Data* _data29_) {
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data29_->_ref_count_);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data29_;
#line 943 "icon-view.c"
}


static void block29_data_unref (void * _userdata_) {
	Block29Data* _data29_;
	_data29_ = (Block29Data*) _userdata_;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data29_->_ref_count_)) {
#line 952 "icon-view.c"
		BoxesIconView* self;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data29_->self;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data29_->window);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data29_->machine);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data29_->item);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block29Data, _data29_);
#line 966 "icon-view.c"
	}
}


static Block30Data* block30_data_ref (Block30Data* _data30_) {
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data30_->_ref_count_);
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data30_;
#line 976 "icon-view.c"
}


static void block30_data_unref (void * _userdata_) {
	Block30Data* _data30_;
	_data30_ = (Block30Data*) _userdata_;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data30_->_ref_count_)) {
#line 985 "icon-view.c"
		BoxesIconView* self;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data30_->_data29_->self;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		block29_data_unref (_data30_->_data29_);
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_->_data29_ = NULL;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block30Data, _data30_);
#line 995 "icon-view.c"
	}
}


static void ___lambda209_ (Block30Data* _data30_) {
	Block29Data* _data29_;
	BoxesIconView* self;
	BoxesAppWindow* _tmp0_;
	BoxesUIState _tmp1_;
	BoxesUIState _tmp2_;
	GList* _tmp3_;
	BoxesCollectionItem* _tmp4_;
	GList* _tmp5_;
	BoxesAppWindow* _tmp8_;
	gulong _tmp9_;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_ = _data30_->_data29_;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 137 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->window;
#line 137 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_ui_get_ui_state ((BoxesUI*) _tmp0_);
#line 137 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _tmp1_;
#line 137 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ == BOXES_UI_STATE_WIZARD) {
#line 138 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1025 "icon-view.c"
	}
#line 140 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = self->priv->hidden_items;
#line 140 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _data29_->item;
#line 140 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = g_list_find (_tmp3_, _tmp4_);
#line 140 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp5_ != NULL) {
#line 1035 "icon-view.c"
		BoxesCollectionItem* _tmp6_;
		BoxesCollectionItem* _tmp7_;
#line 141 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = _data29_->item;
#line 141 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icollection_view_add_item ((BoxesICollectionView*) self, _tmp6_);
#line 142 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp7_ = _data29_->item;
#line 142 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->hidden_items = g_list_remove (self->priv->hidden_items, _tmp7_);
#line 1046 "icon-view.c"
	}
#line 144 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = _data29_->window;
#line 144 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = _data30_->ui_state_id;
#line 144 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_handler_disconnect ((GObject*) _tmp8_, _tmp9_);
#line 1054 "icon-view.c"
}


static void ____lambda209__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	___lambda209_ (self);
#line 1061 "icon-view.c"
}


static void __lambda210_ (Block29Data* _data29_) {
	BoxesIconView* self;
	GtkTreeIter _tmp0_;
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->iter;
#line 154 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_update_screenshot (self, &_tmp0_);
#line 1074 "icon-view.c"
}


static void ___lambda210__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda210_ (self);
#line 1081 "icon-view.c"
}


static void __lambda211_ (Block29Data* _data29_) {
	BoxesIconView* self;
	GtkTreeIter _tmp0_;
#line 158 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 160 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->iter;
#line 160 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_update_screenshot (self, &_tmp0_);
#line 1094 "icon-view.c"
}


static void ___lambda211__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 158 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda211_ (self);
#line 1101 "icon-view.c"
}


static void __lambda212_ (Block29Data* _data29_) {
	BoxesIconView* self;
	GtkListStore* _tmp0_;
	GtkTreeIter _tmp1_;
	BoxesCollectionItem* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 166 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->store;
#line 166 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _data29_->iter;
#line 166 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _data29_->item;
#line 166 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = boxes_collection_item_get_name (_tmp2_);
#line 166 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _tmp3_;
#line 166 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp0_, &_tmp1_, BOXES_ICON_VIEW_MODEL_COLUMNS_TITLE, _tmp4_, -1);
#line 167 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 1128 "icon-view.c"
}


static void ___lambda212__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda212_ (self);
#line 1135 "icon-view.c"
}


static void _boxes_icon_view_on_machine_info_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_on_machine_info_changed ((BoxesIconView*) self, _sender, pspec);
#line 1142 "icon-view.c"
}


static void __lambda214_ (Block29Data* _data29_) {
	BoxesIconView* self;
	GtkTreeIter _tmp0_;
	BoxesMachine* _tmp1_;
#line 177 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 179 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->iter;
#line 179 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _data29_->machine;
#line 179 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_setup_activity (self, &_tmp0_, _tmp1_);
#line 180 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 1160 "icon-view.c"
}


static void ___lambda214__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 177 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda214_ (self);
#line 1167 "icon-view.c"
}


static void __lambda215_ (Block29Data* _data29_) {
	BoxesIconView* self;
	GtkTreeIter _tmp0_;
	BoxesMachine* _tmp1_;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data29_->self;
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data29_->iter;
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _data29_->machine;
#line 185 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_setup_activity (self, &_tmp0_, _tmp1_);
#line 186 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 1185 "icon-view.c"
}


static void ___lambda215__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda215_ (self);
#line 1192 "icon-view.c"
}


static void boxes_icon_view_real_add_item (BoxesICollectionView* base, BoxesCollectionItem* item) {
	BoxesIconView * self;
	Block29Data* _data29_;
	BoxesCollectionItem* _tmp0_;
	BoxesCollectionItem* _tmp1_;
	BoxesCollectionItem* _tmp2_;
	BoxesMachine* _tmp3_;
	BoxesMachine* _tmp4_;
	BoxesMachine* _tmp7_;
	BoxesAppWindow* _tmp8_;
	BoxesAppWindow* _tmp9_;
	BoxesAppWindow* _tmp10_;
	BoxesAppWindow* _tmp11_;
	BoxesUIState _tmp12_;
	BoxesUIState _tmp13_;
	const gchar* _tmp18_ = NULL;
	BoxesMachine* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	gchar* info = NULL;
	gchar* _tmp25_;
	BoxesMachine* _tmp26_;
	const gchar* _tmp27_;
	const gchar* _tmp28_;
	const gchar* _tmp29_;
	BoxesCollectionItem* _tmp30_;
	GtkTreeIter _tmp31_ = {0};
	gulong thumbnail_id = 0UL;
	BoxesMachine* _tmp32_;
	BoxesMachineThumbnailer* _tmp33_;
	BoxesMachineThumbnailer* _tmp34_;
	gulong _tmp35_;
	BoxesCollectionItem* _tmp36_;
	gulong _tmp37_;
	gulong categories_id = 0UL;
	BoxesMachine* _tmp38_;
	BoxesBoxConfig* _tmp39_;
	gulong _tmp40_;
	BoxesCollectionItem* _tmp41_;
	gulong _tmp42_;
	gulong name_id = 0UL;
	BoxesCollectionItem* _tmp43_;
	gulong _tmp44_;
	BoxesCollectionItem* _tmp45_;
	gulong _tmp46_;
	gulong info_id = 0UL;
	BoxesMachine* _tmp47_;
	gulong _tmp48_;
	BoxesCollectionItem* _tmp49_;
	gulong _tmp50_;
	gulong status_id = 0UL;
	BoxesMachine* _tmp51_;
	gulong _tmp52_;
	BoxesCollectionItem* _tmp53_;
	gulong _tmp54_;
	GtkTreeIter _tmp55_;
	BoxesMachine* _tmp56_;
	gulong under_construct_id = 0UL;
	BoxesMachine* _tmp57_;
	gulong _tmp58_;
	BoxesCollectionItem* _tmp59_;
	gulong _tmp60_;
	gulong machine_state_id = 0UL;
	BoxesMachine* _tmp61_;
	gulong _tmp62_;
	BoxesCollectionItem* _tmp63_;
	gulong _tmp64_;
	BoxesCollectionItem* _tmp65_;
	BoxesAppWindow* _tmp66_;
	BoxesUIState _tmp67_;
	BoxesUIState _tmp68_;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (item != NULL);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_ = g_slice_new0 (Block29Data);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->_ref_count_ = 1;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->self = g_object_ref (self);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = item;
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_data29_->item);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->item = _tmp1_;
#line 122 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _data29_->item;
#line 122 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) _tmp2_) : NULL);
#line 122 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->machine = _tmp3_;
#line 124 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _data29_->machine;
#line 124 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp4_ == NULL) {
#line 1295 "icon-view.c"
		gchar* _tmp5_;
		gchar* _tmp6_;
#line 125 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = g_strdup_printf ("Cannot add item %p", &_data29_->item);
#line 125 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = _tmp5_;
#line 125 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_warning ("icon-view.vala:125: %s", _tmp6_);
#line 125 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_free0 (_tmp6_);
#line 126 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		block29_data_unref (_data29_);
#line 126 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data29_ = NULL;
#line 126 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1312 "icon-view.c"
	}
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _data29_->machine;
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = boxes_machine_get_window (_tmp7_);
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = _tmp8_;
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = _g_object_ref0 (_tmp9_);
#line 129 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->window = _tmp10_;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = _data29_->window;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp12_ = boxes_ui_get_ui_state ((BoxesUI*) _tmp11_);
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = _tmp12_;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp13_ == BOXES_UI_STATE_WIZARD) {
#line 1332 "icon-view.c"
		Block30Data* _data30_;
		BoxesCollectionItem* _tmp14_;
		BoxesCollectionItem* _tmp15_;
		BoxesAppWindow* _tmp16_;
		gulong _tmp17_;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_ = g_slice_new0 (Block30Data);
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_->_ref_count_ = 1;
#line 130 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_->_data29_ = block29_data_ref (_data29_);
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp14_ = _data29_->item;
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp15_ = _g_object_ref0 (_tmp14_);
#line 132 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->hidden_items = g_list_append (self->priv->hidden_items, _tmp15_);
#line 134 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_->ui_state_id = (gulong) 0;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp16_ = _data29_->window;
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp17_ = g_signal_connect_data ((GObject*) _tmp16_, "notify::ui-state", (GCallback) ____lambda209__g_object_notify, block30_data_ref (_data30_), (GClosureNotify) block30_data_unref, 0);
#line 136 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_->ui_state_id = _tmp17_;
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		block30_data_unref (_data30_);
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data30_ = NULL;
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		block29_data_unref (_data29_);
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data29_ = NULL;
#line 147 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1368 "icon-view.c"
	}
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp19_ = _data29_->machine;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp20_ = boxes_machine_get_status (_tmp19_);
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp21_ = _tmp20_;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp18_ = _tmp21_;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp18_ == NULL) {
#line 1380 "icon-view.c"
		BoxesMachine* _tmp22_;
		const gchar* _tmp23_;
		const gchar* _tmp24_;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp22_ = _data29_->machine;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp23_ = boxes_machine_get_info (_tmp22_);
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp24_ = _tmp23_;
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp18_ = _tmp24_;
#line 1392 "icon-view.c"
	}
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp25_ = g_strdup (_tmp18_);
#line 150 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	info = _tmp25_;
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp26_ = _data29_->machine;
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp27_ = boxes_collection_item_get_name ((BoxesCollectionItem*) _tmp26_);
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp28_ = _tmp27_;
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp29_ = info;
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp30_ = _data29_->item;
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_append (self, _tmp28_, _tmp29_, _tmp30_, &_tmp31_);
#line 151 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_->iter = _tmp31_;
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp32_ = _data29_->machine;
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp33_ = boxes_machine_get_thumbnailer (_tmp32_);
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp34_ = _tmp33_;
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp35_ = g_signal_connect_data ((GObject*) _tmp34_, "notify::thumbnail", (GCallback) ___lambda210__g_object_notify, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
#line 152 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	thumbnail_id = _tmp35_;
#line 156 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp36_ = _data29_->item;
#line 156 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp37_ = thumbnail_id;
#line 156 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp36_, "thumbnail_id", (gpointer) ((guintptr) _tmp37_), NULL);
#line 158 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp38_ = _data29_->machine;
#line 158 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp39_ = _tmp38_->config;
#line 158 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp40_ = g_signal_connect_data ((GObject*) _tmp39_, "notify::categories", (GCallback) ___lambda211__g_object_notify, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
#line 158 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	categories_id = _tmp40_;
#line 162 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp41_ = _data29_->item;
#line 162 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp42_ = categories_id;
#line 162 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp41_, "categories_id", (gpointer) ((guintptr) _tmp42_), NULL);
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp43_ = _data29_->item;
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp44_ = g_signal_connect_data ((GObject*) _tmp43_, "notify::name", (GCallback) ___lambda212__g_object_notify, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
#line 164 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	name_id = _tmp44_;
#line 169 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp45_ = _data29_->item;
#line 169 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp46_ = name_id;
#line 169 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp45_, "name_id", (gpointer) ((guintptr) _tmp46_), NULL);
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp47_ = _data29_->machine;
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp48_ = g_signal_connect_object ((GObject*) _tmp47_, "notify::info", (GCallback) _boxes_icon_view_on_machine_info_changed_g_object_notify, self, 0);
#line 171 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	info_id = _tmp48_;
#line 172 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp49_ = _data29_->item;
#line 172 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp50_ = info_id;
#line 172 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp49_, "info_id", (gpointer) ((guintptr) _tmp50_), NULL);
#line 173 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp51_ = _data29_->machine;
#line 173 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp52_ = g_signal_connect_object ((GObject*) _tmp51_, "notify::status", (GCallback) _boxes_icon_view_on_machine_info_changed_g_object_notify, self, 0);
#line 173 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	status_id = _tmp52_;
#line 174 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp53_ = _data29_->item;
#line 174 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp54_ = status_id;
#line 174 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp53_, "status_id", (gpointer) ((guintptr) _tmp54_), NULL);
#line 176 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp55_ = _data29_->iter;
#line 176 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp56_ = _data29_->machine;
#line 176 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_setup_activity (self, &_tmp55_, _tmp56_);
#line 177 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp57_ = _data29_->machine;
#line 177 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp58_ = g_signal_connect_data ((GObject*) _tmp57_, "notify::under-construction", (GCallback) ___lambda214__g_object_notify, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
#line 177 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	under_construct_id = _tmp58_;
#line 182 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp59_ = _data29_->item;
#line 182 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp60_ = under_construct_id;
#line 182 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp59_, "under_construct_id", (gpointer) ((guintptr) _tmp60_), NULL);
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp61_ = _data29_->machine;
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp62_ = g_signal_connect_data ((GObject*) _tmp61_, "notify::state", (GCallback) ___lambda215__g_object_notify, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
#line 183 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	machine_state_id = _tmp62_;
#line 188 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp63_ = _data29_->item;
#line 188 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp64_ = machine_state_id;
#line 188 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp63_, "machine_state_id", (gpointer) ((guintptr) _tmp64_), NULL);
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp65_ = _data29_->item;
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp66_ = _data29_->window;
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp67_ = boxes_ui_get_ui_state ((BoxesUI*) _tmp66_);
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp68_ = _tmp67_;
#line 190 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_ui_set_state ((BoxesUI*) _tmp65_, _tmp68_);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_free0 (info);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block29_data_unref (_data29_);
#line 121 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data29_ = NULL;
#line 1524 "icon-view.c"
}


static Block31Data* block31_data_ref (Block31Data* _data31_) {
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data31_->_ref_count_);
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data31_;
#line 1533 "icon-view.c"
}


static void block31_data_unref (void * _userdata_) {
	Block31Data* _data31_;
	_data31_ = (Block31Data*) _userdata_;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data31_->_ref_count_)) {
#line 1542 "icon-view.c"
		BoxesIconView* self;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data31_->self;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		__g_list_free__g_object_unref0_0 (_data31_->selected);
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block31Data, _data31_);
#line 1552 "icon-view.c"
	}
}


static gboolean __lambda216_ (Block31Data* _data31_, GtkTreeModel* store, GtkTreePath* path, GtkTreeIter* iter) {
	BoxesIconView* self;
	gboolean result = FALSE;
	BoxesCollectionItem* item = NULL;
	gboolean is_selected = FALSE;
	GtkTreeModel* _tmp0_;
	GtkTreeIter _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_;
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data31_->self;
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (store != NULL, FALSE);
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (path != NULL, FALSE);
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 200 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = store;
#line 200 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = *iter;
#line 200 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_get (_tmp0_, &_tmp1_, BOXES_ICON_VIEW_MODEL_COLUMNS_SELECTED, &is_selected, BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, &item, -1);
#line 203 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = is_selected;
#line 203 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp3_) {
#line 1584 "icon-view.c"
		BoxesCollectionItem* _tmp4_;
#line 203 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = item;
#line 203 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = _tmp4_ != NULL;
#line 1590 "icon-view.c"
	} else {
#line 203 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = FALSE;
#line 1594 "icon-view.c"
	}
#line 203 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_) {
#line 1598 "icon-view.c"
		BoxesCollectionItem* _tmp5_;
		BoxesCollectionItem* _tmp6_;
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = item;
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = _g_object_ref0 (_tmp5_);
#line 204 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data31_->selected = g_list_append (_data31_->selected, _tmp6_);
#line 1607 "icon-view.c"
	}
#line 206 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = FALSE;
#line 206 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 206 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1615 "icon-view.c"
}


static gboolean ___lambda216__gtk_tree_model_foreach_func (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer self) {
	gboolean result;
	result = __lambda216_ (self, model, path, iter);
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1624 "icon-view.c"
}


static GList* boxes_icon_view_real_get_selected_items (BoxesICollectionView* base) {
	BoxesIconView * self;
	GList* result = NULL;
	Block31Data* _data31_;
	GtkListStore* _tmp0_;
	GList* _tmp1_;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_ = g_slice_new0 (Block31Data);
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->_ref_count_ = 1;
#line 193 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->self = g_object_ref (self);
#line 194 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->selected = NULL;
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->store;
#line 196 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_foreach ((GtkTreeModel*) _tmp0_, ___lambda216__gtk_tree_model_foreach_func, _data31_);
#line 209 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _data31_->selected;
#line 209 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_->selected = NULL;
#line 209 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp1_;
#line 209 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block31_data_unref (_data31_);
#line 209 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data31_ = NULL;
#line 209 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1660 "icon-view.c"
}


static void boxes_icon_view_real_remove_item (BoxesICollectionView* base, BoxesCollectionItem* item) {
	BoxesIconView * self;
	BoxesCollectionItem* _tmp0_;
	GtkTreeIter* iter = NULL;
	BoxesCollectionItem* _tmp1_;
	gconstpointer _tmp2_;
	GtkTreeIter* _tmp3_;
	GtkTreeIter* _tmp4_;
	GtkListStore* _tmp5_;
	BoxesCollectionItem* _tmp6_;
	gulong name_id = 0UL;
	BoxesCollectionItem* _tmp7_;
	gconstpointer _tmp8_;
	BoxesCollectionItem* _tmp9_;
	gulong _tmp10_;
	gulong status_id = 0UL;
	BoxesCollectionItem* _tmp11_;
	gconstpointer _tmp12_;
	BoxesCollectionItem* _tmp13_;
	gulong _tmp14_;
	gulong info_id = 0UL;
	BoxesCollectionItem* _tmp15_;
	gconstpointer _tmp16_;
	BoxesCollectionItem* _tmp17_;
	gulong _tmp18_;
	gulong under_construct_id = 0UL;
	BoxesCollectionItem* _tmp19_;
	gconstpointer _tmp20_;
	BoxesCollectionItem* _tmp21_;
	gulong _tmp22_;
	gulong machine_state_id = 0UL;
	BoxesCollectionItem* _tmp23_;
	gconstpointer _tmp24_;
	gulong _tmp25_;
	BoxesCollectionItem* _tmp28_;
#line 212 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 212 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (item != NULL);
#line 213 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = item;
#line 213 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->hidden_items = g_list_remove (self->priv->hidden_items, _tmp0_);
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = item;
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = g_object_get_data ((GObject*) _tmp1_, "iter");
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = __gtk_tree_iter_dup0 ((GtkTreeIter*) _tmp2_);
#line 215 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iter = _tmp3_;
#line 216 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = iter;
#line 216 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp4_ == NULL) {
#line 217 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_debug ("icon-view.vala:217: item not in view or already removed");
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_free0 (iter);
#line 218 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 1725 "icon-view.c"
	}
#line 221 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = self->priv->store;
#line 221 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_remove (_tmp5_, iter);
#line 222 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = item;
#line 222 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp6_, "iter", NULL, g_free);
#line 224 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = item;
#line 224 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = g_object_get_data ((GObject*) _tmp7_, "name_id");
#line 224 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	name_id = (gulong) ((guintptr) _tmp8_);
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = item;
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = name_id;
#line 225 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_handler_disconnect ((GObject*) _tmp9_, _tmp10_);
#line 226 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = item;
#line 226 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp12_ = g_object_get_data ((GObject*) _tmp11_, "status_id");
#line 226 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	status_id = (gulong) ((guintptr) _tmp12_);
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = item;
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp14_ = status_id;
#line 227 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_handler_disconnect ((GObject*) _tmp13_, _tmp14_);
#line 228 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp15_ = item;
#line 228 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp16_ = g_object_get_data ((GObject*) _tmp15_, "info_id");
#line 228 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	info_id = (gulong) ((guintptr) _tmp16_);
#line 229 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp17_ = item;
#line 229 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp18_ = info_id;
#line 229 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_handler_disconnect ((GObject*) _tmp17_, _tmp18_);
#line 230 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp19_ = item;
#line 230 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp20_ = g_object_get_data ((GObject*) _tmp19_, "under_construct_id");
#line 230 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	under_construct_id = (gulong) ((guintptr) _tmp20_);
#line 231 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp21_ = item;
#line 231 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp22_ = under_construct_id;
#line 231 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_handler_disconnect ((GObject*) _tmp21_, _tmp22_);
#line 232 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp23_ = item;
#line 232 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp24_ = g_object_get_data ((GObject*) _tmp23_, "machine_state_id");
#line 232 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	machine_state_id = (gulong) ((guintptr) _tmp24_);
#line 233 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp25_ = machine_state_id;
#line 233 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp25_ != ((gulong) 0)) {
#line 1793 "icon-view.c"
		BoxesCollectionItem* _tmp26_;
		gulong _tmp27_;
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp26_ = item;
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp27_ = machine_state_id;
#line 234 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_signal_handler_disconnect ((GObject*) _tmp26_, _tmp27_);
#line 1802 "icon-view.c"
	}
#line 236 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp28_ = item;
#line 236 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if ((G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) _tmp28_) : NULL) != NULL) {
#line 1808 "icon-view.c"
		BoxesMachine* machine = NULL;
		BoxesCollectionItem* _tmp29_;
		BoxesMachine* _tmp30_;
		gulong categories_id = 0UL;
		BoxesCollectionItem* _tmp31_;
		gconstpointer _tmp32_;
		BoxesMachine* _tmp33_;
		BoxesBoxConfig* _tmp34_;
		gulong _tmp35_;
		gulong thumbnail_id = 0UL;
		BoxesCollectionItem* _tmp36_;
		gconstpointer _tmp37_;
		BoxesMachine* _tmp38_;
		BoxesMachineThumbnailer* _tmp39_;
		BoxesMachineThumbnailer* _tmp40_;
		gulong _tmp41_;
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp29_ = item;
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp30_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) _tmp29_) : NULL);
#line 237 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		machine = _tmp30_;
#line 238 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp31_ = item;
#line 238 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp32_ = g_object_get_data ((GObject*) _tmp31_, "categories_id");
#line 238 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		categories_id = (gulong) ((guintptr) _tmp32_);
#line 239 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp33_ = machine;
#line 239 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp34_ = _tmp33_->config;
#line 239 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp35_ = categories_id;
#line 239 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_signal_handler_disconnect ((GObject*) _tmp34_, _tmp35_);
#line 241 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp36_ = item;
#line 241 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp37_ = g_object_get_data ((GObject*) _tmp36_, "thumbnail_id");
#line 241 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		thumbnail_id = (gulong) ((guintptr) _tmp37_);
#line 242 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp38_ = machine;
#line 242 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp39_ = boxes_machine_get_thumbnailer (_tmp38_);
#line 242 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp40_ = _tmp39_;
#line 242 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp41_ = thumbnail_id;
#line 242 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_signal_handler_disconnect ((GObject*) _tmp40_, _tmp41_);
#line 236 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (machine);
#line 1863 "icon-view.c"
	}
#line 212 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_free0 (iter);
#line 1867 "icon-view.c"
}


static BoxesCollectionItem* boxes_icon_view_get_item_for_iter (BoxesIconView* self, GtkTreeIter* iter) {
	BoxesCollectionItem* result = NULL;
	GValue value = {0};
	GtkListStore* _tmp0_;
	GtkTreeIter _tmp1_;
	GValue _tmp2_ = {0};
	GValue _tmp3_;
	BoxesCollectionItem* _tmp4_;
#line 246 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 246 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (iter != NULL, NULL);
#line 249 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->store;
#line 249 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = *iter;
#line 249 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_get_value ((GtkTreeModel*) _tmp0_, &_tmp1_, (gint) BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, &_tmp2_);
#line 249 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
#line 249 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	value = _tmp2_;
#line 251 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = value;
#line 251 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _g_object_ref0 (g_value_get_object (&_tmp3_));
#line 251 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp4_;
#line 251 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
#line 251 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1903 "icon-view.c"
}


static BoxesCollectionItem* boxes_icon_view_get_item_for_path (BoxesIconView* self, GtkTreePath* path) {
	BoxesCollectionItem* result = NULL;
	GtkTreeIter filter_iter = {0};
	GtkTreeIter iter = {0};
	GtkTreeModelFilter* _tmp0_;
	GtkTreePath* _tmp1_;
	GtkTreeIter _tmp2_ = {0};
	GtkTreeModelFilter* _tmp3_;
	GtkTreeIter _tmp4_;
	GtkTreeIter _tmp5_ = {0};
	GtkTreeIter _tmp6_;
	BoxesCollectionItem* _tmp7_;
#line 255 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 255 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (path != NULL, NULL);
#line 258 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->model_filter;
#line 258 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = path;
#line 258 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_get_iter ((GtkTreeModel*) _tmp0_, &_tmp2_, _tmp1_);
#line 258 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	filter_iter = _tmp2_;
#line 259 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = self->priv->model_filter;
#line 259 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = filter_iter;
#line 259 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_filter_convert_iter_to_child_iter (_tmp3_, &_tmp5_, &_tmp4_);
#line 259 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iter = _tmp5_;
#line 261 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = iter;
#line 261 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = boxes_icon_view_get_item_for_iter (self, &_tmp6_);
#line 261 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp7_;
#line 261 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1947 "icon-view.c"
}


static gboolean boxes_icon_view_model_visible (BoxesIconView* self, GtkTreeModel* model, GtkTreeIter* iter) {
	gboolean result = FALSE;
	BoxesCollectionItem* item = NULL;
	GtkTreeIter _tmp0_;
	BoxesCollectionItem* _tmp1_;
	BoxesCollectionItem* _tmp2_;
	BoxesCollectionFilter* _tmp3_;
	BoxesCollectionFilter* _tmp4_;
	BoxesCollectionItem* _tmp5_;
	gboolean _tmp6_;
#line 264 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 264 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (model != NULL, FALSE);
#line 264 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 265 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = *iter;
#line 265 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_icon_view_get_item_for_iter (self, &_tmp0_);
#line 265 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp1_;
#line 266 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = item;
#line 266 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ == NULL) {
#line 267 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 267 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item);
#line 267 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 1983 "icon-view.c"
	}
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = boxes_icollection_view_get_filter ((BoxesICollectionView*) self);
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _tmp3_;
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = item;
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = boxes_collection_filter_filter (_tmp4_, _tmp5_);
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp6_;
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 269 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 1999 "icon-view.c"
}


static void boxes_icon_view_real_activate_first_item (BoxesICollectionView* base) {
	BoxesIconView * self;
	GtkTreeModelFilter* _tmp0_;
	gint _tmp1_;
#line 272 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 273 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->model_filter;
#line 273 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = gtk_tree_model_iter_n_children ((GtkTreeModel*) _tmp0_, NULL);
#line 273 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp1_ == 1) {
#line 2015 "icon-view.c"
		GtkTreePath* path = NULL;
		GtkTreePath* _tmp2_;
		GtkWidget* _tmp3_;
		GtkTreePath* _tmp4_;
#line 274 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = gtk_tree_path_new_from_string ("0");
#line 274 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		path = _tmp2_;
#line 275 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp3_ = gd_main_view_get_generic_view ((GdMainView*) self);
#line 275 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = path;
#line 275 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		gtk_icon_view_item_activated (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_icon_view_get_type ()) ? ((GtkIconView*) _tmp3_) : NULL, _tmp4_);
#line 273 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_gtk_tree_path_free0 (path);
#line 2032 "icon-view.c"
	}
}


static gint __lambda217_ (BoxesIconView* self, GtkTreeModel* store, GtkTreeIter* a, GtkTreeIter* b) {
	gint result = 0;
	BoxesCollectionItem* item_a = NULL;
	BoxesCollectionItem* item_b = NULL;
	GtkTreeModel* _tmp0_;
	GtkTreeIter _tmp1_;
	GtkTreeModel* _tmp2_;
	GtkTreeIter _tmp3_;
	gboolean _tmp4_ = FALSE;
	BoxesCollectionItem* _tmp5_;
	BoxesCollectionItem* _tmp7_;
	BoxesCollectionItem* _tmp8_;
	gint _tmp9_;
#line 290 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (store != NULL, 0);
#line 290 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (a != NULL, 0);
#line 290 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (b != NULL, 0);
#line 293 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = store;
#line 293 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = *a;
#line 293 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_get (_tmp0_, &_tmp1_, BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, &item_a, -1);
#line 294 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = store;
#line 294 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = *b;
#line 294 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_get (_tmp2_, &_tmp3_, BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, &item_b, -1);
#line 296 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = item_a;
#line 296 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp5_ == NULL) {
#line 296 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = TRUE;
#line 2074 "icon-view.c"
	} else {
		BoxesCollectionItem* _tmp6_;
#line 296 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = item_b;
#line 296 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = _tmp6_ == NULL;
#line 2081 "icon-view.c"
	}
#line 296 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp4_) {
#line 297 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = 0;
#line 297 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item_b);
#line 297 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item_a);
#line 297 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 2093 "icon-view.c"
	}
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = item_a;
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = item_b;
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = boxes_collection_item_compare (_tmp7_, _tmp8_);
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp9_;
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item_b);
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item_a);
#line 299 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2109 "icon-view.c"
}


static gint ___lambda217__gtk_tree_iter_compare_func (GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, gpointer self) {
	gint result;
	result = __lambda217_ ((BoxesIconView*) self, model, a, b);
#line 290 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2118 "icon-view.c"
}


static void __lambda218_ (BoxesIconView* self) {
	BoxesApp* _tmp0_;
#line 303 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_app_app;
#line 303 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp0_, "selected-items");
#line 2128 "icon-view.c"
}


static void ___lambda218__gtk_tree_model_row_deleted (GtkTreeModel* _sender, GtkTreePath* path, gpointer self) {
#line 302 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda218_ ((BoxesIconView*) self);
#line 2135 "icon-view.c"
}


static void __lambda219_ (BoxesIconView* self) {
	BoxesApp* _tmp0_;
#line 306 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_app_app;
#line 306 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp0_, "selected-items");
#line 2145 "icon-view.c"
}


static void ___lambda219__gtk_tree_model_row_inserted (GtkTreeModel* _sender, GtkTreePath* path, GtkTreeIter* iter, gpointer self) {
#line 305 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda219_ ((BoxesIconView*) self);
#line 2152 "icon-view.c"
}


static gboolean _boxes_icon_view_model_visible_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
	gboolean result;
	result = boxes_icon_view_model_visible ((BoxesIconView*) self, model, iter);
#line 310 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2161 "icon-view.c"
}


static void __lambda220_ (BoxesIconView* self, GdMainView* view, const gchar* id, GtkTreePath* path) {
	BoxesCollectionItem* item = NULL;
	GtkTreePath* _tmp0_;
	BoxesCollectionItem* _tmp1_;
	gboolean _tmp2_ = FALSE;
	BoxesCollectionItem* _tmp3_;
	BoxesAppWindow* _tmp7_;
	BoxesCollectionItem* _tmp8_;
#line 314 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (view != NULL);
#line 314 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (id != NULL);
#line 314 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (path != NULL);
#line 315 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = path;
#line 315 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_icon_view_get_item_for_path (self, _tmp0_);
#line 315 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp1_;
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = item;
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, BOXES_TYPE_LIBVIRT_MACHINE)) {
#line 2189 "icon-view.c"
		BoxesCollectionItem* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = item;
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = boxes_libvirt_machine_get_importing (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, BOXES_TYPE_LIBVIRT_MACHINE) ? ((BoxesLibvirtMachine*) _tmp4_) : NULL);
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = _tmp5_;
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = _tmp6_;
#line 2201 "icon-view.c"
	} else {
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp2_ = FALSE;
#line 2205 "icon-view.c"
	}
#line 316 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_) {
#line 317 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item);
#line 317 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 2213 "icon-view.c"
	}
#line 318 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = self->priv->window;
#line 318 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = item;
#line 318 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_app_window_select_item (_tmp7_, _tmp8_);
#line 314 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 2223 "icon-view.c"
}


static void ___lambda220__gd_main_view_item_activated (GdMainView* _sender, const gchar* object, GtkTreePath* p0, gpointer self) {
#line 314 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda220_ ((BoxesIconView*) self, _sender, object, p0);
#line 2230 "icon-view.c"
}


static void __lambda221_ (BoxesIconView* self) {
	BoxesApp* _tmp0_;
#line 321 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 322 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_app_app;
#line 322 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp0_, "selected-items");
#line 2242 "icon-view.c"
}


static void ___lambda221__gd_main_view_view_selection_changed (GdMainView* _sender, gpointer self) {
#line 320 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__lambda221_ ((BoxesIconView*) self);
#line 2249 "icon-view.c"
}


static void boxes_icon_view_setup_view (BoxesIconView* self) {
	GtkListStore* _tmp0_;
	GtkListStore* _tmp1_;
	GtkListStore* _tmp2_;
	GtkListStore* _tmp3_;
	GtkListStore* _tmp4_;
	GtkListStore* _tmp5_;
	GtkTreeModelFilter* _tmp6_;
	GtkTreeModelFilter* _tmp7_;
	GtkTreeModelFilter* _tmp8_;
#line 279 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 280 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = gtk_list_store_new ((gint) BOXES_ICON_VIEW_MODEL_COLUMNS_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, gdk_pixbuf_get_type (), G_TYPE_LONG, G_TYPE_BOOLEAN, G_TYPE_UINT, BOXES_TYPE_COLLECTION_ITEM, -1);
#line 280 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->store);
#line 280 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->store = _tmp0_;
#line 290 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = self->priv->store;
#line 290 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_sortable_set_default_sort_func ((GtkTreeSortable*) _tmp1_, ___lambda217__gtk_tree_iter_compare_func, g_object_ref (self), g_object_unref);
#line 301 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = self->priv->store;
#line 301 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) _tmp2_, GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
#line 302 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = self->priv->store;
#line 302 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GtkTreeModel*) _tmp3_, "row-deleted", (GCallback) ___lambda218__gtk_tree_model_row_deleted, self, 0);
#line 305 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = self->priv->store;
#line 305 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GtkTreeModel*) _tmp4_, "row-inserted", (GCallback) ___lambda219__gtk_tree_model_row_inserted, self, 0);
#line 309 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = self->priv->store;
#line 309 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = (GtkTreeModelFilter*) gtk_tree_model_filter_new ((GtkTreeModel*) _tmp5_, NULL);
#line 309 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->model_filter);
#line 309 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->model_filter = _tmp6_;
#line 310 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = self->priv->model_filter;
#line 310 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_filter_set_visible_func (_tmp7_, _boxes_icon_view_model_visible_gtk_tree_model_filter_visible_func, g_object_ref (self), g_object_unref);
#line 312 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gd_main_view_set_view_type ((GdMainView*) self, GD_MAIN_VIEW_ICON);
#line 313 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = self->priv->model_filter;
#line 313 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gd_main_view_set_model ((GdMainView*) self, (GtkTreeModel*) _tmp8_);
#line 314 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GdMainView*) self, "item-activated", (GCallback) ___lambda220__gd_main_view_item_activated, self, 0);
#line 320 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GdMainView*) self, "view-selection-changed", (GCallback) ___lambda221__gd_main_view_view_selection_changed, self, 0);
#line 325 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_show_all ((GtkWidget*) self);
#line 2311 "icon-view.c"
}


static Block32Data* block32_data_ref (Block32Data* _data32_) {
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data32_->_ref_count_);
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data32_;
#line 2320 "icon-view.c"
}


static void block32_data_unref (void * _userdata_) {
	Block32Data* _data32_;
	_data32_ = (Block32Data*) _userdata_;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data32_->_ref_count_)) {
#line 2329 "icon-view.c"
		BoxesIconView* self;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data32_->self;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block32Data, _data32_);
#line 2337 "icon-view.c"
	}
}


static gboolean __lambda222_ (Block32Data* _data32_, GtkTreeModel* filter_model, GtkTreePath* filter_path, GtkTreeIter* filter_iter) {
	BoxesIconView* self;
	gboolean result = FALSE;
	GtkTreeIter iter = {0};
	GtkTreeModelFilter* _tmp0_;
	GtkTreeIter _tmp1_;
	GtkTreeIter _tmp2_ = {0};
	gboolean selected = FALSE;
	BoxesSelectionCriteria _tmp3_;
	GtkListStore* _tmp13_;
	GtkTreeIter _tmp14_;
	gboolean _tmp15_;
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data32_->self;
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (filter_model != NULL, FALSE);
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (filter_path != NULL, FALSE);
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (filter_iter != NULL, FALSE);
#line 333 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->model_filter;
#line 333 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = *filter_iter;
#line 333 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_filter_convert_iter_to_child_iter (_tmp0_, &_tmp2_, &_tmp1_);
#line 333 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iter = _tmp2_;
#line 335 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _data32_->criteria;
#line 335 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	switch (_tmp3_) {
#line 2374 "icon-view.c"
		default:
#line 335 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_SELECTION_CRITERIA_ALL:
#line 2378 "icon-view.c"
		{
#line 338 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			selected = TRUE;
#line 339 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			break;
#line 2384 "icon-view.c"
		}
#line 335 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_SELECTION_CRITERIA_NONE:
#line 2388 "icon-view.c"
		{
#line 341 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			selected = FALSE;
#line 342 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			break;
#line 2394 "icon-view.c"
		}
#line 335 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_SELECTION_CRITERIA_RUNNING:
#line 2398 "icon-view.c"
		{
			BoxesCollectionItem* item = NULL;
			GtkListStore* _tmp4_;
			GtkTreeIter _tmp5_;
			gboolean _tmp6_ = FALSE;
			gboolean _tmp7_ = FALSE;
			BoxesCollectionItem* _tmp8_;
#line 345 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_tmp4_ = self->priv->store;
#line 345 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_tmp5_ = iter;
#line 345 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			gtk_tree_model_get ((GtkTreeModel*) _tmp4_, &_tmp5_, BOXES_ICON_VIEW_MODEL_COLUMNS_ITEM, &item, -1);
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_tmp8_ = item;
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			if (_tmp8_ != NULL) {
#line 2416 "icon-view.c"
				BoxesCollectionItem* _tmp9_;
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp9_ = item;
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, BOXES_TYPE_MACHINE);
#line 2422 "icon-view.c"
			} else {
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp7_ = FALSE;
#line 2426 "icon-view.c"
			}
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			if (_tmp7_) {
#line 2430 "icon-view.c"
				BoxesCollectionItem* _tmp10_;
				gboolean _tmp11_;
				gboolean _tmp12_;
#line 347 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp10_ = item;
#line 347 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp11_ = boxes_machine_get_is_running (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) _tmp10_) : NULL);
#line 347 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp12_ = _tmp11_;
#line 347 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp6_ = _tmp12_;
#line 2442 "icon-view.c"
			} else {
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
				_tmp6_ = FALSE;
#line 2446 "icon-view.c"
			}
#line 346 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			selected = _tmp6_;
#line 348 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_g_object_unref0 (item);
#line 348 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			break;
#line 2454 "icon-view.c"
		}
	}
#line 350 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = self->priv->store;
#line 350 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp14_ = iter;
#line 350 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp15_ = selected;
#line 350 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp13_, &_tmp14_, BOXES_ICON_VIEW_MODEL_COLUMNS_SELECTED, _tmp15_, -1);
#line 351 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = FALSE;
#line 351 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2469 "icon-view.c"
}


static gboolean ___lambda222__gtk_tree_model_foreach_func (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer self) {
	gboolean result;
	result = __lambda222_ (self, model, path, iter);
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2478 "icon-view.c"
}


static void boxes_icon_view_real_select_by_criteria (BoxesICollectionView* base, BoxesSelectionCriteria criteria) {
	BoxesIconView * self;
	Block32Data* _data32_;
	BoxesSelectionCriteria _tmp0_;
	BoxesAppWindow* _tmp1_;
	GtkTreeModelFilter* _tmp2_;
	BoxesApp* _tmp3_;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data32_ = g_slice_new0 (Block32Data);
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data32_->_ref_count_ = 1;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data32_->self = g_object_ref (self);
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = criteria;
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data32_->criteria = _tmp0_;
#line 329 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = self->priv->window;
#line 329 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_app_window_set_selection_mode (_tmp1_, TRUE);
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = self->priv->model_filter;
#line 331 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_foreach ((GtkTreeModel*) _tmp2_, ___lambda222__gtk_tree_model_foreach_func, _data32_);
#line 353 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 354 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = boxes_app_app;
#line 354 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify ((GObject*) _tmp3_, "selected-items");
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block32_data_unref (_data32_);
#line 328 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data32_ = NULL;
#line 2519 "icon-view.c"
}


static Block33Data* block33_data_ref (Block33Data* _data33_) {
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_atomic_int_inc (&_data33_->_ref_count_);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return _data33_;
#line 2528 "icon-view.c"
}


static void block33_data_unref (void * _userdata_) {
	Block33Data* _data33_;
	_data33_ = (Block33Data*) _userdata_;
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (g_atomic_int_dec_and_test (&_data33_->_ref_count_)) {
#line 2537 "icon-view.c"
		BoxesIconView* self;
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self = _data33_->self;
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (_data33_->machine);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_slice_free (Block33Data, _data33_);
#line 2547 "icon-view.c"
	}
}


static gboolean __lambda213_ (Block33Data* _data33_) {
	BoxesIconView* self;
	gboolean result = FALSE;
	GtkTreeIter* machine_iter = NULL;
	BoxesMachine* _tmp0_;
	gconstpointer _tmp1_;
	GtkTreeIter* _tmp2_;
	GtkTreeIter* _tmp3_;
	GtkListStore* _tmp4_;
	GtkTreeIter* _tmp5_;
	gint _tmp6_;
	GtkTreeIter _tmp7_;
#line 381 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = _data33_->self;
#line 382 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = _data33_->machine;
#line 382 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = g_object_get_data ((GObject*) _tmp0_, "iter");
#line 382 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = __gtk_tree_iter_dup0 ((GtkTreeIter*) _tmp1_);
#line 382 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	machine_iter = _tmp2_;
#line 383 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = machine_iter;
#line 383 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp3_ == NULL) {
#line 384 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 384 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_free0 (machine_iter);
#line 384 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 2584 "icon-view.c"
	}
#line 386 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = self->priv->store;
#line 386 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = machine_iter;
#line 386 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _data33_->pulse;
#line 386 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_->pulse = _tmp6_ + 1;
#line 386 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = *_tmp5_;
#line 386 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp4_, &_tmp7_, BOXES_ICON_VIEW_MODEL_COLUMNS_PULSE, _tmp6_, -1);
#line 387 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 389 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = TRUE;
#line 389 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_free0 (machine_iter);
#line 389 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2606 "icon-view.c"
}


static gboolean ___lambda213__gsource_func (gpointer self) {
	gboolean result;
	result = __lambda213_ (self);
#line 381 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2615 "icon-view.c"
}


static void boxes_icon_view_setup_activity (BoxesIconView* self, GtkTreeIter* iter, BoxesMachine* machine) {
	Block33Data* _data33_;
	BoxesMachine* _tmp0_;
	BoxesMachine* _tmp1_;
	guint activity_timeout = 0U;
	BoxesMachine* _tmp2_;
	gconstpointer _tmp3_;
	guint _tmp4_;
	BoxesMachine* _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	GtkListStore* _tmp18_;
	GtkTreeIter _tmp19_;
	gint _tmp20_;
	BoxesMachine* _tmp21_;
	BoxesMachineMachineState _tmp22_;
	BoxesMachineMachineState _tmp23_;
	guint _tmp24_;
	BoxesMachine* _tmp25_;
	guint _tmp26_;
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (iter != NULL);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (machine != NULL);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_ = g_slice_new0 (Block33Data);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_->_ref_count_ = 1;
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_->self = g_object_ref (self);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = machine;
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_data33_->machine);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_->machine = _tmp1_;
#line 358 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _data33_->machine;
#line 358 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = g_object_get_data ((GObject*) _tmp2_, "activity_timeout");
#line 358 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	activity_timeout = (guint) ((guintptr) _tmp3_);
#line 359 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = activity_timeout;
#line 359 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp4_ > ((guint) 0)) {
#line 2669 "icon-view.c"
		guint _tmp5_;
		BoxesMachine* _tmp6_;
#line 360 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp5_ = activity_timeout;
#line 360 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_source_remove (_tmp5_);
#line 361 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = _data33_->machine;
#line 361 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_set_data_full ((GObject*) _tmp6_, "activity_timeout", (gpointer) ((guintptr) ((guint) 0)), NULL);
#line 2680 "icon-view.c"
	}
#line 364 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _data33_->machine;
#line 364 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = boxes_machine_get_under_construction (_tmp7_);
#line 364 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = _tmp8_;
#line 364 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (!_tmp9_) {
#line 2690 "icon-view.c"
		GtkListStore* _tmp10_;
		GtkTreeIter _tmp11_;
		gulong machine_state_id = 0UL;
		BoxesMachine* _tmp12_;
		gconstpointer _tmp13_;
		gulong _tmp14_;
#line 365 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp10_ = self->priv->store;
#line 365 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp11_ = *iter;
#line 365 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		gtk_list_store_set (_tmp10_, &_tmp11_, BOXES_ICON_VIEW_MODEL_COLUMNS_PULSE, 0, -1);
#line 366 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp12_ = _data33_->machine;
#line 366 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp13_ = g_object_get_data ((GObject*) _tmp12_, "machine_state_id");
#line 366 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		machine_state_id = (gulong) ((guintptr) _tmp13_);
#line 367 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp14_ = machine_state_id;
#line 367 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		if (_tmp14_ != ((gulong) 0)) {
#line 2713 "icon-view.c"
			BoxesMachine* _tmp15_;
			gulong _tmp16_;
			BoxesMachine* _tmp17_;
#line 368 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_tmp15_ = _data33_->machine;
#line 368 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_tmp16_ = machine_state_id;
#line 368 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			g_signal_handler_disconnect ((GObject*) _tmp15_, _tmp16_);
#line 369 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			_tmp17_ = _data33_->machine;
#line 369 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
			g_object_set_data_full ((GObject*) _tmp17_, "machine_state_id", (gpointer) ((guintptr) ((gulong) 0)), NULL);
#line 2727 "icon-view.c"
		}
#line 372 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		block33_data_unref (_data33_);
#line 372 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data33_ = NULL;
#line 372 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 2735 "icon-view.c"
	}
#line 375 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_->pulse = 1;
#line 376 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp18_ = self->priv->store;
#line 376 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp19_ = *iter;
#line 376 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp20_ = _data33_->pulse;
#line 376 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_->pulse = _tmp20_ + 1;
#line 376 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp18_, &_tmp19_, BOXES_ICON_VIEW_MODEL_COLUMNS_PULSE, _tmp20_, -1);
#line 378 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp21_ = _data33_->machine;
#line 378 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp22_ = boxes_machine_get_state (_tmp21_);
#line 378 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp23_ = _tmp22_;
#line 378 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp23_ == BOXES_MACHINE_MACHINE_STATE_SAVED) {
#line 379 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		block33_data_unref (_data33_);
#line 379 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_data33_ = NULL;
#line 379 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return;
#line 2763 "icon-view.c"
	}
#line 381 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp24_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 150, ___lambda213__gsource_func, block33_data_ref (_data33_), block33_data_unref);
#line 381 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	activity_timeout = _tmp24_;
#line 391 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp25_ = _data33_->machine;
#line 391 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp26_ = activity_timeout;
#line 391 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_set_data_full ((GObject*) _tmp25_, "activity_timeout", (gpointer) ((guintptr) _tmp26_), NULL);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	block33_data_unref (_data33_);
#line 357 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_data33_ = NULL;
#line 2779 "icon-view.c"
}


static gboolean boxes_icon_view_on_button_press_event (BoxesIconView* self, GdkEventButton* event) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	GdkEventButton* _tmp1_;
	GdkEventType _tmp2_;
	GdMainViewGeneric* generic_view = NULL;
	GtkWidget* _tmp5_;
	GdMainViewGeneric* _tmp6_;
	GtkTreePath* path = NULL;
	GdMainViewGeneric* _tmp7_;
	GdkEventButton* _tmp8_;
	gdouble _tmp9_;
	GdkEventButton* _tmp10_;
	gdouble _tmp11_;
	GtkTreePath* _tmp12_;
	GtkTreePath* _tmp13_;
	GtkTreePath* _tmp14_;
	gboolean _tmp15_;
#line 394 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 394 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = event;
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = _tmp1_->type;
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ != GDK_BUTTON_RELEASE) {
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = TRUE;
#line 2813 "icon-view.c"
	} else {
		GdkEventButton* _tmp3_;
		guint _tmp4_;
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp3_ = event;
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp4_ = _tmp3_->button;
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = _tmp4_ != ((guint) 3);
#line 2823 "icon-view.c"
	}
#line 395 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp0_) {
#line 396 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 396 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 2831 "icon-view.c"
	}
#line 398 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = gd_main_view_get_generic_view ((GdMainView*) self);
#line 398 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, gd_main_view_generic_get_type ()) ? ((GdMainViewGeneric*) _tmp5_) : NULL);
#line 398 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	generic_view = _tmp6_;
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = generic_view;
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = event;
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = _tmp8_->x;
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = event;
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = _tmp10_->y;
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp12_ = gd_main_view_generic_get_path_at_pos (_tmp7_, (gint) _tmp9_, (gint) _tmp11_);
#line 399 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	path = _tmp12_;
#line 400 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = path;
#line 400 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp13_ == NULL) {
#line 401 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 401 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_gtk_tree_path_free0 (path);
#line 401 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (generic_view);
#line 401 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 2865 "icon-view.c"
	}
#line 403 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp14_ = path;
#line 403 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp15_ = boxes_icon_view_launch_context_popover_for_path (self, _tmp14_);
#line 403 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp15_;
#line 403 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_gtk_tree_path_free0 (path);
#line 403 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (generic_view);
#line 403 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2879 "icon-view.c"
}


static gboolean boxes_icon_view_on_key_press_event (BoxesIconView* self, GdkEventKey* event) {
	gboolean result = FALSE;
	GdkEventKey* _tmp0_;
	guint _tmp1_;
	GtkIconView* icon_view = NULL;
	GtkWidget* _tmp2_;
	GtkIconView* _tmp3_;
	GtkTreePath* path = NULL;
	GtkCellRenderer* cell = NULL;
	GtkIconView* _tmp4_;
	GtkTreePath* _tmp5_ = NULL;
	GtkCellRenderer* _tmp6_ = NULL;
	gboolean _tmp7_;
	GtkCellRenderer* _tmp8_;
	GtkTreePath* _tmp9_;
	gboolean _tmp10_;
#line 406 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 406 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 407 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = event;
#line 407 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _tmp0_->keyval;
#line 407 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp1_ != ((guint) GDK_KEY_Menu)) {
#line 408 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 408 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 2913 "icon-view.c"
	}
#line 410 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = gd_main_view_get_generic_view ((GdMainView*) self);
#line 410 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_icon_view_get_type ()) ? ((GtkIconView*) _tmp2_) : NULL);
#line 410 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	icon_view = _tmp3_;
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = icon_view;
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = gtk_icon_view_get_cursor (_tmp4_, &_tmp5_, &_tmp6_);
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_gtk_tree_path_free0 (path);
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	path = _tmp5_;
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (cell);
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = _g_object_ref0 (_tmp6_);
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	cell = _tmp8_;
#line 413 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (!_tmp7_) {
#line 414 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 414 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (cell);
#line 414 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_gtk_tree_path_free0 (path);
#line 414 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (icon_view);
#line 414 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 2947 "icon-view.c"
	}
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = path;
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = boxes_icon_view_launch_context_popover_for_path (self, _tmp9_);
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp10_;
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (cell);
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_gtk_tree_path_free0 (path);
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (icon_view);
#line 416 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 2963 "icon-view.c"
}


static gboolean boxes_icon_view_launch_context_popover_for_path (BoxesIconView* self, GtkTreePath* path) {
	gboolean result = FALSE;
	BoxesCollectionItem* item = NULL;
	GtkTreePath* _tmp0_;
	BoxesCollectionItem* _tmp1_;
	BoxesCollectionItem* _tmp2_;
	GtkIconView* icon_view = NULL;
	GtkWidget* _tmp3_;
	GtkIconView* _tmp4_;
	GdkRectangle rect = {0};
	GtkIconView* _tmp5_;
	GtkTreePath* _tmp6_;
	GdkRectangle _tmp7_ = {0};
	BoxesActionsPopover* _tmp8_;
	BoxesCollectionItem* _tmp9_;
	gint _tmp10_;
	BoxesActionsPopover* _tmp11_;
	GdkRectangle _tmp12_;
	BoxesActionsPopover* _tmp13_;
#line 419 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 419 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (path != NULL, FALSE);
#line 420 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = path;
#line 420 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = boxes_icon_view_get_item_for_path (self, _tmp0_);
#line 420 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	item = _tmp1_;
#line 421 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = item;
#line 421 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp2_ == NULL) {
#line 422 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		result = FALSE;
#line 422 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (item);
#line 422 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		return result;
#line 3006 "icon-view.c"
	}
#line 424 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = gd_main_view_get_generic_view ((GdMainView*) self);
#line 424 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_icon_view_get_type ()) ? ((GtkIconView*) _tmp3_) : NULL);
#line 424 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	icon_view = _tmp4_;
#line 426 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = icon_view;
#line 426 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = path;
#line 426 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_icon_view_get_cell_rect (_tmp5_, _tmp6_, NULL, &_tmp7_);
#line 426 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	rect = _tmp7_;
#line 428 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = self->priv->context_popover;
#line 428 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = item;
#line 428 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_actions_popover_update_for_item (_tmp8_, _tmp9_);
#line 429 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp10_ = rect.height;
#line 429 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	rect.height = _tmp10_ / 2;
#line 430 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp11_ = self->priv->context_popover;
#line 430 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp12_ = rect;
#line 430 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_popover_set_pointing_to ((GtkPopover*) _tmp11_, &_tmp12_);
#line 431 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = self->priv->context_popover;
#line 431 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_show ((GtkWidget*) _tmp13_);
#line 433 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = TRUE;
#line 433 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (icon_view);
#line 433 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (item);
#line 433 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 3050 "icon-view.c"
}


static void boxes_icon_view_on_machine_info_changed (BoxesIconView* self, GObject* object, GParamSpec* spec) {
	BoxesMachine* machine = NULL;
	GObject* _tmp0_;
	BoxesMachine* _tmp1_;
	GtkTreeIter* iter = NULL;
	BoxesMachine* _tmp2_;
	gconstpointer _tmp3_;
	GtkTreeIter* _tmp4_;
	GtkTreeIter* _tmp5_;
	const gchar* _tmp6_ = NULL;
	BoxesMachine* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* info = NULL;
	gchar* _tmp13_;
	GtkListStore* _tmp14_;
	GtkTreeIter* _tmp15_;
	GtkTreeIter _tmp16_;
#line 436 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 436 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (object != NULL);
#line 436 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (spec != NULL);
#line 437 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = object;
#line 437 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, BOXES_TYPE_MACHINE) ? ((BoxesMachine*) _tmp0_) : NULL);
#line 437 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	machine = _tmp1_;
#line 438 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = machine;
#line 438 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = g_object_get_data ((GObject*) _tmp2_, "iter");
#line 438 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = __gtk_tree_iter_dup0 ((GtkTreeIter*) _tmp3_);
#line 438 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iter = _tmp4_;
#line 439 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = iter;
#line 439 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (_tmp5_ != NULL);
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = machine;
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp8_ = boxes_machine_get_status (_tmp7_);
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp9_ = _tmp8_;
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = _tmp9_;
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (_tmp6_ == NULL) {
#line 3106 "icon-view.c"
		BoxesMachine* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp10_ = machine;
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp11_ = boxes_machine_get_info (_tmp10_);
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp12_ = _tmp11_;
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp6_ = _tmp12_;
#line 3118 "icon-view.c"
	}
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp13_ = g_strdup (_tmp6_);
#line 441 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	info = _tmp13_;
#line 442 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp14_ = self->priv->store;
#line 442 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp15_ = iter;
#line 442 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp16_ = *_tmp15_;
#line 442 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_list_store_set (_tmp14_, &_tmp16_, BOXES_ICON_VIEW_MODEL_COLUMNS_INFO, info, -1);
#line 443 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_widget_queue_draw ((GtkWidget*) self);
#line 436 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_free0 (info);
#line 436 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_free0 (iter);
#line 436 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (machine);
#line 3140 "icon-view.c"
}


BoxesIconView* boxes_icon_view_construct (GType object_type) {
	BoxesIconView * self = NULL;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) g_object_new (object_type, NULL);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return self;
#line 3150 "icon-view.c"
}


BoxesIconView* boxes_icon_view_new (void) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return boxes_icon_view_construct (BOXES_TYPE_ICON_VIEW);
#line 3157 "icon-view.c"
}


static BoxesUIState boxes_icon_view_real_get_previous_ui_state (BoxesUI* base) {
	BoxesUIState result;
	BoxesIconView* self;
	BoxesUIState _tmp0_;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_previous_ui_state;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 3173 "icon-view.c"
}


static void boxes_icon_view_real_set_previous_ui_state (BoxesUI* base, BoxesUIState value) {
	BoxesIconView* self;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (boxes_icon_view_real_get_previous_ui_state (base) != value) {
#line 3183 "icon-view.c"
		BoxesUIState _tmp0_;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = value;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->_previous_ui_state = _tmp0_;
#line 10 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_PREVIOUS_UI_STATE]);
#line 3191 "icon-view.c"
	}
}


static BoxesUIState boxes_icon_view_real_get_ui_state (BoxesUI* base) {
	BoxesUIState result;
	BoxesIconView* self;
	BoxesUIState _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_ui_state;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 3208 "icon-view.c"
}


static void boxes_icon_view_real_set_ui_state (BoxesUI* base, BoxesUIState value) {
	BoxesIconView* self;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (boxes_icon_view_real_get_ui_state (base) != value) {
#line 3218 "icon-view.c"
		BoxesUIState _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = value;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->_ui_state = _tmp0_;
#line 11 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_UI_STATE]);
#line 3226 "icon-view.c"
	}
}


BoxesCategory* boxes_icon_view_get_category (BoxesIconView* self) {
	BoxesCategory* result;
	BoxesCategory* _tmp0_;
#line 17 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 17 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_category;
#line 17 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 17 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 3242 "icon-view.c"
}


void boxes_icon_view_set_category (BoxesIconView* self, BoxesCategory* value) {
	BoxesCategory* _tmp0_;
	BoxesCategory* _tmp1_;
#line 18 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_return_if_fail (self != NULL);
#line 19 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = value;
#line 19 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 19 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->_category);
#line 19 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->_category = _tmp1_;
#line 18 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_CATEGORY]);
#line 3261 "icon-view.c"
}


static BoxesCollectionFilter* boxes_icon_view_real_get_filter (BoxesICollectionView* base) {
	BoxesCollectionFilter* result;
	BoxesIconView* self;
	BoxesCollectionFilter* _tmp0_;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->_filter;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	result = _tmp0_;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return result;
#line 3277 "icon-view.c"
}


static void boxes_icon_view_real_set_filter (BoxesICollectionView* base, BoxesCollectionFilter* value) {
	BoxesIconView* self;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = (BoxesIconView*) base;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	if (boxes_icon_view_real_get_filter (base) != value) {
#line 3287 "icon-view.c"
		BoxesCollectionFilter* _tmp0_;
		BoxesCollectionFilter* _tmp1_;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp0_ = value;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_tmp1_ = _g_object_ref0 (_tmp0_);
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		_g_object_unref0 (self->priv->_filter);
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		self->priv->_filter = _tmp1_;
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_object_notify_by_pspec ((GObject *) self, boxes_icon_view_properties[BOXES_ICON_VIEW_FILTER]);
#line 3300 "icon-view.c"
	}
}


static void _boxes_icon_view_ui_state_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 60 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_ui_state_changed ((BoxesIconView*) self);
#line 3308 "icon-view.c"
}


static void _boxes_icon_view___lambda223_ (BoxesIconView* self) {
	GtkTreeModelFilter* _tmp0_;
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->model_filter;
#line 62 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_filter_refilter (_tmp0_);
#line 3318 "icon-view.c"
}


static void __boxes_icon_view___lambda223__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 61 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_boxes_icon_view___lambda223_ ((BoxesIconView*) self);
#line 3325 "icon-view.c"
}


static void _boxes_icon_view___lambda224_ (BoxesIconView* self) {
	GtkTreeModelFilter* _tmp0_;
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = self->priv->model_filter;
#line 65 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	gtk_tree_model_filter_refilter (_tmp0_);
#line 3335 "icon-view.c"
}


static void __boxes_icon_view___lambda224__boxes_collection_filter_filter_func_changed (BoxesCollectionFilter* _sender, gpointer self) {
#line 64 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_boxes_icon_view___lambda224_ ((BoxesIconView*) self);
#line 3342 "icon-view.c"
}


static GObject * boxes_icon_view_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	BoxesIconView * self;
	BoxesCategory* _tmp0_;
	BoxesCategory* _tmp1_;
	BoxesCollectionFilter* _tmp2_;
	BoxesCollectionFilter* _tmp3_;
	BoxesCollectionFilter* _tmp4_;
	BoxesCollectionFilter* _tmp5_;
	BoxesCollectionFilter* _tmp6_;
	BoxesCollectionFilter* _tmp7_;
#line 55 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	parent_class = G_OBJECT_CLASS (boxes_icon_view_parent_class);
#line 55 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 55 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp0_ = boxes_category_new (_ ("New and Recent"), BOXES_CATEGORY_KIND_NEW);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp1_ = _tmp0_;
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_set_category (self, _tmp1_);
#line 56 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_tmp1_);
#line 57 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__g_list_free__g_object_unref0_0 (self->priv->hidden_items);
#line 57 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv->hidden_items = NULL;
#line 58 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp2_ = boxes_collection_filter_new ();
#line 58 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp3_ = _tmp2_;
#line 58 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icollection_view_set_filter ((BoxesICollectionView*) self, _tmp3_);
#line 58 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (_tmp3_);
#line 59 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_setup_view (self);
#line 60 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GObject*) self, "notify::ui-state", (GCallback) _boxes_icon_view_ui_state_changed_g_object_notify, self, 0);
#line 61 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp4_ = boxes_icollection_view_get_filter ((BoxesICollectionView*) self);
#line 61 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp5_ = _tmp4_;
#line 61 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object ((GObject*) _tmp5_, "notify::text", (GCallback) __boxes_icon_view___lambda223__g_object_notify, self, 0);
#line 64 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp6_ = boxes_icollection_view_get_filter ((BoxesICollectionView*) self);
#line 64 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_tmp7_ = _tmp6_;
#line 64 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_signal_connect_object (_tmp7_, "filter-func-changed", (GCallback) __boxes_icon_view___lambda224__boxes_collection_filter_filter_func_changed, self, 0);
#line 55 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	return obj;
#line 3402 "icon-view.c"
}


static void boxes_icon_view_class_init (BoxesIconViewClass * klass) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_parent_class = g_type_class_peek_parent (klass);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_type_class_add_private (klass, sizeof (BoxesIconViewPrivate));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_icon_view_get_property;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_boxes_icon_view_set_property;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->constructor = boxes_icon_view_constructor;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (klass)->finalize = boxes_icon_view_finalize;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_PREVIOUS_UI_STATE, boxes_icon_view_properties[BOXES_ICON_VIEW_PREVIOUS_UI_STATE] = g_param_spec_enum ("previous-ui-state", "previous-ui-state", "previous-ui-state", BOXES_TYPE_UI_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_UI_STATE, boxes_icon_view_properties[BOXES_ICON_VIEW_UI_STATE] = g_param_spec_enum ("ui-state", "ui-state", "ui-state", BOXES_TYPE_UI_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_CATEGORY, boxes_icon_view_properties[BOXES_ICON_VIEW_CATEGORY] = g_param_spec_object ("category", "category", "category", BOXES_TYPE_CATEGORY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_ICON_VIEW_FILTER, boxes_icon_view_properties[BOXES_ICON_VIEW_FILTER] = g_param_spec_object ("filter", "filter", "filter", BOXES_TYPE_COLLECTION_FILTER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 3427 "icon-view.c"
}


static void boxes_icon_view_boxes_icollection_view_interface_init (BoxesICollectionViewIface * iface) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_boxes_icollection_view_parent_iface = g_type_interface_peek_parent (iface);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->add_item = (void (*) (BoxesICollectionView *, BoxesCollectionItem*)) boxes_icon_view_real_add_item;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_selected_items = (GList* (*) (BoxesICollectionView *)) boxes_icon_view_real_get_selected_items;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->remove_item = (void (*) (BoxesICollectionView *, BoxesCollectionItem*)) boxes_icon_view_real_remove_item;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->activate_first_item = (void (*) (BoxesICollectionView *)) boxes_icon_view_real_activate_first_item;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->select_by_criteria = (void (*) (BoxesICollectionView *, BoxesSelectionCriteria)) boxes_icon_view_real_select_by_criteria;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_filter = boxes_icon_view_real_get_filter;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->set_filter = boxes_icon_view_real_set_filter;
#line 3448 "icon-view.c"
}


static void boxes_icon_view_boxes_ui_interface_init (BoxesUIIface * iface) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	boxes_icon_view_boxes_ui_parent_iface = g_type_interface_peek_parent (iface);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_previous_ui_state = boxes_icon_view_real_get_previous_ui_state;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->set_previous_ui_state = boxes_icon_view_real_set_previous_ui_state;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->get_ui_state = boxes_icon_view_real_get_ui_state;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	iface->set_ui_state = boxes_icon_view_real_set_ui_state;
#line 3463 "icon-view.c"
}


static void boxes_icon_view_instance_init (BoxesIconView * self) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self->priv = BOXES_ICON_VIEW_GET_PRIVATE (self);
#line 3470 "icon-view.c"
}


static void boxes_icon_view_finalize (GObject * obj) {
	BoxesIconView * self;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 13 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->window);
#line 15 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->_category);
#line 35 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->store);
#line 36 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->model_filter);
#line 37 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->context_popover);
#line 38 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	__g_list_free__g_object_unref0_0 (self->priv->hidden_items);
#line 40 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	_g_object_unref0 (self->priv->_filter);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	G_OBJECT_CLASS (boxes_icon_view_parent_class)->finalize (obj);
#line 3494 "icon-view.c"
}


GType boxes_icon_view_get_type (void) {
	static volatile gsize boxes_icon_view_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_icon_view_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesIconViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_icon_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesIconView), 0, (GInstanceInitFunc) boxes_icon_view_instance_init, NULL };
		static const GInterfaceInfo boxes_icollection_view_info = { (GInterfaceInitFunc) boxes_icon_view_boxes_icollection_view_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		static const GInterfaceInfo boxes_ui_info = { (GInterfaceInitFunc) boxes_icon_view_boxes_ui_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType boxes_icon_view_type_id;
		boxes_icon_view_type_id = g_type_register_static (gd_main_view_get_type (), "BoxesIconView", &g_define_type_info, 0);
		g_type_add_interface_static (boxes_icon_view_type_id, BOXES_TYPE_ICOLLECTION_VIEW, &boxes_icollection_view_info);
		g_type_add_interface_static (boxes_icon_view_type_id, BOXES_TYPE_UI, &boxes_ui_info);
		g_once_init_leave (&boxes_icon_view_type_id__volatile, boxes_icon_view_type_id);
	}
	return boxes_icon_view_type_id__volatile;
}


static void _vala_boxes_icon_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesIconView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	switch (property_id) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_PREVIOUS_UI_STATE:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_enum (value, boxes_ui_get_previous_ui_state ((BoxesUI*) self));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_UI_STATE:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_enum (value, boxes_ui_get_ui_state ((BoxesUI*) self));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_CATEGORY:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_object (value, boxes_icon_view_get_category (self));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_FILTER:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		g_value_set_object (value, boxes_icollection_view_get_filter ((BoxesICollectionView*) self));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 3543 "icon-view.c"
		default:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 3549 "icon-view.c"
	}
}


static void _vala_boxes_icon_view_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	BoxesIconView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, BOXES_TYPE_ICON_VIEW, BoxesIconView);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
	switch (property_id) {
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_PREVIOUS_UI_STATE:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_ui_set_previous_ui_state ((BoxesUI*) self, g_value_get_enum (value));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_UI_STATE:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_ui_set_ui_state ((BoxesUI*) self, g_value_get_enum (value));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_CATEGORY:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icon_view_set_category (self, g_value_get_object (value));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		case BOXES_ICON_VIEW_FILTER:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		boxes_icollection_view_set_filter ((BoxesICollectionView*) self, g_value_get_object (value));
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 3583 "icon-view.c"
		default:
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 9 "/home/fborges/checkout/gnome-boxes/src/icon-view.vala"
		break;
#line 3589 "icon-view.c"
	}
}



