/* dconf-editor.c generated by valac 0.25.3, the Vala compiler
 * generated from dconf-editor.vala, do not modify */


#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <gdk/gdk.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>
#include "config.h"
#include <locale.h>


#define TYPE_CONFIGURATION_EDITOR (configuration_editor_get_type ())
#define CONFIGURATION_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_EDITOR, ConfigurationEditor))
#define CONFIGURATION_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_EDITOR, ConfigurationEditorClass))
#define IS_CONFIGURATION_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_EDITOR))
#define IS_CONFIGURATION_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_EDITOR))
#define CONFIGURATION_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_EDITOR, ConfigurationEditorClass))

typedef struct _ConfigurationEditor ConfigurationEditor;
typedef struct _ConfigurationEditorClass ConfigurationEditorClass;
typedef struct _ConfigurationEditorPrivate ConfigurationEditorPrivate;

#define TYPE_SETTINGS_MODEL (settings_model_get_type ())
#define SETTINGS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SETTINGS_MODEL, SettingsModel))
#define SETTINGS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SETTINGS_MODEL, SettingsModelClass))
#define IS_SETTINGS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SETTINGS_MODEL))
#define IS_SETTINGS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SETTINGS_MODEL))
#define SETTINGS_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SETTINGS_MODEL, SettingsModelClass))

typedef struct _SettingsModel SettingsModel;
typedef struct _SettingsModelClass SettingsModelClass;

#define TYPE_KEY (key_get_type ())
#define KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY, Key))
#define KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY, KeyClass))
#define IS_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY))
#define IS_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY))
#define KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY, KeyClass))

typedef struct _Key Key;
typedef struct _KeyClass KeyClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define TYPE_DCONF_DIR_VIEW (dconf_dir_view_get_type ())
#define DCONF_DIR_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DCONF_DIR_VIEW, DConfDirView))
#define DCONF_DIR_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DCONF_DIR_VIEW, DConfDirViewClass))
#define IS_DCONF_DIR_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DCONF_DIR_VIEW))
#define IS_DCONF_DIR_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DCONF_DIR_VIEW))
#define DCONF_DIR_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DCONF_DIR_VIEW, DConfDirViewClass))

typedef struct _DConfDirView DConfDirView;
typedef struct _DConfDirViewClass DConfDirViewClass;

#define TYPE_DCONF_KEY_VIEW (dconf_key_view_get_type ())
#define DCONF_KEY_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DCONF_KEY_VIEW, DConfKeyView))
#define DCONF_KEY_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DCONF_KEY_VIEW, DConfKeyViewClass))
#define IS_DCONF_KEY_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DCONF_KEY_VIEW))
#define IS_DCONF_KEY_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DCONF_KEY_VIEW))
#define DCONF_KEY_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DCONF_KEY_VIEW, DConfKeyViewClass))

typedef struct _DConfKeyView DConfKeyView;
typedef struct _DConfKeyViewClass DConfKeyViewClass;

#define TYPE_KEY_MODEL (key_model_get_type ())
#define KEY_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_MODEL, KeyModel))
#define KEY_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_MODEL, KeyModelClass))
#define IS_KEY_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_MODEL))
#define IS_KEY_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_MODEL))
#define KEY_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_MODEL, KeyModelClass))

typedef struct _KeyModel KeyModel;
typedef struct _KeyModelClass KeyModelClass;

#define TYPE_DIRECTORY (directory_get_type ())
#define DIRECTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY, Directory))
#define DIRECTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY, DirectoryClass))
#define IS_DIRECTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY))
#define IS_DIRECTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY))
#define DIRECTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY, DirectoryClass))

typedef struct _Directory Directory;
typedef struct _DirectoryClass DirectoryClass;
typedef struct _KeyPrivate KeyPrivate;

#define TYPE_SCHEMA_KEY (schema_key_get_type ())
#define SCHEMA_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCHEMA_KEY, SchemaKey))
#define SCHEMA_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCHEMA_KEY, SchemaKeyClass))
#define IS_SCHEMA_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCHEMA_KEY))
#define IS_SCHEMA_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCHEMA_KEY))
#define SCHEMA_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCHEMA_KEY, SchemaKeyClass))

typedef struct _SchemaKey SchemaKey;
typedef struct _SchemaKeyClass SchemaKeyClass;
typedef struct _SchemaKeyPrivate SchemaKeyPrivate;

#define TYPE_SCHEMA (schema_get_type ())
#define SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCHEMA, Schema))
#define SCHEMA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCHEMA, SchemaClass))
#define IS_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCHEMA))
#define IS_SCHEMA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCHEMA))
#define SCHEMA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCHEMA, SchemaClass))

typedef struct _Schema Schema;
typedef struct _SchemaClass SchemaClass;

#define TYPE_SCHEMA_VALUE_RANGE (schema_value_range_get_type ())
#define SCHEMA_VALUE_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCHEMA_VALUE_RANGE, SchemaValueRange))
#define SCHEMA_VALUE_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCHEMA_VALUE_RANGE, SchemaValueRangeClass))
#define IS_SCHEMA_VALUE_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCHEMA_VALUE_RANGE))
#define IS_SCHEMA_VALUE_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCHEMA_VALUE_RANGE))
#define SCHEMA_VALUE_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCHEMA_VALUE_RANGE, SchemaValueRangeClass))

typedef struct _SchemaValueRange SchemaValueRange;
typedef struct _SchemaValueRangeClass SchemaValueRangeClass;

#define TYPE_SCHEMA_CHOICE (schema_choice_get_type ())
#define SCHEMA_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCHEMA_CHOICE, SchemaChoice))
#define SCHEMA_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCHEMA_CHOICE, SchemaChoiceClass))
#define IS_SCHEMA_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCHEMA_CHOICE))
#define IS_SCHEMA_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCHEMA_CHOICE))
#define SCHEMA_CHOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCHEMA_CHOICE, SchemaChoiceClass))

typedef struct _SchemaChoice SchemaChoice;
typedef struct _SchemaChoiceClass SchemaChoiceClass;
typedef struct _SchemaValueRangePrivate SchemaValueRangePrivate;
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _SchemaPrivate SchemaPrivate;

#define TYPE_SCHEMA_LIST (schema_list_get_type ())
#define SCHEMA_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCHEMA_LIST, SchemaList))
#define SCHEMA_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCHEMA_LIST, SchemaListClass))
#define IS_SCHEMA_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCHEMA_LIST))
#define IS_SCHEMA_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCHEMA_LIST))
#define SCHEMA_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCHEMA_LIST, SchemaListClass))

typedef struct _SchemaList SchemaList;
typedef struct _SchemaListClass SchemaListClass;
typedef struct _DirectoryPrivate DirectoryPrivate;
#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))

struct _ConfigurationEditor {
	GtkApplication parent_instance;
	ConfigurationEditorPrivate * priv;
};

struct _ConfigurationEditorClass {
	GtkApplicationClass parent_class;
};

struct _ConfigurationEditorPrivate {
	SettingsModel* model;
	GSettings* settings;
	GtkBuilder* ui;
	GtkApplicationWindow* window;
	gint window_width;
	gint window_height;
	gboolean window_is_maximized;
	gboolean window_is_fullscreen;
	GtkTreeView* dir_tree_view;
	GtkTreeView* key_tree_view;
	GtkGrid* key_info_grid;
	GtkLabel* schema_label;
	GtkLabel* summary_label;
	GtkLabel* description_label;
	GtkLabel* type_label;
	GtkLabel* default_label;
	GtkAction* set_default_action;
	GtkBox* search_box;
	GtkEntry* search_entry;
	GtkLabel* search_label;
	Key* selected_key;
};

struct _Key {
	GObject parent_instance;
	KeyPrivate * priv;
	Directory* parent;
	gchar* name;
	gchar* full_name;
	SchemaKey* schema;
};

struct _KeyClass {
	GObjectClass parent_class;
};

struct _SchemaKey {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SchemaKeyPrivate * priv;
	Schema* schema;
	gchar* name;
	gchar* type;
	GVariant* default_value;
	SchemaValueRange* range;
	SchemaValueRange* type_range;
	GList* choices;
	gchar* enum_name;
	gchar* summary;
	gchar* description;
	gchar* gettext_domain;
};

struct _SchemaKeyClass {
	GTypeClass parent_class;
	void (*finalize) (SchemaKey *self);
};

struct _SchemaValueRange {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SchemaValueRangePrivate * priv;
	GVariant* min;
	GVariant* max;
};

struct _SchemaValueRangeClass {
	GTypeClass parent_class;
	void (*finalize) (SchemaValueRange *self);
};

struct _Schema {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SchemaPrivate * priv;
	SchemaList* list;
	gchar* id;
	gchar* path;
	GHashTable* keys;
};

struct _SchemaClass {
	GTypeClass parent_class;
	void (*finalize) (Schema *self);
};

struct _Directory {
	GObject parent_instance;
	DirectoryPrivate * priv;
	gchar* name;
	gchar* full_name;
	Directory* parent;
	GHashTable* _child_map;
	GList* _children;
	GHashTable* _key_map;
};

struct _DirectoryClass {
	GObjectClass parent_class;
};


static gpointer configuration_editor_parent_class = NULL;

