/* gitg-commit-sidebar.c generated by valac 0.34.7, the Vala compiler
 * generated from gitg-commit-sidebar.vala, do not modify */

/*
 * This file is part of gitg
 *
 * Copyright (C) 2014 - Jesse van den Kieboom
 *
 * gitg is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * gitg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with gitg. If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include "libgitg/libgitg.h"
#include <gtk/gtk.h>
#include <gdk/gdk.h>


#define GITG_COMMIT_TYPE_SIDEBAR (gitg_commit_sidebar_get_type ())
#define GITG_COMMIT_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_COMMIT_TYPE_SIDEBAR, GitgCommitSidebar))
#define GITG_COMMIT_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_COMMIT_TYPE_SIDEBAR, GitgCommitSidebarClass))
#define GITG_COMMIT_IS_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_COMMIT_TYPE_SIDEBAR))
#define GITG_COMMIT_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_COMMIT_TYPE_SIDEBAR))
#define GITG_COMMIT_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_COMMIT_TYPE_SIDEBAR, GitgCommitSidebarClass))

typedef struct _GitgCommitSidebar GitgCommitSidebar;
typedef struct _GitgCommitSidebarClass GitgCommitSidebarClass;
typedef struct _GitgCommitSidebarPrivate GitgCommitSidebarPrivate;

#define GITG_COMMIT_SIDEBAR_ITEM_TYPE_TYPE (gitg_commit_sidebar_item_type_get_type ())
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define GITG_COMMIT_SIDEBAR_TYPE_ITEM (gitg_commit_sidebar_item_get_type ())
#define GITG_COMMIT_SIDEBAR_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_COMMIT_SIDEBAR_TYPE_ITEM, GitgCommitSidebarItem))
#define GITG_COMMIT_SIDEBAR_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_COMMIT_SIDEBAR_TYPE_ITEM, GitgCommitSidebarItemClass))
#define GITG_COMMIT_SIDEBAR_IS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_COMMIT_SIDEBAR_TYPE_ITEM))
#define GITG_COMMIT_SIDEBAR_IS_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_COMMIT_SIDEBAR_TYPE_ITEM))
#define GITG_COMMIT_SIDEBAR_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_COMMIT_SIDEBAR_TYPE_ITEM, GitgCommitSidebarItemClass))

typedef struct _GitgCommitSidebarItem GitgCommitSidebarItem;
typedef struct _GitgCommitSidebarItemClass GitgCommitSidebarItemClass;
typedef struct _Block3Data Block3Data;
typedef struct _GitgCommitSidebarItemPrivate GitgCommitSidebarItemPrivate;

struct _GitgCommitSidebar {
	GitgSidebar parent_instance;
	GitgCommitSidebarPrivate * priv;
};

struct _GitgCommitSidebarClass {
	GitgSidebarClass parent_class;
};

typedef enum  {
	GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE,
	GITG_COMMIT_SIDEBAR_ITEM_TYPE_STAGED,
	GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNSTAGED,
	GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNTRACKED,
	GITG_COMMIT_SIDEBAR_ITEM_TYPE_SUBMODULE
} GitgCommitSidebarItemType;

struct _Block3Data {
	int _ref_count_;
	GitgCommitSidebar* self;
	GitgCommitSidebarItem** ret;
	gint ret_length1;
	gint _ret_size_;
	GitgCommitSidebarItemType type;
};

struct _GitgCommitSidebarItem {
	GObject parent_instance;
	GitgCommitSidebarItemPrivate * priv;
};

struct _GitgCommitSidebarItemClass {
	GObjectClass parent_class;
};

struct _GitgCommitSidebarItemPrivate {
	GitgStageStatusItem* d_item;
	GitgCommitSidebarItemType d_type;
};


static gpointer gitg_commit_sidebar_parent_class = NULL;
static gpointer gitg_commit_sidebar_item_parent_class = NULL;
static GitgSidebarItemIface* gitg_commit_sidebar_item_gitg_sidebar_item_parent_iface = NULL;

GType gitg_commit_sidebar_get_type (void) G_GNUC_CONST;
enum  {
	GITG_COMMIT_SIDEBAR_DUMMY_PROPERTY
};
GType gitg_commit_sidebar_item_type_get_type (void) G_GNUC_CONST;
static GitgCommitSidebarItemType gitg_commit_sidebar_get_item_type (GitgCommitSidebar* self, GitgSidebarItem* item);
GType gitg_commit_sidebar_item_get_type (void) G_GNUC_CONST;
GitgCommitSidebarItemType gitg_commit_sidebar_item_get_stage_type (GitgCommitSidebarItem* self);
static GitgCommitSidebarItemType gitg_commit_sidebar_selected_type (GitgCommitSidebar* self);
static gboolean gitg_commit_sidebar_real_select_function (GitgSidebar* base, GtkTreeSelection* sel, GtkTreeModel* model, GtkTreePath* path, gboolean cursel);
static void gitg_commit_sidebar_real_selection_changed (GitgSidebar* base, GtkTreeSelection* sel);
GitgCommitSidebarItem** gitg_commit_sidebar_items_of_type (GitgCommitSidebar* self, GitgCommitSidebarItemType type, int* result_length1);
static Block3Data* block3_data_ref (Block3Data* _data3_);
static void block3_data_unref (void * _userdata_);
static gboolean __lambda11_ (Block3Data* _data3_, GtkTreeModel* m, GtkTreePath* path, GtkTreeIter* iter);
static void _vala_array_add1 (GitgCommitSidebarItem*** array, int* length, int* size, GitgCommitSidebarItem* value);
static gboolean ___lambda11__gtk_tree_model_foreach_func (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer self);
static GitgCommitSidebarItem** _vala_array_dup1 (GitgCommitSidebarItem** self, int length);
GitgCommitSidebar* gitg_commit_sidebar_new (void);
GitgCommitSidebar* gitg_commit_sidebar_construct (GType object_type);
static void g_cclosure_user_marshal_VOID__POINTER_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static GObject * gitg_commit_sidebar_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
#define GITG_COMMIT_SIDEBAR_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GITG_COMMIT_SIDEBAR_TYPE_ITEM, GitgCommitSidebarItemPrivate))
enum  {
	GITG_COMMIT_SIDEBAR_ITEM_DUMMY_PROPERTY,
	GITG_COMMIT_SIDEBAR_ITEM_ITEM,
	GITG_COMMIT_SIDEBAR_ITEM_TEXT,
	GITG_COMMIT_SIDEBAR_ITEM_STAGE_TYPE,
	GITG_COMMIT_SIDEBAR_ITEM_ICON_NAME
};
GitgCommitSidebarItem* gitg_commit_sidebar_item_new (GitgStageStatusItem* item, GitgCommitSidebarItemType type);
GitgCommitSidebarItem* gitg_commit_sidebar_item_construct (GType object_type, GitgStageStatusItem* item, GitgCommitSidebarItemType type);
GitgStageStatusItem* gitg_commit_sidebar_item_get_item (GitgCommitSidebarItem* self);
static void gitg_commit_sidebar_item_finalize (GObject* obj);
static void _vala_gitg_commit_sidebar_item_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static gpointer _g_object_ref0 (gpointer self) {
#line 114 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return self ? g_object_ref (self) : NULL;
#line 144 "gitg-commit-sidebar.c"
}


static GitgCommitSidebarItemType gitg_commit_sidebar_get_item_type (GitgCommitSidebar* self, GitgSidebarItem* item) {
	GitgCommitSidebarItemType result = 0;
	GitgSidebarStoreSidebarHeader* header = NULL;
	GitgSidebarItem* _tmp0_ = NULL;
	GitgSidebarStoreSidebarHeader* _tmp1_ = NULL;
	GitgSidebarStoreSidebarHeader* _tmp2_ = NULL;
	GitgCommitSidebarItem* sitem = NULL;
	GitgSidebarItem* _tmp6_ = NULL;
	GitgCommitSidebarItem* _tmp7_ = NULL;
	GitgCommitSidebarItem* _tmp8_ = NULL;
#line 112 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 112 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (item != NULL, 0);
#line 114 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = item;
#line 114 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER) ? ((GitgSidebarStoreSidebarHeader*) _tmp0_) : NULL);
#line 114 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	header = _tmp1_;
#line 116 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = header;
#line 116 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp2_ != NULL) {
#line 172 "gitg-commit-sidebar.c"
		GitgSidebarStoreSidebarHeader* _tmp3_ = NULL;
		guint _tmp4_ = 0U;
		guint _tmp5_ = 0U;
#line 118 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp3_ = header;
#line 118 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp4_ = gitg_sidebar_store_sidebar_header_get_id (_tmp3_);
#line 118 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp5_ = _tmp4_;
#line 118 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = (GitgCommitSidebarItemType) _tmp5_;
#line 118 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (header);
#line 118 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 188 "gitg-commit-sidebar.c"
	}
#line 121 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp6_ = item;
#line 121 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, GITG_COMMIT_SIDEBAR_TYPE_ITEM) ? ((GitgCommitSidebarItem*) _tmp6_) : NULL);
#line 121 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	sitem = _tmp7_;
#line 123 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp8_ = sitem;
#line 123 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp8_ != NULL) {
#line 200 "gitg-commit-sidebar.c"
		GitgCommitSidebarItem* _tmp9_ = NULL;
		GitgCommitSidebarItemType _tmp10_ = 0;
		GitgCommitSidebarItemType _tmp11_ = 0;
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp9_ = sitem;
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp10_ = gitg_commit_sidebar_item_get_stage_type (_tmp9_);
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp11_ = _tmp10_;
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = _tmp11_;
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (sitem);
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (header);
#line 125 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 218 "gitg-commit-sidebar.c"
	}
#line 128 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE;
#line 128 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (sitem);
#line 128 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (header);
#line 128 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 228 "gitg-commit-sidebar.c"
}


static GitgCommitSidebarItemType gitg_commit_sidebar_selected_type (GitgCommitSidebar* self) {
	GitgCommitSidebarItemType result = 0;
	gint _tmp0_ = 0;
	gpointer* _tmp1_ = NULL;
#line 131 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = gitg_sidebar_get_selected_items ((GitgSidebar*) self, GITG_TYPE_SIDEBAR_ITEM, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, &_tmp0_);
#line 240 "gitg-commit-sidebar.c"
	{
		GitgSidebarItem** item_collection = NULL;
		gint item_collection_length1 = 0;
		gint _item_collection_size_ = 0;
		gint item_it = 0;
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		item_collection = _tmp1_;
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		item_collection_length1 = _tmp0_;
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		for (item_it = 0; item_it < _tmp0_; item_it = item_it + 1) {
#line 252 "gitg-commit-sidebar.c"
			GitgSidebarItem* _tmp2_ = NULL;
			GitgSidebarItem* item = NULL;
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_tmp2_ = _g_object_ref0 (item_collection[item_it]);
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			item = _tmp2_;
#line 259 "gitg-commit-sidebar.c"
			{
				GitgCommitSidebarItemType tp = 0;
				GitgSidebarItem* _tmp3_ = NULL;
				GitgCommitSidebarItemType _tmp4_ = 0;
				GitgCommitSidebarItemType _tmp5_ = 0;
#line 135 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
				_tmp3_ = item;
#line 135 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
				_tmp4_ = gitg_commit_sidebar_get_item_type (self, _tmp3_);
#line 135 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
				tp = _tmp4_;
#line 137 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
				_tmp5_ = tp;
#line 137 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
				if (_tmp5_ != GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE) {
#line 139 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
					result = tp;
#line 139 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
					_g_object_unref0 (item);
#line 139 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
					item_collection = (_vala_array_free (item_collection, item_collection_length1, (GDestroyNotify) g_object_unref), NULL);
#line 139 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
					return result;
#line 283 "gitg-commit-sidebar.c"
				}
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
				_g_object_unref0 (item);
#line 287 "gitg-commit-sidebar.c"
			}
		}
#line 133 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		item_collection = (_vala_array_free (item_collection, item_collection_length1, (GDestroyNotify) g_object_unref), NULL);
#line 292 "gitg-commit-sidebar.c"
	}
#line 143 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE;
#line 143 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 298 "gitg-commit-sidebar.c"
}


static gboolean gitg_commit_sidebar_real_select_function (GitgSidebar* base, GtkTreeSelection* sel, GtkTreeModel* model, GtkTreePath* path, gboolean cursel) {
	GitgCommitSidebar * self;
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	GtkTreeIter iter = {0};
	GtkTreeModel* _tmp1_ = NULL;
	GtkTreePath* _tmp2_ = NULL;
	GtkTreeIter _tmp3_ = {0};
	GitgSidebarHint hint = 0;
	GitgSidebarStore* m = NULL;
	GtkTreeModel* _tmp4_ = NULL;
	GitgSidebarStore* _tmp5_ = NULL;
	GitgSidebarStore* _tmp6_ = NULL;
	GtkTreeIter _tmp7_ = {0};
	GitgSidebarHint _tmp8_ = 0;
	GitgSidebarItem* item = NULL;
	GitgSidebarStore* _tmp9_ = NULL;
	GtkTreeIter _tmp10_ = {0};
	GitgSidebarItem* _tmp11_ = NULL;
	GitgSidebarStoreSidebarHeader* header = NULL;
	GitgSidebarItem* _tmp12_ = NULL;
	GitgSidebarStoreSidebarHeader* _tmp13_ = NULL;
	GitgSidebarStoreSidebarHeader* _tmp14_ = NULL;
	GitgCommitSidebarItemType seltp = 0;
	GitgCommitSidebarItemType _tmp21_ = 0;
	GitgCommitSidebarItemType _tmp22_ = 0;
	GitgCommitSidebarItemType _tmp23_ = 0;
	GitgCommitSidebarItemType tp = 0;
	GitgSidebarItem* _tmp24_ = NULL;
	GitgCommitSidebarItemType _tmp25_ = 0;
	GitgCommitSidebarItemType _tmp26_ = 0;
	GitgCommitSidebarItemType _tmp27_ = 0;
#line 146 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = (GitgCommitSidebar*) base;
#line 146 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (sel != NULL, FALSE);
#line 146 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (model != NULL, FALSE);
#line 146 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (path != NULL, FALSE);
#line 151 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = cursel;
#line 151 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp0_) {
#line 153 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = TRUE;
#line 153 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 350 "gitg-commit-sidebar.c"
	}
#line 157 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = model;
#line 157 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = path;
#line 157 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_tree_model_get_iter (_tmp1_, &_tmp3_, _tmp2_);
#line 157 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	iter = _tmp3_;
#line 161 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp4_ = model;
#line 161 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, GITG_TYPE_SIDEBAR_STORE) ? ((GitgSidebarStore*) _tmp4_) : NULL);
#line 161 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	m = _tmp5_;
#line 162 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp6_ = m;
#line 162 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp7_ = iter;
#line 162 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_tree_model_get ((GtkTreeModel*) _tmp6_, &_tmp7_, GITG_SIDEBAR_COLUMN_HINT, &hint, -1);
#line 164 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp8_ = hint;
#line 164 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp8_ == GITG_SIDEBAR_HINT_DUMMY) {
#line 166 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = FALSE;
#line 166 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (m);
#line 166 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 382 "gitg-commit-sidebar.c"
	}
#line 169 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp9_ = m;
#line 169 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp10_ = iter;
#line 169 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp11_ = gitg_sidebar_store_item_for_iter (_tmp9_, &_tmp10_);
#line 169 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	item = _tmp11_;
#line 172 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp12_ = item;
#line 172 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp13_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, GITG_SIDEBAR_STORE_TYPE_SIDEBAR_HEADER) ? ((GitgSidebarStoreSidebarHeader*) _tmp12_) : NULL);
#line 172 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	header = _tmp13_;
#line 174 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp14_ = header;
#line 174 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp14_ != NULL) {
#line 402 "gitg-commit-sidebar.c"
		GitgCommitSidebarItemType id = 0;
		GitgSidebarStoreSidebarHeader* _tmp15_ = NULL;
		guint _tmp16_ = 0U;
		guint _tmp17_ = 0U;
		gboolean _tmp18_ = FALSE;
		GitgCommitSidebarItemType _tmp19_ = 0;
#line 176 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp15_ = header;
#line 176 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp16_ = gitg_sidebar_store_sidebar_header_get_id (_tmp15_);
#line 176 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp17_ = _tmp16_;
#line 176 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		id = (GitgCommitSidebarItemType) _tmp17_;
#line 178 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp19_ = id;
#line 178 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		if (_tmp19_ == GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNTRACKED) {
#line 178 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_tmp18_ = TRUE;
#line 423 "gitg-commit-sidebar.c"
		} else {
			GitgCommitSidebarItemType _tmp20_ = 0;
#line 178 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_tmp20_ = id;
#line 178 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_tmp18_ = _tmp20_ == GITG_COMMIT_SIDEBAR_ITEM_TYPE_SUBMODULE;
#line 430 "gitg-commit-sidebar.c"
		}
#line 178 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		if (_tmp18_) {
#line 180 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			result = FALSE;
#line 180 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_g_object_unref0 (header);
#line 180 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_g_object_unref0 (item);
#line 180 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			_g_object_unref0 (m);
#line 180 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
			return result;
#line 444 "gitg-commit-sidebar.c"
		}
	}
#line 184 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp21_ = gitg_commit_sidebar_selected_type (self);
#line 184 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	seltp = _tmp21_;
#line 186 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp22_ = seltp;
#line 186 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp22_ == GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE) {
#line 188 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = TRUE;
#line 188 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (header);
#line 188 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (item);
#line 188 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (m);
#line 188 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 465 "gitg-commit-sidebar.c"
	}
#line 192 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp23_ = seltp;
#line 192 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp23_ == GITG_COMMIT_SIDEBAR_ITEM_TYPE_SUBMODULE) {
#line 194 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = FALSE;
#line 194 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (header);
#line 194 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (item);
#line 194 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (m);
#line 194 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 481 "gitg-commit-sidebar.c"
	}
#line 197 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp24_ = item;
#line 197 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp25_ = gitg_commit_sidebar_get_item_type (self, _tmp24_);
#line 197 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	tp = _tmp25_;
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp26_ = tp;
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp27_ = seltp;
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = _tmp26_ == _tmp27_;
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (header);
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (item);
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (m);
#line 198 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 503 "gitg-commit-sidebar.c"
}


static void gitg_commit_sidebar_real_selection_changed (GitgSidebar* base, GtkTreeSelection* sel) {
	GitgCommitSidebar * self;
	GitgSidebarStore* _tmp0_ = NULL;
	GitgSidebarStore* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	GitgSidebarItem** items = NULL;
	gint _tmp4_ = 0;
	gpointer* _tmp5_ = NULL;
	gint items_length1 = 0;
	gint _items_size_ = 0;
	GitgSidebarItem** _tmp6_ = NULL;
	gint _tmp6__length1 = 0;
#line 201 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = (GitgCommitSidebar*) base;
#line 201 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_if_fail (sel != NULL);
#line 203 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = gitg_sidebar_get_model ((GitgSidebar*) self);
#line 203 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = _tmp0_;
#line 203 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = gitg_sidebar_store_get_clearing (_tmp1_);
#line 203 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp3_ = _tmp2_;
#line 203 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp3_) {
#line 205 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return;
#line 536 "gitg-commit-sidebar.c"
	}
#line 208 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp5_ = gitg_sidebar_get_selected_items ((GitgSidebar*) self, GITG_TYPE_SIDEBAR_ITEM, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, &_tmp4_);
#line 208 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	items = _tmp5_;
#line 208 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	items_length1 = _tmp4_;
#line 208 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_items_size_ = items_length1;
#line 210 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp6_ = items;
#line 210 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp6__length1 = items_length1;
#line 210 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp6__length1 == 0) {
#line 212 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_signal_emit_by_name ((GitgSidebar*) self, "deselected");
#line 554 "gitg-commit-sidebar.c"
	} else {
		GitgSidebarItem** _tmp7_ = NULL;
		gint _tmp7__length1 = 0;
#line 216 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp7_ = items;
#line 216 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp7__length1 = items_length1;
#line 216 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_signal_emit_by_name (self, "selected-items-changed", _tmp7_, _tmp7__length1);
#line 564 "gitg-commit-sidebar.c"
	}
#line 201 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	items = (_vala_array_free (items, items_length1, (GDestroyNotify) g_object_unref), NULL);
#line 568 "gitg-commit-sidebar.c"
}


static Block3Data* block3_data_ref (Block3Data* _data3_) {
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_atomic_int_inc (&_data3_->_ref_count_);
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return _data3_;
#line 577 "gitg-commit-sidebar.c"
}


static void block3_data_unref (void * _userdata_) {
	Block3Data* _data3_;
	_data3_ = (Block3Data*) _userdata_;
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
#line 586 "gitg-commit-sidebar.c"
		GitgCommitSidebar* self;
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		self = _data3_->self;
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_data3_->ret = (_vala_array_free (_data3_->ret, _data3_->ret_length1, (GDestroyNotify) g_object_unref), NULL);
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (self);
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_slice_free (Block3Data, _data3_);
#line 596 "gitg-commit-sidebar.c"
	}
}


static void _vala_array_add1 (GitgCommitSidebarItem*** array, int* length, int* size, GitgCommitSidebarItem* value) {
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if ((*length) == (*size)) {
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		*array = g_renew (GitgCommitSidebarItem*, *array, (*size) + 1);
#line 608 "gitg-commit-sidebar.c"
	}
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	(*array)[(*length)++] = value;
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	(*array)[*length] = NULL;
#line 614 "gitg-commit-sidebar.c"
}


static gboolean __lambda11_ (Block3Data* _data3_, GtkTreeModel* m, GtkTreePath* path, GtkTreeIter* iter) {
	GitgCommitSidebar* self;
	gboolean result = FALSE;
	GitgSidebarItem* item = NULL;
	GitgSidebarStore* _tmp0_ = NULL;
	GitgSidebarStore* _tmp1_ = NULL;
	GtkTreeIter _tmp2_ = {0};
	GitgSidebarItem* _tmp3_ = NULL;
	GitgSidebarItem* _tmp4_ = NULL;
	GitgCommitSidebarItem* sitem = NULL;
	GitgSidebarItem* _tmp5_ = NULL;
	GitgCommitSidebarItem* _tmp6_ = NULL;
	gboolean _tmp7_ = FALSE;
	GitgCommitSidebarItem* _tmp8_ = NULL;
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = _data3_->self;
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (m != NULL, FALSE);
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (path != NULL, FALSE);
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 225 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = gitg_sidebar_get_model ((GitgSidebar*) self);
#line 225 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = _tmp0_;
#line 225 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = *iter;
#line 225 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp3_ = gitg_sidebar_store_item_for_iter (_tmp1_, &_tmp2_);
#line 225 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	item = _tmp3_;
#line 227 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp4_ = item;
#line 227 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp4_ == NULL) {
#line 229 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result = FALSE;
#line 229 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_g_object_unref0 (item);
#line 229 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		return result;
#line 660 "gitg-commit-sidebar.c"
	}
#line 232 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp5_ = item;
#line 232 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, GITG_COMMIT_SIDEBAR_TYPE_ITEM) ? ((GitgCommitSidebarItem*) _tmp5_) : NULL);
#line 232 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	sitem = _tmp6_;
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp8_ = sitem;
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp8_ != NULL) {
#line 672 "gitg-commit-sidebar.c"
		GitgCommitSidebarItem* _tmp9_ = NULL;
		GitgCommitSidebarItemType _tmp10_ = 0;
		GitgCommitSidebarItemType _tmp11_ = 0;
		GitgCommitSidebarItemType _tmp12_ = 0;
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp9_ = sitem;
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp10_ = gitg_commit_sidebar_item_get_stage_type (_tmp9_);
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp11_ = _tmp10_;
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp12_ = _data3_->type;
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp7_ = _tmp11_ == _tmp12_;
#line 687 "gitg-commit-sidebar.c"
	} else {
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp7_ = FALSE;
#line 691 "gitg-commit-sidebar.c"
	}
#line 234 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (_tmp7_) {
#line 695 "gitg-commit-sidebar.c"
		GitgCommitSidebarItem* _tmp13_ = NULL;
		GitgCommitSidebarItem* _tmp14_ = NULL;
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp13_ = sitem;
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp14_ = _g_object_ref0 (_tmp13_);
#line 236 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_vala_array_add1 (&_data3_->ret, &_data3_->ret_length1, &_data3_->_ret_size_, _tmp14_);
#line 704 "gitg-commit-sidebar.c"
	}
#line 239 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = FALSE;
#line 239 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (sitem);
#line 239 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (item);
#line 239 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 714 "gitg-commit-sidebar.c"
}


static gboolean ___lambda11__gtk_tree_model_foreach_func (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer self) {
	gboolean result;
	result = __lambda11_ (self, model, path, iter);
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 723 "gitg-commit-sidebar.c"
}


static GitgCommitSidebarItem** _vala_array_dup1 (GitgCommitSidebarItem** self, int length) {
	GitgCommitSidebarItem** result;
	int i;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = g_new0 (GitgCommitSidebarItem*, length + 1);
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	for (i = 0; i < length; i++) {
#line 734 "gitg-commit-sidebar.c"
		GitgCommitSidebarItem* _tmp0_ = NULL;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		_tmp0_ = _g_object_ref0 (self[i]);
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		result[i] = _tmp0_;
#line 740 "gitg-commit-sidebar.c"
	}
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 744 "gitg-commit-sidebar.c"
}


GitgCommitSidebarItem** gitg_commit_sidebar_items_of_type (GitgCommitSidebar* self, GitgCommitSidebarItemType type, int* result_length1) {
	GitgCommitSidebarItem** result = NULL;
	Block3Data* _data3_;
	GitgCommitSidebarItemType _tmp0_ = 0;
	GitgCommitSidebarItem** _tmp1_ = NULL;
	GitgSidebarStore* _tmp2_ = NULL;
	GitgSidebarStore* _tmp3_ = NULL;
	GitgCommitSidebarItem** _tmp4_ = NULL;
	gint _tmp4__length1 = 0;
	GitgCommitSidebarItem** _tmp5_ = NULL;
	gint _tmp5__length1 = 0;
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_ = g_slice_new0 (Block3Data);
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_->_ref_count_ = 1;
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_->self = g_object_ref (self);
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = type;
#line 220 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_->type = _tmp0_;
#line 222 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = g_new0 (GitgCommitSidebarItem*, 0 + 1);
#line 222 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_->ret = _tmp1_;
#line 222 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_->ret_length1 = 0;
#line 222 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_->_ret_size_ = _data3_->ret_length1;
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = gitg_sidebar_get_model ((GitgSidebar*) self);
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp3_ = _tmp2_;
#line 224 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_tree_model_foreach ((GtkTreeModel*) _tmp3_, ___lambda11__gtk_tree_model_foreach_func, _data3_);
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp4_ = (_data3_->ret != NULL) ? _vala_array_dup1 (_data3_->ret, _data3_->ret_length1) : ((gpointer) _data3_->ret);
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp4__length1 = _data3_->ret_length1;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp5_ = _tmp4_;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp5__length1 = _tmp4__length1;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (result_length1) {
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		*result_length1 = _tmp5__length1;
#line 797 "gitg-commit-sidebar.c"
	}
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = _tmp5_;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	block3_data_unref (_data3_);
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_data3_ = NULL;
#line 242 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 807 "gitg-commit-sidebar.c"
}


GitgCommitSidebar* gitg_commit_sidebar_construct (GType object_type) {
	GitgCommitSidebar * self = NULL;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = (GitgCommitSidebar*) gitg_sidebar_construct (object_type);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return self;
#line 817 "gitg-commit-sidebar.c"
}


GitgCommitSidebar* gitg_commit_sidebar_new (void) {
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return gitg_commit_sidebar_construct (GITG_COMMIT_TYPE_SIDEBAR);
#line 824 "gitg-commit-sidebar.c"
}


static void g_cclosure_user_marshal_VOID__POINTER_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__POINTER_INT) (gpointer data1, gpointer arg_1, gint arg_2, gpointer data2);
	register GMarshalFunc_VOID__POINTER_INT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_if_fail (n_param_values == 3);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		data1 = closure->data;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		data2 = param_values->data[0].v_pointer;
#line 843 "gitg-commit-sidebar.c"
	} else {
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		data1 = param_values->data[0].v_pointer;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		data2 = closure->data;
#line 849 "gitg-commit-sidebar.c"
	}
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	callback = (GMarshalFunc_VOID__POINTER_INT) (marshal_data ? marshal_data : cc->callback);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	callback (data1, g_value_get_pointer (param_values + 1), g_value_get_int (param_values + 2), data2);
#line 855 "gitg-commit-sidebar.c"
}


static GObject * gitg_commit_sidebar_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	GitgCommitSidebar * self;
	GtkBindingSet* binding_set = NULL;
	GObjectClass* _tmp0_ = NULL;
	GtkBindingSet* _tmp1_ = NULL;
	GtkBindingSet* _tmp2_ = NULL;
	GtkBindingSet* _tmp3_ = NULL;
	GtkBindingSet* _tmp4_ = NULL;
	GtkBindingSet* _tmp5_ = NULL;
	GtkTreeSelection* sel = NULL;
	GtkTreeSelection* _tmp6_ = NULL;
	GtkTreeSelection* _tmp7_ = NULL;
	GtkTreeSelection* _tmp8_ = NULL;
#line 80 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	parent_class = G_OBJECT_CLASS (gitg_commit_sidebar_parent_class);
#line 80 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 80 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_COMMIT_TYPE_SIDEBAR, GitgCommitSidebar);
#line 82 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = G_OBJECT_GET_CLASS ((GObject*) self);
#line 82 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = gtk_binding_set_by_class (_tmp0_);
#line 82 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	binding_set = _tmp1_;
#line 84 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = binding_set;
#line 84 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_binding_entry_add_signal (_tmp2_, (guint) GDK_KEY_s, GDK_CONTROL_MASK, "stage-selection", (guint) 0, NULL);
#line 90 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp3_ = binding_set;
#line 90 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_binding_entry_add_signal (_tmp3_, (guint) GDK_KEY_u, GDK_CONTROL_MASK, "unstage-selection", (guint) 0, NULL);
#line 96 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp4_ = binding_set;
#line 96 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_binding_entry_add_signal (_tmp4_, (guint) GDK_KEY_d, GDK_CONTROL_MASK, "discard-selection", (guint) 0, NULL);
#line 102 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp5_ = binding_set;
#line 102 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_binding_entry_add_signal (_tmp5_, (guint) GDK_KEY_e, GDK_CONTROL_MASK, "edit-selection", (guint) 0, NULL);
#line 108 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp6_ = gtk_tree_view_get_selection ((GtkTreeView*) self);
#line 108 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp7_ = _g_object_ref0 (_tmp6_);
#line 108 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	sel = _tmp7_;
#line 109 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp8_ = sel;
#line 109 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gtk_tree_selection_set_mode (_tmp8_, GTK_SELECTION_MULTIPLE);
#line 80 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (sel);
#line 80 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return obj;
#line 916 "gitg-commit-sidebar.c"
}


GType gitg_commit_sidebar_item_type_get_type (void) {
	static volatile gsize gitg_commit_sidebar_item_type_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_commit_sidebar_item_type_type_id__volatile)) {
		static const GEnumValue values[] = {{GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE, "GITG_COMMIT_SIDEBAR_ITEM_TYPE_NONE", "none"}, {GITG_COMMIT_SIDEBAR_ITEM_TYPE_STAGED, "GITG_COMMIT_SIDEBAR_ITEM_TYPE_STAGED", "staged"}, {GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNSTAGED, "GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNSTAGED", "unstaged"}, {GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNTRACKED, "GITG_COMMIT_SIDEBAR_ITEM_TYPE_UNTRACKED", "untracked"}, {GITG_COMMIT_SIDEBAR_ITEM_TYPE_SUBMODULE, "GITG_COMMIT_SIDEBAR_ITEM_TYPE_SUBMODULE", "submodule"}, {0, NULL, NULL}};
		GType gitg_commit_sidebar_item_type_type_id;
		gitg_commit_sidebar_item_type_type_id = g_enum_register_static ("GitgCommitSidebarItemType", values);
		g_once_init_leave (&gitg_commit_sidebar_item_type_type_id__volatile, gitg_commit_sidebar_item_type_type_id);
	}
	return gitg_commit_sidebar_item_type_type_id__volatile;
}


GitgCommitSidebarItem* gitg_commit_sidebar_item_construct (GType object_type, GitgStageStatusItem* item, GitgCommitSidebarItemType type) {
	GitgCommitSidebarItem * self = NULL;
	GitgStageStatusItem* _tmp0_ = NULL;
	GitgStageStatusItem* _tmp1_ = NULL;
	GitgCommitSidebarItemType _tmp2_ = 0;
#line 53 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (item != NULL, NULL);
#line 53 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = (GitgCommitSidebarItem*) g_object_new (object_type, NULL);
#line 55 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = item;
#line 55 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 55 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (self->priv->d_item);
#line 55 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self->priv->d_item = _tmp1_;
#line 56 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = type;
#line 56 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self->priv->d_type = _tmp2_;
#line 53 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return self;
#line 955 "gitg-commit-sidebar.c"
}


GitgCommitSidebarItem* gitg_commit_sidebar_item_new (GitgStageStatusItem* item, GitgCommitSidebarItemType type) {
#line 53 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return gitg_commit_sidebar_item_construct (GITG_COMMIT_SIDEBAR_TYPE_ITEM, item, type);
#line 962 "gitg-commit-sidebar.c"
}


GitgStageStatusItem* gitg_commit_sidebar_item_get_item (GitgCommitSidebarItem* self) {
	GitgStageStatusItem* result;
	GitgStageStatusItem* _tmp0_ = NULL;
#line 61 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 61 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = self->priv->d_item;
#line 61 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = _tmp0_;
#line 61 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 977 "gitg-commit-sidebar.c"
}


static gchar* gitg_commit_sidebar_item_real_get_text (GitgSidebarItem* base) {
	gchar* result;
	GitgCommitSidebarItem* self;
	GitgStageStatusItem* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
#line 66 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = (GitgCommitSidebarItem*) base;
#line 66 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = self->priv->d_item;
#line 66 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = gitg_stage_status_item_get_path (_tmp0_);
#line 66 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = _tmp1_;
#line 66 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = _tmp2_;
#line 66 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 999 "gitg-commit-sidebar.c"
}


GitgCommitSidebarItemType gitg_commit_sidebar_item_get_stage_type (GitgCommitSidebarItem* self) {
	GitgCommitSidebarItemType result;
	GitgCommitSidebarItemType _tmp0_ = 0;
#line 71 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 71 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = self->priv->d_type;
#line 71 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = _tmp0_;
#line 71 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 1014 "gitg-commit-sidebar.c"
}


static gchar* gitg_commit_sidebar_item_real_get_icon_name (GitgSidebarItem* base) {
	gchar* result;
	GitgCommitSidebarItem* self;
	GitgStageStatusItem* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
#line 76 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = (GitgCommitSidebarItem*) base;
#line 76 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp0_ = self->priv->d_item;
#line 76 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp1_ = gitg_stage_status_item_get_icon_name (_tmp0_);
#line 76 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_tmp2_ = _tmp1_;
#line 76 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	result = _tmp2_;
#line 76 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	return result;
#line 1036 "gitg-commit-sidebar.c"
}


static void gitg_commit_sidebar_item_class_init (GitgCommitSidebarItemClass * klass) {
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gitg_commit_sidebar_item_parent_class = g_type_class_peek_parent (klass);
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_type_class_add_private (klass, sizeof (GitgCommitSidebarItemPrivate));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_gitg_commit_sidebar_item_get_property;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	G_OBJECT_CLASS (klass)->finalize = gitg_commit_sidebar_item_finalize;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_COMMIT_SIDEBAR_ITEM_ITEM, g_param_spec_object ("item", "item", "item", GITG_TYPE_STAGE_STATUS_ITEM, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_COMMIT_SIDEBAR_ITEM_TEXT, g_param_spec_string ("text", "text", "text", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_COMMIT_SIDEBAR_ITEM_STAGE_TYPE, g_param_spec_enum ("stage-type", "stage-type", "stage-type", GITG_COMMIT_SIDEBAR_ITEM_TYPE_TYPE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_COMMIT_SIDEBAR_ITEM_ICON_NAME, g_param_spec_string ("icon-name", "icon-name", "icon-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 1057 "gitg-commit-sidebar.c"
}


static void gitg_commit_sidebar_item_gitg_sidebar_item_interface_init (GitgSidebarItemIface * iface) {
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gitg_commit_sidebar_item_gitg_sidebar_item_parent_iface = g_type_interface_peek_parent (iface);
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	iface->get_text = gitg_commit_sidebar_item_real_get_text;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	iface->get_icon_name = gitg_commit_sidebar_item_real_get_icon_name;
#line 1068 "gitg-commit-sidebar.c"
}


static void gitg_commit_sidebar_item_instance_init (GitgCommitSidebarItem * self) {
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self->priv = GITG_COMMIT_SIDEBAR_ITEM_GET_PRIVATE (self);
#line 1075 "gitg-commit-sidebar.c"
}


static void gitg_commit_sidebar_item_finalize (GObject* obj) {
	GitgCommitSidebarItem * self;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_COMMIT_SIDEBAR_TYPE_ITEM, GitgCommitSidebarItem);
#line 50 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	_g_object_unref0 (self->priv->d_item);
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	G_OBJECT_CLASS (gitg_commit_sidebar_item_parent_class)->finalize (obj);
#line 1087 "gitg-commit-sidebar.c"
}


GType gitg_commit_sidebar_item_get_type (void) {
	static volatile gsize gitg_commit_sidebar_item_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_commit_sidebar_item_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgCommitSidebarItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_commit_sidebar_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgCommitSidebarItem), 0, (GInstanceInitFunc) gitg_commit_sidebar_item_instance_init, NULL };
		static const GInterfaceInfo gitg_sidebar_item_info = { (GInterfaceInitFunc) gitg_commit_sidebar_item_gitg_sidebar_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType gitg_commit_sidebar_item_type_id;
		gitg_commit_sidebar_item_type_id = g_type_register_static (G_TYPE_OBJECT, "GitgCommitSidebarItem", &g_define_type_info, 0);
		g_type_add_interface_static (gitg_commit_sidebar_item_type_id, GITG_TYPE_SIDEBAR_ITEM, &gitg_sidebar_item_info);
		g_once_init_leave (&gitg_commit_sidebar_item_type_id__volatile, gitg_commit_sidebar_item_type_id);
	}
	return gitg_commit_sidebar_item_type_id__volatile;
}


static void _vala_gitg_commit_sidebar_item_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	GitgCommitSidebarItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GITG_COMMIT_SIDEBAR_TYPE_ITEM, GitgCommitSidebarItem);
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	switch (property_id) {
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		case GITG_COMMIT_SIDEBAR_ITEM_ITEM:
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_value_set_object (value, gitg_commit_sidebar_item_get_item (self));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		break;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		case GITG_COMMIT_SIDEBAR_ITEM_TEXT:
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_value_take_string (value, gitg_sidebar_item_get_text ((GitgSidebarItem*) self));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		break;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		case GITG_COMMIT_SIDEBAR_ITEM_STAGE_TYPE:
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_value_set_enum (value, gitg_commit_sidebar_item_get_stage_type (self));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		break;
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		case GITG_COMMIT_SIDEBAR_ITEM_ICON_NAME:
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		g_value_take_string (value, gitg_sidebar_item_get_icon_name ((GitgSidebarItem*) self));
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		break;
#line 1134 "gitg-commit-sidebar.c"
		default:
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 39 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
		break;
#line 1140 "gitg-commit-sidebar.c"
	}
}


static void gitg_commit_sidebar_class_init (GitgCommitSidebarClass * klass) {
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	gitg_commit_sidebar_parent_class = g_type_class_peek_parent (klass);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	((GitgSidebarClass *) klass)->select_function = (gboolean (*)(GitgSidebar*, GtkTreeSelection*, GtkTreeModel*, GtkTreePath*, gboolean)) gitg_commit_sidebar_real_select_function;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	((GitgSidebarClass *) klass)->selection_changed = (void (*)(GitgSidebar*, GtkTreeSelection*)) gitg_commit_sidebar_real_selection_changed;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	G_OBJECT_CLASS (klass)->constructor = gitg_commit_sidebar_constructor;
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_signal_new ("stage_selection", GITG_COMMIT_TYPE_SIDEBAR, G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_signal_new ("unstage_selection", GITG_COMMIT_TYPE_SIDEBAR, G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_signal_new ("discard_selection", GITG_COMMIT_TYPE_SIDEBAR, G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_signal_new ("edit_selection", GITG_COMMIT_TYPE_SIDEBAR, G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 23 "/home/jesse/dev/gitg/gitg/commit/gitg-commit-sidebar.vala"
	g_signal_new ("selected_items_changed", GITG_COMMIT_TYPE_SIDEBAR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__POINTER_INT, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_INT);
#line 1164 "gitg-commit-sidebar.c"
}


static void gitg_commit_sidebar_instance_init (GitgCommitSidebar * self) {
}


GType gitg_commit_sidebar_get_type (void) {
	static volatile gsize gitg_commit_sidebar_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_commit_sidebar_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgCommitSidebarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_commit_sidebar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgCommitSidebar), 0, (GInstanceInitFunc) gitg_commit_sidebar_instance_init, NULL };
		GType gitg_commit_sidebar_type_id;
		gitg_commit_sidebar_type_id = g_type_register_static (GITG_TYPE_SIDEBAR, "GitgCommitSidebar", &g_define_type_info, 0);
		g_once_init_leave (&gitg_commit_sidebar_type_id__volatile, gitg_commit_sidebar_type_id);
	}
	return gitg_commit_sidebar_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