GType configuration_editor_get_type (void) G_GNUC_CONST;
GType settings_model_get_type (void) G_GNUC_CONST;
GType key_get_type (void) G_GNUC_CONST;
#define CONFIGURATION_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIGURATION_EDITOR, ConfigurationEditorPrivate))
enum  {
	CONFIGURATION_EDITOR_DUMMY_PROPERTY
};
static void configuration_editor_find_cb (ConfigurationEditor* self);
static void _configuration_editor_find_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void configuration_editor_about_cb (ConfigurationEditor* self);
static void _configuration_editor_about_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
static void configuration_editor_quit_cb (ConfigurationEditor* self);
static void _configuration_editor_quit_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self);
ConfigurationEditor* configuration_editor_new (void);
ConfigurationEditor* configuration_editor_construct (GType object_type);
static void configuration_editor_real_startup (GApplication* base);
SettingsModel* settings_model_new (void);
SettingsModel* settings_model_construct (GType object_type);
static gboolean configuration_editor_main_window_window_state_event_cb (ConfigurationEditor* self, GtkWidget* widget, GdkEventWindowState* event);
static gboolean _configuration_editor_main_window_window_state_event_cb_gtk_widget_window_state_event (GtkWidget* _sender, GdkEventWindowState* event, gpointer self);
static gboolean configuration_editor_main_window_configure_event_cb (ConfigurationEditor* self, GtkWidget* widget, GdkEventConfigure* event);
static gboolean _configuration_editor_main_window_configure_event_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self);
DConfDirView* dconf_dir_view_new (void);
DConfDirView* dconf_dir_view_construct (GType object_type);
GType dconf_dir_view_get_type (void) G_GNUC_CONST;
static void configuration_editor_dir_selected_cb (ConfigurationEditor* self);
static void _configuration_editor_dir_selected_cb_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self);
DConfKeyView* dconf_key_view_new (void);
DConfKeyView* dconf_key_view_construct (GType object_type);
GType dconf_key_view_get_type (void) G_GNUC_CONST;
static void configuration_editor_key_selected_cb (ConfigurationEditor* self);
static void _configuration_editor_key_selected_cb_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self);
static void configuration_editor_set_default_cb (ConfigurationEditor* self, GtkAction* action);
static void _configuration_editor_set_default_cb_gtk_action_activate (GtkAction* _sender, gpointer self);
static gboolean __lambda4_ (ConfigurationEditor* self, GdkEventKey* event);
static gboolean ___lambda4__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
static void configuration_editor_find_next_cb (ConfigurationEditor* self);
static void _configuration_editor_find_next_cb_gtk_entry_activate (GtkEntry* _sender, gpointer self);
static void __lambda5_ (ConfigurationEditor* self);
static void ___lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void _configuration_editor_find_next_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
static void configuration_editor_real_activate (GApplication* base);
static void configuration_editor_real_shutdown (GApplication* base);
GType key_model_get_type (void) G_GNUC_CONST;
GType directory_get_type (void) G_GNUC_CONST;
Directory* settings_model_get_directory (SettingsModel* self, GtkTreeIter* iter);
KeyModel* directory_get_key_model (Directory* self);
static gchar* configuration_editor_key_to_description (ConfigurationEditor* self, Key* key);
gpointer schema_key_ref (gpointer instance);
void schema_key_unref (gpointer instance);
GParamSpec* param_spec_schema_key (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_schema_key (GValue* value, gpointer v_object);
void value_take_schema_key (GValue* value, gpointer v_object);
gpointer value_get_schema_key (const GValue* value);
GType schema_key_get_type (void) G_GNUC_CONST;
gpointer schema_ref (gpointer instance);
void schema_unref (gpointer instance);
GParamSpec* param_spec_schema (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_schema (GValue* value, gpointer v_object);
void value_take_schema (GValue* value, gpointer v_object);
gpointer value_get_schema (const GValue* value);
GType schema_get_type (void) G_GNUC_CONST;
gpointer schema_value_range_ref (gpointer instance);
void schema_value_range_unref (gpointer instance);
GParamSpec* param_spec_schema_value_range (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_schema_value_range (GValue* value, gpointer v_object);
void value_take_schema_value_range (GValue* value, gpointer v_object);
gpointer value_get_schema_value_range (const GValue* value);
GType schema_value_range_get_type (void) G_GNUC_CONST;
gpointer schema_choice_ref (gpointer instance);
void schema_choice_unref (gpointer instance);
GParamSpec* param_spec_schema_choice (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_schema_choice (GValue* value, gpointer v_object);
void value_take_schema_choice (GValue* value, gpointer v_object);
gpointer value_get_schema_choice (const GValue* value);
GType schema_choice_get_type (void) G_GNUC_CONST;
GVariant* key_get_min (Key* self);
GVariant* key_get_max (Key* self);
static void configuration_editor_key_changed_cb (ConfigurationEditor* self, Key* key);
static void _configuration_editor_key_changed_cb_key_value_changed (Key* _sender, gpointer self);
Key* key_model_get_key (KeyModel* self, GtkTreeIter* iter);
gboolean key_get_is_default (Key* self);
gpointer schema_list_ref (gpointer instance);
void schema_list_unref (gpointer instance);
GParamSpec* param_spec_schema_list (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_schema_list (GValue* value, gpointer v_object);
void value_take_schema_list (GValue* value, gpointer v_object);
gpointer value_get_schema_list (const GValue* value);
GType schema_list_get_type (void) G_GNUC_CONST;
void key_set_to_default (Key* self);
static gboolean configuration_editor_get_next_iter (ConfigurationEditor* self, GtkTreeIter* iter);
static gboolean configuration_editor_key_matches (ConfigurationEditor* self, Key* key, const gchar* text);
GVariant* key_get_value (Key* self);
gint configuration_editor_main (gchar** args, int args_length1);
static void configuration_editor_finalize (GObject* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);

static const GActionEntry CONFIGURATION_EDITOR_action_entries[3] = {{"find", _configuration_editor_find_cb_gsimple_action_activate_callback}, {"about", _configuration_editor_about_cb_gsimple_action_activate_callback}, {"quit", _configuration_editor_quit_cb_gsimple_action_activate_callback}};

static void _configuration_editor_find_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	configuration_editor_find_cb ((ConfigurationEditor*) self);
}


static void _configuration_editor_about_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	configuration_editor_about_cb ((ConfigurationEditor*) self);
}


static void _configuration_editor_quit_cb_gsimple_action_activate_callback (GSimpleAction* action, GVariant* parameter, gpointer self) {
	configuration_editor_quit_cb ((ConfigurationEditor*) self);
}


ConfigurationEditor* configuration_editor_construct (GType object_type) {
	ConfigurationEditor * self = NULL;
	self = (ConfigurationEditor*) g_object_new (object_type, "application-id", "ca.desrt.dconf-editor", "flags", G_APPLICATION_FLAGS_NONE, NULL);
	return self;
}


ConfigurationEditor* configuration_editor_new (void) {
	return configuration_editor_construct (TYPE_CONFIGURATION_EDITOR);
}


static gboolean _configuration_editor_main_window_window_state_event_cb_gtk_widget_window_state_event (GtkWidget* _sender, GdkEventWindowState* event, gpointer self) {
	gboolean result;
	result = configuration_editor_main_window_window_state_event_cb ((ConfigurationEditor*) self, _sender, event);
	return result;
}


static gboolean _configuration_editor_main_window_configure_event_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self) {
	gboolean result;
	result = configuration_editor_main_window_configure_event_cb ((ConfigurationEditor*) self, _sender, event);
	return result;
}


static void _configuration_editor_dir_selected_cb_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) {
	configuration_editor_dir_selected_cb ((ConfigurationEditor*) self);
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void _configuration_editor_key_selected_cb_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) {
	configuration_editor_key_selected_cb ((ConfigurationEditor*) self);
}


static void _configuration_editor_set_default_cb_gtk_action_activate (GtkAction* _sender, gpointer self) {
	configuration_editor_set_default_cb ((ConfigurationEditor*) self, _sender);
}


static gboolean __lambda4_ (ConfigurationEditor* self, GdkEventKey* event) {
	gboolean result = FALSE;
	GdkEventKey* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	g_return_val_if_fail (event != NULL, FALSE);
	_tmp0_ = event;
	_tmp1_ = _tmp0_->keyval;
	if (_tmp1_ == ((guint) GDK_KEY_Escape)) {
		GtkBox* _tmp2_ = NULL;
		_tmp2_ = self->priv->search_box;
		gtk_widget_hide ((GtkWidget*) _tmp2_);
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}


static gboolean ___lambda4__gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
	gboolean result;
	result = __lambda4_ ((ConfigurationEditor*) self, event);
	return result;
}


static void _configuration_editor_find_next_cb_gtk_entry_activate (GtkEntry* _sender, gpointer self) {
	configuration_editor_find_next_cb ((ConfigurationEditor*) self);
}


static void __lambda5_ (ConfigurationEditor* self) {
	GtkBox* _tmp0_ = NULL;
	_tmp0_ = self->priv->search_box;
	gtk_widget_hide ((GtkWidget*) _tmp0_);
}


static void ___lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda5_ ((ConfigurationEditor*) self);
}


static void _configuration_editor_find_next_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
	configuration_editor_find_next_cb ((ConfigurationEditor*) self);
}


static void configuration_editor_real_startup (GApplication* base) {
	ConfigurationEditor * self;
	const gchar* _tmp0_ = NULL;
	GSettings* _tmp1_ = NULL;
	SettingsModel* _tmp2_ = NULL;
	GtkBuilder* _tmp3_ = NULL;
	GtkApplicationWindow* _tmp6_ = NULL;
	GtkApplicationWindow* _tmp7_ = NULL;
	GtkApplicationWindow* _tmp8_ = NULL;
	const gchar* _tmp9_ = NULL;
	GtkApplicationWindow* _tmp10_ = NULL;
	GtkApplicationWindow* _tmp11_ = NULL;
	GtkApplicationWindow* _tmp12_ = NULL;
	GtkBuilder* _tmp13_ = NULL;
	GObject* _tmp14_ = NULL;
	GtkBuilder* menu_ui = NULL;
	GtkBuilder* _tmp15_ = NULL;
	GObject* _tmp17_ = NULL;
	GtkApplicationWindow* _tmp18_ = NULL;
	GSettings* _tmp19_ = NULL;
	gint _tmp20_ = 0;
	GSettings* _tmp21_ = NULL;
	gint _tmp22_ = 0;
	GSettings* _tmp23_ = NULL;
	gboolean _tmp24_ = FALSE;
	DConfDirView* _tmp29_ = NULL;
	GtkTreeView* _tmp30_ = NULL;
	SettingsModel* _tmp31_ = NULL;
	GtkTreeView* _tmp32_ = NULL;
	GtkTreeSelection* _tmp33_ = NULL;
	GtkTreeView* _tmp34_ = NULL;
	GtkScrolledWindow* scroll = NULL;
	GtkBuilder* _tmp35_ = NULL;
	GObject* _tmp36_ = NULL;
	GtkScrolledWindow* _tmp37_ = NULL;
	GtkScrolledWindow* _tmp38_ = NULL;
	GtkTreeView* _tmp39_ = NULL;
	DConfKeyView* _tmp40_ = NULL;
	GtkTreeView* _tmp41_ = NULL;
	GtkTreeView* _tmp42_ = NULL;
	GtkTreeSelection* _tmp43_ = NULL;
	GtkBuilder* _tmp44_ = NULL;
	GObject* _tmp45_ = NULL;
	GtkScrolledWindow* _tmp46_ = NULL;
	GtkScrolledWindow* _tmp47_ = NULL;
	GtkTreeView* _tmp48_ = NULL;
	GtkBuilder* _tmp49_ = NULL;
	GObject* _tmp50_ = NULL;
	GtkGrid* _tmp51_ = NULL;
	GtkBuilder* _tmp52_ = NULL;
	GObject* _tmp53_ = NULL;
	GtkLabel* _tmp54_ = NULL;
	GtkBuilder* _tmp55_ = NULL;
	GObject* _tmp56_ = NULL;
	GtkLabel* _tmp57_ = NULL;
	GtkBuilder* _tmp58_ = NULL;
	GObject* _tmp59_ = NULL;
	GtkLabel* _tmp60_ = NULL;
	GtkBuilder* _tmp61_ = NULL;
	GObject* _tmp62_ = NULL;
	GtkLabel* _tmp63_ = NULL;
	GtkBuilder* _tmp64_ = NULL;
	GObject* _tmp65_ = NULL;
	GtkLabel* _tmp66_ = NULL;
	GtkBuilder* _tmp67_ = NULL;
	GObject* _tmp68_ = NULL;
	GtkAction* _tmp69_ = NULL;
	GtkAction* _tmp70_ = NULL;
	GtkBuilder* _tmp71_ = NULL;
	GObject* _tmp72_ = NULL;
	GtkBox* _tmp73_ = NULL;
	GtkBox* _tmp74_ = NULL;
	GtkBuilder* _tmp75_ = NULL;
	GObject* _tmp76_ = NULL;
	GtkEntry* _tmp77_ = NULL;
	GtkBuilder* _tmp78_ = NULL;
	GObject* _tmp79_ = NULL;
	GtkLabel* _tmp80_ = NULL;
	GtkEntry* _tmp81_ = NULL;
	GtkButton* search_box_close_button = NULL;
	GtkBuilder* _tmp82_ = NULL;
	GObject* _tmp83_ = NULL;
	GtkButton* _tmp84_ = NULL;
	GtkButton* _tmp85_ = NULL;
	GtkButton* search_next_button = NULL;
	GtkBuilder* _tmp86_ = NULL;
	GObject* _tmp87_ = NULL;
	GtkButton* _tmp88_ = NULL;
	GtkButton* _tmp89_ = NULL;
	GtkTreeIter iter = {0};
	SettingsModel* _tmp90_ = NULL;
	GtkTreeIter _tmp91_ = {0};
	gboolean _tmp92_ = FALSE;
	GError * _inner_error_ = NULL;
	self = (ConfigurationEditor*) base;
	G_APPLICATION_CLASS (configuration_editor_parent_class)->startup ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_application_get_type (), GtkApplication));
	_tmp0_ = _ ("dconf Editor");
	g_set_application_name (_tmp0_);
	g_action_map_add_action_entries ((GActionMap*) self, CONFIGURATION_EDITOR_action_entries, G_N_ELEMENTS (CONFIGURATION_EDITOR_action_entries), self);
	_tmp1_ = g_settings_new ("ca.desrt.dconf-editor.Settings");
	_g_object_unref0 (self->priv->settings);
	self->priv->settings = _tmp1_;
	_tmp2_ = settings_model_new ();
	_g_object_unref0 (self->priv->model);
	self->priv->model = _tmp2_;
	_tmp3_ = gtk_builder_new ();
	_g_object_unref0 (self->priv->ui);
	self->priv->ui = _tmp3_;
	{
		GtkBuilder* _tmp4_ = NULL;
		_tmp4_ = self->priv->ui;
		gtk_builder_add_from_resource (_tmp4_, "/ca/desrt/dconf-editor/dconf-editor.ui", &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp5_ = NULL;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp5_ = e->message;
		g_error ("dconf-editor.vala:58: Failed to load UI: %s", _tmp5_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	_tmp6_ = (GtkApplicationWindow*) gtk_application_window_new ((GtkApplication*) self);
	g_object_ref_sink (_tmp6_);
	_g_object_unref0 (self->priv->window);
	self->priv->window = _tmp6_;
	_tmp7_ = self->priv->window;
	gtk_window_set_default_size ((GtkWindow*) _tmp7_, 600, 300);
	_tmp8_ = self->priv->window;
	_tmp9_ = _ ("dconf Editor");
	gtk_window_set_title ((GtkWindow*) _tmp8_, _tmp9_);
	_tmp10_ = self->priv->window;
	g_signal_connect_object ((GtkWidget*) _tmp10_, "window-state-event", (GCallback) _configuration_editor_main_window_window_state_event_cb_gtk_widget_window_state_event, self, 0);
	_tmp11_ = self->priv->window;
	g_signal_connect_object ((GtkWidget*) _tmp11_, "configure-event", (GCallback) _configuration_editor_main_window_configure_event_cb_gtk_widget_configure_event, self, 0);
	_tmp12_ = self->priv->window;
	_tmp13_ = self->priv->ui;
	_tmp14_ = gtk_builder_get_object (_tmp13_, "box1");
	gtk_container_add ((GtkContainer*) _tmp12_, (GtkWidget*) (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, gtk_box_get_type ()) ? ((GtkBox*) _tmp14_) : NULL));
	_tmp15_ = gtk_builder_new ();
	menu_ui = _tmp15_;
	{
		gtk_builder_add_from_resource (menu_ui, "/ca/desrt/dconf-editor/dconf-editor-menu.ui", &_inner_error_);
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			goto __catch1_g_error;
		}
	}
	goto __finally1;
	__catch1_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp16_ = NULL;
		e = _inner_error_;
		_inner_error_ = NULL;
		_tmp16_ = e->message;
		g_error ("dconf-editor.vala:74: Failed to load menu UI: %s", _tmp16_);
		_g_error_free0 (e);
	}
	__finally1:
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		_g_object_unref0 (menu_ui);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
	_tmp17_ = gtk_builder_get_object (menu_ui, "menu");
	gtk_application_set_app_menu ((GtkApplication*) self, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, g_menu_model_get_type (), GMenuModel));
	_tmp18_ = self->priv->window;
	_tmp19_ = self->priv->settings;
	_tmp20_ = g_settings_get_int (_tmp19_, "window-width");
	_tmp21_ = self->priv->settings;
	_tmp22_ = g_settings_get_int (_tmp21_, "window-height");
	gtk_window_set_default_size ((GtkWindow*) _tmp18_, _tmp20_, _tmp22_);
	_tmp23_ = self->priv->settings;
	_tmp24_ = g_settings_get_boolean (_tmp23_, "window-is-fullscreen");
	if (_tmp24_) {
		GtkApplicationWindow* _tmp25_ = NULL;
		_tmp25_ = self->priv->window;
		gtk_window_fullscreen ((GtkWindow*) _tmp25_);
	} else {
		GSettings* _tmp26_ = NULL;
		gboolean _tmp27_ = FALSE;
		_tmp26_ = self->priv->settings;
		_tmp27_ = g_settings_get_boolean (_tmp26_, "window-is-maximized");
		if (_tmp27_) {
			GtkApplicationWindow* _tmp28_ = NULL;
			_tmp28_ = self->priv->window;
			gtk_window_maximize ((GtkWindow*) _tmp28_);
		}
	}
	_tmp29_ = dconf_dir_view_new ();
	g_object_ref_sink (_tmp29_);
	_g_object_unref0 (self->priv->dir_tree_view);
	self->priv->dir_tree_view = (GtkTreeView*) _tmp29_;
	_tmp30_ = self->priv->dir_tree_view;
	_tmp31_ = self->priv->model;
	gtk_tree_view_set_model (_tmp30_, (GtkTreeModel*) _tmp31_);
	_tmp32_ = self->priv->dir_tree_view;
	_tmp33_ = gtk_tree_view_get_selection (_tmp32_);
	g_signal_connect_object (_tmp33_, "changed", (GCallback) _configuration_editor_dir_selected_cb_gtk_tree_selection_changed, self, 0);
	_tmp34_ = self->priv->dir_tree_view;
	gtk_widget_show ((GtkWidget*) _tmp34_);
	_tmp35_ = self->priv->ui;
	_tmp36_ = gtk_builder_get_object (_tmp35_, "directory_scrolledwindow");
	_tmp37_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp36_, gtk_scrolled_window_get_type ()) ? ((GtkScrolledWindow*) _tmp36_) : NULL);
	scroll = _tmp37_;
	_tmp38_ = scroll;
	_tmp39_ = self->priv->dir_tree_view;
	gtk_container_add ((GtkContainer*) _tmp38_, (GtkWidget*) _tmp39_);
	_tmp40_ = dconf_key_view_new ();
	g_object_ref_sink (_tmp40_);
	_g_object_unref0 (self->priv->key_tree_view);
	self->priv->key_tree_view = (GtkTreeView*) _tmp40_;
	_tmp41_ = self->priv->key_tree_view;
	gtk_widget_show ((GtkWidget*) _tmp41_);
	_tmp42_ = self->priv->key_tree_view;
	_tmp43_ = gtk_tree_view_get_selection (_tmp42_);
	g_signal_connect_object (_tmp43_, "changed", (GCallback) _configuration_editor_key_selected_cb_gtk_tree_selection_changed, self, 0);
	_tmp44_ = self->priv->ui;
	_tmp45_ = gtk_builder_get_object (_tmp44_, "key_scrolledwindow");
	_tmp46_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp45_, gtk_scrolled_window_get_type ()) ? ((GtkScrolledWindow*) _tmp45_) : NULL);
	_g_object_unref0 (scroll);
	scroll = _tmp46_;
	_tmp47_ = scroll;
	_tmp48_ = self->priv->key_tree_view;
	gtk_container_add ((GtkContainer*) _tmp47_, (GtkWidget*) _tmp48_);
	_tmp49_ = self->priv->ui;
	_tmp50_ = gtk_builder_get_object (_tmp49_, "key_info_grid");
	_tmp51_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp50_, gtk_grid_get_type ()) ? ((GtkGrid*) _tmp50_) : NULL);
	_g_object_unref0 (self->priv->key_info_grid);
	self->priv->key_info_grid = _tmp51_;
	_tmp52_ = self->priv->ui;
	_tmp53_ = gtk_builder_get_object (_tmp52_, "schema_label");
	_tmp54_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp53_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp53_) : NULL);
	_g_object_unref0 (self->priv->schema_label);
	self->priv->schema_label = _tmp54_;
	_tmp55_ = self->priv->ui;
	_tmp56_ = gtk_builder_get_object (_tmp55_, "summary_label");
	_tmp57_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp56_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp56_) : NULL);
	_g_object_unref0 (self->priv->summary_label);
	self->priv->summary_label = _tmp57_;
	_tmp58_ = self->priv->ui;
	_tmp59_ = gtk_builder_get_object (_tmp58_, "description_label");
	_tmp60_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp59_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp59_) : NULL);
	_g_object_unref0 (self->priv->description_label);
	self->priv->description_label = _tmp60_;
	_tmp61_ = self->priv->ui;
	_tmp62_ = gtk_builder_get_object (_tmp61_, "type_label");
	_tmp63_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp62_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp62_) : NULL);
	_g_object_unref0 (self->priv->type_label);
	self->priv->type_label = _tmp63_;
	_tmp64_ = self->priv->ui;
	_tmp65_ = gtk_builder_get_object (_tmp64_, "default_label");
	_tmp66_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp65_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp65_) : NULL);
	_g_object_unref0 (self->priv->default_label);
	self->priv->default_label = _tmp66_;
	_tmp67_ = self->priv->ui;
	_tmp68_ = gtk_builder_get_object (_tmp67_, "set_default_action");
	_tmp69_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp68_, gtk_action_get_type ()) ? ((GtkAction*) _tmp68_) : NULL);
	_g_object_unref0 (self->priv->set_default_action);
	self->priv->set_default_action = _tmp69_;
	_tmp70_ = self->priv->set_default_action;
	g_signal_connect_object (_tmp70_, "activate", (GCallback) _configuration_editor_set_default_cb_gtk_action_activate, self, 0);
	_tmp71_ = self->priv->ui;
	_tmp72_ = gtk_builder_get_object (_tmp71_, "search_box");
	_tmp73_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp72_, gtk_box_get_type ()) ? ((GtkBox*) _tmp72_) : NULL);
	_g_object_unref0 (self->priv->search_box);
	self->priv->search_box = _tmp73_;
	_tmp74_ = self->priv->search_box;
	g_signal_connect_object ((GtkWidget*) _tmp74_, "key-press-event", (GCallback) ___lambda4__gtk_widget_key_press_event, self, 0);
	_tmp75_ = self->priv->ui;
	_tmp76_ = gtk_builder_get_object (_tmp75_, "search_entry");
	_tmp77_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp76_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp76_) : NULL);
	_g_object_unref0 (self->priv->search_entry);
	self->priv->search_entry = _tmp77_;
	_tmp78_ = self->priv->ui;
	_tmp79_ = gtk_builder_get_object (_tmp78_, "search_label");
	_tmp80_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp79_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp79_) : NULL);
	_g_object_unref0 (self->priv->search_label);
	self->priv->search_label = _tmp80_;
	_tmp81_ = self->priv->search_entry;
	g_signal_connect_object (_tmp81_, "activate", (GCallback) _configuration_editor_find_next_cb_gtk_entry_activate, self, 0);
	_tmp82_ = self->priv->ui;
	_tmp83_ = gtk_builder_get_object (_tmp82_, "search_box_close_button");
	_tmp84_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp83_, gtk_button_get_type ()) ? ((GtkButton*) _tmp83_) : NULL);
	search_box_close_button = _tmp84_;
	_tmp85_ = search_box_close_button;
	g_signal_connect_object (_tmp85_, "clicked", (GCallback) ___lambda5__gtk_button_clicked, self, 0);
	_tmp86_ = self->priv->ui;
	_tmp87_ = gtk_builder_get_object (_tmp86_, "search_next_button");
	_tmp88_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp87_, gtk_button_get_type ()) ? ((GtkButton*) _tmp87_) : NULL);
	search_next_button = _tmp88_;
	_tmp89_ = search_next_button;
	g_signal_connect_object (_tmp89_, "clicked", (GCallback) _configuration_editor_find_next_cb_gtk_button_clicked, self, 0);
	_tmp90_ = self->priv->model;
	_tmp92_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp90_, &_tmp91_);
	iter = _tmp91_;
	if (_tmp92_) {
		GtkTreeView* _tmp93_ = NULL;
		GtkTreeSelection* _tmp94_ = NULL;
		GtkTreeIter _tmp95_ = {0};
		_tmp93_ = self->priv->dir_tree_view;
		_tmp94_ = gtk_tree_view_get_selection (_tmp93_);
		_tmp95_ = iter;
		gtk_tree_selection_select_iter (_tmp94_, &_tmp95_);
	}
	_g_object_unref0 (search_next_button);
	_g_object_unref0 (search_box_close_button);
	_g_object_unref0 (scroll);
	_g_object_unref0 (menu_ui);
}


static void configuration_editor_real_activate (GApplication* base) {
	ConfigurationEditor * self;
	GtkApplicationWindow* _tmp0_ = NULL;
	self = (ConfigurationEditor*) base;
	_tmp0_ = self->priv->window;
	gtk_window_present ((GtkWindow*) _tmp0_);
}


static void configuration_editor_real_shutdown (GApplication* base) {
	ConfigurationEditor * self;
	GSettings* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	GSettings* _tmp2_ = NULL;
	gint _tmp3_ = 0;
	GSettings* _tmp4_ = NULL;
	gboolean _tmp5_ = FALSE;
	GSettings* _tmp6_ = NULL;
	gboolean _tmp7_ = FALSE;
	self = (ConfigurationEditor*) base;
	G_APPLICATION_CLASS (configuration_editor_parent_class)->shutdown ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_application_get_type (), GtkApplication));
	_tmp0_ = self->priv->settings;
	_tmp1_ = self->priv->window_width;
	g_settings_set_int (_tmp0_, "window-width", _tmp1_);
	_tmp2_ = self->priv->settings;
	_tmp3_ = self->priv->window_height;
	g_settings_set_int (_tmp2_, "window-height", _tmp3_);
	_tmp4_ = self->priv->settings;
	_tmp5_ = self->priv->window_is_maximized;
	g_settings_set_boolean (_tmp4_, "window-is-maximized", _tmp5_);
	_tmp6_ = self->priv->settings;
	_tmp7_ = self->priv->window_is_fullscreen;
	g_settings_set_boolean (_tmp6_, "window-is-fullscreen", _tmp7_);
}


static void configuration_editor_dir_selected_cb (ConfigurationEditor* self) {
	KeyModel* key_model = NULL;
	GtkTreeIter iter = {0};
	GtkTreeView* _tmp0_ = NULL;
	GtkTreeSelection* _tmp1_ = NULL;
	GtkTreeIter _tmp2_ = {0};
	gboolean _tmp3_ = FALSE;
	GtkTreeView* _tmp11_ = NULL;
	KeyModel* _tmp12_ = NULL;
	gboolean _tmp13_ = FALSE;
	KeyModel* _tmp14_ = NULL;
	g_return_if_fail (self != NULL);
	key_model = NULL;
	_tmp0_ = self->priv->dir_tree_view;
	_tmp1_ = gtk_tree_view_get_selection (_tmp0_);
	_tmp3_ = gtk_tree_selection_get_selected (_tmp1_, NULL, &_tmp2_);
	iter = _tmp2_;
	if (_tmp3_) {
		SettingsModel* _tmp4_ = NULL;
		GtkTreeIter _tmp5_ = {0};
		Directory* _tmp6_ = NULL;
		Directory* _tmp7_ = NULL;
		KeyModel* _tmp8_ = NULL;
		KeyModel* _tmp9_ = NULL;
		KeyModel* _tmp10_ = NULL;
		_tmp4_ = self->priv->model;
		_tmp5_ = iter;
		_tmp6_ = settings_model_get_directory (_tmp4_, &_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp8_ = directory_get_key_model (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp10_ = _g_object_ref0 (_tmp9_);
		_g_object_unref0 (key_model);
		key_model = _tmp10_;
		_g_object_unref0 (_tmp7_);
	}
	_tmp11_ = self->priv->key_tree_view;
	_tmp12_ = key_model;
	gtk_tree_view_set_model (_tmp11_, (GtkTreeModel*) _tmp12_);
	_tmp14_ = key_model;
	if (_tmp14_ != NULL) {
		KeyModel* _tmp15_ = NULL;
		GtkTreeIter _tmp16_ = {0};
		gboolean _tmp17_ = FALSE;
		_tmp15_ = key_model;
		_tmp17_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp15_, &_tmp16_);
		iter = _tmp16_;
		_tmp13_ = _tmp17_;
	} else {
		_tmp13_ = FALSE;
	}
	if (_tmp13_) {
		GtkTreeView* _tmp18_ = NULL;
		GtkTreeSelection* _tmp19_ = NULL;
		GtkTreeIter _tmp20_ = {0};
		_tmp18_ = self->priv->key_tree_view;
		_tmp19_ = gtk_tree_view_get_selection (_tmp18_);
		_tmp20_ = iter;
		gtk_tree_selection_select_iter (_tmp19_, &_tmp20_);
	}
	_g_object_unref0 (key_model);
}


static gpointer _g_variant_ref0 (gpointer self) {
	return self ? g_variant_ref (self) : NULL;
}


static gchar* configuration_editor_key_to_description (ConfigurationEditor* self, Key* key) {
	gchar* result = NULL;
	Key* _tmp0_ = NULL;
	SchemaKey* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	GQuark _tmp5_ = 0U;
	static GQuark _tmp4_label0 = 0;
	static GQuark _tmp4_label1 = 0;
	static GQuark _tmp4_label2 = 0;
	static GQuark _tmp4_label3 = 0;
	static GQuark _tmp4_label4 = 0;
	static GQuark _tmp4_label5 = 0;
	static GQuark _tmp4_label6 = 0;
	static GQuark _tmp4_label7 = 0;
	static GQuark _tmp4_label8 = 0;
	static GQuark _tmp4_label9 = 0;
	static GQuark _tmp4_label10 = 0;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (key != NULL, NULL);
	_tmp0_ = key;
	_tmp1_ = _tmp0_->schema;
	_tmp2_ = _tmp1_->type;
	_tmp3_ = _tmp2_;
	_tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
	if (((((((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("y")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("n"))))) || (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("q"))))) || (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("i"))))) || (_tmp5_ == ((0 != _tmp4_label4) ? _tmp4_label4 : (_tmp4_label4 = g_quark_from_static_string ("u"))))) || (_tmp5_ == ((0 != _tmp4_label5) ? _tmp4_label5 : (_tmp4_label5 = g_quark_from_static_string ("x"))))) || (_tmp5_ == ((0 != _tmp4_label6) ? _tmp4_label6 : (_tmp4_label6 = g_quark_from_static_string ("t"))))) {
		switch (0) {
			default:
			{
				GVariant* min = NULL;
				GVariant* max = NULL;
				Key* _tmp6_ = NULL;
				SchemaKey* _tmp7_ = NULL;
				SchemaValueRange* _tmp8_ = NULL;
				const gchar* _tmp23_ = NULL;
				GVariant* _tmp24_ = NULL;
				gchar* _tmp25_ = NULL;
				gchar* _tmp26_ = NULL;
				GVariant* _tmp27_ = NULL;
				gchar* _tmp28_ = NULL;
				gchar* _tmp29_ = NULL;
				gchar* _tmp30_ = NULL;
				gchar* _tmp31_ = NULL;
				_tmp6_ = key;
				_tmp7_ = _tmp6_->schema;
				_tmp8_ = _tmp7_->range;
				if (_tmp8_ != NULL) {
					Key* _tmp9_ = NULL;
					SchemaKey* _tmp10_ = NULL;
					SchemaValueRange* _tmp11_ = NULL;
					GVariant* _tmp12_ = NULL;
					GVariant* _tmp13_ = NULL;
					Key* _tmp14_ = NULL;
					SchemaKey* _tmp15_ = NULL;
					SchemaValueRange* _tmp16_ = NULL;
					GVariant* _tmp17_ = NULL;
					GVariant* _tmp18_ = NULL;
					_tmp9_ = key;
					_tmp10_ = _tmp9_->schema;
					_tmp11_ = _tmp10_->range;
					_tmp12_ = _tmp11_->min;
					_tmp13_ = _g_variant_ref0 (_tmp12_);
					_g_variant_unref0 (min);
					min = _tmp13_;
					_tmp14_ = key;
					_tmp15_ = _tmp14_->schema;
					_tmp16_ = _tmp15_->range;
					_tmp17_ = _tmp16_->max;
					_tmp18_ = _g_variant_ref0 (_tmp17_);
					_g_variant_unref0 (max);
					max = _tmp18_;
				} else {
					Key* _tmp19_ = NULL;
					GVariant* _tmp20_ = NULL;
					Key* _tmp21_ = NULL;
					GVariant* _tmp22_ = NULL;
					_tmp19_ = key;
					_tmp20_ = key_get_min (_tmp19_);
					_g_variant_unref0 (min);
					min = _tmp20_;
					_tmp21_ = key;
					_tmp22_ = key_get_max (_tmp21_);
					_g_variant_unref0 (max);
					max = _tmp22_;
				}
				_tmp23_ = _ ("Integer [%s..%s]");
				_tmp24_ = min;
				_tmp25_ = g_variant_print (_tmp24_, FALSE);
				_tmp26_ = _tmp25_;
				_tmp27_ = max;
				_tmp28_ = g_variant_print (_tmp27_, FALSE);
				_tmp29_ = _tmp28_;
				_tmp30_ = g_strdup_printf (_tmp23_, _tmp26_, _tmp29_);
				_tmp31_ = _tmp30_;
				_g_free0 (_tmp29_);
				_g_free0 (_tmp26_);
				result = _tmp31_;
				_g_variant_unref0 (max);
				_g_variant_unref0 (min);
				return result;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label7) ? _tmp4_label7 : (_tmp4_label7 = g_quark_from_static_string ("d")))) {
		switch (0) {
			default:
			{
				GVariant* min = NULL;
				GVariant* max = NULL;
				Key* _tmp32_ = NULL;
				SchemaKey* _tmp33_ = NULL;
				SchemaValueRange* _tmp34_ = NULL;
				const gchar* _tmp49_ = NULL;
				GVariant* _tmp50_ = NULL;
				gchar* _tmp51_ = NULL;
				gchar* _tmp52_ = NULL;
				GVariant* _tmp53_ = NULL;
				gchar* _tmp54_ = NULL;
				gchar* _tmp55_ = NULL;
				gchar* _tmp56_ = NULL;
				gchar* _tmp57_ = NULL;
				_tmp32_ = key;
				_tmp33_ = _tmp32_->schema;
				_tmp34_ = _tmp33_->range;
				if (_tmp34_ != NULL) {
					Key* _tmp35_ = NULL;
					SchemaKey* _tmp36_ = NULL;
					SchemaValueRange* _tmp37_ = NULL;
					GVariant* _tmp38_ = NULL;
					GVariant* _tmp39_ = NULL;
					Key* _tmp40_ = NULL;
					SchemaKey* _tmp41_ = NULL;
					SchemaValueRange* _tmp42_ = NULL;
					GVariant* _tmp43_ = NULL;
					GVariant* _tmp44_ = NULL;
					_tmp35_ = key;
					_tmp36_ = _tmp35_->schema;
					_tmp37_ = _tmp36_->range;
					_tmp38_ = _tmp37_->min;
					_tmp39_ = _g_variant_ref0 (_tmp38_);
					_g_variant_unref0 (min);
					min = _tmp39_;
					_tmp40_ = key;
					_tmp41_ = _tmp40_->schema;
					_tmp42_ = _tmp41_->range;
					_tmp43_ = _tmp42_->max;
					_tmp44_ = _g_variant_ref0 (_tmp43_);
					_g_variant_unref0 (max);
					max = _tmp44_;
				} else {
					Key* _tmp45_ = NULL;
					GVariant* _tmp46_ = NULL;
					Key* _tmp47_ = NULL;
					GVariant* _tmp48_ = NULL;
					_tmp45_ = key;
					_tmp46_ = key_get_min (_tmp45_);
					_g_variant_unref0 (min);
					min = _tmp46_;
					_tmp47_ = key;
					_tmp48_ = key_get_max (_tmp47_);
					_g_variant_unref0 (max);
					max = _tmp48_;
				}
				_tmp49_ = _ ("Double [%s..%s]");
				_tmp50_ = min;
				_tmp51_ = g_variant_print (_tmp50_, FALSE);
				_tmp52_ = _tmp51_;
				_tmp53_ = max;
				_tmp54_ = g_variant_print (_tmp53_, FALSE);
				_tmp55_ = _tmp54_;
				_tmp56_ = g_strdup_printf (_tmp49_, _tmp52_, _tmp55_);
				_tmp57_ = _tmp56_;
				_g_free0 (_tmp55_);
				_g_free0 (_tmp52_);
				result = _tmp57_;
				_g_variant_unref0 (max);
				_g_variant_unref0 (min);
				return result;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label8) ? _tmp4_label8 : (_tmp4_label8 = g_quark_from_static_string ("b")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp58_ = NULL;
				gchar* _tmp59_ = NULL;
				_tmp58_ = _ ("Boolean");
				_tmp59_ = g_strdup (_tmp58_);
				result = _tmp59_;
				return result;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label9) ? _tmp4_label9 : (_tmp4_label9 = g_quark_from_static_string ("s")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp60_ = NULL;
				gchar* _tmp61_ = NULL;
				_tmp60_ = _ ("String");
				_tmp61_ = g_strdup (_tmp60_);
				result = _tmp61_;
				return result;
			}
		}
	} else if (_tmp5_ == ((0 != _tmp4_label10) ? _tmp4_label10 : (_tmp4_label10 = g_quark_from_static_string ("<enum>")))) {
		switch (0) {
			default:
			{
				const gchar* _tmp62_ = NULL;
				gchar* _tmp63_ = NULL;
				_tmp62_ = _ ("Enumeration");
				_tmp63_ = g_strdup (_tmp62_);
				result = _tmp63_;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				Key* _tmp64_ = NULL;
				SchemaKey* _tmp65_ = NULL;
				const gchar* _tmp66_ = NULL;
				gchar* _tmp67_ = NULL;
				_tmp64_ = key;
				_tmp65_ = _tmp64_->schema;
				_tmp66_ = _tmp65_->type;
				_tmp67_ = g_strdup (_tmp66_);
				result = _tmp67_;
				return result;
			}
		}
	}
}


static void _configuration_editor_key_changed_cb_key_value_changed (Key* _sender, gpointer self) {
	configuration_editor_key_changed_cb ((ConfigurationEditor*) self, _sender);
}


static gchar* string_strip (const gchar* self) {
	gchar* result = NULL;
	gchar* _result_ = NULL;
	gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	g_strstrip (_tmp1_);
	result = _result_;
	return result;
}


static void configuration_editor_key_selected_cb (ConfigurationEditor* self) {
	Key* _tmp0_ = NULL;
	GtkTreeIter iter = {0};
	GtkTreeModel* model = NULL;
	GtkTreeView* _tmp3_ = NULL;
	GtkTreeSelection* _tmp4_ = NULL;
	GtkTreeModel* _tmp5_ = NULL;
	GtkTreeIter _tmp6_ = {0};
	gboolean _tmp7_ = FALSE;
	GtkTreeModel* _tmp8_ = NULL;
	Key* _tmp14_ = NULL;
	GtkGrid* _tmp16_ = NULL;
	Key* _tmp17_ = NULL;
	gboolean _tmp18_ = FALSE;
	Key* _tmp19_ = NULL;
	GtkAction* _tmp23_ = NULL;
	gchar* schema_name = NULL;
	gchar* _tmp24_ = NULL;
	gchar* summary = NULL;
	gchar* _tmp25_ = NULL;
	gchar* description = NULL;
	gchar* _tmp26_ = NULL;
	gchar* type = NULL;
	gchar* _tmp27_ = NULL;
	gchar* default_value = NULL;
	gchar* _tmp28_ = NULL;
	Key* _tmp29_ = NULL;
	GtkLabel* _tmp77_ = NULL;
	const gchar* _tmp78_ = NULL;
	GtkLabel* _tmp79_ = NULL;
	const gchar* _tmp80_ = NULL;
	gchar* _tmp81_ = NULL;
	gchar* _tmp82_ = NULL;
	GtkLabel* _tmp83_ = NULL;
	const gchar* _tmp84_ = NULL;
	gchar* _tmp85_ = NULL;
	gchar* _tmp86_ = NULL;
	GtkLabel* _tmp87_ = NULL;
	const gchar* _tmp88_ = NULL;
	GtkLabel* _tmp89_ = NULL;
	const gchar* _tmp90_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->selected_key;
	if (_tmp0_ != NULL) {
		Key* _tmp1_ = NULL;
		guint _tmp2_ = 0U;
		_tmp1_ = self->priv->selected_key;
		g_signal_parse_name ("value-changed", TYPE_KEY, &_tmp2_, NULL, FALSE);
		g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _configuration_editor_key_changed_cb_key_value_changed, self);
	}
	_tmp3_ = self->priv->key_tree_view;
	_tmp4_ = gtk_tree_view_get_selection (_tmp3_);
	_tmp7_ = gtk_tree_selection_get_selected (_tmp4_, &_tmp5_, &_tmp6_);
	_g_object_unref0 (model);
	_tmp8_ = _g_object_ref0 (_tmp5_);
	model = _tmp8_;
	iter = _tmp6_;
	if (_tmp7_) {
		KeyModel* key_model = NULL;
		GtkTreeModel* _tmp9_ = NULL;
		KeyModel* _tmp10_ = NULL;
		KeyModel* _tmp11_ = NULL;
		GtkTreeIter _tmp12_ = {0};
		Key* _tmp13_ = NULL;
		_tmp9_ = model;
		_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_KEY_MODEL, KeyModel));
		key_model = _tmp10_;
		_tmp11_ = key_model;
		_tmp12_ = iter;
		_tmp13_ = key_model_get_key (_tmp11_, &_tmp12_);
		_g_object_unref0 (self->priv->selected_key);
		self->priv->selected_key = _tmp13_;
		_g_object_unref0 (key_model);
	} else {
		_g_object_unref0 (self->priv->selected_key);
		self->priv->selected_key = NULL;
	}
	_tmp14_ = self->priv->selected_key;
	if (_tmp14_ != NULL) {
		Key* _tmp15_ = NULL;
		_tmp15_ = self->priv->selected_key;
		g_signal_connect_object (_tmp15_, "value-changed", (GCallback) _configuration_editor_key_changed_cb_key_value_changed, self, 0);
	}
	_tmp16_ = self->priv->key_info_grid;
	_tmp17_ = self->priv->selected_key;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp16_, _tmp17_ != NULL);
	_tmp19_ = self->priv->selected_key;
	if (_tmp19_ != NULL) {
		Key* _tmp20_ = NULL;
		gboolean _tmp21_ = FALSE;
		gboolean _tmp22_ = FALSE;
		_tmp20_ = self->priv->selected_key;
		_tmp21_ = key_get_is_default (_tmp20_);
		_tmp22_ = _tmp21_;
		_tmp18_ = !_tmp22_;
	} else {
		_tmp18_ = FALSE;
	}
	_tmp23_ = self->priv->set_default_action;
	gtk_action_set_sensitive (_tmp23_, _tmp18_);
	_tmp24_ = g_strdup ("");
	schema_name = _tmp24_;
	_tmp25_ = g_strdup ("");
	summary = _tmp25_;
	_tmp26_ = g_strdup ("");
	description = _tmp26_;
	_tmp27_ = g_strdup ("");
	type = _tmp27_;
	_tmp28_ = g_strdup ("");
	default_value = _tmp28_;
	_tmp29_ = self->priv->selected_key;
	if (_tmp29_ != NULL) {
		Key* _tmp30_ = NULL;
		SchemaKey* _tmp31_ = NULL;
		_tmp30_ = self->priv->selected_key;
		_tmp31_ = _tmp30_->schema;
		if (_tmp31_ != NULL) {
			gchar* gettext_domain = NULL;
			Key* _tmp32_ = NULL;
			SchemaKey* _tmp33_ = NULL;
			const gchar* _tmp34_ = NULL;
			gchar* _tmp35_ = NULL;
			Key* _tmp36_ = NULL;
			SchemaKey* _tmp37_ = NULL;
			Schema* _tmp38_ = NULL;
			const gchar* _tmp39_ = NULL;
			gchar* _tmp40_ = NULL;
			Key* _tmp41_ = NULL;
			SchemaKey* _tmp42_ = NULL;
			const gchar* _tmp43_ = NULL;
			gboolean _tmp48_ = FALSE;
			const gchar* _tmp49_ = NULL;
			Key* _tmp55_ = NULL;
			SchemaKey* _tmp56_ = NULL;
			const gchar* _tmp57_ = NULL;
			gboolean _tmp62_ = FALSE;
			const gchar* _tmp63_ = NULL;
			Key* _tmp69_ = NULL;
			gchar* _tmp70_ = NULL;
			Key* _tmp71_ = NULL;
			SchemaKey* _tmp72_ = NULL;
			GVariant* _tmp73_ = NULL;
			gchar* _tmp74_ = NULL;
			_tmp32_ = self->priv->selected_key;
			_tmp33_ = _tmp32_->schema;
			_tmp34_ = _tmp33_->gettext_domain;
			_tmp35_ = g_strdup (_tmp34_);
			gettext_domain = _tmp35_;
			_tmp36_ = self->priv->selected_key;
			_tmp37_ = _tmp36_->schema;
			_tmp38_ = _tmp37_->schema;
			_tmp39_ = _tmp38_->id;
			_tmp40_ = g_strdup (_tmp39_);
			_g_free0 (schema_name);
			schema_name = _tmp40_;
			_tmp41_ = self->priv->selected_key;
			_tmp42_ = _tmp41_->schema;
			_tmp43_ = _tmp42_->summary;
			if (_tmp43_ != NULL) {
				Key* _tmp44_ = NULL;
				SchemaKey* _tmp45_ = NULL;
				const gchar* _tmp46_ = NULL;
				gchar* _tmp47_ = NULL;
				_tmp44_ = self->priv->selected_key;
				_tmp45_ = _tmp44_->schema;
				_tmp46_ = _tmp45_->summary;
				_tmp47_ = g_strdup (_tmp46_);
				_g_free0 (summary);
				summary = _tmp47_;
			}
			_tmp49_ = gettext_domain;
			if (_tmp49_ != NULL) {
				const gchar* _tmp50_ = NULL;
				_tmp50_ = summary;
				_tmp48_ = g_strcmp0 (_tmp50_, "") != 0;
			} else {
				_tmp48_ = FALSE;
			}
			if (_tmp48_) {
				const gchar* _tmp51_ = NULL;
				const gchar* _tmp52_ = NULL;
				const gchar* _tmp53_ = NULL;
				gchar* _tmp54_ = NULL;
				_tmp51_ = gettext_domain;
				_tmp52_ = summary;
				_tmp53_ = g_dgettext (_tmp51_, _tmp52_);
				_tmp54_ = g_strdup (_tmp53_);
				_g_free0 (summary);
				summary = _tmp54_;
			}
			_tmp55_ = self->priv->selected_key;
			_tmp56_ = _tmp55_->schema;
			_tmp57_ = _tmp56_->description;
			if (_tmp57_ != NULL) {
				Key* _tmp58_ = NULL;
				SchemaKey* _tmp59_ = NULL;
				const gchar* _tmp60_ = NULL;
				gchar* _tmp61_ = NULL;
				_tmp58_ = self->priv->selected_key;
				_tmp59_ = _tmp58_->schema;
				_tmp60_ = _tmp59_->description;
				_tmp61_ = g_strdup (_tmp60_);
				_g_free0 (description);
				description = _tmp61_;
			}
			_tmp63_ = gettext_domain;
			if (_tmp63_ != NULL) {
				const gchar* _tmp64_ = NULL;
				_tmp64_ = description;
				_tmp62_ = g_strcmp0 (_tmp64_, "") != 0;
			} else {
				_tmp62_ = FALSE;
			}
			if (_tmp62_) {
				const gchar* _tmp65_ = NULL;
				const gchar* _tmp66_ = NULL;
				const gchar* _tmp67_ = NULL;
				gchar* _tmp68_ = NULL;
				_tmp65_ = gettext_domain;
				_tmp66_ = description;
				_tmp67_ = g_dgettext (_tmp65_, _tmp66_);
				_tmp68_ = g_strdup (_tmp67_);
				_g_free0 (description);
				description = _tmp68_;
			}
			_tmp69_ = self->priv->selected_key;
			_tmp70_ = configuration_editor_key_to_description (self, _tmp69_);
			_g_free0 (type);
			type = _tmp70_;
			_tmp71_ = self->priv->selected_key;
			_tmp72_ = _tmp71_->schema;
			_tmp73_ = _tmp72_->default_value;
			_tmp74_ = g_variant_print (_tmp73_, FALSE);
			_g_free0 (default_value);
			default_value = _tmp74_;
			_g_free0 (gettext_domain);
		} else {
			const gchar* _tmp75_ = NULL;
			gchar* _tmp76_ = NULL;
			_tmp75_ = _ ("No schema");
			_tmp76_ = g_strdup (_tmp75_);
			_g_free0 (schema_name);
			schema_name = _tmp76_;
		}
	}
	_tmp77_ = self->priv->schema_label;
	_tmp78_ = schema_name;
	gtk_label_set_text (_tmp77_, _tmp78_);
	_tmp79_ = self->priv->summary_label;
	_tmp80_ = summary;
	_tmp81_ = string_strip (_tmp80_);
	_tmp82_ = _tmp81_;
	gtk_label_set_text (_tmp79_, _tmp82_);
	_g_free0 (_tmp82_);
	_tmp83_ = self->priv->description_label;
	_tmp84_ = description;
	_tmp85_ = string_strip (_tmp84_);
	_tmp86_ = _tmp85_;
	gtk_label_set_text (_tmp83_, _tmp86_);
	_g_free0 (_tmp86_);
	_tmp87_ = self->priv->type_label;
	_tmp88_ = type;
	gtk_label_set_text (_tmp87_, _tmp88_);
	_tmp89_ = self->priv->default_label;
	_tmp90_ = default_value;
	gtk_label_set_text (_tmp89_, _tmp90_);
	_g_free0 (default_value);
	_g_free0 (type);
	_g_free0 (description);
	_g_free0 (summary);
	_g_free0 (schema_name);
	_g_object_unref0 (model);
}


static void configuration_editor_key_changed_cb (ConfigurationEditor* self, Key* key) {
	gboolean _tmp0_ = FALSE;
	Key* _tmp1_ = NULL;
	GtkAction* _tmp5_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (key != NULL);
	_tmp1_ = self->priv->selected_key;
	if (_tmp1_ != NULL) {
		Key* _tmp2_ = NULL;
		gboolean _tmp3_ = FALSE;
		gboolean _tmp4_ = FALSE;
		_tmp2_ = self->priv->selected_key;
		_tmp3_ = key_get_is_default (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp0_ = !_tmp4_;
	} else {
		_tmp0_ = FALSE;
	}
	_tmp5_ = self->priv->set_default_action;
	gtk_action_set_sensitive (_tmp5_, _tmp0_);
}


static void configuration_editor_set_default_cb (ConfigurationEditor* self, GtkAction* action) {
	Key* _tmp0_ = NULL;
	Key* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	_tmp0_ = self->priv->selected_key;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = self->priv->selected_key;
	key_set_to_default (_tmp1_);
}


static gboolean configuration_editor_main_window_configure_event_cb (ConfigurationEditor* self, GtkWidget* widget, GdkEventConfigure* event) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (widget != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	_tmp1_ = self->priv->window_is_maximized;
	if (!_tmp1_) {
		gboolean _tmp2_ = FALSE;
		_tmp2_ = self->priv->window_is_fullscreen;
		_tmp0_ = !_tmp2_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		GdkEventConfigure* _tmp3_ = NULL;
		gint _tmp4_ = 0;
		GdkEventConfigure* _tmp5_ = NULL;
		gint _tmp6_ = 0;
		_tmp3_ = event;
		_tmp4_ = _tmp3_->width;
		self->priv->window_width = _tmp4_;
		_tmp5_ = event;
		_tmp6_ = _tmp5_->height;
		self->priv->window_height = _tmp6_;
	}
	result = FALSE;
	return result;
}


static gboolean configuration_editor_main_window_window_state_event_cb (ConfigurationEditor* self, GtkWidget* widget, GdkEventWindowState* event) {
	gboolean result = FALSE;
	GdkEventWindowState* _tmp0_ = NULL;
	GdkWindowState _tmp1_ = 0;
	GdkEventWindowState* _tmp4_ = NULL;
	GdkWindowState _tmp5_ = 0;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (widget != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	_tmp0_ = event;
	_tmp1_ = _tmp0_->changed_mask;
	if ((_tmp1_ & GDK_WINDOW_STATE_MAXIMIZED) != 0) {
		GdkEventWindowState* _tmp2_ = NULL;
		GdkWindowState _tmp3_ = 0;
		_tmp2_ = event;
		_tmp3_ = _tmp2_->new_window_state;
		self->priv->window_is_maximized = (_tmp3_ & GDK_WINDOW_STATE_MAXIMIZED) != 0;
	}
	_tmp4_ = event;
	_tmp5_ = _tmp4_->changed_mask;
	if ((_tmp5_ & GDK_WINDOW_STATE_FULLSCREEN) != 0) {
		GdkEventWindowState* _tmp6_ = NULL;
		GdkWindowState _tmp7_ = 0;
		_tmp6_ = event;
		_tmp7_ = _tmp6_->new_window_state;
		self->priv->window_is_fullscreen = (_tmp7_ & GDK_WINDOW_STATE_FULLSCREEN) != 0;
	}
	result = FALSE;
	return result;
}


static void configuration_editor_find_cb (ConfigurationEditor* self) {
	GtkBox* _tmp0_ = NULL;
	GtkEntry* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->search_box;
	gtk_widget_show ((GtkWidget*) _tmp0_);
	_tmp1_ = self->priv->search_entry;
	gtk_widget_grab_focus ((GtkWidget*) _tmp1_);
}


static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
	gint result = 0;
	gchar* _result_ = NULL;
	gint _tmp0_ = 0;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	g_return_val_if_fail (self != NULL, 0);
	g_return_val_if_fail (needle != NULL, 0);
	_tmp0_ = start_index;
	_tmp1_ = needle;
	_tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
	_result_ = _tmp2_;
	_tmp3_ = _result_;
	if (_tmp3_ != NULL) {
		gchar* _tmp4_ = NULL;
		_tmp4_ = _result_;
		result = (gint) (_tmp4_ - ((gchar*) self));
		return result;
	} else {
		result = -1;
		return result;
	}
}


static void configuration_editor_find_next_cb (ConfigurationEditor* self) {
	GtkLabel* _tmp0_ = NULL;
	GtkTreeIter iter = {0};
	GtkTreeIter key_iter = {0};
	gboolean have_key_iter = FALSE;
	GtkTreeView* _tmp1_ = NULL;
	GtkTreeSelection* _tmp2_ = NULL;
	GtkTreeIter _tmp3_ = {0};
	gboolean _tmp4_ = FALSE;
	gboolean on_first_directory = FALSE;
	GtkLabel* _tmp90_ = NULL;
	const gchar* _tmp91_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->search_label;
	gtk_label_set_text (_tmp0_, "");
	memset (&key_iter, 0, sizeof (GtkTreeIter));
	have_key_iter = FALSE;
	_tmp1_ = self->priv->dir_tree_view;
	_tmp2_ = gtk_tree_view_get_selection (_tmp1_);
	_tmp4_ = gtk_tree_selection_get_selected (_tmp2_, NULL, &_tmp3_);
	iter = _tmp3_;
	if (_tmp4_) {
		GtkTreeView* _tmp5_ = NULL;
		GtkTreeSelection* _tmp6_ = NULL;
		GtkTreeIter _tmp7_ = {0};
		gboolean _tmp8_ = FALSE;
		_tmp5_ = self->priv->key_tree_view;
		_tmp6_ = gtk_tree_view_get_selection (_tmp5_);
		_tmp8_ = gtk_tree_selection_get_selected (_tmp6_, NULL, &_tmp7_);
		key_iter = _tmp7_;
		if (_tmp8_) {
			Directory* dir = NULL;
			SettingsModel* _tmp9_ = NULL;
			GtkTreeIter _tmp10_ = {0};
			Directory* _tmp11_ = NULL;
			Directory* _tmp12_ = NULL;
			KeyModel* _tmp13_ = NULL;
			KeyModel* _tmp14_ = NULL;
			gboolean _tmp15_ = FALSE;
			_tmp9_ = self->priv->model;
			_tmp10_ = iter;
			_tmp11_ = settings_model_get_directory (_tmp9_, &_tmp10_);
			dir = _tmp11_;
			_tmp12_ = dir;
			_tmp13_ = directory_get_key_model (_tmp12_);
			_tmp14_ = _tmp13_;
			_tmp15_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp14_, &key_iter);
			if (_tmp15_) {
				have_key_iter = TRUE;
			} else {
				configuration_editor_get_next_iter (self, &iter);
			}
			_g_object_unref0 (dir);
		}
	} else {
		SettingsModel* _tmp16_ = NULL;
		GtkTreeIter _tmp17_ = {0};
		gboolean _tmp18_ = FALSE;
		_tmp16_ = self->priv->model;
		_tmp18_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp16_, &_tmp17_);
		iter = _tmp17_;
		if (!_tmp18_) {
			return;
		}
	}
	on_first_directory = TRUE;
	{
		gboolean _tmp19_ = FALSE;
		_tmp19_ = TRUE;
		while (TRUE) {
			Directory* dir = NULL;
			SettingsModel* _tmp21_ = NULL;
			GtkTreeIter _tmp22_ = {0};
			Directory* _tmp23_ = NULL;
			gboolean _tmp24_ = FALSE;
			gboolean _tmp51_ = FALSE;
			if (!_tmp19_) {
				gboolean _tmp20_ = FALSE;
				_tmp20_ = configuration_editor_get_next_iter (self, &iter);
				if (!_tmp20_) {
					break;
				}
			}
			_tmp19_ = FALSE;
			_tmp21_ = self->priv->model;
			_tmp22_ = iter;
			_tmp23_ = settings_model_get_directory (_tmp21_, &_tmp22_);
			dir = _tmp23_;
			_tmp24_ = have_key_iter;
			if (!_tmp24_) {
				Directory* _tmp25_ = NULL;
				KeyModel* _tmp26_ = NULL;
				KeyModel* _tmp27_ = NULL;
				GtkTreeIter _tmp28_ = {0};
				gboolean _tmp29_ = FALSE;
				gboolean _tmp30_ = FALSE;
				gboolean _tmp31_ = FALSE;
				_tmp25_ = dir;
				_tmp26_ = directory_get_key_model (_tmp25_);
				_tmp27_ = _tmp26_;
				_tmp29_ = gtk_tree_model_get_iter_first ((GtkTreeModel*) _tmp27_, &_tmp28_);
				key_iter = _tmp28_;
				have_key_iter = _tmp29_;
				_tmp31_ = on_first_directory;
				if (!_tmp31_) {
					Directory* _tmp32_ = NULL;
					const gchar* _tmp33_ = NULL;
					GtkEntry* _tmp34_ = NULL;
					const gchar* _tmp35_ = NULL;
					const gchar* _tmp36_ = NULL;
					gint _tmp37_ = 0;
					_tmp32_ = dir;
					_tmp33_ = _tmp32_->name;
					_tmp34_ = self->priv->search_entry;
					_tmp35_ = gtk_entry_get_text (_tmp34_);
					_tmp36_ = _tmp35_;
					_tmp37_ = string_index_of (_tmp33_, _tmp36_, 0);
					_tmp30_ = _tmp37_ >= 0;
				} else {
					_tmp30_ = FALSE;
				}
				if (_tmp30_) {
					GtkTreeView* _tmp38_ = NULL;
					SettingsModel* _tmp39_ = NULL;
					GtkTreeIter _tmp40_ = {0};
					GtkTreePath* _tmp41_ = NULL;
					GtkTreePath* _tmp42_ = NULL;
					GtkTreeView* _tmp43_ = NULL;
					GtkTreeSelection* _tmp44_ = NULL;
					GtkTreeIter _tmp45_ = {0};
					GtkTreeView* _tmp46_ = NULL;
					SettingsModel* _tmp47_ = NULL;
					GtkTreeIter _tmp48_ = {0};
					GtkTreePath* _tmp49_ = NULL;
					GtkTreePath* _tmp50_ = NULL;
					_tmp38_ = self->priv->dir_tree_view;
					_tmp39_ = self->priv->model;
					_tmp40_ = iter;
					_tmp41_ = gtk_tree_model_get_path ((GtkTreeModel*) _tmp39_, &_tmp40_);
					_tmp42_ = _tmp41_;
					gtk_tree_view_expand_to_path (_tmp38_, _tmp42_);
					_gtk_tree_path_free0 (_tmp42_);
					_tmp43_ = self->priv->dir_tree_view;
					_tmp44_ = gtk_tree_view_get_selection (_tmp43_);
					_tmp45_ = iter;
					gtk_tree_selection_select_iter (_tmp44_, &_tmp45_);
					_tmp46_ = self->priv->dir_tree_view;
					_tmp47_ = self->priv->model;
					_tmp48_ = iter;
					_tmp49_ = gtk_tree_model_get_path ((GtkTreeModel*) _tmp47_, &_tmp48_);
					_tmp50_ = _tmp49_;
					gtk_tree_view_scroll_to_cell (_tmp46_, _tmp50_, NULL, FALSE, (gfloat) 0, (gfloat) 0);
					_gtk_tree_path_free0 (_tmp50_);
					_g_object_unref0 (dir);
					return;
				}
			}
			on_first_directory = FALSE;
			_tmp51_ = have_key_iter;
			if (_tmp51_) {
				{
					gboolean _tmp52_ = FALSE;
					_tmp52_ = TRUE;
					while (TRUE) {
						Key* key = NULL;
						Directory* _tmp57_ = NULL;
						KeyModel* _tmp58_ = NULL;
						KeyModel* _tmp59_ = NULL;
						GtkTreeIter _tmp60_ = {0};
						Key* _tmp61_ = NULL;
						Key* _tmp62_ = NULL;
						GtkEntry* _tmp63_ = NULL;
						const gchar* _tmp64_ = NULL;
						const gchar* _tmp65_ = NULL;
						gboolean _tmp66_ = FALSE;
						if (!_tmp52_) {
							Directory* _tmp53_ = NULL;
							KeyModel* _tmp54_ = NULL;
							KeyModel* _tmp55_ = NULL;
							gboolean _tmp56_ = FALSE;
							_tmp53_ = dir;
							_tmp54_ = directory_get_key_model (_tmp53_);
							_tmp55_ = _tmp54_;
							_tmp56_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp55_, &key_iter);
							if (!_tmp56_) {
								break;
							}
						}
						_tmp52_ = FALSE;
						_tmp57_ = dir;
						_tmp58_ = directory_get_key_model (_tmp57_);
						_tmp59_ = _tmp58_;
						_tmp60_ = key_iter;
						_tmp61_ = key_model_get_key (_tmp59_, &_tmp60_);
						key = _tmp61_;
						_tmp62_ = key;
						_tmp63_ = self->priv->search_entry;
						_tmp64_ = gtk_entry_get_text (_tmp63_);
						_tmp65_ = _tmp64_;
						_tmp66_ = configuration_editor_key_matches (self, _tmp62_, _tmp65_);
						if (_tmp66_) {
							GtkTreeView* _tmp67_ = NULL;
							SettingsModel* _tmp68_ = NULL;
							GtkTreeIter _tmp69_ = {0};
							GtkTreePath* _tmp70_ = NULL;
							GtkTreePath* _tmp71_ = NULL;
							GtkTreeView* _tmp72_ = NULL;
							GtkTreeSelection* _tmp73_ = NULL;
							GtkTreeIter _tmp74_ = {0};
							GtkTreeView* _tmp75_ = NULL;
							SettingsModel* _tmp76_ = NULL;
							GtkTreeIter _tmp77_ = {0};
							GtkTreePath* _tmp78_ = NULL;
							GtkTreePath* _tmp79_ = NULL;
							GtkTreeView* _tmp80_ = NULL;
							GtkTreeSelection* _tmp81_ = NULL;
							GtkTreeIter _tmp82_ = {0};
							GtkTreeView* _tmp83_ = NULL;
							Directory* _tmp84_ = NULL;
							KeyModel* _tmp85_ = NULL;
							KeyModel* _tmp86_ = NULL;
							GtkTreeIter _tmp87_ = {0};
							GtkTreePath* _tmp88_ = NULL;
							GtkTreePath* _tmp89_ = NULL;
							_tmp67_ = self->priv->dir_tree_view;
							_tmp68_ = self->priv->model;
							_tmp69_ = iter;
							_tmp70_ = gtk_tree_model_get_path ((GtkTreeModel*) _tmp68_, &_tmp69_);
							_tmp71_ = _tmp70_;
							gtk_tree_view_expand_to_path (_tmp67_, _tmp71_);
							_gtk_tree_path_free0 (_tmp71_);
							_tmp72_ = self->priv->dir_tree_view;
							_tmp73_ = gtk_tree_view_get_selection (_tmp72_);
							_tmp74_ = iter;
							gtk_tree_selection_select_iter (_tmp73_, &_tmp74_);
							_tmp75_ = self->priv->dir_tree_view;
							_tmp76_ = self->priv->model;
							_tmp77_ = iter;
							_tmp78_ = gtk_tree_model_get_path ((GtkTreeModel*) _tmp76_, &_tmp77_);
							_tmp79_ = _tmp78_;
							gtk_tree_view_scroll_to_cell (_tmp75_, _tmp79_, NULL, FALSE, (gfloat) 0, (gfloat) 0);
							_gtk_tree_path_free0 (_tmp79_);
							_tmp80_ = self->priv->key_tree_view;
							_tmp81_ = gtk_tree_view_get_selection (_tmp80_);
							_tmp82_ = key_iter;
							gtk_tree_selection_select_iter (_tmp81_, &_tmp82_);
							_tmp83_ = self->priv->key_tree_view;
							_tmp84_ = dir;
							_tmp85_ = directory_get_key_model (_tmp84_);
							_tmp86_ = _tmp85_;
							_tmp87_ = key_iter;
							_tmp88_ = gtk_tree_model_get_path ((GtkTreeModel*) _tmp86_, &_tmp87_);
							_tmp89_ = _tmp88_;
							gtk_tree_view_scroll_to_cell (_tmp83_, _tmp89_, NULL, FALSE, (gfloat) 0, (gfloat) 0);
							_gtk_tree_path_free0 (_tmp89_);
							_g_object_unref0 (key);
							_g_object_unref0 (dir);
							return;
						}
						_g_object_unref0 (key);
					}
				}
			}
			have_key_iter = FALSE;
			_g_object_unref0 (dir);
		}
	}
	_tmp90_ = self->priv->search_label;
	_tmp91_ = _ ("Not found");
	gtk_label_set_text (_tmp90_, _tmp91_);
}


static gboolean configuration_editor_key_matches (ConfigurationEditor* self, Key* key, const gchar* text) {
	gboolean result = FALSE;
	Key* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gint _tmp3_ = 0;
	Key* _tmp4_ = NULL;
	SchemaKey* _tmp5_ = NULL;
	gboolean _tmp24_ = FALSE;
	Key* _tmp25_ = NULL;
	GVariant* _tmp26_ = NULL;
	GVariant* _tmp27_ = NULL;
	const GVariantType* _tmp28_ = NULL;
	gboolean _tmp29_ = FALSE;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (key != NULL, FALSE);
	g_return_val_if_fail (text != NULL, FALSE);
	_tmp0_ = key;
	_tmp1_ = _tmp0_->name;
	_tmp2_ = text;
	_tmp3_ = string_index_of (_tmp1_, _tmp2_, 0);
	if (_tmp3_ >= 0) {
		result = TRUE;
		return result;
	}
	_tmp4_ = key;
	_tmp5_ = _tmp4_->schema;
	if (_tmp5_ != NULL) {
		gboolean _tmp6_ = FALSE;
		Key* _tmp7_ = NULL;
		SchemaKey* _tmp8_ = NULL;
		const gchar* _tmp9_ = NULL;
		gboolean _tmp15_ = FALSE;
		Key* _tmp16_ = NULL;
		SchemaKey* _tmp17_ = NULL;
		const gchar* _tmp18_ = NULL;
		_tmp7_ = key;
		_tmp8_ = _tmp7_->schema;
		_tmp9_ = _tmp8_->summary;
		if (_tmp9_ != NULL) {
			Key* _tmp10_ = NULL;
			SchemaKey* _tmp11_ = NULL;
			const gchar* _tmp12_ = NULL;
			const gchar* _tmp13_ = NULL;
			gint _tmp14_ = 0;
			_tmp10_ = key;
			_tmp11_ = _tmp10_->schema;
			_tmp12_ = _tmp11_->summary;
			_tmp13_ = text;
			_tmp14_ = string_index_of (_tmp12_, _tmp13_, 0);
			_tmp6_ = _tmp14_ >= 0;
		} else {
			_tmp6_ = FALSE;
		}
		if (_tmp6_) {
			result = TRUE;
			return result;
		}
		_tmp16_ = key;
		_tmp17_ = _tmp16_->schema;
		_tmp18_ = _tmp17_->description;
		if (_tmp18_ != NULL) {
			Key* _tmp19_ = NULL;
			SchemaKey* _tmp20_ = NULL;
			const gchar* _tmp21_ = NULL;
			const gchar* _tmp22_ = NULL;
			gint _tmp23_ = 0;
			_tmp19_ = key;
			_tmp20_ = _tmp19_->schema;
			_tmp21_ = _tmp20_->description;
			_tmp22_ = text;
			_tmp23_ = string_index_of (_tmp21_, _tmp22_, 0);
			_tmp15_ = _tmp23_ >= 0;
		} else {
			_tmp15_ = FALSE;
		}
		if (_tmp15_) {
			result = TRUE;
			return result;
		}
	}
	_tmp25_ = key;
	_tmp26_ = key_get_value (_tmp25_);
	_tmp27_ = _tmp26_;
	_tmp28_ = G_VARIANT_TYPE_STRING;
	_tmp29_ = g_variant_is_of_type (_tmp27_, _tmp28_);
	if (_tmp29_) {
		Key* _tmp30_ = NULL;
		GVariant* _tmp31_ = NULL;
		GVariant* _tmp32_ = NULL;
		const gchar* _tmp33_ = NULL;
		const gchar* _tmp34_ = NULL;
		gint _tmp35_ = 0;
		_tmp30_ = key;
		_tmp31_ = key_get_value (_tmp30_);
		_tmp32_ = _tmp31_;
		_tmp33_ = g_variant_get_string (_tmp32_, NULL);
		_tmp34_ = text;
		_tmp35_ = string_index_of (_tmp33_, _tmp34_, 0);
		_tmp24_ = _tmp35_ >= 0;
	} else {
		_tmp24_ = FALSE;
	}
	if (_tmp24_) {
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}


static gboolean configuration_editor_get_next_iter (ConfigurationEditor* self, GtkTreeIter* iter) {
	gboolean result = FALSE;
	SettingsModel* _tmp0_ = NULL;
	GtkTreeIter _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (iter != NULL, FALSE);
	_tmp0_ = self->priv->model;
	_tmp1_ = *iter;
	_tmp2_ = gtk_tree_model_iter_has_child ((GtkTreeModel*) _tmp0_, &_tmp1_);
	if (_tmp2_) {
		SettingsModel* _tmp3_ = NULL;
		GtkTreeIter _tmp4_ = {0};
		GtkTreeIter _tmp5_ = {0};
		_tmp3_ = self->priv->model;
		_tmp4_ = *iter;
		gtk_tree_model_iter_nth_child ((GtkTreeModel*) _tmp3_, &_tmp5_, &_tmp4_, 0);
		*iter = _tmp5_;
		result = TRUE;
		return result;
	}
	while (TRUE) {
		SettingsModel* _tmp6_ = NULL;
		gboolean _tmp7_ = FALSE;
		SettingsModel* _tmp8_ = NULL;
		GtkTreeIter _tmp9_ = {0};
		GtkTreeIter _tmp10_ = {0};
		gboolean _tmp11_ = FALSE;
		_tmp6_ = self->priv->model;
		_tmp7_ = gtk_tree_model_iter_next ((GtkTreeModel*) _tmp6_, iter);
		if (!(!_tmp7_)) {
			break;
		}
		_tmp8_ = self->priv->model;
		_tmp9_ = *iter;
		_tmp11_ = gtk_tree_model_iter_parent ((GtkTreeModel*) _tmp8_, &_tmp10_, &_tmp9_);
		*iter = _tmp10_;
		if (!_tmp11_) {
			result = FALSE;
			return result;
		}
	}
	result = TRUE;
	return result;
}


static void configuration_editor_about_cb (ConfigurationEditor* self) {
	gchar** authors = NULL;
	gchar* _tmp0_ = NULL;
	gchar** _tmp1_ = NULL;
	gint authors_length1 = 0;
	gint _authors_size_ = 0;
	gchar* license = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	GtkApplicationWindow* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	const gchar* _tmp8_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_strdup ("Robert Ancell");
	_tmp1_ = g_new0 (gchar*, 2 + 1);
	_tmp1_[0] = _tmp0_;
	_tmp1_[1] = NULL;
	authors = _tmp1_;
	authors_length1 = 2;
	_authors_size_ = authors_length1;
	_tmp2_ = _ ("This program is free software; you can redistribute it and/or modify i" \
"t under the terms of the GNU General Public License as published by th" \
"e Free Software Foundation; either version 2 of the License, or (at yo" \
"ur option) any later version.\n" \
"\n" \
"This program is distributed in the hope that it will be useful, but WI" \
"THOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILI" \
"TY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Li" \
"cense for more details.\n" \
"\n" \
"You should have received a copy of the GNU General Public License alon" \
"g with this program; if not, write to the Free Software Foundation, In" \
"c., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA");
	_tmp3_ = g_strdup (_tmp2_);
	license = _tmp3_;
	_tmp4_ = self->priv->window;
	_tmp5_ = _ ("dconf Editor");
	_tmp6_ = _ ("Directly edit your entire configuration database");
	_tmp7_ = _ ("Copyright \xc2\xa9 Canonical Ltd");
	_tmp8_ = _ ("translator-credits");
	gtk_show_about_dialog ((GtkWindow*) _tmp4_, "program-name", _tmp5_, "version", VERSION, "comments", _tmp6_, "copyright", _tmp7_, "license", license, "wrap-license", TRUE, "authors", authors, "translator-credits", _tmp8_, "logo-icon-name", "dconf-editor", NULL, NULL);
	_g_free0 (license);
	authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
}


static void configuration_editor_quit_cb (ConfigurationEditor* self) {
	GtkApplicationWindow* _tmp0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->window;
	gtk_widget_destroy ((GtkWidget*) _tmp0_);
}


gint configuration_editor_main (gchar** args, int args_length1) {
	gint result = 0;
	ConfigurationEditor* app = NULL;
	ConfigurationEditor* _tmp0_ = NULL;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	gint _tmp2_ = 0;
	setlocale (LC_ALL, "");
	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
	textdomain (GETTEXT_PACKAGE);
	_tmp0_ = configuration_editor_new ();
	app = _tmp0_;
	_tmp1_ = args;
	_tmp1__length1 = args_length1;
	_tmp2_ = g_application_run ((GApplication*) app, _tmp1__length1, _tmp1_);
	result = _tmp2_;
	_g_object_unref0 (app);
	return result;
}


int main (int argc, char ** argv) {
#if !GLIB_CHECK_VERSION (2,35,0)
	g_type_init ();
#endif
	return configuration_editor_main (argv, argc);
}


static void configuration_editor_class_init (ConfigurationEditorClass * klass) {
	configuration_editor_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (ConfigurationEditorPrivate));
	((GApplicationClass *) klass)->startup = configuration_editor_real_startup;
	((GApplicationClass *) klass)->activate = configuration_editor_real_activate;
	((GApplicationClass *) klass)->shutdown = configuration_editor_real_shutdown;
	G_OBJECT_CLASS (klass)->finalize = configuration_editor_finalize;
}


static void configuration_editor_instance_init (ConfigurationEditor * self) {
	self->priv = CONFIGURATION_EDITOR_GET_PRIVATE (self);
	self->priv->window_width = 0;
	self->priv->window_height = 0;
	self->priv->window_is_maximized = FALSE;
	self->priv->window_is_fullscreen = FALSE;
}


static void configuration_editor_finalize (GObject* obj) {
	ConfigurationEditor * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CONFIGURATION_EDITOR, ConfigurationEditor);
	_g_object_unref0 (self->priv->model);
	_g_object_unref0 (self->priv->settings);
	_g_object_unref0 (self->priv->ui);
	_g_object_unref0 (self->priv->window);
	_g_object_unref0 (self->priv->dir_tree_view);
	_g_object_unref0 (self->priv->key_tree_view);
	_g_object_unref0 (self->priv->key_info_grid);
	_g_object_unref0 (self->priv->schema_label);
	_g_object_unref0 (self->priv->summary_label);
	_g_object_unref0 (self->priv->description_label);
	_g_object_unref0 (self->priv->type_label);
	_g_object_unref0 (self->priv->default_label);
	_g_object_unref0 (self->priv->set_default_action);
	_g_object_unref0 (self->priv->search_box);
	_g_object_unref0 (self->priv->search_entry);
	_g_object_unref0 (self->priv->search_label);
	_g_object_unref0 (self->priv->selected_key);
	G_OBJECT_CLASS (configuration_editor_parent_class)->finalize (obj);
}


GType configuration_editor_get_type (void) {
	static volatile gsize configuration_editor_type_id__volatile = 0;
	if (g_once_init_enter (&configuration_editor_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ConfigurationEditorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) configuration_editor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigurationEditor), 0, (GInstanceInitFunc) configuration_editor_instance_init, NULL };
		GType configuration_editor_type_id;
		configuration_editor_type_id = g_type_register_static (gtk_application_get_type (), "ConfigurationEditor", &g_define_type_info, 0);
		g_once_init_leave (&configuration_editor_type_id__volatile, configuration_editor_type_id);
	}
	return configuration_editor_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);
}



