/* registry-list.c generated by valac 0.56.3, the Vala compiler
 * generated from registry-list.vala, do not modify */

/*
  This file is part of Dconf Editor

  Dconf Editor 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 3 of the License, or
  (at your option) any later version.

  Dconf Editor 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 Dconf Editor.  If not, see <https://www.gnu.org/licenses/>.
*/

#include <gtk/gtk.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.h>
#include <cairo-gobject.h>
#include <float.h>
#include <math.h>
#include <gdk/gdk.h>
#include <glib/gi18n-lib.h>

#define MODEL_UTILS_dconf_context_id ((guint16) 2)
#define MODEL_UTILS_folder_context_id ((guint16) 1)
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TYPE_BROWSABLE_VIEW (browsable_view_get_type ())
#define BROWSABLE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BROWSABLE_VIEW, BrowsableView))
#define IS_BROWSABLE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BROWSABLE_VIEW))
#define BROWSABLE_VIEW_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_BROWSABLE_VIEW, BrowsableViewIface))

typedef struct _BrowsableView BrowsableView;
typedef struct _BrowsableViewIface BrowsableViewIface;

#define TYPE_ADAPTATIVE_WIDGET (adaptative_widget_get_type ())
#define ADAPTATIVE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADAPTATIVE_WIDGET, AdaptativeWidget))
#define IS_ADAPTATIVE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADAPTATIVE_WIDGET))
#define ADAPTATIVE_WIDGET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_ADAPTATIVE_WIDGET, AdaptativeWidgetIface))

typedef struct _AdaptativeWidget AdaptativeWidget;
typedef struct _AdaptativeWidgetIface AdaptativeWidgetIface;
typedef enum  {
	ADAPTATIVE_WIDGET_WINDOW_SIZE_START_SIZE,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_USUAL_SIZE,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_QUITE_THIN,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_PHONE_VERT,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_PHONE_HZTL,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_PHONE_BOTH,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_EXTRA_THIN,
	ADAPTATIVE_WIDGET_WINDOW_SIZE_EXTRA_FLAT
} AdaptativeWidgetWindowSize;

#define ADAPTATIVE_WIDGET_TYPE_WINDOW_SIZE (adaptative_widget_window_size_get_type ())

#define TYPE_REGISTRY_LIST (registry_list_get_type ())
#define REGISTRY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REGISTRY_LIST, RegistryList))
#define REGISTRY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REGISTRY_LIST, RegistryListClass))
#define IS_REGISTRY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REGISTRY_LIST))
#define IS_REGISTRY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REGISTRY_LIST))
#define REGISTRY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REGISTRY_LIST, RegistryListClass))

typedef struct _RegistryList RegistryList;
typedef struct _RegistryListClass RegistryListClass;
typedef struct _RegistryListPrivate RegistryListPrivate;

#define TYPE_MODIFICATIONS_HANDLER (modifications_handler_get_type ())
#define MODIFICATIONS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFICATIONS_HANDLER, ModificationsHandler))
#define MODIFICATIONS_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFICATIONS_HANDLER, ModificationsHandlerClass))
#define IS_MODIFICATIONS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFICATIONS_HANDLER))
#define IS_MODIFICATIONS_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFICATIONS_HANDLER))
#define MODIFICATIONS_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFICATIONS_HANDLER, ModificationsHandlerClass))

typedef struct _ModificationsHandler ModificationsHandler;
typedef struct _ModificationsHandlerClass ModificationsHandlerClass;

#define TYPE_REGISTRY_PLACEHOLDER (registry_placeholder_get_type ())
#define REGISTRY_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REGISTRY_PLACEHOLDER, RegistryPlaceholder))
#define REGISTRY_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REGISTRY_PLACEHOLDER, RegistryPlaceholderClass))
#define IS_REGISTRY_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REGISTRY_PLACEHOLDER))
#define IS_REGISTRY_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REGISTRY_PLACEHOLDER))
#define REGISTRY_PLACEHOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REGISTRY_PLACEHOLDER, RegistryPlaceholderClass))

typedef struct _RegistryPlaceholder RegistryPlaceholder;
typedef struct _RegistryPlaceholderClass RegistryPlaceholderClass;
enum  {
	REGISTRY_LIST_0_PROPERTY,
	REGISTRY_LIST_SEARCH_MODE_PROPERTY,
	REGISTRY_LIST_MODIFICATIONS_HANDLER_PROPERTY,
	REGISTRY_LIST_PLACEHOLDER_LABEL_PROPERTY,
	REGISTRY_LIST_SMALL_KEYS_LIST_ROWS_PROPERTY,
	REGISTRY_LIST_NUM_PROPERTIES
};
static GParamSpec* registry_list_properties[REGISTRY_LIST_NUM_PROPERTIES];
typedef enum  {
	REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_CENTER,
	REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_UP,
	REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_DOWN
} RegistryListScrollToRowBehaviour;

#define REGISTRY_LIST_TYPE_SCROLL_TO_ROW_BEHAVIOUR (registry_list_scroll_to_row_behaviour_get_type ())
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_SIMPLE_SETTING_OBJECT (simple_setting_object_get_type ())
#define SIMPLE_SETTING_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_SETTING_OBJECT, SimpleSettingObject))
#define SIMPLE_SETTING_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_SETTING_OBJECT, SimpleSettingObjectClass))
#define IS_SIMPLE_SETTING_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_SETTING_OBJECT))
#define IS_SIMPLE_SETTING_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_SETTING_OBJECT))
#define SIMPLE_SETTING_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_SETTING_OBJECT, SimpleSettingObjectClass))

typedef struct _SimpleSettingObject SimpleSettingObject;
typedef struct _SimpleSettingObjectClass SimpleSettingObjectClass;

#define TYPE_CLICKABLE_LIST_BOX_ROW (clickable_list_box_row_get_type ())
#define CLICKABLE_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))
#define CLICKABLE_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRowClass))
#define IS_CLICKABLE_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLICKABLE_LIST_BOX_ROW))
#define IS_CLICKABLE_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLICKABLE_LIST_BOX_ROW))
#define CLICKABLE_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRowClass))

typedef struct _ClickableListBoxRow ClickableListBoxRow;
typedef struct _ClickableListBoxRowClass ClickableListBoxRowClass;
typedef struct _Block30Data Block30Data;

#define TYPE_KEY_LIST_BOX_ROW (key_list_box_row_get_type ())
#define KEY_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow))
#define KEY_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRowClass))
#define IS_KEY_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_LIST_BOX_ROW))
#define IS_KEY_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_LIST_BOX_ROW))
#define KEY_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRowClass))

typedef struct _KeyListBoxRow KeyListBoxRow;
typedef struct _KeyListBoxRowClass KeyListBoxRowClass;
typedef struct _Block31Data Block31Data;

#define TYPE_LIST_BOX_ROW_WRAPPER (list_box_row_wrapper_get_type ())
#define LIST_BOX_ROW_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapper))
#define LIST_BOX_ROW_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapperClass))
#define IS_LIST_BOX_ROW_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIST_BOX_ROW_WRAPPER))
#define IS_LIST_BOX_ROW_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIST_BOX_ROW_WRAPPER))
#define LIST_BOX_ROW_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapperClass))

typedef struct _ListBoxRowWrapper ListBoxRowWrapper;
typedef struct _ListBoxRowWrapperClass ListBoxRowWrapperClass;

#define TYPE_SETTINGS_MODEL_CORE (settings_model_core_get_type ())
#define SETTINGS_MODEL_CORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SETTINGS_MODEL_CORE, SettingsModelCore))
#define SETTINGS_MODEL_CORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SETTINGS_MODEL_CORE, SettingsModelCoreClass))
#define IS_SETTINGS_MODEL_CORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SETTINGS_MODEL_CORE))
#define IS_SETTINGS_MODEL_CORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SETTINGS_MODEL_CORE))
#define SETTINGS_MODEL_CORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SETTINGS_MODEL_CORE, SettingsModelCoreClass))

typedef struct _SettingsModelCore SettingsModelCore;
typedef struct _SettingsModelCoreClass SettingsModelCoreClass;

#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 _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
typedef struct _Block32Data Block32Data;

#define TYPE_FILTER_LIST_BOX_ROW (filter_list_box_row_get_type ())
#define FILTER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRow))
#define FILTER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRowClass))
#define IS_FILTER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILTER_LIST_BOX_ROW))
#define IS_FILTER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILTER_LIST_BOX_ROW))
#define FILTER_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRowClass))

typedef struct _FilterListBoxRow FilterListBoxRow;
typedef struct _FilterListBoxRowClass FilterListBoxRowClass;

#define TYPE_RETURN_LIST_BOX_ROW (return_list_box_row_get_type ())
#define RETURN_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRow))
#define RETURN_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRowClass))
#define IS_RETURN_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RETURN_LIST_BOX_ROW))
#define IS_RETURN_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RETURN_LIST_BOX_ROW))
#define RETURN_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RETURN_LIST_BOX_ROW, ReturnListBoxRowClass))

typedef struct _ReturnListBoxRow ReturnListBoxRow;
typedef struct _ReturnListBoxRowClass ReturnListBoxRowClass;

#define TYPE_SEARCH_LIST_BOX_ROW (search_list_box_row_get_type ())
#define SEARCH_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRow))
#define SEARCH_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRowClass))
#define IS_SEARCH_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_LIST_BOX_ROW))
#define IS_SEARCH_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_LIST_BOX_ROW))
#define SEARCH_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_LIST_BOX_ROW, SearchListBoxRowClass))

typedef struct _SearchListBoxRow SearchListBoxRow;
typedef struct _SearchListBoxRowClass SearchListBoxRowClass;

#define TYPE_FOLDER_LIST_BOX_ROW (folder_list_box_row_get_type ())
#define FOLDER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRow))
#define FOLDER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRowClass))
#define IS_FOLDER_LIST_BOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FOLDER_LIST_BOX_ROW))
#define IS_FOLDER_LIST_BOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FOLDER_LIST_BOX_ROW))
#define FOLDER_LIST_BOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRowClass))

typedef struct _FolderListBoxRow FolderListBoxRow;
typedef struct _FolderListBoxRowClass FolderListBoxRowClass;
typedef struct _Block33Data Block33Data;
typedef enum  {
	PROPERTY_QUERY_HASH = 1 << 0,
	PROPERTY_QUERY_HAS_SCHEMA = 1 << 1,
	PROPERTY_QUERY_KEY_NAME = 1 << 2,
	PROPERTY_QUERY_TYPE_CODE = 1 << 3,
	PROPERTY_QUERY_KEY_VALUE = 1 << 4,
	PROPERTY_QUERY_FIXED_SCHEMA = 1 << 5,
	PROPERTY_QUERY_SCHEMA_ID = 1 << 6,
	PROPERTY_QUERY_SUMMARY = 1 << 7,
	PROPERTY_QUERY_DESCRIPTION = 1 << 8,
	PROPERTY_QUERY_DEFAULT_VALUE = 1 << 9,
	PROPERTY_QUERY_RANGE_TYPE = 1 << 10,
	PROPERTY_QUERY_RANGE_CONTENT = 1 << 11,
	PROPERTY_QUERY_MAXIMUM = 1 << 12,
	PROPERTY_QUERY_MINIMUM = 1 << 13,
	PROPERTY_QUERY_KEY_CONFLICT = 1 << 14,
	PROPERTY_QUERY_IS_DEFAULT = 1 << 15
} PropertyQuery;

#define TYPE_PROPERTY_QUERY (property_query_get_type ())

#define TYPE_REGISTRY_VARIANT_DICT (registry_variant_dict_get_type ())
#define REGISTRY_VARIANT_DICT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REGISTRY_VARIANT_DICT, RegistryVariantDict))
#define REGISTRY_VARIANT_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REGISTRY_VARIANT_DICT, RegistryVariantDictClass))
#define IS_REGISTRY_VARIANT_DICT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REGISTRY_VARIANT_DICT))
#define IS_REGISTRY_VARIANT_DICT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REGISTRY_VARIANT_DICT))
#define REGISTRY_VARIANT_DICT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REGISTRY_VARIANT_DICT, RegistryVariantDictClass))

typedef struct _RegistryVariantDict RegistryVariantDict;
typedef struct _RegistryVariantDictClass RegistryVariantDictClass;
typedef enum  {
	KEY_CONFLICT_NONE,
	KEY_CONFLICT_SOFT,
	KEY_CONFLICT_HARD
} KeyConflict;

#define TYPE_KEY_CONFLICT (key_conflict_get_type ())
typedef struct _ClickableListBoxRowPrivate ClickableListBoxRowPrivate;

#define TYPE_CONTEXT_POPOVER (context_popover_get_type ())
#define CONTEXT_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTEXT_POPOVER, ContextPopover))
#define CONTEXT_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTEXT_POPOVER, ContextPopoverClass))
#define IS_CONTEXT_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTEXT_POPOVER))
#define IS_CONTEXT_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTEXT_POPOVER))
#define CONTEXT_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTEXT_POPOVER, ContextPopoverClass))

typedef struct _ContextPopover ContextPopover;
typedef struct _ContextPopoverClass ContextPopoverClass;
typedef struct _Block34Data Block34Data;
typedef struct _Block35Data Block35Data;
typedef enum  {
	RANGE_TYPE_TYPE,
	RANGE_TYPE_ENUM,
	RANGE_TYPE_FLAGS,
	RANGE_TYPE_RANGE,
	RANGE_TYPE_OTHER
} RangeType;

#define TYPE_RANGE_TYPE (range_type_get_type ())
typedef struct _Block36Data Block36Data;
typedef struct _Block37Data Block37Data;
typedef struct _Block38Data Block38Data;
typedef struct _Block39Data Block39Data;
#define _g_variant_type_free0(var) ((var == NULL) ? NULL : (var = (g_variant_type_free (var), NULL)))

#define TYPE_LIST_BOX_ROW_HEADER (list_box_row_header_get_type ())
#define LIST_BOX_ROW_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIST_BOX_ROW_HEADER, ListBoxRowHeader))
#define LIST_BOX_ROW_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIST_BOX_ROW_HEADER, ListBoxRowHeaderClass))
#define IS_LIST_BOX_ROW_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIST_BOX_ROW_HEADER))
#define IS_LIST_BOX_ROW_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIST_BOX_ROW_HEADER))
#define LIST_BOX_ROW_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIST_BOX_ROW_HEADER, ListBoxRowHeaderClass))

typedef struct _ListBoxRowHeader ListBoxRowHeader;
typedef struct _ListBoxRowHeaderClass ListBoxRowHeaderClass;
typedef struct _Block40Data Block40Data;
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _BrowsableViewIface {
	GTypeInterface parent_iface;
	gboolean (*handle_copy_text) (BrowsableView* self, gchar** copy_text);
};

struct _AdaptativeWidgetIface {
	GTypeInterface parent_iface;
	void (*set_window_size) (AdaptativeWidget* self, AdaptativeWidgetWindowSize new_size);
};

struct _RegistryList {
	GtkGrid parent_instance;
	RegistryListPrivate * priv;
	GtkListBox* key_list_box;
	gchar* current_path_if_search_mode;
	gboolean search_is_path_search;
	GListStore* list_model;
};

struct _RegistryListClass {
	GtkGridClass parent_class;
	void (*select_first_row) (RegistryList* self);
	const gchar* (*get_placeholder_label) (RegistryList* self);
};

struct _RegistryListPrivate {
	GtkScrolledWindow* scrolled;
	GtkAdjustment* adjustment;
	gboolean _search_mode;
	GListStore* rows_possibly_with_popover;
	ModificationsHandler* _modifications_handler;
	RegistryPlaceholder* placeholder;
	gboolean _small_keys_list_rows;
	AdaptativeWidgetWindowSize window_size;
	gint width;
	gint height;
};

struct _Block30Data {
	int _ref_count_;
	RegistryList* self;
	AdaptativeWidgetWindowSize new_size;
};

struct _Block31Data {
	int _ref_count_;
	gboolean show;
};

struct _Block32Data {
	int _ref_count_;
	RegistryList* self;
	ClickableListBoxRow* row;
	gulong button_press_event_handler;
};

struct _Block33Data {
	int _ref_count_;
	Block32Data * _data32_;
	KeyListBoxRow* key_row;
	gulong delayed_modifications_changed_handler;
};

struct _ClickableListBoxRow {
	GtkEventBox parent_instance;
	ClickableListBoxRowPrivate * priv;
	ContextPopover* nullable_popover;
};

struct _ClickableListBoxRowClass {
	GtkEventBoxClass parent_class;
};

struct _Block34Data {
	int _ref_count_;
	ClickableListBoxRow* row;
};

struct _Block35Data {
	int _ref_count_;
	ContextPopover* popover;
	gchar* full_name;
	guint16 context_id;
	KeyListBoxRow* row;
	ModificationsHandler* modifications_handler;
};

struct _Block36Data {
	int _ref_count_;
	Block35Data * _data35_;
	GAction* action;
};

struct _Block37Data {
	int _ref_count_;
	Block35Data * _data35_;
	gchar** all_flags;
	gint all_flags_length1;
	gint _all_flags_size_;
	gulong delayed_modifications_changed_handler;
};

struct _Block38Data {
	int _ref_count_;
	KeyListBoxRow* row;
};

struct _Block39Data {
	int _ref_count_;
	Block38Data * _data38_;
	GAction* action;
};

struct _Block40Data {
	int _ref_count_;
	RegistryList* self;
	gboolean value;
};

static gint RegistryList_private_offset;
static gpointer registry_list_parent_class = NULL;
static BrowsableViewIface * registry_list_browsable_view_parent_iface = NULL;
static AdaptativeWidgetIface * registry_list_adaptative_widget_parent_iface = NULL;

VALA_EXTERN GType browsable_view_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType adaptative_widget_window_size_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType adaptative_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AdaptativeWidget, g_object_unref)
VALA_EXTERN GType registry_list_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RegistryList, g_object_unref)
VALA_EXTERN GType modifications_handler_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ModificationsHandler, g_object_unref)
VALA_EXTERN GType registry_placeholder_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RegistryPlaceholder, g_object_unref)
VALA_EXTERN void registry_list_select_first_row (RegistryList* self);
static GType registry_list_scroll_to_row_behaviour_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
VALA_EXTERN GType simple_setting_object_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SimpleSettingObject, g_object_unref)
VALA_EXTERN GType clickable_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClickableListBoxRow, g_object_unref)
static void registry_list_real_set_window_size (AdaptativeWidget* base,
                                         AdaptativeWidgetWindowSize new_size);
static Block30Data* block30_data_ref (Block30Data* _data30_);
static void block30_data_unref (void * _userdata_);
static void __lambda40_ (Block30Data* _data30_,
                  GtkWidget* row);
VALA_EXTERN GType key_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (KeyListBoxRow, g_object_unref)
VALA_EXTERN void adaptative_widget_set_window_size (AdaptativeWidget* self,
                                        AdaptativeWidgetWindowSize new_size);
static void ___lambda40__gtk_callback (GtkWidget* widget,
                                gpointer self);
static void registry_list_select_row_and_if_true_grab_focus (RegistryList* self,
                                                      GtkListBoxRow* row,
                                                      gboolean grab_focus);
static void registry_list_real_select_first_row (RegistryList* self);
static void registry_list_scroll_to_row (RegistryList* self,
                                  GtkListBoxRow* row,
                                  RegistryListScrollToRowBehaviour behaviour);
VALA_EXTERN void registry_list_invalidate_popovers (RegistryList* self);
static void _registry_list_invalidate_popovers (GListStore* rows_possibly_with_popover);
VALA_EXTERN void clickable_list_box_row_destroy_popover (ClickableListBoxRow* self);
VALA_EXTERN void registry_list_hide_or_show_toggles (RegistryList* self,
                                         gboolean show);
static void _registry_list_hide_or_show_toggles (GtkListBox* key_list_box,
                                          gboolean show);
static Block31Data* block31_data_ref (Block31Data* _data31_);
static void block31_data_unref (void * _userdata_);
static void __lambda41_ (Block31Data* _data31_,
                  GtkWidget* row_wrapper);
VALA_EXTERN GType list_box_row_wrapper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListBoxRowWrapper, g_object_unref)
VALA_EXTERN const gchar* key_list_box_row_get_type_string (KeyListBoxRow* self);
VALA_EXTERN void key_list_box_row_set_delay_mode (KeyListBoxRow* self,
                                      gboolean value);
static void ___lambda41__gtk_callback (GtkWidget* widget,
                                gpointer self);
VALA_EXTERN gchar* registry_list_get_selected_row_name (RegistryList* self);
static gchar* _registry_list_get_selected_row_name (GtkListBox* key_list_box,
                                             GListStore* list_model);
VALA_EXTERN const gchar* simple_setting_object_get_full_name (SimpleSettingObject* self);
VALA_EXTERN void registry_list_select_row_named (RegistryList* self,
                                     const gchar* selected,
                                     guint16 context_id,
                                     gboolean grab_focus);
static gint registry_list_get_row_position (GListStore* list_model,
                                     const gchar* selected,
                                     guint16 context_id);
VALA_EXTERN gboolean model_utils_is_folder_context_id (guint16 context_id);
VALA_EXTERN guint16 simple_setting_object_get_context_id (SimpleSettingObject* self);
static void registry_list_set_delayed_icon (ModificationsHandler* _modifications_handler,
                                     KeyListBoxRow* row);
VALA_EXTERN GType settings_model_core_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SettingsModelCore, g_object_unref)
VALA_EXTERN GType settings_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SettingsModel, g_object_unref)
VALA_EXTERN SettingsModel* modifications_handler_get_model (ModificationsHandler* self);
VALA_EXTERN gboolean modifications_handler_key_has_planned_change (ModificationsHandler* self,
                                                       const gchar* key_path);
VALA_EXTERN const gchar* clickable_list_box_row_get_full_name (ClickableListBoxRow* self);
VALA_EXTERN gboolean settings_model_key_has_schema (SettingsModel* self,
                                        const gchar* key_path);
VALA_EXTERN GVariant* modifications_handler_get_key_planned_value (ModificationsHandler* self,
                                                       const gchar* key_path);
VALA_EXTERN gboolean settings_model_is_key_ghost (SettingsModel* self,
                                      const gchar* key_path);
static inline void registry_list_register_size_allocate (RegistryList* self);
static void registry_list_on_size_allocate (RegistryList* self,
                                     GtkAllocation* allocation);
static void _registry_list_on_size_allocate_gtk_widget_size_allocate (GtkWidget* _sender,
                                                               GtkAllocation* allocation,
                                                               gpointer self);
static void registry_list_hide_right_click_popover (RegistryList* self);
VALA_EXTERN gboolean clickable_list_box_row_right_click_popover_visible (ClickableListBoxRow* self);
VALA_EXTERN void clickable_list_box_row_hide_right_click_popover (ClickableListBoxRow* self);
VALA_EXTERN gboolean registry_list_toggle_row_popover (RegistryList* self);
static void registry_list_show_right_click_popover (RegistryList* self,
                                             ClickableListBoxRow* row,
                                             gint* nullable_event_x);
static gboolean registry_list_real_handle_copy_text (BrowsableView* base,
                                              gchar** copy_text);
static gboolean _registry_list_handle_copy_text (RegistryList* self,
                                          gchar** copy_text,
                                          GtkListBox* key_list_box);
VALA_EXTERN gboolean base_window_no_copy_text (gchar** copy_text);
VALA_EXTERN guint16 clickable_list_box_row_get_context_id (ClickableListBoxRow* self);
VALA_EXTERN gboolean model_utils_is_undefined_context_id (guint16 context_id);
static inline gchar* _registry_list_get_folder_or_search_copy_text (ClickableListBoxRow* row);
static inline gchar* _registry_list_get_key_copy_text (ClickableListBoxRow* row,
                                         ModificationsHandler* modifications_handler);
VALA_EXTERN ModificationsHandler* registry_list_get_modifications_handler (RegistryList* self);
VALA_EXTERN gchar* settings_model_get_suggested_key_copy_text (SettingsModel* self,
                                                   const gchar* key_path,
                                                   guint16 key_context_id);
VALA_EXTERN void registry_list_toggle_boolean_key (RegistryList* self);
VALA_EXTERN void key_list_box_row_toggle_boolean_key (KeyListBoxRow* self);
VALA_EXTERN void registry_list_set_selected_to_default (RegistryList* self);
VALA_EXTERN void key_list_box_row_on_delete_call (KeyListBoxRow* self);
VALA_EXTERN void registry_list_discard_row_popover (RegistryList* self);
VALA_EXTERN void registry_list_row_grab_focus (RegistryList* self);
VALA_EXTERN gboolean registry_list_next_match (RegistryList* self);
static gboolean registry_list_next_or_previous_match (RegistryList* self,
                                               gboolean is_next);
VALA_EXTERN gboolean registry_list_previous_match (RegistryList* self);
static gboolean registry_list_get_search_mode (RegistryList* self);
VALA_EXTERN GtkWidget* registry_list_new_list_box_row (RegistryList* self,
                                           GObject* item);
static Block32Data* block32_data_ref (Block32Data* _data32_);
static void block32_data_unref (void * _userdata_);
VALA_EXTERN gchar* model_utils_get_parent_path (const gchar* path);
VALA_EXTERN gboolean simple_setting_object_get_is_pinned (SimpleSettingObject* self);
VALA_EXTERN gboolean simple_setting_object_get_is_search (SimpleSettingObject* self);
VALA_EXTERN const gchar* simple_setting_object_get_name (SimpleSettingObject* self);
VALA_EXTERN FilterListBoxRow* filter_list_box_row_new (const gchar* name,
                                           const gchar* path);
VALA_EXTERN FilterListBoxRow* filter_list_box_row_construct (GType object_type,
                                                 const gchar* name,
                                                 const gchar* path);
VALA_EXTERN GType filter_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FilterListBoxRow, g_object_unref)
VALA_EXTERN ReturnListBoxRow* return_list_box_row_new (const gchar* _full_name,
                                           guint16 _context_id);
VALA_EXTERN ReturnListBoxRow* return_list_box_row_construct (GType object_type,
                                                 const gchar* _full_name,
                                                 guint16 _context_id);
VALA_EXTERN GType return_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReturnListBoxRow, g_object_unref)
VALA_EXTERN SearchListBoxRow* search_list_box_row_new (const gchar* search);
VALA_EXTERN SearchListBoxRow* search_list_box_row_construct (GType object_type,
                                                 const gchar* search);
VALA_EXTERN GType search_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SearchListBoxRow, g_object_unref)
VALA_EXTERN FolderListBoxRow* folder_list_box_row_new (const gchar* label,
                                           const gchar* path,
                                           gboolean path_search,
                                           gboolean search_result_mode);
VALA_EXTERN FolderListBoxRow* folder_list_box_row_construct (GType object_type,
                                                 const gchar* label,
                                                 const gchar* path,
                                                 gboolean path_search,
                                                 gboolean search_result_mode);
VALA_EXTERN GType folder_list_box_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FolderListBoxRow, g_object_unref)
static Block33Data* block33_data_ref (Block33Data* _data33_);
static void block33_data_unref (void * _userdata_);
VALA_EXTERN GVariant* settings_model_get_key_properties (SettingsModel* self,
                                             const gchar* key_path,
                                             guint16 key_context_id,
                                             guint16 query);
VALA_EXTERN GType property_query_get_type (void) G_GNUC_CONST ;
static KeyListBoxRow* registry_list_create_key_list_box_row (const gchar* full_name,
                                                      guint16 context_id,
                                                      GVariant* aqv,
                                                      gboolean delay_mode,
                                                      gboolean search_mode_non_local_result);
VALA_EXTERN gboolean modifications_handler_get_current_delay_mode (ModificationsHandler* self);
VALA_EXTERN void key_list_box_row_set_small_keys_list_rows (KeyListBoxRow* self,
                                                gboolean value);
static void _____lambda50_ (Block33Data* _data33_,
                     ModificationsHandler* _modifications_handler);
static void ______lambda50__modifications_handler_delayed_changes_changed (ModificationsHandler* _sender,
                                                                    gpointer self);
static void _____lambda51_ (Block33Data* _data33_);
static void ______lambda51__gtk_widget_destroy (GtkWidget* _sender,
                                         gpointer self);
static gboolean registry_list_on_button_pressed (RegistryList* self,
                                          GtkWidget* widget,
                                          GdkEventButton* event);
static gboolean _registry_list_on_button_pressed_gtk_widget_button_press_event (GtkWidget* _sender,
                                                                         GdkEventButton* event,
                                                                         gpointer self);
static void __lambda52_ (Block32Data* _data32_);
static void ___lambda52__gtk_widget_destroy (GtkWidget* _sender,
                                      gpointer self);
static inline ListBoxRowWrapper* registry_list_put_row_in_wrapper (ClickableListBoxRow* row);
VALA_EXTERN GType registry_variant_dict_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RegistryVariantDict, g_object_unref)
VALA_EXTERN RegistryVariantDict* registry_variant_dict_new_from_aqv (GVariant* variant);
VALA_EXTERN RegistryVariantDict* registry_variant_dict_construct_from_aqv (GType object_type,
                                                               GVariant* variant);
VALA_EXTERN gboolean registry_variant_dict_lookup (RegistryVariantDict* self,
                                       guint16 key,
                                       const gchar* format_string,
                                       ...);
VALA_EXTERN KeyListBoxRow* key_list_box_row_new (gboolean _has_schema,
                                     const gchar* _type_string,
                                     guint16 _context_id,
                                     const gchar* summary,
                                     gboolean italic_summary,
                                     gboolean _delay_mode,
                                     const gchar* _key_name,
                                     const gchar* _full_name,
                                     gboolean _search_result_mode);
VALA_EXTERN KeyListBoxRow* key_list_box_row_construct (GType object_type,
                                           gboolean _has_schema,
                                           const gchar* _type_string,
                                           guint16 _context_id,
                                           const gchar* summary,
                                           gboolean italic_summary,
                                           gboolean _delay_mode,
                                           const gchar* _key_name,
                                           const gchar* _full_name,
                                           gboolean _search_result_mode);
VALA_EXTERN GType key_conflict_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void key_list_box_row_update_label (KeyListBoxRow* self,
                                    const gchar* key_value_string,
                                    gboolean key_value_italic,
                                    const gchar* key_type_string,
                                    gboolean key_type_italic);
VALA_EXTERN void key_list_box_row_use_switch (KeyListBoxRow* self,
                                  gboolean show);
VALA_EXTERN void registry_variant_dict_clear (RegistryVariantDict* self);
VALA_EXTERN ListBoxRowWrapper* list_box_row_wrapper_new (void);
VALA_EXTERN ListBoxRowWrapper* list_box_row_wrapper_construct (GType object_type);
VALA_EXTERN gboolean filter_list_box_row_get_is_local_search (FilterListBoxRow* self);
VALA_EXTERN gboolean folder_list_box_row_get_path_search (FolderListBoxRow* self);
static void registry_list_update_gsettings_row (KeyListBoxRow* row,
                                         const gchar* type_string,
                                         GVariant* key_value,
                                         gboolean is_key_default,
                                         gboolean error_hard_conflicting_key);
VALA_EXTERN void key_list_box_row_update_switch (KeyListBoxRow* self,
                                     gboolean key_value_boolean,
                                     const gchar* detailed_action_name);
VALA_EXTERN gchar* key_cool_text_value_from_variant (GVariant* variant);
static void registry_list_get_type_or_value (const gchar* type_string,
                                      const gchar* key_value_text,
                                      gchar** key_type_label,
                                      gboolean* key_type_italic);
static void registry_list_update_dconf_row (KeyListBoxRow* row,
                                     const gchar* type_string,
                                     GVariant* key_value);
VALA_EXTERN gchar* model_utils_key_to_short_description (const gchar* type);
VALA_EXTERN void registry_list_gkey_value_push (RegistryList* self,
                                    const gchar* full_name,
                                    guint16 context_id,
                                    GVariant* key_value,
                                    gboolean is_key_default);
static KeyListBoxRow* registry_list_get_row_for_key (GtkListBox* key_list_box,
                                              const gchar* full_name,
                                              guint16 context_id);
VALA_EXTERN void registry_list_dkey_value_push (RegistryList* self,
                                    const gchar* full_name,
                                    GVariant* key_value_or_null);
static void registry_list_generate_popover_if_needed (ClickableListBoxRow* row,
                                               ModificationsHandler* modifications_handler);
static void registry_list_place_popover (ClickableListBoxRow* row,
                                  gint* nullable_event_x,
                                  gboolean position_to_top);
VALA_EXTERN GType context_popover_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ContextPopover, g_object_unref)
static Block34Data* block34_data_ref (Block34Data* _data34_);
static void block34_data_unref (void * _userdata_);
VALA_EXTERN ContextPopover* context_popover_new (void);
VALA_EXTERN ContextPopover* context_popover_construct (GType object_type);
static gboolean registry_list_generate_popover (ClickableListBoxRow* row,
                                         ModificationsHandler* modifications_handler);
static void ___lambda49_ (Block34Data* _data34_);
static void ____lambda49__gtk_widget_destroy (GtkWidget* _sender,
                                       gpointer self);
static gboolean registry_list_generate_folder_popover (ClickableListBoxRow* row);
static gboolean registry_list_generate_gsettings_popover (KeyListBoxRow* row,
                                                   ModificationsHandler* modifications_handler,
                                                   GVariant* copy_text_variant);
static inline GVariant* _registry_list_get_key_copy_text_variant (ClickableListBoxRow* row,
                                                    ModificationsHandler* modifications_handler);
static gboolean registry_list_generate_ghost_popover (ClickableListBoxRow* row,
                                               GVariant* copy_text_variant);
static gboolean registry_list_generate_dconf_popover (KeyListBoxRow* row,
                                               ModificationsHandler* modifications_handler,
                                               GVariant* copy_text_variant);
static gboolean registry_list_generate_return_popover (ClickableListBoxRow* row);
static gboolean registry_list_generate_search_popover (ClickableListBoxRow* row);
VALA_EXTERN void context_popover_new_gaction (ContextPopover* self,
                                  const gchar* action_name,
                                  const gchar* action_action);
static inline GVariant* _registry_list_get_folder_or_search_copy_text_variant (ClickableListBoxRow* row);
VALA_EXTERN gboolean clickable_list_box_row_get_search_result_mode (ClickableListBoxRow* self);
VALA_EXTERN void context_popover_new_section (ContextPopover* self);
static Block35Data* block35_data_ref (Block35Data* _data35_);
static void block35_data_unref (void * _userdata_);
VALA_EXTERN GType range_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint64 key_get_variant_as_uint64 (GVariant* variant);
VALA_EXTERN gint64 key_get_variant_as_int64 (GVariant* variant);
static Block36Data* block36_data_ref (Block36Data* _data36_);
static void block36_data_unref (void * _userdata_);
VALA_EXTERN GAction* context_popover_create_buttons_list (ContextPopover* self,
                                              gboolean display_default_value,
                                              gboolean delayed_apply_menu,
                                              gboolean planned_change,
                                              const gchar* settings_type,
                                              GVariant* range_content_or_null,
                                              GVariant* value_variant);
static void ___lambda42_ (Block36Data* _data36_);
static void registry_list_on_popover_change_dismissed (KeyListBoxRow* row);
static void ____lambda42__context_popover_change_dismissed (ContextPopover* _sender,
                                                     gpointer self);
static void ___lambda43_ (Block36Data* _data36_,
                   GVariant* gvariant);
static void registry_list_on_popover_value_change (KeyListBoxRow* row,
                                            GVariant* gvariant,
                                            GAction* action);
static void ____lambda43__context_popover_value_changed (ContextPopover* _sender,
                                                  GVariant* gvariant,
                                                  gpointer self);
static Block37Data* block37_data_ref (Block37Data* _data37_);
static void block37_data_unref (void * _userdata_);
static gchar** _vala_array_dup11 (gchar** self,
                           gssize length);
VALA_EXTERN void context_popover_create_flags_list (ContextPopover* self,
                                        gchar** active_flags,
                                        gint active_flags_length1,
                                        gchar** all_flags,
                                        gint all_flags_length1);
VALA_EXTERN GVariant* modifications_handler_get_key_custom_value (ModificationsHandler* self,
                                                      const gchar* full_name,
                                                      guint16 context_id);
static void ____lambda44_ (Block37Data* _data37_);
static gchar** _vala_array_dup12 (gchar** self,
                           gssize length);
VALA_EXTERN void context_popover_update_flag_status (ContextPopover* self,
                                         const gchar* flag,
                                         gboolean active);
static gboolean _vala_string_array_contains (gchar* * stack,
                                      gssize stack_length,
                                      const gchar* needle);
static void _____lambda44__modifications_handler_delayed_changes_changed (ModificationsHandler* _sender,
                                                                   gpointer self);
static void ____lambda45_ (Block37Data* _data37_);
static void _____lambda45__gtk_widget_destroy (GtkWidget* _sender,
                                        gpointer self);
static void ____lambda46_ (Block37Data* _data37_,
                    GVariant* gvariant);
VALA_EXTERN void key_list_box_row_set_key_value (KeyListBoxRow* self,
                                     GVariant* new_value);
static void _____lambda46__context_popover_value_changed (ContextPopover* _sender,
                                                   GVariant* gvariant,
                                                   gpointer self);
static Block38Data* block38_data_ref (Block38Data* _data38_);
static void block38_data_unref (void * _userdata_);
static Block39Data* block39_data_ref (Block39Data* _data39_);
static void block39_data_unref (void * _userdata_);
static void ___lambda47_ (Block39Data* _data39_);
static void ____lambda47__context_popover_change_dismissed (ContextPopover* _sender,
                                                     gpointer self);
static void ___lambda48_ (Block39Data* _data39_,
                   GVariant* gvariant);
static void ____lambda48__context_popover_value_changed (ContextPopover* _sender,
                                                  GVariant* gvariant,
                                                  gpointer self);
VALA_EXTERN void key_list_box_row_change_dismissed (KeyListBoxRow* self);
VALA_EXTERN gboolean registry_list_is_first_row (gint row_index,
                                     GtkListBoxRow* before);
VALA_EXTERN void registry_list_update_row_header_with_context (GtkListBoxRow* row,
                                                   GtkListBoxRow* before,
                                                   SettingsModel* model,
                                                   gboolean local_search_header);
VALA_EXTERN gboolean key_list_box_row_get_has_schema (KeyListBoxRow* self);
VALA_EXTERN gboolean settings_model_key_exists (SettingsModel* self,
                                    const gchar* key_path,
                                    guint16 key_context_id);
VALA_EXTERN ListBoxRowHeader* list_box_row_header_new (gboolean is_first_row,
                                           const gchar* header_text);
VALA_EXTERN ListBoxRowHeader* list_box_row_header_construct (GType object_type,
                                                 gboolean is_first_row,
                                                 const gchar* header_text);
VALA_EXTERN GType list_box_row_header_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListBoxRowHeader, g_object_unref)
VALA_EXTERN RegistryList* registry_list_construct (GType object_type);
VALA_EXTERN void registry_list_set_search_mode (RegistryList* self,
                                    gboolean value);
VALA_EXTERN void registry_list_set_modifications_handler (RegistryList* self,
                                              ModificationsHandler* value);
VALA_EXTERN const gchar* registry_list_get_placeholder_label (RegistryList* self);
VALA_EXTERN void registry_list_set_small_keys_list_rows (RegistryList* self,
                                             gboolean value);
static Block40Data* block40_data_ref (Block40Data* _data40_);
static void block40_data_unref (void * _userdata_);
static void _registry_list_small_keys_list_rows___lambda53_ (Block40Data* _data40_,
                                                      GtkWidget* row);
static void __registry_list_small_keys_list_rows___lambda53__gtk_callback (GtkWidget* widget,
                                                                    gpointer self);
static GObject * registry_list_constructor (GType type,
                                     guint n_construct_properties,
                                     GObjectConstructParam * construct_properties);
VALA_EXTERN void registry_placeholder_set_label (RegistryPlaceholder* self,
                                     const gchar* value);
VALA_EXTERN gboolean browsable_view_handle_copy_text (BrowsableView* self,
                                          gchar** copy_text);
static void registry_list_finalize (GObject * obj);
static GType registry_list_get_type_once (void);
static void _vala_registry_list_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static void _vala_registry_list_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
registry_list_get_instance_private (RegistryList* self)
{
	return G_STRUCT_MEMBER_P (self, RegistryList_private_offset);
}

static GType
registry_list_scroll_to_row_behaviour_get_type_once (void)
{
	static const GEnumValue values[] = {{REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_CENTER, "REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_CENTER", "center"}, {REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_UP, "REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_UP", "scroll-up"}, {REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_DOWN, "REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_DOWN", "scroll-down"}, {0, NULL, NULL}};
	GType registry_list_scroll_to_row_behaviour_type_id;
	registry_list_scroll_to_row_behaviour_type_id = g_enum_register_static ("RegistryListScrollToRowBehaviour", values);
	return registry_list_scroll_to_row_behaviour_type_id;
}

static GType
registry_list_scroll_to_row_behaviour_get_type (void)
{
	static volatile gsize registry_list_scroll_to_row_behaviour_type_id__once = 0;
	if (g_once_init_enter (&registry_list_scroll_to_row_behaviour_type_id__once)) {
		GType registry_list_scroll_to_row_behaviour_type_id;
		registry_list_scroll_to_row_behaviour_type_id = registry_list_scroll_to_row_behaviour_get_type_once ();
		g_once_init_leave (&registry_list_scroll_to_row_behaviour_type_id__once, registry_list_scroll_to_row_behaviour_type_id);
	}
	return registry_list_scroll_to_row_behaviour_type_id__once;
}

static Block30Data*
block30_data_ref (Block30Data* _data30_)
{
	g_atomic_int_inc (&_data30_->_ref_count_);
	return _data30_;
}

static void
block30_data_unref (void * _userdata_)
{
	Block30Data* _data30_;
	_data30_ = (Block30Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data30_->_ref_count_)) {
		RegistryList* self;
		self = _data30_->self;
		_g_object_unref0 (self);
		g_slice_free (Block30Data, _data30_);
	}
}

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

static void
__lambda40_ (Block30Data* _data30_,
             GtkWidget* row)
{
	RegistryList* self;
	GtkWidget* row_child = NULL;
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	gboolean _tmp2_ = FALSE;
	GtkWidget* _tmp3_;
	self = _data30_->self;
	g_return_if_fail (row != NULL);
	_tmp0_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (row, gtk_list_box_row_get_type (), GtkListBoxRow));
	_tmp1_ = _g_object_ref0 (_tmp0_);
	row_child = _tmp1_;
	_tmp3_ = row_child;
	if (_tmp3_ != NULL) {
		GtkWidget* _tmp4_;
		_tmp4_ = row_child;
		_tmp2_ = IS_KEY_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		GtkWidget* _tmp5_;
		_tmp5_ = row_child;
		adaptative_widget_set_window_size ((AdaptativeWidget*) G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), _data30_->new_size);
	}
	_g_object_unref0 (row_child);
}

static void
___lambda40__gtk_callback (GtkWidget* widget,
                           gpointer self)
{
	__lambda40_ (self, widget);
}

static void
registry_list_real_set_window_size (AdaptativeWidget* base,
                                    AdaptativeWidgetWindowSize new_size)
{
	RegistryList * self;
	Block30Data* _data30_;
	GtkListBox* _tmp0_;
	self = (RegistryList*) base;
	_data30_ = g_slice_new0 (Block30Data);
	_data30_->_ref_count_ = 1;
	_data30_->self = g_object_ref (self);
	_data30_->new_size = new_size;
	self->priv->window_size = _data30_->new_size;
	_tmp0_ = self->key_list_box;
	gtk_container_foreach ((GtkContainer*) _tmp0_, ___lambda40__gtk_callback, _data30_);
	block30_data_unref (_data30_);
	_data30_ = NULL;
}

static void
registry_list_select_row_and_if_true_grab_focus (RegistryList* self,
                                                 GtkListBoxRow* row,
                                                 gboolean grab_focus)
{
	GtkListBox* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (row != NULL);
	_tmp0_ = self->key_list_box;
	gtk_list_box_select_row (_tmp0_, row);
	if (grab_focus) {
		gtk_widget_grab_focus ((GtkWidget*) row);
	}
}

static void
registry_list_real_select_first_row (RegistryList* self)
{
	g_critical ("Type `%s' does not implement abstract method `registry_list_select_first_row'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
registry_list_select_first_row (RegistryList* self)
{
	RegistryListClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = REGISTRY_LIST_GET_CLASS (self);
	if (_klass_->select_first_row) {
		_klass_->select_first_row (self);
	}
}

static void
registry_list_scroll_to_row (RegistryList* self,
                             GtkListBoxRow* row,
                             RegistryListScrollToRowBehaviour behaviour)
{
	gint adjustment_value = 0;
	GtkAdjustment* _tmp0_;
	GtkAllocation list_allocation = {0};
	GtkAllocation row_allocation = {0};
	GtkScrolledWindow* _tmp1_;
	GtkAllocation _tmp2_ = {0};
	GtkAllocation _tmp3_ = {0};
	gint row_bottom_limit = 0;
	GtkAllocation _tmp4_;
	GtkAllocation _tmp5_;
	gint row_top_limit = 0;
	GtkAllocation _tmp6_;
	GtkAllocation _tmp7_;
	gboolean _tmp8_ = FALSE;
	GtkAllocation _tmp13_;
	GtkAllocation _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (row != NULL);
	_tmp0_ = self->priv->adjustment;
	adjustment_value = (gint) gtk_adjustment_get_value (_tmp0_);
	_tmp1_ = self->priv->scrolled;
	gtk_widget_get_allocation ((GtkWidget*) _tmp1_, &_tmp2_);
	list_allocation = _tmp2_;
	gtk_widget_get_allocation ((GtkWidget*) row, &_tmp3_);
	row_allocation = _tmp3_;
	_tmp4_ = row_allocation;
	_tmp5_ = list_allocation;
	row_bottom_limit = _tmp4_.y - _tmp5_.height;
	_tmp6_ = row_allocation;
	_tmp7_ = row_allocation;
	row_top_limit = _tmp6_.y + _tmp7_.height;
	if (adjustment_value < row_bottom_limit) {
		_tmp8_ = TRUE;
	} else {
		_tmp8_ = adjustment_value > row_top_limit;
	}
	if (_tmp8_) {
		GtkAdjustment* _tmp9_;
		GtkAllocation _tmp10_;
		GtkAllocation _tmp11_;
		GtkAllocation _tmp12_;
		_tmp9_ = self->priv->adjustment;
		_tmp10_ = row_allocation;
		_tmp11_ = row_allocation;
		_tmp12_ = list_allocation;
		gtk_adjustment_set_value (_tmp9_, (gdouble) (_tmp10_.y + ((gint) ((_tmp11_.height - _tmp12_.height) / 2.0))));
		return;
	}
	_tmp13_ = row_allocation;
	row_bottom_limit += _tmp13_.height + 40;
	_tmp14_ = row_allocation;
	row_top_limit = _tmp14_.y - 40;
	switch (behaviour) {
		case REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_CENTER:
		{
			gboolean _tmp15_ = FALSE;
			if (adjustment_value < row_bottom_limit) {
				_tmp15_ = TRUE;
			} else {
				_tmp15_ = adjustment_value > row_top_limit;
			}
			if (_tmp15_) {
				GtkAdjustment* _tmp16_;
				GtkAllocation _tmp17_;
				GtkAllocation _tmp18_;
				GtkAllocation _tmp19_;
				_tmp16_ = self->priv->adjustment;
				_tmp17_ = row_allocation;
				_tmp18_ = row_allocation;
				_tmp19_ = list_allocation;
				gtk_adjustment_set_value (_tmp16_, (gdouble) (_tmp17_.y + ((gint) ((_tmp18_.height - _tmp19_.height) / 2.0))));
			}
			return;
		}
		case REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_DOWN:
		{
			if (adjustment_value < row_bottom_limit) {
				GtkAdjustment* _tmp20_;
				_tmp20_ = self->priv->adjustment;
				gtk_adjustment_set_value (_tmp20_, (gdouble) row_bottom_limit);
			}
			return;
		}
		case REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_UP:
		{
			if (adjustment_value > row_top_limit) {
				GtkAdjustment* _tmp21_;
				_tmp21_ = self->priv->adjustment;
				gtk_adjustment_set_value (_tmp21_, (gdouble) row_top_limit);
			}
			return;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

void
registry_list_invalidate_popovers (RegistryList* self)
{
	GListStore* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->rows_possibly_with_popover;
	_registry_list_invalidate_popovers (_tmp0_);
}

static void
_registry_list_invalidate_popovers (GListStore* rows_possibly_with_popover)
{
	guint position = 0U;
	ClickableListBoxRow* row = NULL;
	GObject* _tmp0_;
	g_return_if_fail (rows_possibly_with_popover != NULL);
	position = (guint) 0;
	_tmp0_ = g_list_model_get_item ((GListModel*) rows_possibly_with_popover, (guint) 0);
	row = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow);
	while (TRUE) {
		ClickableListBoxRow* _tmp1_;
		ClickableListBoxRow* _tmp2_;
		guint _tmp3_;
		GObject* _tmp4_;
		_tmp1_ = row;
		if (!(_tmp1_ != NULL)) {
			break;
		}
		_tmp2_ = row;
		clickable_list_box_row_destroy_popover (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
		_tmp3_ = position;
		position = _tmp3_ + 1;
		_tmp4_ = g_list_model_get_item ((GListModel*) rows_possibly_with_popover, position);
		_g_object_unref0 (row);
		row = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow);
	}
	g_list_store_remove_all (rows_possibly_with_popover);
	_g_object_unref0 (row);
}

void
registry_list_hide_or_show_toggles (RegistryList* self,
                                    gboolean show)
{
	GtkListBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->key_list_box;
	_registry_list_hide_or_show_toggles (_tmp0_, show);
}

static Block31Data*
block31_data_ref (Block31Data* _data31_)
{
	g_atomic_int_inc (&_data31_->_ref_count_);
	return _data31_;
}

static void
block31_data_unref (void * _userdata_)
{
	Block31Data* _data31_;
	_data31_ = (Block31Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data31_->_ref_count_)) {
		g_slice_free (Block31Data, _data31_);
	}
}

static void
__lambda41_ (Block31Data* _data31_,
             GtkWidget* row_wrapper)
{
	ClickableListBoxRow* row = NULL;
	GtkWidget* _tmp0_;
	ClickableListBoxRow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	g_return_if_fail (row_wrapper != NULL);
	_tmp0_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (row_wrapper, TYPE_LIST_BOX_ROW_WRAPPER, ListBoxRowWrapper));
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
	row = _tmp1_;
	if (row == NULL) {
		g_assert_not_reached ();
	}
	if (IS_KEY_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		_tmp3_ = key_list_box_row_get_type_string (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
		_tmp4_ = _tmp3_;
		_tmp2_ = g_strcmp0 (_tmp4_, "b") == 0;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		key_list_box_row_set_delay_mode (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), !_data31_->show);
	}
	_g_object_unref0 (row);
}

static void
___lambda41__gtk_callback (GtkWidget* widget,
                           gpointer self)
{
	__lambda41_ (self, widget);
}

static void
_registry_list_hide_or_show_toggles (GtkListBox* key_list_box,
                                     gboolean show)
{
	Block31Data* _data31_;
	g_return_if_fail (key_list_box != NULL);
	_data31_ = g_slice_new0 (Block31Data);
	_data31_->_ref_count_ = 1;
	_data31_->show = show;
	gtk_container_foreach ((GtkContainer*) key_list_box, ___lambda41__gtk_callback, _data31_);
	block31_data_unref (_data31_);
	_data31_ = NULL;
}

gchar*
registry_list_get_selected_row_name (RegistryList* self)
{
	GtkListBox* _tmp0_;
	GListStore* _tmp1_;
	gchar* _tmp2_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = self->list_model;
	_tmp2_ = _registry_list_get_selected_row_name (_tmp0_, _tmp1_);
	result = _tmp2_;
	return result;
}

static gchar*
_registry_list_get_selected_row_name (GtkListBox* key_list_box,
                                      GListStore* list_model)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBoxRow* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	gint position = 0;
	GtkListBoxRow* _tmp4_;
	GObject* _tmp5_;
	SimpleSettingObject* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* result;
	g_return_val_if_fail (key_list_box != NULL, NULL);
	g_return_val_if_fail (list_model != NULL, NULL);
	_tmp0_ = gtk_list_box_get_selected_row (key_list_box);
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp1_;
	_tmp2_ = selected_row;
	if (_tmp2_ == NULL) {
		gchar* _tmp3_;
		_tmp3_ = g_strdup ("");
		result = _tmp3_;
		_g_object_unref0 (selected_row);
		return result;
	}
	_tmp4_ = selected_row;
	position = gtk_list_box_row_get_index (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	_tmp5_ = g_list_model_get_object ((GListModel*) list_model, (guint) position);
	_tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_SIMPLE_SETTING_OBJECT, SimpleSettingObject);
	_tmp7_ = simple_setting_object_get_full_name (_tmp6_);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_strdup (_tmp8_);
	_tmp10_ = _tmp9_;
	_g_object_unref0 (_tmp6_);
	result = _tmp10_;
	_g_object_unref0 (selected_row);
	return result;
}

void
registry_list_select_row_named (RegistryList* self,
                                const gchar* selected,
                                guint16 context_id,
                                gboolean grab_focus)
{
	GtkListBoxRow* row = NULL;
	GtkListBox* _tmp0_;
	GListStore* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	GtkListBoxRow* _tmp4_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (selected != NULL);
	gtk_container_check_resize ((GtkContainer*) self);
	_tmp0_ = self->key_list_box;
	_tmp1_ = self->list_model;
	_tmp2_ = gtk_list_box_get_row_at_index (_tmp0_, registry_list_get_row_position (_tmp1_, selected, context_id));
	_tmp3_ = _g_object_ref0 (_tmp2_);
	row = _tmp3_;
	_tmp4_ = row;
	if (_tmp4_ != NULL) {
		GtkListBoxRow* _tmp5_;
		GtkListBoxRow* _tmp6_;
		_tmp5_ = row;
		registry_list_select_row_and_if_true_grab_focus (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_list_box_row_get_type (), GtkListBoxRow), grab_focus);
		_tmp6_ = row;
		registry_list_scroll_to_row (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_list_box_row_get_type (), GtkListBoxRow), REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_CENTER);
	}
	_g_object_unref0 (row);
}

static gint
registry_list_get_row_position (GListStore* list_model,
                                const gchar* selected,
                                guint16 context_id)
{
	guint position = 0U;
	guint fallback = 0U;
	guint n_items = 0U;
	gint result;
	g_return_val_if_fail (list_model != NULL, 0);
	g_return_val_if_fail (selected != NULL, 0);
	position = (guint) 0;
	fallback = (guint) 0;
	n_items = g_list_model_get_n_items ((GListModel*) list_model);
	while (TRUE) {
		SimpleSettingObject* object = NULL;
		GObject* _tmp0_;
		SimpleSettingObject* _tmp1_;
		const gchar* _tmp2_;
		const gchar* _tmp3_;
		guint _tmp11_;
		if (!(position < n_items)) {
			break;
		}
		_tmp0_ = g_list_model_get_object ((GListModel*) list_model, position);
		object = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SIMPLE_SETTING_OBJECT, SimpleSettingObject);
		_tmp1_ = object;
		_tmp2_ = simple_setting_object_get_full_name (_tmp1_);
		_tmp3_ = _tmp2_;
		if (g_strcmp0 (_tmp3_, selected) == 0) {
			gboolean _tmp4_ = FALSE;
			SimpleSettingObject* _tmp5_;
			guint16 _tmp6_;
			guint16 _tmp7_;
			_tmp5_ = object;
			_tmp6_ = simple_setting_object_get_context_id (_tmp5_);
			_tmp7_ = _tmp6_;
			if (model_utils_is_folder_context_id (_tmp7_)) {
				_tmp4_ = TRUE;
			} else {
				SimpleSettingObject* _tmp8_;
				guint16 _tmp9_;
				guint16 _tmp10_;
				_tmp8_ = object;
				_tmp9_ = simple_setting_object_get_context_id (_tmp8_);
				_tmp10_ = _tmp9_;
				_tmp4_ = _tmp10_ == context_id;
			}
			if (_tmp4_) {
				result = (gint) position;
				_g_object_unref0 (object);
				return result;
			}
			fallback = position;
		}
		_tmp11_ = position;
		position = _tmp11_ + 1;
		_g_object_unref0 (object);
	}
	result = (gint) fallback;
	return result;
}

static void
registry_list_set_delayed_icon (ModificationsHandler* _modifications_handler,
                                KeyListBoxRow* row)
{
	SettingsModel* model = NULL;
	SettingsModel* _tmp0_;
	SettingsModel* _tmp1_;
	SettingsModel* _tmp2_;
	GtkStyleContext* context = NULL;
	GtkStyleContext* _tmp3_;
	GtkStyleContext* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	g_return_if_fail (_modifications_handler != NULL);
	g_return_if_fail (row != NULL);
	_tmp0_ = modifications_handler_get_model (_modifications_handler);
	_tmp1_ = _tmp0_;
	_tmp2_ = _g_object_ref0 (_tmp1_);
	model = _tmp2_;
	_tmp3_ = gtk_widget_get_style_context ((GtkWidget*) row);
	_tmp4_ = _g_object_ref0 (_tmp3_);
	context = _tmp4_;
	_tmp5_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
	_tmp6_ = _tmp5_;
	if (modifications_handler_key_has_planned_change (_modifications_handler, _tmp6_)) {
		GtkStyleContext* _tmp7_;
		SettingsModel* _tmp8_;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		_tmp7_ = context;
		gtk_style_context_add_class (_tmp7_, "delayed");
		_tmp8_ = model;
		_tmp9_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
		_tmp10_ = _tmp9_;
		if (!settings_model_key_has_schema (_tmp8_, _tmp10_)) {
			const gchar* _tmp11_;
			const gchar* _tmp12_;
			GVariant* _tmp13_;
			GVariant* _tmp14_;
			gboolean _tmp15_;
			_tmp11_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
			_tmp12_ = _tmp11_;
			_tmp13_ = modifications_handler_get_key_planned_value (_modifications_handler, _tmp12_);
			_tmp14_ = _tmp13_;
			_tmp15_ = _tmp14_ == NULL;
			_g_variant_unref0 (_tmp14_);
			if (_tmp15_) {
				GtkStyleContext* _tmp16_;
				_tmp16_ = context;
				gtk_style_context_add_class (_tmp16_, "erase");
			} else {
				GtkStyleContext* _tmp17_;
				_tmp17_ = context;
				gtk_style_context_remove_class (_tmp17_, "erase");
			}
		}
	} else {
		GtkStyleContext* _tmp18_;
		gboolean _tmp19_ = FALSE;
		SettingsModel* _tmp20_;
		const gchar* _tmp21_;
		const gchar* _tmp22_;
		_tmp18_ = context;
		gtk_style_context_remove_class (_tmp18_, "delayed");
		_tmp20_ = model;
		_tmp21_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
		_tmp22_ = _tmp21_;
		if (!settings_model_key_has_schema (_tmp20_, _tmp22_)) {
			SettingsModel* _tmp23_;
			const gchar* _tmp24_;
			const gchar* _tmp25_;
			_tmp23_ = model;
			_tmp24_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
			_tmp25_ = _tmp24_;
			_tmp19_ = settings_model_is_key_ghost (_tmp23_, _tmp25_);
		} else {
			_tmp19_ = FALSE;
		}
		if (_tmp19_) {
			GtkStyleContext* _tmp26_;
			_tmp26_ = context;
			gtk_style_context_add_class (_tmp26_, "erase");
		} else {
			GtkStyleContext* _tmp27_;
			_tmp27_ = context;
			gtk_style_context_remove_class (_tmp27_, "erase");
		}
	}
	_g_object_unref0 (context);
	_g_object_unref0 (model);
}

static void
_registry_list_on_size_allocate_gtk_widget_size_allocate (GtkWidget* _sender,
                                                          GtkAllocation* allocation,
                                                          gpointer self)
{
	registry_list_on_size_allocate ((RegistryList*) self, allocation);
}

static inline void
registry_list_register_size_allocate (RegistryList* self)
{
	g_return_if_fail (self != NULL);
	g_signal_connect_object ((GtkWidget*) self, "size-allocate", (GCallback) _registry_list_on_size_allocate_gtk_widget_size_allocate, self, 0);
}

static void
registry_list_on_size_allocate (RegistryList* self,
                                GtkAllocation* allocation)
{
	GtkAllocation _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (allocation != NULL);
	_tmp0_ = *allocation;
	if (self->priv->width != _tmp0_.width) {
		GtkAllocation _tmp1_;
		GtkAllocation _tmp2_;
		_tmp1_ = *allocation;
		self->priv->width = _tmp1_.width;
		_tmp2_ = *allocation;
		if (self->priv->height != _tmp2_.height) {
			GtkAllocation _tmp3_;
			_tmp3_ = *allocation;
			self->priv->height = _tmp3_.height;
		}
		registry_list_hide_right_click_popover (self);
	} else {
		GtkAllocation _tmp4_;
		_tmp4_ = *allocation;
		if (self->priv->height != _tmp4_.height) {
			GtkAllocation _tmp5_;
			_tmp5_ = *allocation;
			self->priv->height = _tmp5_.height;
			registry_list_hide_right_click_popover (self);
		}
	}
}

static void
registry_list_hide_right_click_popover (RegistryList* self)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	ClickableListBoxRow* row = NULL;
	GtkListBoxRow* _tmp4_;
	GtkWidget* _tmp5_;
	ClickableListBoxRow* _tmp6_;
	ClickableListBoxRow* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = selected_row;
	if (_tmp3_ == NULL) {
		_g_object_unref0 (selected_row);
		return;
	}
	_tmp4_ = selected_row;
	_tmp5_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
	row = _tmp6_;
	_tmp7_ = row;
	if (clickable_list_box_row_right_click_popover_visible (_tmp7_)) {
		ClickableListBoxRow* _tmp8_;
		_tmp8_ = row;
		clickable_list_box_row_hide_right_click_popover (_tmp8_);
	}
	_g_object_unref0 (row);
	_g_object_unref0 (selected_row);
}

gboolean
registry_list_toggle_row_popover (RegistryList* self)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	ClickableListBoxRow* row = NULL;
	GtkListBoxRow* _tmp4_;
	GtkWidget* _tmp5_;
	ClickableListBoxRow* _tmp6_;
	ClickableListBoxRow* _tmp7_;
	ClickableListBoxRow* _tmp9_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = selected_row;
	if (_tmp3_ == NULL) {
		result = FALSE;
		_g_object_unref0 (selected_row);
		return result;
	}
	_tmp4_ = selected_row;
	_tmp5_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
	row = _tmp6_;
	_tmp7_ = row;
	if (clickable_list_box_row_right_click_popover_visible (_tmp7_)) {
		ClickableListBoxRow* _tmp8_;
		_tmp8_ = row;
		clickable_list_box_row_hide_right_click_popover (_tmp8_);
		result = TRUE;
		_g_object_unref0 (row);
		_g_object_unref0 (selected_row);
		return result;
	}
	_tmp9_ = row;
	registry_list_show_right_click_popover (self, _tmp9_, NULL);
	result = TRUE;
	_g_object_unref0 (row);
	_g_object_unref0 (selected_row);
	return result;
}

static gboolean
registry_list_real_handle_copy_text (BrowsableView* base,
                                     gchar** copy_text)
{
	RegistryList * self;
	gchar* _vala_copy_text = NULL;
	GtkListBox* _tmp0_;
	gchar* _tmp1_ = NULL;
	gboolean _tmp2_;
	gboolean result;
	self = (RegistryList*) base;
	_tmp0_ = self->key_list_box;
	_tmp2_ = _registry_list_handle_copy_text (self, &_tmp1_, _tmp0_);
	_g_free0 (_vala_copy_text);
	_vala_copy_text = _tmp1_;
	result = _tmp2_;
	if (copy_text) {
		*copy_text = _vala_copy_text;
	} else {
		_g_free0 (_vala_copy_text);
	}
	return result;
}

static gboolean
_registry_list_handle_copy_text (RegistryList* self,
                                 gchar** copy_text,
                                 GtkListBox* key_list_box)
{
	gchar* _vala_copy_text = NULL;
	GtkListBoxRow* selected_row = NULL;
	GtkListBoxRow* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	ClickableListBoxRow* row = NULL;
	GtkListBoxRow* _tmp5_;
	GtkWidget* _tmp6_;
	ClickableListBoxRow* _tmp7_;
	gboolean _tmp8_ = FALSE;
	ClickableListBoxRow* _tmp9_;
	guint16 _tmp10_;
	guint16 _tmp11_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (key_list_box != NULL, FALSE);
	_tmp0_ = gtk_list_box_get_selected_row (key_list_box);
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp1_;
	_tmp2_ = selected_row;
	if (_tmp2_ == NULL) {
		gchar* _tmp3_ = NULL;
		gboolean _tmp4_;
		_tmp4_ = base_window_no_copy_text (&_tmp3_);
		_g_free0 (_vala_copy_text);
		_vala_copy_text = _tmp3_;
		result = _tmp4_;
		_g_object_unref0 (selected_row);
		if (copy_text) {
			*copy_text = _vala_copy_text;
		} else {
			_g_free0 (_vala_copy_text);
		}
		return result;
	}
	_tmp5_ = selected_row;
	_tmp6_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_list_box_row_get_type (), GtkListBoxRow));
	_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
	row = _tmp7_;
	_tmp9_ = row;
	_tmp10_ = clickable_list_box_row_get_context_id (_tmp9_);
	_tmp11_ = _tmp10_;
	if (model_utils_is_folder_context_id (_tmp11_)) {
		_tmp8_ = TRUE;
	} else {
		ClickableListBoxRow* _tmp12_;
		guint16 _tmp13_;
		guint16 _tmp14_;
		_tmp12_ = row;
		_tmp13_ = clickable_list_box_row_get_context_id (_tmp12_);
		_tmp14_ = _tmp13_;
		_tmp8_ = model_utils_is_undefined_context_id (_tmp14_);
	}
	if (_tmp8_) {
		ClickableListBoxRow* _tmp15_;
		gchar* _tmp16_;
		_tmp15_ = row;
		_tmp16_ = _registry_list_get_folder_or_search_copy_text (_tmp15_);
		_g_free0 (_vala_copy_text);
		_vala_copy_text = _tmp16_;
	} else {
		ClickableListBoxRow* _tmp17_;
		ModificationsHandler* _tmp18_;
		gchar* _tmp19_;
		_tmp17_ = row;
		_tmp18_ = self->priv->_modifications_handler;
		_tmp19_ = _registry_list_get_key_copy_text (_tmp17_, _tmp18_);
		_g_free0 (_vala_copy_text);
		_vala_copy_text = _tmp19_;
	}
	result = TRUE;
	_g_object_unref0 (row);
	_g_object_unref0 (selected_row);
	if (copy_text) {
		*copy_text = _vala_copy_text;
	} else {
		_g_free0 (_vala_copy_text);
	}
	return result;
}

static inline gchar*
_registry_list_get_folder_or_search_copy_text (ClickableListBoxRow* row)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* result;
	g_return_val_if_fail (row != NULL, NULL);
	_tmp0_ = clickable_list_box_row_get_full_name (row);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strdup (_tmp1_);
	result = _tmp2_;
	return result;
}

static inline gchar*
_registry_list_get_key_copy_text (ClickableListBoxRow* row,
                                  ModificationsHandler* modifications_handler)
{
	SettingsModel* _tmp0_;
	SettingsModel* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	guint16 _tmp4_;
	guint16 _tmp5_;
	gchar* _tmp6_;
	gchar* result;
	g_return_val_if_fail (row != NULL, NULL);
	g_return_val_if_fail (modifications_handler != NULL, NULL);
	_tmp0_ = modifications_handler_get_model (modifications_handler);
	_tmp1_ = _tmp0_;
	_tmp2_ = clickable_list_box_row_get_full_name (row);
	_tmp3_ = _tmp2_;
	_tmp4_ = clickable_list_box_row_get_context_id (row);
	_tmp5_ = _tmp4_;
	_tmp6_ = settings_model_get_suggested_key_copy_text (_tmp1_, _tmp3_, _tmp5_);
	result = _tmp6_;
	return result;
}

void
registry_list_toggle_boolean_key (RegistryList* self)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	GtkListBoxRow* _tmp4_;
	GtkWidget* _tmp5_;
	GtkListBoxRow* _tmp6_;
	GtkWidget* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = selected_row;
	if (_tmp3_ == NULL) {
		_g_object_unref0 (selected_row);
		return;
	}
	_tmp4_ = selected_row;
	_tmp5_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	if (!IS_KEY_LIST_BOX_ROW (_tmp5_)) {
		_g_object_unref0 (selected_row);
		return;
	}
	_tmp6_ = selected_row;
	_tmp7_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_list_box_row_get_type (), GtkListBoxRow));
	key_list_box_row_toggle_boolean_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
	_g_object_unref0 (selected_row);
}

void
registry_list_set_selected_to_default (RegistryList* self)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	GtkListBoxRow* _tmp4_;
	GtkWidget* _tmp5_;
	GtkListBoxRow* _tmp6_;
	GtkWidget* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = selected_row;
	if (_tmp3_ == NULL) {
		_g_object_unref0 (selected_row);
		return;
	}
	_tmp4_ = selected_row;
	_tmp5_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	if (!IS_KEY_LIST_BOX_ROW (_tmp5_)) {
		g_assert_not_reached ();
	}
	_tmp6_ = selected_row;
	_tmp7_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_list_box_row_get_type (), GtkListBoxRow));
	key_list_box_row_on_delete_call (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
	_g_object_unref0 (selected_row);
}

void
registry_list_discard_row_popover (RegistryList* self)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	GtkListBoxRow* _tmp4_;
	GtkWidget* _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = selected_row;
	if (_tmp3_ == NULL) {
		_g_object_unref0 (selected_row);
		return;
	}
	_tmp4_ = selected_row;
	_tmp5_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	clickable_list_box_row_destroy_popover (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
	_g_object_unref0 (selected_row);
}

void
registry_list_row_grab_focus (RegistryList* self)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	GtkListBoxRow* _tmp3_;
	GtkListBoxRow* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = selected_row;
	if (_tmp3_ == NULL) {
		_g_object_unref0 (selected_row);
		return;
	}
	_tmp4_ = selected_row;
	gtk_widget_grab_focus ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_list_box_row_get_type (), GtkListBoxRow));
	_g_object_unref0 (selected_row);
}

gboolean
registry_list_next_match (RegistryList* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = registry_list_next_or_previous_match (self, TRUE);
	return result;
}

gboolean
registry_list_previous_match (RegistryList* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = registry_list_next_or_previous_match (self, FALSE);
	return result;
}

static gboolean
registry_list_next_or_previous_match (RegistryList* self,
                                      gboolean is_next)
{
	GtkListBoxRow* selected_row = NULL;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	guint n_items = 0U;
	GListStore* _tmp3_;
	GtkListBoxRow* _tmp4_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->key_list_box;
	_tmp1_ = gtk_list_box_get_selected_row (_tmp0_);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_list_box_row_get_type (), GtkListBoxRow));
	selected_row = _tmp2_;
	_tmp3_ = self->list_model;
	n_items = g_list_model_get_n_items ((GListModel*) _tmp3_);
	_tmp4_ = selected_row;
	if (_tmp4_ != NULL) {
		GtkWidget* row_content = NULL;
		GtkListBoxRow* _tmp5_;
		GtkWidget* _tmp6_;
		GtkWidget* _tmp7_;
		gboolean _tmp8_ = FALSE;
		GtkWidget* _tmp9_;
		gint position = 0;
		GtkListBoxRow* _tmp11_;
		GtkListBoxRow* row = NULL;
		gboolean _tmp12_ = FALSE;
		gboolean _tmp16_ = FALSE;
		GtkListBoxRow* _tmp20_;
		_tmp5_ = selected_row;
		_tmp6_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_list_box_row_get_type (), GtkListBoxRow));
		_tmp7_ = _g_object_ref0 (_tmp6_);
		row_content = _tmp7_;
		_tmp9_ = row_content;
		if (_tmp9_ != NULL) {
			GtkWidget* _tmp10_;
			_tmp10_ = row_content;
			_tmp8_ = clickable_list_box_row_right_click_popover_visible (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
		} else {
			_tmp8_ = FALSE;
		}
		if (_tmp8_) {
			result = FALSE;
			_g_object_unref0 (row_content);
			_g_object_unref0 (selected_row);
			return result;
		}
		_tmp11_ = selected_row;
		position = gtk_list_box_row_get_index (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_list_box_row_get_type (), GtkListBoxRow));
		row = NULL;
		if (!is_next) {
			_tmp12_ = position >= 1;
		} else {
			_tmp12_ = FALSE;
		}
		if (_tmp12_) {
			GtkListBox* _tmp13_;
			GtkListBoxRow* _tmp14_;
			GtkListBoxRow* _tmp15_;
			_tmp13_ = self->key_list_box;
			_tmp14_ = gtk_list_box_get_row_at_index (_tmp13_, position - 1);
			_tmp15_ = _g_object_ref0 (_tmp14_);
			_g_object_unref0 (row);
			row = _tmp15_;
		}
		if (is_next) {
			_tmp16_ = ((guint) position) < (n_items - 1);
		} else {
			_tmp16_ = FALSE;
		}
		if (_tmp16_) {
			GtkListBox* _tmp17_;
			GtkListBoxRow* _tmp18_;
			GtkListBoxRow* _tmp19_;
			_tmp17_ = self->key_list_box;
			_tmp18_ = gtk_list_box_get_row_at_index (_tmp17_, position + 1);
			_tmp19_ = _g_object_ref0 (_tmp18_);
			_g_object_unref0 (row);
			row = _tmp19_;
		}
		_tmp20_ = row;
		if (_tmp20_ != NULL) {
			RegistryListScrollToRowBehaviour _tmp21_ = 0;
			GtkListBoxRow* _tmp22_;
			gboolean _tmp23_;
			if (is_next) {
				_tmp21_ = REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_DOWN;
			} else {
				_tmp21_ = REGISTRY_LIST_SCROLL_TO_ROW_BEHAVIOUR_SCROLL_UP;
			}
			_tmp22_ = row;
			registry_list_scroll_to_row (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_list_box_row_get_type (), GtkListBoxRow), _tmp21_);
			_tmp23_ = self->priv->_search_mode;
			if (_tmp23_) {
				GtkContainer* list_box = NULL;
				GtkListBoxRow* _tmp24_;
				GtkContainer* _tmp25_;
				GtkContainer* _tmp26_;
				GtkListBoxRow* _tmp27_;
				GtkContainer* _tmp28_;
				GtkWidget* _tmp29_;
				_tmp24_ = selected_row;
				_tmp25_ = gtk_widget_get_parent ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_list_box_row_get_type (), GtkListBoxRow));
				_tmp26_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_container_get_type (), GtkContainer));
				list_box = _tmp26_;
				_tmp27_ = row;
				_tmp28_ = list_box;
				_tmp29_ = gtk_container_get_focus_child (_tmp28_);
				registry_list_select_row_and_if_true_grab_focus (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_list_box_row_get_type (), GtkListBoxRow), _tmp29_ != NULL);
				_g_object_unref0 (list_box);
			} else {
				GtkListBoxRow* _tmp30_;
				_tmp30_ = row;
				registry_list_select_row_and_if_true_grab_focus (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_list_box_row_get_type (), GtkListBoxRow), TRUE);
			}
		}
		result = TRUE;
		_g_object_unref0 (row);
		_g_object_unref0 (row_content);
		_g_object_unref0 (selected_row);
		return result;
	} else {
		if (n_items >= ((guint) 1)) {
			gint _tmp31_ = 0;
			GtkListBox* _tmp32_;
			GtkListBoxRow* _tmp33_;
			GtkListBoxRow* _tmp34_;
			GtkListBoxRow* _tmp35_;
			GtkListBoxRow* _tmp36_;
			if (is_next) {
				_tmp31_ = 0;
			} else {
				_tmp31_ = ((gint) n_items) - 1;
			}
			_tmp32_ = self->key_list_box;
			_tmp33_ = gtk_list_box_get_row_at_index (_tmp32_, _tmp31_);
			_tmp34_ = _g_object_ref0 (_tmp33_);
			_g_object_unref0 (selected_row);
			selected_row = _tmp34_;
			_tmp35_ = selected_row;
			if (_tmp35_ == NULL) {
				result = FALSE;
				_g_object_unref0 (selected_row);
				return result;
			}
			_tmp36_ = selected_row;
			registry_list_select_row_and_if_true_grab_focus (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_list_box_row_get_type (), GtkListBoxRow), TRUE);
			result = TRUE;
			_g_object_unref0 (selected_row);
			return result;
		}
	}
	result = FALSE;
	_g_object_unref0 (selected_row);
	return result;
}

static Block32Data*
block32_data_ref (Block32Data* _data32_)
{
	g_atomic_int_inc (&_data32_->_ref_count_);
	return _data32_;
}

static void
block32_data_unref (void * _userdata_)
{
	Block32Data* _data32_;
	_data32_ = (Block32Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data32_->_ref_count_)) {
		RegistryList* self;
		self = _data32_->self;
		_g_object_unref0 (_data32_->row);
		_g_object_unref0 (self);
		g_slice_free (Block32Data, _data32_);
	}
}

static gchar*
string_slice (const gchar* self,
              glong start,
              glong end)
{
	glong string_length = 0L;
	gint _tmp0_;
	gint _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = strlen (self);
	_tmp1_ = _tmp0_;
	string_length = (glong) _tmp1_;
	if (start < ((glong) 0)) {
		start = string_length + start;
	}
	if (end < ((glong) 0)) {
		end = string_length + end;
	}
	if (start >= ((glong) 0)) {
		_tmp2_ = start <= string_length;
	} else {
		_tmp2_ = FALSE;
	}
	g_return_val_if_fail (_tmp2_, NULL);
	if (end >= ((glong) 0)) {
		_tmp3_ = end <= string_length;
	} else {
		_tmp3_ = FALSE;
	}
	g_return_val_if_fail (_tmp3_, NULL);
	g_return_val_if_fail (start <= end, NULL);
	_tmp4_ = g_strndup (((gchar*) self) + start, (gsize) (end - start));
	result = _tmp4_;
	return result;
}

static Block33Data*
block33_data_ref (Block33Data* _data33_)
{
	g_atomic_int_inc (&_data33_->_ref_count_);
	return _data33_;
}

static void
block33_data_unref (void * _userdata_)
{
	Block33Data* _data33_;
	_data33_ = (Block33Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data33_->_ref_count_)) {
		RegistryList* self;
		self = _data33_->_data32_->self;
		_g_object_unref0 (_data33_->key_row);
		block32_data_unref (_data33_->_data32_);
		_data33_->_data32_ = NULL;
		g_slice_free (Block33Data, _data33_);
	}
}

static void
_____lambda50_ (Block33Data* _data33_,
                ModificationsHandler* _modifications_handler)
{
	Block32Data* _data32_;
	RegistryList* self;
	KeyListBoxRow* _tmp0_;
	_data32_ = _data33_->_data32_;
	self = _data32_->self;
	g_return_if_fail (_modifications_handler != NULL);
	_tmp0_ = _data33_->key_row;
	registry_list_set_delayed_icon (_modifications_handler, _tmp0_);
}

static void
______lambda50__modifications_handler_delayed_changes_changed (ModificationsHandler* _sender,
                                                               gpointer self)
{
	_____lambda50_ (self, _sender);
}

static void
_____lambda51_ (Block33Data* _data33_)
{
	Block32Data* _data32_;
	RegistryList* self;
	ModificationsHandler* _tmp0_;
	_data32_ = _data33_->_data32_;
	self = _data32_->self;
	_tmp0_ = self->priv->_modifications_handler;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data33_->delayed_modifications_changed_handler);
}

static void
______lambda51__gtk_widget_destroy (GtkWidget* _sender,
                                    gpointer self)
{
	_____lambda51_ (self);
}

static gboolean
_registry_list_on_button_pressed_gtk_widget_button_press_event (GtkWidget* _sender,
                                                                GdkEventButton* event,
                                                                gpointer self)
{
	gboolean result;
	result = registry_list_on_button_pressed ((RegistryList*) self, _sender, event);
	return result;
}

static void
__lambda52_ (Block32Data* _data32_)
{
	RegistryList* self;
	ClickableListBoxRow* _tmp0_;
	self = _data32_->self;
	_tmp0_ = _data32_->row;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data32_->button_press_event_handler);
}

static void
___lambda52__gtk_widget_destroy (GtkWidget* _sender,
                                 gpointer self)
{
	__lambda52_ (self);
}

GtkWidget*
registry_list_new_list_box_row (RegistryList* self,
                                GObject* item)
{
	Block32Data* _data32_;
	SimpleSettingObject* setting_object = NULL;
	SimpleSettingObject* _tmp0_;
	gchar* full_name = NULL;
	SimpleSettingObject* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	guint16 context_id = 0U;
	SimpleSettingObject* _tmp5_;
	guint16 _tmp6_;
	guint16 _tmp7_;
	gboolean _tmp8_ = FALSE;
	gboolean _tmp9_;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_;
	gboolean search_mode_non_local_result = FALSE;
	SimpleSettingObject* _tmp17_;
	gboolean _tmp18_;
	gboolean _tmp19_;
	ClickableListBoxRow* _tmp70_;
	gulong _tmp71_;
	ClickableListBoxRow* _tmp72_;
	ClickableListBoxRow* _tmp73_;
	ListBoxRowWrapper* _tmp74_;
	GtkWidget* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (item != NULL, NULL);
	_data32_ = g_slice_new0 (Block32Data);
	_data32_->_ref_count_ = 1;
	_data32_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (item, TYPE_SIMPLE_SETTING_OBJECT, SimpleSettingObject));
	setting_object = _tmp0_;
	_tmp1_ = setting_object;
	_tmp2_ = simple_setting_object_get_full_name (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup (_tmp3_);
	full_name = _tmp4_;
	_tmp5_ = setting_object;
	_tmp6_ = simple_setting_object_get_context_id (_tmp5_);
	_tmp7_ = _tmp6_;
	context_id = _tmp7_;
	_tmp9_ = self->priv->_search_mode;
	if (_tmp9_) {
		const gchar* _tmp10_;
		_tmp10_ = self->current_path_if_search_mode;
		_tmp8_ = _tmp10_ == NULL;
	} else {
		_tmp8_ = FALSE;
	}
	if (_tmp8_) {
		g_assert_not_reached ();
	}
	_tmp12_ = self->priv->_search_mode;
	if (_tmp12_) {
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		const gchar* _tmp16_;
		_tmp13_ = full_name;
		_tmp14_ = model_utils_get_parent_path (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp16_ = self->current_path_if_search_mode;
		_tmp11_ = g_strcmp0 (_tmp15_, (const gchar*) _tmp16_) != 0;
		_g_free0 (_tmp15_);
	} else {
		_tmp11_ = FALSE;
	}
	search_mode_non_local_result = _tmp11_;
	_tmp17_ = setting_object;
	_tmp18_ = simple_setting_object_get_is_pinned (_tmp17_);
	_tmp19_ = _tmp18_;
	if (_tmp19_) {
		SimpleSettingObject* _tmp20_;
		gboolean _tmp21_;
		gboolean _tmp22_;
		_tmp20_ = setting_object;
		_tmp21_ = simple_setting_object_get_is_search (_tmp20_);
		_tmp22_ = _tmp21_;
		if (_tmp22_) {
			SimpleSettingObject* _tmp23_;
			const gchar* _tmp24_;
			const gchar* _tmp25_;
			const gchar* _tmp26_;
			FilterListBoxRow* _tmp27_;
			_tmp23_ = setting_object;
			_tmp24_ = simple_setting_object_get_name (_tmp23_);
			_tmp25_ = _tmp24_;
			_tmp26_ = full_name;
			_tmp27_ = filter_list_box_row_new (_tmp25_, _tmp26_);
			g_object_ref_sink (_tmp27_);
			_g_object_unref0 (_data32_->row);
			_data32_->row = (ClickableListBoxRow*) _tmp27_;
		} else {
			const gchar* _tmp28_;
			ReturnListBoxRow* _tmp29_;
			_tmp28_ = full_name;
			_tmp29_ = return_list_box_row_new (_tmp28_, context_id);
			g_object_ref_sink (_tmp29_);
			_g_object_unref0 (_data32_->row);
			_data32_->row = (ClickableListBoxRow*) _tmp29_;
		}
	} else {
		SimpleSettingObject* _tmp30_;
		gboolean _tmp31_;
		gboolean _tmp32_;
		_tmp30_ = setting_object;
		_tmp31_ = simple_setting_object_get_is_search (_tmp30_);
		_tmp32_ = _tmp31_;
		if (_tmp32_) {
			SimpleSettingObject* _tmp33_;
			const gchar* _tmp34_;
			const gchar* _tmp35_;
			_tmp33_ = setting_object;
			_tmp34_ = simple_setting_object_get_name (_tmp33_);
			_tmp35_ = _tmp34_;
			if (g_strcmp0 (_tmp35_, "") == 0) {
				const gchar* _tmp36_;
				FilterListBoxRow* _tmp37_;
				_tmp36_ = full_name;
				_tmp37_ = filter_list_box_row_new ("", _tmp36_);
				g_object_ref_sink (_tmp37_);
				_g_object_unref0 (_data32_->row);
				_data32_->row = (ClickableListBoxRow*) _tmp37_;
			} else {
				const gchar* _tmp38_;
				const gchar* _tmp39_;
				gint _tmp40_;
				gint _tmp41_;
				gchar* _tmp42_;
				gchar* _tmp43_;
				SearchListBoxRow* _tmp44_;
				_tmp38_ = full_name;
				_tmp39_ = full_name;
				_tmp40_ = strlen (_tmp39_);
				_tmp41_ = _tmp40_;
				_tmp42_ = string_slice (_tmp38_, (glong) 1, (glong) _tmp41_);
				_tmp43_ = _tmp42_;
				_tmp44_ = search_list_box_row_new (_tmp43_);
				g_object_ref_sink (_tmp44_);
				_g_object_unref0 (_data32_->row);
				_data32_->row = (ClickableListBoxRow*) _tmp44_;
				_g_free0 (_tmp43_);
			}
		} else {
			if (model_utils_is_folder_context_id (context_id)) {
				gboolean _tmp45_ = FALSE;
				gboolean _tmp46_;
				SimpleSettingObject* _tmp47_;
				const gchar* _tmp48_;
				const gchar* _tmp49_;
				const gchar* _tmp50_;
				FolderListBoxRow* _tmp51_;
				_tmp46_ = self->priv->_search_mode;
				if (_tmp46_) {
					_tmp45_ = self->search_is_path_search;
				} else {
					_tmp45_ = FALSE;
				}
				_tmp47_ = setting_object;
				_tmp48_ = simple_setting_object_get_name (_tmp47_);
				_tmp49_ = _tmp48_;
				_tmp50_ = full_name;
				_tmp51_ = folder_list_box_row_new (_tmp49_, _tmp50_, _tmp45_, search_mode_non_local_result);
				g_object_ref_sink (_tmp51_);
				_g_object_unref0 (_data32_->row);
				_data32_->row = (ClickableListBoxRow*) _tmp51_;
			} else {
				Block33Data* _data33_;
				GVariant* properties = NULL;
				ModificationsHandler* _tmp52_;
				SettingsModel* _tmp53_;
				SettingsModel* _tmp54_;
				const gchar* _tmp55_;
				GVariant* _tmp56_;
				const gchar* _tmp57_;
				GVariant* _tmp58_;
				ModificationsHandler* _tmp59_;
				KeyListBoxRow* _tmp60_;
				KeyListBoxRow* _tmp61_;
				KeyListBoxRow* _tmp62_;
				ModificationsHandler* _tmp63_;
				gulong _tmp64_;
				ModificationsHandler* _tmp65_;
				KeyListBoxRow* _tmp66_;
				KeyListBoxRow* _tmp67_;
				KeyListBoxRow* _tmp68_;
				ClickableListBoxRow* _tmp69_;
				_data33_ = g_slice_new0 (Block33Data);
				_data33_->_ref_count_ = 1;
				_data33_->_data32_ = block32_data_ref (_data32_);
				_tmp52_ = self->priv->_modifications_handler;
				_tmp53_ = modifications_handler_get_model (_tmp52_);
				_tmp54_ = _tmp53_;
				_tmp55_ = full_name;
				_tmp56_ = settings_model_get_key_properties (_tmp54_, _tmp55_, context_id, (guint16) ((((PROPERTY_QUERY_HAS_SCHEMA & PROPERTY_QUERY_KEY_NAME) & PROPERTY_QUERY_TYPE_CODE) & PROPERTY_QUERY_SUMMARY) & PROPERTY_QUERY_KEY_CONFLICT));
				properties = _tmp56_;
				_tmp57_ = full_name;
				_tmp58_ = properties;
				_tmp59_ = self->priv->_modifications_handler;
				_tmp60_ = registry_list_create_key_list_box_row (_tmp57_, context_id, _tmp58_, modifications_handler_get_current_delay_mode (_tmp59_), search_mode_non_local_result);
				_data33_->key_row = _tmp60_;
				_tmp61_ = _data33_->key_row;
				key_list_box_row_set_small_keys_list_rows (_tmp61_, self->priv->_small_keys_list_rows);
				_tmp62_ = _data33_->key_row;
				adaptative_widget_set_window_size ((AdaptativeWidget*) _tmp62_, self->priv->window_size);
				_tmp63_ = self->priv->_modifications_handler;
				_tmp64_ = g_signal_connect_data (_tmp63_, "delayed-changes-changed", (GCallback) ______lambda50__modifications_handler_delayed_changes_changed, block33_data_ref (_data33_), (GClosureNotify) block33_data_unref, 0);
				_data33_->delayed_modifications_changed_handler = _tmp64_;
				_tmp65_ = self->priv->_modifications_handler;
				_tmp66_ = _data33_->key_row;
				registry_list_set_delayed_icon (_tmp65_, _tmp66_);
				_tmp67_ = _data33_->key_row;
				g_signal_connect_data ((GtkWidget*) _tmp67_, "destroy", (GCallback) ______lambda51__gtk_widget_destroy, block33_data_ref (_data33_), (GClosureNotify) block33_data_unref, 0);
				_tmp68_ = _data33_->key_row;
				_tmp69_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
				_g_object_unref0 (_data32_->row);
				_data32_->row = _tmp69_;
				_g_variant_unref0 (properties);
				block33_data_unref (_data33_);
				_data33_ = NULL;
			}
		}
	}
	_tmp70_ = _data32_->row;
	_tmp71_ = g_signal_connect_object ((GtkWidget*) _tmp70_, "button-press-event", (GCallback) _registry_list_on_button_pressed_gtk_widget_button_press_event, self, 0);
	_data32_->button_press_event_handler = _tmp71_;
	_tmp72_ = _data32_->row;
	g_signal_connect_data ((GtkWidget*) _tmp72_, "destroy", (GCallback) ___lambda52__gtk_widget_destroy, block32_data_ref (_data32_), (GClosureNotify) block32_data_unref, 0);
	_tmp73_ = _data32_->row;
	_tmp74_ = registry_list_put_row_in_wrapper (_tmp73_);
	result = (GtkWidget*) _tmp74_;
	_g_free0 (full_name);
	_g_object_unref0 (setting_object);
	block32_data_unref (_data32_);
	_data32_ = NULL;
	return result;
}

static KeyListBoxRow*
registry_list_create_key_list_box_row (const gchar* full_name,
                                       guint16 context_id,
                                       GVariant* aqv,
                                       gboolean delay_mode,
                                       gboolean search_mode_non_local_result)
{
	RegistryVariantDict* properties = NULL;
	RegistryVariantDict* _tmp0_;
	gchar* key_name = NULL;
	gchar* type_code = NULL;
	gboolean has_schema = FALSE;
	gchar* _tmp1_ = NULL;
	gboolean _tmp2_;
	gchar* _tmp3_ = NULL;
	gboolean _tmp4_;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_;
	KeyListBoxRow* result;
	g_return_val_if_fail (full_name != NULL, NULL);
	g_return_val_if_fail (aqv != NULL, NULL);
	_tmp0_ = registry_variant_dict_new_from_aqv (aqv);
	properties = _tmp0_;
	_tmp2_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_KEY_NAME, "s", &_tmp1_, NULL);
	_g_free0 (key_name);
	key_name = _tmp1_;
	if (!_tmp2_) {
		g_assert_not_reached ();
	}
	_tmp4_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_TYPE_CODE, "s", &_tmp3_, NULL);
	_g_free0 (type_code);
	type_code = _tmp3_;
	if (!_tmp4_) {
		g_assert_not_reached ();
	}
	_tmp6_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_HAS_SCHEMA, "b", &_tmp5_, NULL);
	has_schema = _tmp5_;
	if (!_tmp6_) {
		g_assert_not_reached ();
	}
	if (has_schema) {
		gchar* summary = NULL;
		gchar* _tmp7_;
		gchar* _tmp8_ = NULL;
		gboolean _tmp9_;
		gboolean italic_summary = FALSE;
		const gchar* _tmp10_;
		KeyListBoxRow* row = NULL;
		const gchar* _tmp12_;
		KeyListBoxRow* _tmp13_;
		guint8 _key_conflict = 0U;
		guint8 _tmp14_ = 0U;
		gboolean _tmp15_;
		KeyConflict key_conflict = 0;
		_tmp7_ = g_strdup ("");
		summary = _tmp7_;
		_tmp9_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_SUMMARY, "s", &_tmp8_, NULL);
		_g_free0 (summary);
		summary = _tmp8_;
		if (!_tmp9_) {
			g_assert_not_reached ();
		}
		_tmp10_ = summary;
		if (g_strcmp0 (_tmp10_, "") == 0) {
			gchar* _tmp11_;
			_tmp11_ = g_strdup (_ ("No summary provided"));
			_g_free0 (summary);
			summary = _tmp11_;
			italic_summary = TRUE;
		} else {
			italic_summary = FALSE;
		}
		_tmp12_ = summary;
		_tmp13_ = key_list_box_row_new (TRUE, type_code, context_id, _tmp12_, italic_summary, delay_mode, key_name, full_name, search_mode_non_local_result);
		g_object_ref_sink (_tmp13_);
		row = _tmp13_;
		_tmp15_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_KEY_CONFLICT, "y", &_tmp14_, NULL);
		_key_conflict = _tmp14_;
		if (!_tmp15_) {
			g_assert_not_reached ();
		}
		key_conflict = (KeyConflict) _key_conflict;
		if (key_conflict == KEY_CONFLICT_SOFT) {
			KeyListBoxRow* _tmp16_;
			GtkStyleContext* _tmp17_;
			_tmp16_ = row;
			_tmp17_ = gtk_widget_get_style_context ((GtkWidget*) _tmp16_);
			gtk_style_context_add_class (_tmp17_, "conflict");
		} else {
			if (key_conflict == KEY_CONFLICT_HARD) {
				KeyListBoxRow* _tmp18_;
				GtkStyleContext* _tmp19_;
				KeyListBoxRow* _tmp20_;
				_tmp18_ = row;
				_tmp19_ = gtk_widget_get_style_context ((GtkWidget*) _tmp18_);
				gtk_style_context_add_class (_tmp19_, "hard-conflict");
				_tmp20_ = row;
				key_list_box_row_update_label (_tmp20_, _ ("conflicting keys"), TRUE, _ ("conflict"), TRUE);
				if (g_strcmp0 (type_code, "b") == 0) {
					KeyListBoxRow* _tmp21_;
					_tmp21_ = row;
					key_list_box_row_use_switch (_tmp21_, FALSE);
				}
			}
		}
		registry_variant_dict_clear (properties);
		result = row;
		_g_free0 (summary);
		_g_free0 (type_code);
		_g_free0 (key_name);
		_g_object_unref0 (properties);
		return result;
	} else {
		KeyListBoxRow* _tmp22_;
		registry_variant_dict_clear (properties);
		_tmp22_ = key_list_box_row_new (FALSE, type_code, MODEL_UTILS_dconf_context_id, _ ("No schema found"), TRUE, delay_mode, key_name, full_name, search_mode_non_local_result);
		g_object_ref_sink (_tmp22_);
		result = _tmp22_;
		_g_free0 (type_code);
		_g_free0 (key_name);
		_g_object_unref0 (properties);
		return result;
	}
}

static inline ListBoxRowWrapper*
registry_list_put_row_in_wrapper (ClickableListBoxRow* row)
{
	ListBoxRowWrapper* wrapper = NULL;
	ListBoxRowWrapper* _tmp0_;
	ListBoxRowWrapper* _tmp1_;
	ListBoxRowWrapper* _tmp2_;
	ListBoxRowWrapper* result;
	g_return_val_if_fail (row != NULL, NULL);
	_tmp0_ = list_box_row_wrapper_new ();
	g_object_ref_sink (_tmp0_);
	wrapper = _tmp0_;
	_tmp1_ = wrapper;
	gtk_widget_set_halign ((GtkWidget*) _tmp1_, GTK_ALIGN_CENTER);
	_tmp2_ = wrapper;
	gtk_container_add ((GtkContainer*) _tmp2_, (GtkWidget*) row);
	if (IS_FILTER_LIST_BOX_ROW (row)) {
		ListBoxRowWrapper* _tmp3_;
		GtkStyleContext* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp3_ = wrapper;
		_tmp4_ = gtk_widget_get_style_context ((GtkWidget*) _tmp3_);
		gtk_style_context_add_class (_tmp4_, "f-or-s-row");
		_tmp5_ = filter_list_box_row_get_is_local_search (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_FILTER_LIST_BOX_ROW, FilterListBoxRow));
		_tmp6_ = _tmp5_;
		if (_tmp6_) {
			ListBoxRowWrapper* _tmp7_;
			_tmp7_ = wrapper;
			gtk_actionable_set_action_name ((GtkActionable*) _tmp7_, "browser.open-search-local");
		} else {
			const gchar* _tmp8_;
			const gchar* _tmp9_;
			_tmp8_ = clickable_list_box_row_get_full_name (row);
			_tmp9_ = _tmp8_;
			if (g_strcmp0 (_tmp9_, "/") == 0) {
				ListBoxRowWrapper* _tmp10_;
				_tmp10_ = wrapper;
				gtk_actionable_set_action_name ((GtkActionable*) _tmp10_, "browser.open-search-root");
			} else {
				ListBoxRowWrapper* _tmp11_;
				_tmp11_ = wrapper;
				gtk_actionable_set_action_name ((GtkActionable*) _tmp11_, "browser.open-search-global");
			}
		}
	} else {
		if (IS_RETURN_LIST_BOX_ROW (row)) {
			ListBoxRowWrapper* _tmp12_;
			GtkStyleContext* _tmp13_;
			guint16 _tmp14_;
			guint16 _tmp15_;
			_tmp12_ = wrapper;
			_tmp13_ = gtk_widget_get_style_context ((GtkWidget*) _tmp12_);
			gtk_style_context_add_class (_tmp13_, "f-or-s-row");
			_tmp14_ = clickable_list_box_row_get_context_id (row);
			_tmp15_ = _tmp14_;
			if (model_utils_is_folder_context_id (_tmp15_)) {
				ListBoxRowWrapper* _tmp16_;
				ListBoxRowWrapper* _tmp17_;
				const gchar* _tmp18_;
				const gchar* _tmp19_;
				_tmp16_ = wrapper;
				gtk_actionable_set_action_name ((GtkActionable*) _tmp16_, "browser.open-folder");
				_tmp17_ = wrapper;
				_tmp18_ = clickable_list_box_row_get_full_name (row);
				_tmp19_ = _tmp18_;
				gtk_actionable_set_action_target ((GtkActionable*) _tmp17_, "s", _tmp19_, NULL);
			} else {
				ListBoxRowWrapper* _tmp20_;
				ListBoxRowWrapper* _tmp21_;
				const gchar* _tmp22_;
				const gchar* _tmp23_;
				guint16 _tmp24_;
				guint16 _tmp25_;
				_tmp20_ = wrapper;
				gtk_actionable_set_action_name ((GtkActionable*) _tmp20_, "browser.open-object");
				_tmp21_ = wrapper;
				_tmp22_ = clickable_list_box_row_get_full_name (row);
				_tmp23_ = _tmp22_;
				_tmp24_ = clickable_list_box_row_get_context_id (row);
				_tmp25_ = _tmp24_;
				gtk_actionable_set_action_target ((GtkActionable*) _tmp21_, "(sq)", _tmp23_, _tmp25_, NULL);
			}
		} else {
			if (IS_SEARCH_LIST_BOX_ROW (row)) {
				ListBoxRowWrapper* _tmp26_;
				GtkStyleContext* _tmp27_;
				ListBoxRowWrapper* _tmp28_;
				ListBoxRowWrapper* _tmp29_;
				const gchar* _tmp30_;
				const gchar* _tmp31_;
				_tmp26_ = wrapper;
				_tmp27_ = gtk_widget_get_style_context ((GtkWidget*) _tmp26_);
				gtk_style_context_add_class (_tmp27_, "f-or-s-row");
				_tmp28_ = wrapper;
				gtk_actionable_set_action_name ((GtkActionable*) _tmp28_, "browser.open-search");
				_tmp29_ = wrapper;
				_tmp30_ = clickable_list_box_row_get_full_name (row);
				_tmp31_ = _tmp30_;
				gtk_actionable_set_action_target ((GtkActionable*) _tmp29_, "s", _tmp31_, NULL);
			} else {
				guint16 _tmp32_;
				guint16 _tmp33_;
				_tmp32_ = clickable_list_box_row_get_context_id (row);
				_tmp33_ = _tmp32_;
				if (model_utils_is_folder_context_id (_tmp33_)) {
					ListBoxRowWrapper* _tmp34_;
					GtkStyleContext* _tmp35_;
					ListBoxRowWrapper* _tmp40_;
					const gchar* _tmp41_;
					const gchar* _tmp42_;
					_tmp34_ = wrapper;
					_tmp35_ = gtk_widget_get_style_context ((GtkWidget*) _tmp34_);
					gtk_style_context_add_class (_tmp35_, "f-or-s-row");
					if (IS_FOLDER_LIST_BOX_ROW (row)) {
						gboolean _tmp36_;
						gboolean _tmp37_;
						_tmp36_ = folder_list_box_row_get_path_search (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_FOLDER_LIST_BOX_ROW, FolderListBoxRow));
						_tmp37_ = _tmp36_;
						if (_tmp37_) {
							ListBoxRowWrapper* _tmp38_;
							_tmp38_ = wrapper;
							gtk_actionable_set_action_name ((GtkActionable*) _tmp38_, "browser.next-search");
						} else {
							ListBoxRowWrapper* _tmp39_;
							_tmp39_ = wrapper;
							gtk_actionable_set_action_name ((GtkActionable*) _tmp39_, "browser.open-folder");
						}
					} else {
						g_assert_not_reached ();
					}
					_tmp40_ = wrapper;
					_tmp41_ = clickable_list_box_row_get_full_name (row);
					_tmp42_ = _tmp41_;
					gtk_actionable_set_action_target ((GtkActionable*) _tmp40_, "s", _tmp42_, NULL);
				} else {
					if (IS_KEY_LIST_BOX_ROW (row)) {
						ListBoxRowWrapper* _tmp43_;
						GtkStyleContext* _tmp44_;
						ListBoxRowWrapper* _tmp45_;
						ListBoxRowWrapper* _tmp46_;
						const gchar* _tmp47_;
						const gchar* _tmp48_;
						guint16 _tmp49_;
						guint16 _tmp50_;
						_tmp43_ = wrapper;
						_tmp44_ = gtk_widget_get_style_context ((GtkWidget*) _tmp43_);
						gtk_style_context_add_class (_tmp44_, "key-row");
						_tmp45_ = wrapper;
						gtk_actionable_set_action_name ((GtkActionable*) _tmp45_, "browser.open-object");
						_tmp46_ = wrapper;
						_tmp47_ = clickable_list_box_row_get_full_name (row);
						_tmp48_ = _tmp47_;
						_tmp49_ = clickable_list_box_row_get_context_id (row);
						_tmp50_ = _tmp49_;
						gtk_actionable_set_action_target ((GtkActionable*) _tmp46_, "(sq)", _tmp48_, _tmp50_, NULL);
					} else {
						g_assert_not_reached ();
					}
				}
			}
		}
	}
	result = wrapper;
	return result;
}

static void
registry_list_update_gsettings_row (KeyListBoxRow* row,
                                    const gchar* type_string,
                                    GVariant* key_value,
                                    gboolean is_key_default,
                                    gboolean error_hard_conflicting_key)
{
	GtkStyleContext* css_context = NULL;
	GtkStyleContext* _tmp13_;
	GtkStyleContext* _tmp14_;
	gchar* key_value_text = NULL;
	gchar* _tmp17_;
	gchar* key_type_label = NULL;
	gboolean key_type_italic = FALSE;
	const gchar* _tmp18_;
	gchar* _tmp19_ = NULL;
	gboolean _tmp20_ = FALSE;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	g_return_if_fail (row != NULL);
	g_return_if_fail (type_string != NULL);
	g_return_if_fail (key_value != NULL);
	if (error_hard_conflicting_key) {
		return;
	}
	if (g_strcmp0 (type_string, "b") == 0) {
		gboolean key_value_boolean = FALSE;
		gboolean _tmp0_ = FALSE;
		GVariant* switch_variant = NULL;
		const gchar* _tmp1_;
		const gchar* _tmp2_;
		guint16 _tmp3_;
		guint16 _tmp4_;
		GVariant* _tmp5_;
		GVariant* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		key_value_boolean = g_variant_get_boolean (key_value);
		if (key_value_boolean) {
			_tmp0_ = is_key_default;
		} else {
			_tmp0_ = !is_key_default;
		}
		_tmp1_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
		_tmp2_ = _tmp1_;
		_tmp3_ = clickable_list_box_row_get_context_id ((ClickableListBoxRow*) row);
		_tmp4_ = _tmp3_;
		_tmp5_ = g_variant_new ("(sqbb)", _tmp2_, _tmp4_, !key_value_boolean, _tmp0_, NULL);
		g_variant_ref_sink (_tmp5_);
		switch_variant = _tmp5_;
		_tmp6_ = switch_variant;
		_tmp7_ = g_variant_print (_tmp6_, TRUE);
		_tmp8_ = _tmp7_;
		_tmp9_ = g_strconcat ("view.toggle-gsettings-key-switch(", _tmp8_, NULL);
		_tmp10_ = _tmp9_;
		_tmp11_ = g_strconcat (_tmp10_, ")", NULL);
		_tmp12_ = _tmp11_;
		key_list_box_row_update_switch (row, key_value_boolean, _tmp12_);
		_g_free0 (_tmp12_);
		_g_free0 (_tmp10_);
		_g_free0 (_tmp8_);
		_g_variant_unref0 (switch_variant);
	}
	_tmp13_ = gtk_widget_get_style_context ((GtkWidget*) row);
	_tmp14_ = _g_object_ref0 (_tmp13_);
	css_context = _tmp14_;
	if (is_key_default) {
		GtkStyleContext* _tmp15_;
		_tmp15_ = css_context;
		gtk_style_context_remove_class (_tmp15_, "edited");
	} else {
		GtkStyleContext* _tmp16_;
		_tmp16_ = css_context;
		gtk_style_context_add_class (_tmp16_, "edited");
	}
	_tmp17_ = key_cool_text_value_from_variant (key_value);
	key_value_text = _tmp17_;
	_tmp18_ = key_value_text;
	registry_list_get_type_or_value (type_string, _tmp18_, &_tmp19_, &_tmp20_);
	_g_free0 (key_type_label);
	key_type_label = _tmp19_;
	key_type_italic = _tmp20_;
	_tmp21_ = key_value_text;
	_tmp22_ = key_type_label;
	key_list_box_row_update_label (row, _tmp21_, FALSE, _tmp22_, key_type_italic);
	_g_free0 (key_type_label);
	_g_free0 (key_value_text);
	_g_object_unref0 (css_context);
}

static void
registry_list_update_dconf_row (KeyListBoxRow* row,
                                const gchar* type_string,
                                GVariant* key_value)
{
	g_return_if_fail (row != NULL);
	g_return_if_fail (type_string != NULL);
	if (key_value == NULL) {
		key_list_box_row_update_label (row, _ ("key erased"), TRUE, _ ("erased"), TRUE);
		if (g_strcmp0 (type_string, "b") == 0) {
			key_list_box_row_use_switch (row, FALSE);
		}
	} else {
		gchar* key_value_text = NULL;
		gchar* _tmp10_;
		gchar* key_type_label = NULL;
		gboolean key_type_italic = FALSE;
		const gchar* _tmp11_;
		gchar* _tmp12_ = NULL;
		gboolean _tmp13_ = FALSE;
		const gchar* _tmp14_;
		const gchar* _tmp15_;
		if (g_strcmp0 (type_string, "b") == 0) {
			gboolean key_value_boolean = FALSE;
			GVariant* switch_variant = NULL;
			const gchar* _tmp0_;
			const gchar* _tmp1_;
			GVariant* _tmp2_;
			GVariant* _tmp3_;
			gchar* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
			gchar* _tmp7_;
			gchar* _tmp8_;
			gchar* _tmp9_;
			key_value_boolean = g_variant_get_boolean ((GVariant*) key_value);
			_tmp0_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) row);
			_tmp1_ = _tmp0_;
			_tmp2_ = g_variant_new ("(sb)", _tmp1_, !key_value_boolean, NULL);
			g_variant_ref_sink (_tmp2_);
			switch_variant = _tmp2_;
			_tmp3_ = switch_variant;
			_tmp4_ = g_variant_print (_tmp3_, FALSE);
			_tmp5_ = _tmp4_;
			_tmp6_ = g_strconcat ("view.toggle-dconf-key-switch(", _tmp5_, NULL);
			_tmp7_ = _tmp6_;
			_tmp8_ = g_strconcat (_tmp7_, ")", NULL);
			_tmp9_ = _tmp8_;
			key_list_box_row_update_switch (row, key_value_boolean, _tmp9_);
			_g_free0 (_tmp9_);
			_g_free0 (_tmp7_);
			_g_free0 (_tmp5_);
			key_list_box_row_use_switch (row, TRUE);
			_g_variant_unref0 (switch_variant);
		}
		_tmp10_ = key_cool_text_value_from_variant ((GVariant*) key_value);
		key_value_text = _tmp10_;
		_tmp11_ = key_value_text;
		registry_list_get_type_or_value (type_string, _tmp11_, &_tmp12_, &_tmp13_);
		_g_free0 (key_type_label);
		key_type_label = _tmp12_;
		key_type_italic = _tmp13_;
		_tmp14_ = key_value_text;
		_tmp15_ = key_type_label;
		key_list_box_row_update_label (row, _tmp14_, FALSE, _tmp15_, key_type_italic);
		_g_free0 (key_type_label);
		_g_free0 (key_value_text);
	}
}

static void
registry_list_get_type_or_value (const gchar* type_string,
                                 const gchar* key_value_text,
                                 gchar** key_type_label,
                                 gboolean* key_type_italic)
{
	gchar* _vala_key_type_label = NULL;
	gboolean _vala_key_type_italic = FALSE;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	g_return_if_fail (type_string != NULL);
	g_return_if_fail (key_value_text != NULL);
	if (g_strcmp0 (type_string, "b") == 0) {
		_tmp7_ = TRUE;
	} else {
		_tmp7_ = g_strcmp0 (type_string, "mb") == 0;
	}
	if (_tmp7_) {
		_tmp6_ = TRUE;
	} else {
		_tmp6_ = g_strcmp0 (type_string, "y") == 0;
	}
	if (_tmp6_) {
		_tmp5_ = TRUE;
	} else {
		_tmp5_ = g_strcmp0 (type_string, "h") == 0;
	}
	if (_tmp5_) {
		_tmp4_ = TRUE;
	} else {
		_tmp4_ = g_strcmp0 (type_string, "d") == 0;
	}
	if (_tmp4_) {
		_tmp3_ = TRUE;
	} else {
		_tmp3_ = g_strcmp0 (type_string, "n") == 0;
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		_tmp2_ = g_strcmp0 (type_string, "q") == 0;
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = g_strcmp0 (type_string, "i") == 0;
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = g_strcmp0 (type_string, "u") == 0;
	}
	if (_tmp0_) {
		gchar* _tmp8_;
		_tmp8_ = g_strdup (key_value_text);
		_g_free0 (_vala_key_type_label);
		_vala_key_type_label = _tmp8_;
		_vala_key_type_italic = FALSE;
	} else {
		gchar* label = NULL;
		gchar* _tmp9_;
		gboolean _tmp10_ = FALSE;
		gboolean _tmp11_ = FALSE;
		const gchar* _tmp18_;
		gchar* _tmp19_;
		_tmp9_ = model_utils_key_to_short_description (type_string);
		label = _tmp9_;
		if (g_strcmp0 (type_string, "<enum>") != 0) {
			_tmp11_ = g_strcmp0 (type_string, "<flags>") != 0;
		} else {
			_tmp11_ = FALSE;
		}
		if (_tmp11_) {
			gboolean _tmp12_ = FALSE;
			const gchar* _tmp13_;
			_tmp13_ = label;
			if (g_strcmp0 (_tmp13_, type_string) == 0) {
				_tmp12_ = TRUE;
			} else {
				const gchar* _tmp14_;
				gint _tmp15_;
				gint _tmp16_;
				_tmp14_ = label;
				_tmp15_ = strlen (_tmp14_);
				_tmp16_ = _tmp15_;
				_tmp12_ = _tmp16_ > 12;
			}
			_tmp10_ = _tmp12_;
		} else {
			_tmp10_ = FALSE;
		}
		if (_tmp10_) {
			gchar* _tmp17_;
			_tmp17_ = g_strdup_printf (_ ("type “%s”"), type_string);
			_g_free0 (label);
			label = _tmp17_;
		}
		_tmp18_ = label;
		_tmp19_ = g_strdup (_tmp18_);
		_g_free0 (_vala_key_type_label);
		_vala_key_type_label = _tmp19_;
		_vala_key_type_italic = TRUE;
		_g_free0 (label);
	}
	if (key_type_label) {
		*key_type_label = _vala_key_type_label;
	} else {
		_g_free0 (_vala_key_type_label);
	}
	if (key_type_italic) {
		*key_type_italic = _vala_key_type_italic;
	}
}

static gboolean
registry_list_on_button_pressed (RegistryList* self,
                                 GtkWidget* widget,
                                 GdkEventButton* event)
{
	GtkListBoxRow* list_box_row = NULL;
	GtkContainer* _tmp0_;
	GtkListBoxRow* _tmp1_;
	GtkListBoxRow* _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	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_ = gtk_widget_get_parent (widget);
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_list_box_row_get_type (), GtkListBoxRow));
	list_box_row = _tmp1_;
	_tmp2_ = list_box_row;
	_tmp3_ = self->priv->_search_mode;
	registry_list_select_row_and_if_true_grab_focus (self, _tmp2_, !_tmp3_);
	if (event->button == ((guint) GDK_BUTTON_SECONDARY)) {
		gboolean _tmp4_ = FALSE;
		gboolean _tmp5_;
		ClickableListBoxRow* row = NULL;
		ClickableListBoxRow* _tmp9_;
		gint event_x = 0;
		GdkWindow* _tmp10_;
		GdkWindow* _tmp11_;
		ClickableListBoxRow* _tmp15_;
		_tmp5_ = self->priv->_search_mode;
		if (_tmp5_) {
			GtkListBox* _tmp6_;
			GtkWidget* _tmp7_;
			_tmp6_ = self->key_list_box;
			_tmp7_ = gtk_container_get_focus_child ((GtkContainer*) _tmp6_);
			_tmp4_ = _tmp7_ != NULL;
		} else {
			_tmp4_ = FALSE;
		}
		if (_tmp4_) {
			GtkListBoxRow* _tmp8_;
			_tmp8_ = list_box_row;
			gtk_widget_grab_focus ((GtkWidget*) _tmp8_);
		}
		_tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (widget, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
		row = _tmp9_;
		event_x = (gint) event->x;
		_tmp10_ = event->window;
		_tmp11_ = gtk_widget_get_window (widget);
		if (_tmp10_ != _tmp11_) {
			gint widget_x = 0;
			gint unused = 0;
			GdkWindow* _tmp12_;
			gint _tmp13_ = 0;
			gint _tmp14_ = 0;
			_tmp12_ = event->window;
			gdk_window_get_position (_tmp12_, &_tmp13_, &_tmp14_);
			widget_x = _tmp13_;
			unused = _tmp14_;
			event_x += widget_x;
		}
		_tmp15_ = row;
		registry_list_show_right_click_popover (self, _tmp15_, &event_x);
		_g_object_unref0 (row);
	} else {
		gboolean _tmp16_;
		_tmp16_ = self->priv->_search_mode;
		if (_tmp16_) {
			GtkListBoxRow* _tmp17_;
			_tmp17_ = list_box_row;
			gtk_widget_grab_focus ((GtkWidget*) _tmp17_);
		}
	}
	result = FALSE;
	_g_object_unref0 (list_box_row);
	return result;
}

void
registry_list_gkey_value_push (RegistryList* self,
                               const gchar* full_name,
                               guint16 context_id,
                               GVariant* key_value,
                               gboolean is_key_default)
{
	KeyListBoxRow* row = NULL;
	GtkListBox* _tmp0_;
	KeyListBoxRow* _tmp1_;
	KeyListBoxRow* _tmp2_;
	SettingsModel* model = NULL;
	ModificationsHandler* _tmp3_;
	SettingsModel* _tmp4_;
	SettingsModel* _tmp5_;
	SettingsModel* _tmp6_;
	RegistryVariantDict* properties = NULL;
	SettingsModel* _tmp7_;
	GVariant* _tmp8_;
	GVariant* _tmp9_;
	RegistryVariantDict* _tmp10_;
	RegistryVariantDict* _tmp11_;
	gchar* type_code = NULL;
	guint8 _key_conflict = 0U;
	RegistryVariantDict* _tmp12_;
	gchar* _tmp13_ = NULL;
	gboolean _tmp14_;
	RegistryVariantDict* _tmp15_;
	guint8 _tmp16_ = 0U;
	gboolean _tmp17_;
	KeyConflict key_conflict = 0;
	RegistryVariantDict* _tmp18_;
	KeyListBoxRow* _tmp19_;
	const gchar* _tmp20_;
	KeyListBoxRow* _tmp21_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (full_name != NULL);
	g_return_if_fail (key_value != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = registry_list_get_row_for_key (_tmp0_, full_name, context_id);
	row = _tmp1_;
	_tmp2_ = row;
	if (_tmp2_ == NULL) {
		_g_object_unref0 (row);
		return;
	}
	_tmp3_ = self->priv->_modifications_handler;
	_tmp4_ = modifications_handler_get_model (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = _g_object_ref0 (_tmp5_);
	model = _tmp6_;
	_tmp7_ = model;
	_tmp8_ = settings_model_get_key_properties (_tmp7_, full_name, context_id, (guint16) (PROPERTY_QUERY_TYPE_CODE & PROPERTY_QUERY_KEY_CONFLICT));
	_tmp9_ = _tmp8_;
	_tmp10_ = registry_variant_dict_new_from_aqv (_tmp9_);
	_tmp11_ = _tmp10_;
	_g_variant_unref0 (_tmp9_);
	properties = _tmp11_;
	_tmp12_ = properties;
	_tmp14_ = registry_variant_dict_lookup (_tmp12_, (guint16) PROPERTY_QUERY_TYPE_CODE, "s", &_tmp13_, NULL);
	_g_free0 (type_code);
	type_code = _tmp13_;
	if (!_tmp14_) {
		g_assert_not_reached ();
	}
	_tmp15_ = properties;
	_tmp17_ = registry_variant_dict_lookup (_tmp15_, (guint16) PROPERTY_QUERY_KEY_CONFLICT, "y", &_tmp16_, NULL);
	_key_conflict = _tmp16_;
	if (!_tmp17_) {
		g_assert_not_reached ();
	}
	key_conflict = (KeyConflict) _key_conflict;
	_tmp18_ = properties;
	registry_variant_dict_clear (_tmp18_);
	_tmp19_ = row;
	_tmp20_ = type_code;
	registry_list_update_gsettings_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), _tmp20_, key_value, is_key_default, key_conflict == KEY_CONFLICT_HARD);
	_tmp21_ = row;
	clickable_list_box_row_destroy_popover ((ClickableListBoxRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
	_g_free0 (type_code);
	_g_object_unref0 (properties);
	_g_object_unref0 (model);
	_g_object_unref0 (row);
}

void
registry_list_dkey_value_push (RegistryList* self,
                               const gchar* full_name,
                               GVariant* key_value_or_null)
{
	KeyListBoxRow* row = NULL;
	GtkListBox* _tmp0_;
	KeyListBoxRow* _tmp1_;
	KeyListBoxRow* _tmp2_;
	KeyListBoxRow* _tmp3_;
	KeyListBoxRow* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	KeyListBoxRow* _tmp7_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (full_name != NULL);
	_tmp0_ = self->key_list_box;
	_tmp1_ = registry_list_get_row_for_key (_tmp0_, full_name, MODEL_UTILS_dconf_context_id);
	row = _tmp1_;
	_tmp2_ = row;
	if (_tmp2_ == NULL) {
		_g_object_unref0 (row);
		return;
	}
	_tmp3_ = row;
	_tmp4_ = row;
	_tmp5_ = key_list_box_row_get_type_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
	_tmp6_ = _tmp5_;
	registry_list_update_dconf_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), _tmp6_, key_value_or_null);
	_tmp7_ = row;
	clickable_list_box_row_destroy_popover ((ClickableListBoxRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
	_g_object_unref0 (row);
}

static KeyListBoxRow*
registry_list_get_row_for_key (GtkListBox* key_list_box,
                               const gchar* full_name,
                               guint16 context_id)
{
	gint position = 0;
	GtkListBoxRow* row = NULL;
	GtkListBoxRow* _tmp0_;
	GtkListBoxRow* _tmp1_;
	KeyListBoxRow* result;
	g_return_val_if_fail (key_list_box != NULL, NULL);
	g_return_val_if_fail (full_name != NULL, NULL);
	position = 0;
	_tmp0_ = gtk_list_box_get_row_at_index (key_list_box, 0);
	_tmp1_ = _g_object_ref0 (_tmp0_);
	row = _tmp1_;
	while (TRUE) {
		GtkListBoxRow* _tmp2_;
		GtkWidget* row_child = NULL;
		GtkListBoxRow* _tmp3_;
		GtkWidget* _tmp4_;
		GtkWidget* _tmp5_;
		GtkWidget* _tmp6_;
		gboolean _tmp7_ = FALSE;
		gboolean _tmp8_ = FALSE;
		GtkWidget* _tmp9_;
		gint _tmp18_;
		GtkListBoxRow* _tmp19_;
		GtkListBoxRow* _tmp20_;
		_tmp2_ = row;
		if (!(_tmp2_ != NULL)) {
			break;
		}
		_tmp3_ = row;
		_tmp4_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_list_box_row_get_type (), GtkListBoxRow), gtk_list_box_row_get_type (), GtkListBoxRow));
		_tmp5_ = _g_object_ref0 (_tmp4_);
		row_child = _tmp5_;
		_tmp6_ = row_child;
		if (_tmp6_ == NULL) {
			g_assert_not_reached ();
		}
		_tmp9_ = row_child;
		if (IS_KEY_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget))) {
			GtkWidget* _tmp10_;
			const gchar* _tmp11_;
			const gchar* _tmp12_;
			_tmp10_ = row_child;
			_tmp11_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
			_tmp12_ = _tmp11_;
			_tmp8_ = g_strcmp0 (_tmp12_, full_name) == 0;
		} else {
			_tmp8_ = FALSE;
		}
		if (_tmp8_) {
			GtkWidget* _tmp13_;
			guint16 _tmp14_;
			guint16 _tmp15_;
			_tmp13_ = row_child;
			_tmp14_ = clickable_list_box_row_get_context_id ((ClickableListBoxRow*) G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
			_tmp15_ = _tmp14_;
			_tmp7_ = _tmp15_ == context_id;
		} else {
			_tmp7_ = FALSE;
		}
		if (_tmp7_) {
			GtkWidget* _tmp16_;
			KeyListBoxRow* _tmp17_;
			_tmp16_ = row_child;
			_tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
			result = _tmp17_;
			_g_object_unref0 (row_child);
			_g_object_unref0 (row);
			return result;
		}
		position = position + 1;
		_tmp18_ = position;
		_tmp19_ = gtk_list_box_get_row_at_index (key_list_box, _tmp18_);
		_tmp20_ = _g_object_ref0 (_tmp19_);
		_g_object_unref0 (row);
		row = _tmp20_;
		_g_object_unref0 (row_child);
	}
	result = NULL;
	_g_object_unref0 (row);
	return result;
}

static void
registry_list_show_right_click_popover (RegistryList* self,
                                        ClickableListBoxRow* row,
                                        gint* nullable_event_x)
{
	gint adjustment_value = 0;
	GtkAdjustment* _tmp0_;
	GtkAllocation list_allocation = {0};
	GtkAllocation row_allocation = {0};
	GtkScrolledWindow* _tmp1_;
	GtkAllocation _tmp2_ = {0};
	GtkAllocation _tmp3_ = {0};
	gboolean position_to_top = FALSE;
	gboolean _tmp4_ = FALSE;
	GtkAllocation _tmp5_;
	GtkAllocation _tmp6_;
	ModificationsHandler* _tmp25_;
	GListStore* _tmp26_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (row != NULL);
	_tmp0_ = self->priv->adjustment;
	adjustment_value = (gint) gtk_adjustment_get_value (_tmp0_);
	_tmp1_ = self->priv->scrolled;
	gtk_widget_get_allocation ((GtkWidget*) _tmp1_, &_tmp2_);
	list_allocation = _tmp2_;
	gtk_widget_get_allocation ((GtkWidget*) row, &_tmp3_);
	row_allocation = _tmp3_;
	_tmp5_ = row_allocation;
	_tmp6_ = list_allocation;
	if (_tmp5_.y > (adjustment_value + _tmp6_.height)) {
		_tmp4_ = TRUE;
	} else {
		GtkAllocation _tmp7_;
		GtkAllocation _tmp8_;
		_tmp7_ = row_allocation;
		_tmp8_ = row_allocation;
		_tmp4_ = (_tmp7_.y + _tmp8_.height) < adjustment_value;
	}
	if (_tmp4_) {
		GtkAdjustment* _tmp9_;
		GtkAllocation _tmp10_;
		GtkAllocation _tmp11_;
		GtkAllocation _tmp12_;
		if (nullable_event_x != NULL) {
			g_assert_not_reached ();
		}
		_tmp9_ = self->priv->adjustment;
		_tmp10_ = row_allocation;
		_tmp11_ = row_allocation;
		_tmp12_ = list_allocation;
		gtk_adjustment_set_value (_tmp9_, (gdouble) (_tmp10_.y + ((gint) ((_tmp11_.height - _tmp12_.height) / 2.0))));
		position_to_top = FALSE;
	} else {
		GtkAllocation _tmp13_;
		GtkAllocation _tmp14_;
		GtkAllocation _tmp15_;
		_tmp13_ = row_allocation;
		_tmp14_ = list_allocation;
		_tmp15_ = row_allocation;
		if (adjustment_value < ((_tmp13_.y - _tmp14_.height) + _tmp15_.height)) {
			GtkAdjustment* _tmp16_;
			GtkAllocation _tmp17_;
			GtkAllocation _tmp18_;
			GtkAllocation _tmp19_;
			_tmp16_ = self->priv->adjustment;
			_tmp17_ = row_allocation;
			_tmp18_ = list_allocation;
			_tmp19_ = row_allocation;
			gtk_adjustment_set_value (_tmp16_, (gdouble) ((_tmp17_.y - _tmp18_.height) + _tmp19_.height));
			position_to_top = TRUE;
		} else {
			GtkAllocation _tmp20_;
			_tmp20_ = row_allocation;
			if (adjustment_value > _tmp20_.y) {
				GtkAdjustment* _tmp21_;
				GtkAllocation _tmp22_;
				_tmp21_ = self->priv->adjustment;
				_tmp22_ = row_allocation;
				gtk_adjustment_set_value (_tmp21_, (gdouble) _tmp22_.y);
				position_to_top = FALSE;
			} else {
				GtkAllocation _tmp23_;
				GtkAllocation _tmp24_;
				_tmp23_ = row_allocation;
				_tmp24_ = list_allocation;
				position_to_top = _tmp23_.y > (adjustment_value + ((gint) (_tmp24_.height / 2.0)));
			}
		}
	}
	_tmp25_ = self->priv->_modifications_handler;
	registry_list_generate_popover_if_needed (row, _tmp25_);
	registry_list_place_popover (row, nullable_event_x, position_to_top);
	_tmp26_ = self->priv->rows_possibly_with_popover;
	g_list_store_append (_tmp26_, (GObject*) row);
}

static void
registry_list_place_popover (ClickableListBoxRow* row,
                             gint* nullable_event_x,
                             gboolean position_to_top)
{
	gint event_x = 0;
	gint _tmp0_ = 0;
	gint event_y = 0;
	GdkRectangle rect = {0};
	GdkRectangle _tmp1_ = {0};
	ContextPopover* _tmp2_;
	GdkRectangle _tmp3_;
	GtkPositionType _tmp4_ = 0;
	ContextPopover* _tmp5_;
	ContextPopover* _tmp6_;
	g_return_if_fail (row != NULL);
	if (nullable_event_x == NULL) {
		event_x = (gint) (((gint) gtk_widget_get_allocated_width ((GtkWidget*) row)) / 2.0);
	} else {
		event_x = (gint) (*nullable_event_x);
	}
	if (position_to_top) {
		_tmp0_ = 2;
	} else {
		_tmp0_ = gtk_widget_get_allocated_height ((GtkWidget*) row) - 2;
	}
	event_y = _tmp0_;
	_tmp1_.x = event_x;
	_tmp1_.y = event_y;
	_tmp1_.width = 0;
	_tmp1_.height = 0;
	rect = _tmp1_;
	_tmp2_ = row->nullable_popover;
	_tmp3_ = rect;
	gtk_popover_set_pointing_to ((GtkPopover*) G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONTEXT_POPOVER, ContextPopover), &_tmp3_);
	if (position_to_top) {
		_tmp4_ = GTK_POS_TOP;
	} else {
		_tmp4_ = GTK_POS_BOTTOM;
	}
	_tmp5_ = row->nullable_popover;
	gtk_popover_set_position ((GtkPopover*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONTEXT_POPOVER, ContextPopover), _tmp4_);
	_tmp6_ = row->nullable_popover;
	gtk_popover_popup ((GtkPopover*) G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONTEXT_POPOVER, ContextPopover));
}

static Block34Data*
block34_data_ref (Block34Data* _data34_)
{
	g_atomic_int_inc (&_data34_->_ref_count_);
	return _data34_;
}

static void
block34_data_unref (void * _userdata_)
{
	Block34Data* _data34_;
	_data34_ = (Block34Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data34_->_ref_count_)) {
		_g_object_unref0 (_data34_->row);
		g_slice_free (Block34Data, _data34_);
	}
}

static void
___lambda49_ (Block34Data* _data34_)
{
	_g_object_unref0 (_data34_->row->nullable_popover);
	_data34_->row->nullable_popover = NULL;
}

static void
____lambda49__gtk_widget_destroy (GtkWidget* _sender,
                                  gpointer self)
{
	___lambda49_ (self);
}

static void
registry_list_generate_popover_if_needed (ClickableListBoxRow* row,
                                          ModificationsHandler* modifications_handler)
{
	Block34Data* _data34_;
	ClickableListBoxRow* _tmp0_;
	ContextPopover* _tmp1_;
	g_return_if_fail (row != NULL);
	g_return_if_fail (modifications_handler != NULL);
	_data34_ = g_slice_new0 (Block34Data);
	_data34_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (row);
	_g_object_unref0 (_data34_->row);
	_data34_->row = _tmp0_;
	_tmp1_ = _data34_->row->nullable_popover;
	if (_tmp1_ == NULL) {
		ContextPopover* _tmp2_;
		ContextPopover* _tmp4_;
		ContextPopover* _tmp5_;
		ContextPopover* _tmp6_;
		_tmp2_ = context_popover_new ();
		g_object_ref_sink (_tmp2_);
		_g_object_unref0 (_data34_->row->nullable_popover);
		_data34_->row->nullable_popover = _tmp2_;
		if (!registry_list_generate_popover (_data34_->row, modifications_handler)) {
			ContextPopover* _tmp3_;
			_tmp3_ = _data34_->row->nullable_popover;
			gtk_widget_destroy ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONTEXT_POPOVER, ContextPopover));
			_g_object_unref0 (_data34_->row->nullable_popover);
			_data34_->row->nullable_popover = NULL;
			block34_data_unref (_data34_);
			_data34_ = NULL;
			return;
		}
		_tmp4_ = _data34_->row->nullable_popover;
		g_signal_connect_data ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONTEXT_POPOVER, ContextPopover), "destroy", (GCallback) ____lambda49__gtk_widget_destroy, block34_data_ref (_data34_), (GClosureNotify) block34_data_unref, G_CONNECT_AFTER);
		_tmp5_ = _data34_->row->nullable_popover;
		gtk_popover_set_relative_to ((GtkPopover*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONTEXT_POPOVER, ContextPopover), (GtkWidget*) _data34_->row);
		_tmp6_ = _data34_->row->nullable_popover;
		gtk_popover_set_position ((GtkPopover*) G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONTEXT_POPOVER, ContextPopover), GTK_POS_BOTTOM);
	} else {
		ContextPopover* _tmp7_;
		gboolean _tmp8_;
		gboolean _tmp9_;
		_tmp7_ = _data34_->row->nullable_popover;
		_tmp8_ = gtk_widget_get_visible ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONTEXT_POPOVER, ContextPopover));
		_tmp9_ = _tmp8_;
		if (_tmp9_) {
			g_warning ("registry-list.vala:844: generate_popover_if_needed() called but popove" \
"r is visible");
		}
	}
	block34_data_unref (_data34_);
	_data34_ = NULL;
}

static gboolean
registry_list_generate_popover (ClickableListBoxRow* row,
                                ModificationsHandler* modifications_handler)
{
	ContextPopover* _tmp0_;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	g_return_val_if_fail (modifications_handler != NULL, FALSE);
	_tmp0_ = row->nullable_popover;
	_vala_return_val_if_fail (_tmp0_ != NULL, "row.nullable_popover != null", FALSE);
	if (IS_FOLDER_LIST_BOX_ROW (row)) {
		result = registry_list_generate_folder_popover (row);
		return result;
	} else {
		if (IS_KEY_LIST_BOX_ROW (row)) {
			guint16 _tmp1_;
			guint16 _tmp2_;
			_tmp1_ = clickable_list_box_row_get_context_id (row);
			_tmp2_ = _tmp1_;
			if (_tmp2_ != MODEL_UTILS_dconf_context_id) {
				GVariant* _tmp3_;
				GVariant* _tmp4_;
				gboolean _tmp5_;
				_tmp3_ = _registry_list_get_key_copy_text_variant (row, modifications_handler);
				_tmp4_ = _tmp3_;
				_tmp5_ = registry_list_generate_gsettings_popover (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), modifications_handler, _tmp4_);
				_g_variant_unref0 (_tmp4_);
				result = _tmp5_;
				return result;
			} else {
				SettingsModel* _tmp6_;
				SettingsModel* _tmp7_;
				const gchar* _tmp8_;
				const gchar* _tmp9_;
				_tmp6_ = modifications_handler_get_model (modifications_handler);
				_tmp7_ = _tmp6_;
				_tmp8_ = clickable_list_box_row_get_full_name (row);
				_tmp9_ = _tmp8_;
				if (settings_model_is_key_ghost (_tmp7_, _tmp9_)) {
					GVariant* _tmp10_;
					GVariant* _tmp11_;
					gboolean _tmp12_;
					_tmp10_ = _registry_list_get_key_copy_text_variant (row, modifications_handler);
					_tmp11_ = _tmp10_;
					_tmp12_ = registry_list_generate_ghost_popover (row, _tmp11_);
					_g_variant_unref0 (_tmp11_);
					result = _tmp12_;
					return result;
				} else {
					GVariant* _tmp13_;
					GVariant* _tmp14_;
					gboolean _tmp15_;
					_tmp13_ = _registry_list_get_key_copy_text_variant (row, modifications_handler);
					_tmp14_ = _tmp13_;
					_tmp15_ = registry_list_generate_dconf_popover (G_TYPE_CHECK_INSTANCE_CAST (row, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), modifications_handler, _tmp14_);
					_g_variant_unref0 (_tmp14_);
					result = _tmp15_;
					return result;
				}
			}
		} else {
			if (IS_RETURN_LIST_BOX_ROW (row)) {
				result = registry_list_generate_return_popover (row);
				return result;
			} else {
				gboolean _tmp16_ = FALSE;
				if (IS_SEARCH_LIST_BOX_ROW (row)) {
					_tmp16_ = TRUE;
				} else {
					_tmp16_ = IS_FILTER_LIST_BOX_ROW (row);
				}
				if (_tmp16_) {
					result = registry_list_generate_search_popover (row);
					return result;
				} else {
					g_assert_not_reached ();
				}
			}
		}
	}
}

static gboolean
registry_list_generate_search_popover (ClickableListBoxRow* row)
{
	ContextPopover* _tmp0_;
	ContextPopover* popover = NULL;
	ContextPopover* _tmp1_;
	ContextPopover* _tmp2_;
	GVariant* variant = NULL;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	GVariant* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	GVariant* _tmp12_;
	GVariant* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	_tmp0_ = row->nullable_popover;
	if (_tmp0_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp1_ = row->nullable_popover;
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONTEXT_POPOVER, ContextPopover));
	popover = _tmp2_;
	_tmp3_ = clickable_list_box_row_get_full_name (row);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_variant_new_string (_tmp4_);
	g_variant_ref_sink (_tmp5_);
	variant = _tmp5_;
	_tmp6_ = g_variant_print (variant, FALSE);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat ("browser.open-search(", _tmp7_, NULL);
	_tmp9_ = _tmp8_;
	_tmp10_ = g_strconcat (_tmp9_, ")", NULL);
	_tmp11_ = _tmp10_;
	context_popover_new_gaction (popover, "open-search", _tmp11_);
	_g_free0 (_tmp11_);
	_g_free0 (_tmp9_);
	_g_free0 (_tmp7_);
	_tmp12_ = _registry_list_get_folder_or_search_copy_text_variant (row);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_variant_print (_tmp13_, FALSE);
	_tmp15_ = _tmp14_;
	_tmp16_ = g_strconcat ("app.copy(", _tmp15_, NULL);
	_tmp17_ = _tmp16_;
	_tmp18_ = g_strconcat (_tmp17_, ")", NULL);
	_tmp19_ = _tmp18_;
	context_popover_new_gaction (popover, "copy", _tmp19_);
	_g_free0 (_tmp19_);
	_g_free0 (_tmp17_);
	_g_free0 (_tmp15_);
	_g_variant_unref0 (_tmp13_);
	result = TRUE;
	_g_variant_unref0 (variant);
	_g_object_unref0 (popover);
	return result;
}

static gboolean
registry_list_generate_return_popover (ClickableListBoxRow* row)
{
	ContextPopover* _tmp0_;
	ContextPopover* popover = NULL;
	ContextPopover* _tmp1_;
	ContextPopover* _tmp2_;
	guint16 _tmp3_;
	guint16 _tmp4_;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	_tmp0_ = row->nullable_popover;
	if (_tmp0_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp1_ = row->nullable_popover;
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONTEXT_POPOVER, ContextPopover));
	popover = _tmp2_;
	_tmp3_ = clickable_list_box_row_get_context_id (row);
	_tmp4_ = _tmp3_;
	if (_tmp4_ == MODEL_UTILS_folder_context_id) {
		GVariant* variant = NULL;
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		GVariant* _tmp7_;
		ContextPopover* _tmp8_;
		GVariant* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		_tmp5_ = clickable_list_box_row_get_full_name (row);
		_tmp6_ = _tmp5_;
		_tmp7_ = g_variant_new_string (_tmp6_);
		g_variant_ref_sink (_tmp7_);
		variant = _tmp7_;
		_tmp8_ = popover;
		_tmp9_ = variant;
		_tmp10_ = g_variant_print (_tmp9_, FALSE);
		_tmp11_ = _tmp10_;
		_tmp12_ = g_strconcat ("browser.open-folder(", _tmp11_, NULL);
		_tmp13_ = _tmp12_;
		_tmp14_ = g_strconcat (_tmp13_, ")", NULL);
		_tmp15_ = _tmp14_;
		context_popover_new_gaction (_tmp8_, "go-back", _tmp15_);
		_g_free0 (_tmp15_);
		_g_free0 (_tmp13_);
		_g_free0 (_tmp11_);
		_g_variant_unref0 (variant);
	} else {
		GVariant* variant_sq = NULL;
		const gchar* _tmp16_;
		const gchar* _tmp17_;
		guint16 _tmp18_;
		guint16 _tmp19_;
		GVariant* _tmp20_;
		ContextPopover* _tmp21_;
		GVariant* _tmp22_;
		gchar* _tmp23_;
		gchar* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		gchar* _tmp27_;
		gchar* _tmp28_;
		_tmp16_ = clickable_list_box_row_get_full_name (row);
		_tmp17_ = _tmp16_;
		_tmp18_ = clickable_list_box_row_get_context_id (row);
		_tmp19_ = _tmp18_;
		_tmp20_ = g_variant_new ("(sq)", _tmp17_, _tmp19_, NULL);
		g_variant_ref_sink (_tmp20_);
		variant_sq = _tmp20_;
		_tmp21_ = popover;
		_tmp22_ = variant_sq;
		_tmp23_ = g_variant_print (_tmp22_, TRUE);
		_tmp24_ = _tmp23_;
		_tmp25_ = g_strconcat ("browser.open-object(", _tmp24_, NULL);
		_tmp26_ = _tmp25_;
		_tmp27_ = g_strconcat (_tmp26_, ")", NULL);
		_tmp28_ = _tmp27_;
		context_popover_new_gaction (_tmp21_, "go-back", _tmp28_);
		_g_free0 (_tmp28_);
		_g_free0 (_tmp26_);
		_g_free0 (_tmp24_);
		_g_variant_unref0 (variant_sq);
	}
	result = TRUE;
	_g_object_unref0 (popover);
	return result;
}

static gboolean
registry_list_generate_folder_popover (ClickableListBoxRow* row)
{
	ContextPopover* _tmp0_;
	ContextPopover* popover = NULL;
	ContextPopover* _tmp1_;
	ContextPopover* _tmp2_;
	GVariant* variant = NULL;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	GVariant* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	ContextPopover* _tmp17_;
	GVariant* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	ContextPopover* _tmp25_;
	GVariant* _tmp26_;
	GVariant* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	ContextPopover* _tmp34_;
	ContextPopover* _tmp35_;
	GVariant* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	_tmp0_ = row->nullable_popover;
	if (_tmp0_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp1_ = row->nullable_popover;
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONTEXT_POPOVER, ContextPopover));
	popover = _tmp2_;
	_tmp3_ = clickable_list_box_row_get_full_name (row);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_variant_new_string (_tmp4_);
	g_variant_ref_sink (_tmp5_);
	variant = _tmp5_;
	_tmp6_ = clickable_list_box_row_get_search_result_mode (row);
	_tmp7_ = _tmp6_;
	if (_tmp7_) {
		ContextPopover* _tmp8_;
		GVariant* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		ContextPopover* _tmp16_;
		_tmp8_ = popover;
		_tmp9_ = variant;
		_tmp10_ = g_variant_print (_tmp9_, FALSE);
		_tmp11_ = _tmp10_;
		_tmp12_ = g_strconcat ("browser.open-parent(", _tmp11_, NULL);
		_tmp13_ = _tmp12_;
		_tmp14_ = g_strconcat (_tmp13_, ")", NULL);
		_tmp15_ = _tmp14_;
		context_popover_new_gaction (_tmp8_, "open-parent", _tmp15_);
		_g_free0 (_tmp15_);
		_g_free0 (_tmp13_);
		_g_free0 (_tmp11_);
		_tmp16_ = popover;
		context_popover_new_section (_tmp16_);
	}
	_tmp17_ = popover;
	_tmp18_ = variant;
	_tmp19_ = g_variant_print (_tmp18_, FALSE);
	_tmp20_ = _tmp19_;
	_tmp21_ = g_strconcat ("browser.open-folder(", _tmp20_, NULL);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strconcat (_tmp22_, ")", NULL);
	_tmp24_ = _tmp23_;
	context_popover_new_gaction (_tmp17_, "open-folder", _tmp24_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_g_free0 (_tmp20_);
	_tmp25_ = popover;
	_tmp26_ = _registry_list_get_folder_or_search_copy_text_variant (row);
	_tmp27_ = _tmp26_;
	_tmp28_ = g_variant_print (_tmp27_, FALSE);
	_tmp29_ = _tmp28_;
	_tmp30_ = g_strconcat ("app.copy(", _tmp29_, NULL);
	_tmp31_ = _tmp30_;
	_tmp32_ = g_strconcat (_tmp31_, ")", NULL);
	_tmp33_ = _tmp32_;
	context_popover_new_gaction (_tmp25_, "copy", _tmp33_);
	_g_free0 (_tmp33_);
	_g_free0 (_tmp31_);
	_g_free0 (_tmp29_);
	_g_variant_unref0 (_tmp27_);
	_tmp34_ = popover;
	context_popover_new_section (_tmp34_);
	_tmp35_ = popover;
	_tmp36_ = variant;
	_tmp37_ = g_variant_print (_tmp36_, FALSE);
	_tmp38_ = _tmp37_;
	_tmp39_ = g_strconcat ("ui.reset-recursive(", _tmp38_, NULL);
	_tmp40_ = _tmp39_;
	_tmp41_ = g_strconcat (_tmp40_, ")", NULL);
	_tmp42_ = _tmp41_;
	context_popover_new_gaction (_tmp35_, "recursivereset", _tmp42_);
	_g_free0 (_tmp42_);
	_g_free0 (_tmp40_);
	_g_free0 (_tmp38_);
	result = TRUE;
	_g_variant_unref0 (variant);
	_g_object_unref0 (popover);
	return result;
}

static Block35Data*
block35_data_ref (Block35Data* _data35_)
{
	g_atomic_int_inc (&_data35_->_ref_count_);
	return _data35_;
}

static void
block35_data_unref (void * _userdata_)
{
	Block35Data* _data35_;
	_data35_ = (Block35Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data35_->_ref_count_)) {
		_g_free0 (_data35_->full_name);
		_g_object_unref0 (_data35_->popover);
		_g_object_unref0 (_data35_->row);
		_g_object_unref0 (_data35_->modifications_handler);
		g_slice_free (Block35Data, _data35_);
	}
}

static Block36Data*
block36_data_ref (Block36Data* _data36_)
{
	g_atomic_int_inc (&_data36_->_ref_count_);
	return _data36_;
}

static void
block36_data_unref (void * _userdata_)
{
	Block36Data* _data36_;
	_data36_ = (Block36Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data36_->_ref_count_)) {
		_g_object_unref0 (_data36_->action);
		block35_data_unref (_data36_->_data35_);
		_data36_->_data35_ = NULL;
		g_slice_free (Block36Data, _data36_);
	}
}

static void
___lambda42_ (Block36Data* _data36_)
{
	Block35Data* _data35_;
	_data35_ = _data36_->_data35_;
	registry_list_on_popover_change_dismissed (_data35_->row);
}

static void
____lambda42__context_popover_change_dismissed (ContextPopover* _sender,
                                                gpointer self)
{
	___lambda42_ (self);
}

static void
___lambda43_ (Block36Data* _data36_,
              GVariant* gvariant)
{
	Block35Data* _data35_;
	GAction* _tmp0_;
	_data35_ = _data36_->_data35_;
	_tmp0_ = _data36_->action;
	registry_list_on_popover_value_change (_data35_->row, gvariant, _tmp0_);
}

static void
____lambda43__context_popover_value_changed (ContextPopover* _sender,
                                             GVariant* gvariant,
                                             gpointer self)
{
	___lambda43_ (self, gvariant);
}

static Block37Data*
block37_data_ref (Block37Data* _data37_)
{
	g_atomic_int_inc (&_data37_->_ref_count_);
	return _data37_;
}

static void
block37_data_unref (void * _userdata_)
{
	Block37Data* _data37_;
	_data37_ = (Block37Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data37_->_ref_count_)) {
		_data37_->all_flags = (_vala_array_free (_data37_->all_flags, _data37_->all_flags_length1, (GDestroyNotify) g_free), NULL);
		block35_data_unref (_data37_->_data35_);
		_data37_->_data35_ = NULL;
		g_slice_free (Block37Data, _data37_);
	}
}

static gchar**
_vala_array_dup11 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup12 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gboolean
_vala_string_array_contains (gchar* * stack,
                             gssize stack_length,
                             const gchar* needle)
{
	gssize i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}

static void
____lambda44_ (Block37Data* _data37_)
{
	Block35Data* _data35_;
	gchar** active_flags = NULL;
	GVariant* _tmp0_;
	GVariant* _tmp1_;
	gsize _tmp2_ = 0;
	const gchar** _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	gchar** _tmp5_;
	gint _tmp5__length1;
	gint active_flags_length1;
	gint _active_flags_size_;
	gchar** _tmp6_;
	gint _tmp6__length1;
	_data35_ = _data37_->_data35_;
	_tmp0_ = modifications_handler_get_key_custom_value (_data35_->modifications_handler, _data35_->full_name, _data35_->context_id);
	_tmp1_ = _tmp0_;
	_tmp3_ = g_variant_get_strv (_tmp1_, &_tmp2_);
	_tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup12 (_tmp3_, _tmp2_) : _tmp3_;
	_tmp4__length1 = _tmp2_;
	_tmp3_ = (g_free (_tmp3_), NULL);
	_tmp5_ = _tmp4_;
	_tmp5__length1 = _tmp4__length1;
	_g_variant_unref0 (_tmp1_);
	active_flags = _tmp5_;
	active_flags_length1 = _tmp5__length1;
	_active_flags_size_ = active_flags_length1;
	_tmp6_ = _data37_->all_flags;
	_tmp6__length1 = _data37_->all_flags_length1;
	{
		gchar** flag_collection = NULL;
		gint flag_collection_length1 = 0;
		gint _flag_collection_size_ = 0;
		gint flag_it = 0;
		flag_collection = _tmp6_;
		flag_collection_length1 = _tmp6__length1;
		for (flag_it = 0; flag_it < flag_collection_length1; flag_it = flag_it + 1) {
			gchar* _tmp7_;
			gchar* flag = NULL;
			_tmp7_ = g_strdup (flag_collection[flag_it]);
			flag = _tmp7_;
			{
				const gchar* _tmp8_;
				const gchar* _tmp9_;
				gchar** _tmp10_;
				gint _tmp10__length1;
				_tmp8_ = flag;
				_tmp9_ = flag;
				_tmp10_ = active_flags;
				_tmp10__length1 = active_flags_length1;
				context_popover_update_flag_status (_data35_->popover, _tmp8_, _vala_string_array_contains (_tmp10_, _tmp10__length1, _tmp9_));
				_g_free0 (flag);
			}
		}
	}
	active_flags = (_vala_array_free (active_flags, active_flags_length1, (GDestroyNotify) g_free), NULL);
}

static void
_____lambda44__modifications_handler_delayed_changes_changed (ModificationsHandler* _sender,
                                                              gpointer self)
{
	____lambda44_ (self);
}

static void
____lambda45_ (Block37Data* _data37_)
{
	Block35Data* _data35_;
	_data35_ = _data37_->_data35_;
	g_signal_handler_disconnect ((GObject*) _data35_->modifications_handler, _data37_->delayed_modifications_changed_handler);
}

static void
_____lambda45__gtk_widget_destroy (GtkWidget* _sender,
                                   gpointer self)
{
	____lambda45_ (self);
}

static void
____lambda46_ (Block37Data* _data37_,
               GVariant* gvariant)
{
	Block35Data* _data35_;
	_data35_ = _data37_->_data35_;
	key_list_box_row_set_key_value (_data35_->row, gvariant);
}

static void
_____lambda46__context_popover_value_changed (ContextPopover* _sender,
                                              GVariant* gvariant,
                                              gpointer self)
{
	____lambda46_ (self, gvariant);
}

static gboolean
registry_list_generate_gsettings_popover (KeyListBoxRow* row,
                                          ModificationsHandler* modifications_handler,
                                          GVariant* copy_text_variant)
{
	Block35Data* _data35_;
	KeyListBoxRow* _tmp0_;
	ModificationsHandler* _tmp1_;
	ContextPopover* _tmp2_;
	SettingsModel* model = NULL;
	SettingsModel* _tmp3_;
	SettingsModel* _tmp4_;
	SettingsModel* _tmp5_;
	ContextPopover* _tmp6_;
	ContextPopover* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	guint16 _tmp11_;
	guint16 _tmp12_;
	RegistryVariantDict* properties = NULL;
	GVariant* _tmp13_;
	GVariant* _tmp14_;
	RegistryVariantDict* _tmp15_;
	RegistryVariantDict* _tmp16_;
	gchar* type_string = NULL;
	guint8 _range_type = 0U;
	guint8 _key_conflict = 0U;
	GVariant* range_content = NULL;
	gboolean is_key_default = FALSE;
	gchar* _tmp17_ = NULL;
	gboolean _tmp18_;
	guint8 _tmp19_ = 0U;
	gboolean _tmp20_;
	GVariant* _tmp21_ = NULL;
	gboolean _tmp22_;
	gboolean _tmp23_ = FALSE;
	gboolean _tmp24_;
	guint8 _tmp25_ = 0U;
	gboolean _tmp26_;
	RangeType range_type = 0;
	KeyConflict key_conflict = 0;
	GVariant* variant_s = NULL;
	GVariant* _tmp27_;
	GVariant* variant_sq = NULL;
	GVariant* _tmp28_;
	gboolean _tmp29_;
	gboolean _tmp30_;
	gboolean delayed_apply_menu = FALSE;
	gboolean planned_change = FALSE;
	GVariant* planned_value = NULL;
	GVariant* _tmp51_;
	GVariant* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	gchar* _tmp55_;
	gchar* _tmp56_;
	gchar* _tmp57_;
	gchar* _tmp58_;
	gchar* _tmp59_;
	gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	gchar* _tmp63_;
	gchar* _tmp64_;
	gboolean _tmp65_ = FALSE;
	gboolean _tmp66_ = FALSE;
	gboolean _tmp67_ = FALSE;
	gboolean _tmp68_ = FALSE;
	gboolean _tmp69_ = FALSE;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	g_return_val_if_fail (modifications_handler != NULL, FALSE);
	g_return_val_if_fail (copy_text_variant != NULL, FALSE);
	_data35_ = g_slice_new0 (Block35Data);
	_data35_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (row);
	_g_object_unref0 (_data35_->row);
	_data35_->row = _tmp0_;
	_tmp1_ = _g_object_ref0 (modifications_handler);
	_g_object_unref0 (_data35_->modifications_handler);
	_data35_->modifications_handler = _tmp1_;
	_tmp2_ = ((ClickableListBoxRow*) _data35_->row)->nullable_popover;
	if (_tmp2_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp3_ = modifications_handler_get_model (_data35_->modifications_handler);
	_tmp4_ = _tmp3_;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	model = _tmp5_;
	_tmp6_ = ((ClickableListBoxRow*) _data35_->row)->nullable_popover;
	_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONTEXT_POPOVER, ContextPopover));
	_data35_->popover = _tmp7_;
	_tmp8_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _data35_->row);
	_tmp9_ = _tmp8_;
	_tmp10_ = g_strdup (_tmp9_);
	_data35_->full_name = _tmp10_;
	_tmp11_ = clickable_list_box_row_get_context_id ((ClickableListBoxRow*) _data35_->row);
	_tmp12_ = _tmp11_;
	_data35_->context_id = _tmp12_;
	_tmp13_ = settings_model_get_key_properties (model, _data35_->full_name, _data35_->context_id, (guint16) (((((PROPERTY_QUERY_TYPE_CODE & PROPERTY_QUERY_RANGE_TYPE) & PROPERTY_QUERY_RANGE_CONTENT) & PROPERTY_QUERY_IS_DEFAULT) & PROPERTY_QUERY_KEY_CONFLICT) & PROPERTY_QUERY_KEY_VALUE));
	_tmp14_ = _tmp13_;
	_tmp15_ = registry_variant_dict_new_from_aqv (_tmp14_);
	_tmp16_ = _tmp15_;
	_g_variant_unref0 (_tmp14_);
	properties = _tmp16_;
	_tmp18_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_TYPE_CODE, "s", &_tmp17_, NULL);
	_g_free0 (type_string);
	type_string = _tmp17_;
	if (!_tmp18_) {
		g_assert_not_reached ();
	}
	_tmp20_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_RANGE_TYPE, "y", &_tmp19_, NULL);
	_range_type = _tmp19_;
	if (!_tmp20_) {
		g_assert_not_reached ();
	}
	_tmp22_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_RANGE_CONTENT, "v", &_tmp21_, NULL);
	_g_variant_unref0 (range_content);
	range_content = _tmp21_;
	if (!_tmp22_) {
		g_assert_not_reached ();
	}
	_tmp24_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_IS_DEFAULT, "b", &_tmp23_, NULL);
	is_key_default = _tmp23_;
	if (!_tmp24_) {
		g_assert_not_reached ();
	}
	_tmp26_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_KEY_CONFLICT, "y", &_tmp25_, NULL);
	_key_conflict = _tmp25_;
	if (!_tmp26_) {
		g_assert_not_reached ();
	}
	range_type = (RangeType) _range_type;
	key_conflict = (KeyConflict) _key_conflict;
	_tmp27_ = g_variant_new_string (_data35_->full_name);
	g_variant_ref_sink (_tmp27_);
	variant_s = _tmp27_;
	_tmp28_ = g_variant_new ("(sq)", _data35_->full_name, _data35_->context_id, NULL);
	g_variant_ref_sink (_tmp28_);
	variant_sq = _tmp28_;
	_tmp29_ = clickable_list_box_row_get_search_result_mode ((ClickableListBoxRow*) _data35_->row);
	_tmp30_ = _tmp29_;
	if (_tmp30_) {
		GVariant* _tmp31_;
		gchar* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		_tmp31_ = variant_s;
		_tmp32_ = g_variant_print (_tmp31_, FALSE);
		_tmp33_ = _tmp32_;
		_tmp34_ = g_strconcat ("browser.open-parent(", _tmp33_, NULL);
		_tmp35_ = _tmp34_;
		_tmp36_ = g_strconcat (_tmp35_, ")", NULL);
		_tmp37_ = _tmp36_;
		context_popover_new_gaction (_data35_->popover, "open-parent", _tmp37_);
		_g_free0 (_tmp37_);
		_g_free0 (_tmp35_);
		_g_free0 (_tmp33_);
		context_popover_new_section (_data35_->popover);
	}
	if (key_conflict == KEY_CONFLICT_HARD) {
		GVariant* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
		gchar* _tmp41_;
		gchar* _tmp42_;
		gchar* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		gchar* _tmp46_;
		gchar* _tmp47_;
		gchar* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		_tmp38_ = variant_sq;
		_tmp39_ = g_variant_print (_tmp38_, TRUE);
		_tmp40_ = _tmp39_;
		_tmp41_ = g_strconcat ("browser.open-object(", _tmp40_, NULL);
		_tmp42_ = _tmp41_;
		_tmp43_ = g_strconcat (_tmp42_, ")", NULL);
		_tmp44_ = _tmp43_;
		context_popover_new_gaction (_data35_->popover, "detail", _tmp44_);
		_g_free0 (_tmp44_);
		_g_free0 (_tmp42_);
		_g_free0 (_tmp40_);
		_tmp45_ = g_variant_print (copy_text_variant, FALSE);
		_tmp46_ = _tmp45_;
		_tmp47_ = g_strconcat ("app.copy(", _tmp46_, NULL);
		_tmp48_ = _tmp47_;
		_tmp49_ = g_strconcat (_tmp48_, ")", NULL);
		_tmp50_ = _tmp49_;
		context_popover_new_gaction (_data35_->popover, "copy", _tmp50_);
		_g_free0 (_tmp50_);
		_g_free0 (_tmp48_);
		_g_free0 (_tmp46_);
		registry_variant_dict_clear (properties);
		result = TRUE;
		_g_variant_unref0 (variant_sq);
		_g_variant_unref0 (variant_s);
		_g_variant_unref0 (range_content);
		_g_free0 (type_string);
		_g_object_unref0 (properties);
		_g_object_unref0 (model);
		block35_data_unref (_data35_);
		_data35_ = NULL;
		return result;
	}
	delayed_apply_menu = modifications_handler_get_current_delay_mode (_data35_->modifications_handler);
	planned_change = modifications_handler_key_has_planned_change (_data35_->modifications_handler, _data35_->full_name);
	_tmp51_ = modifications_handler_get_key_planned_value (_data35_->modifications_handler, _data35_->full_name);
	planned_value = _tmp51_;
	_tmp52_ = variant_sq;
	_tmp53_ = g_variant_print (_tmp52_, TRUE);
	_tmp54_ = _tmp53_;
	_tmp55_ = g_strconcat ("browser.open-object(", _tmp54_, NULL);
	_tmp56_ = _tmp55_;
	_tmp57_ = g_strconcat (_tmp56_, ")", NULL);
	_tmp58_ = _tmp57_;
	context_popover_new_gaction (_data35_->popover, "customize", _tmp58_);
	_g_free0 (_tmp58_);
	_g_free0 (_tmp56_);
	_g_free0 (_tmp54_);
	_tmp59_ = g_variant_print (copy_text_variant, FALSE);
	_tmp60_ = _tmp59_;
	_tmp61_ = g_strconcat ("app.copy(", _tmp60_, NULL);
	_tmp62_ = _tmp61_;
	_tmp63_ = g_strconcat (_tmp62_, ")", NULL);
	_tmp64_ = _tmp63_;
	context_popover_new_gaction (_data35_->popover, "copy", _tmp64_);
	_g_free0 (_tmp64_);
	_g_free0 (_tmp62_);
	_g_free0 (_tmp60_);
	if (g_strcmp0 (type_string, "b") == 0) {
		_tmp69_ = TRUE;
	} else {
		_tmp69_ = g_strcmp0 (type_string, "<enum>") == 0;
	}
	if (_tmp69_) {
		_tmp68_ = TRUE;
	} else {
		_tmp68_ = g_strcmp0 (type_string, "mb") == 0;
	}
	if (_tmp68_) {
		_tmp67_ = TRUE;
	} else {
		gboolean _tmp70_ = FALSE;
		gboolean _tmp71_ = FALSE;
		gboolean _tmp72_ = FALSE;
		gboolean _tmp73_ = FALSE;
		gboolean _tmp74_ = FALSE;
		if (g_strcmp0 (type_string, "y") == 0) {
			_tmp74_ = TRUE;
		} else {
			_tmp74_ = g_strcmp0 (type_string, "q") == 0;
		}
		if (_tmp74_) {
			_tmp73_ = TRUE;
		} else {
			_tmp73_ = g_strcmp0 (type_string, "u") == 0;
		}
		if (_tmp73_) {
			_tmp72_ = TRUE;
		} else {
			_tmp72_ = g_strcmp0 (type_string, "t") == 0;
		}
		if (_tmp72_) {
			_tmp71_ = range_type == RANGE_TYPE_RANGE;
		} else {
			_tmp71_ = FALSE;
		}
		if (_tmp71_) {
			GVariant* _tmp75_;
			GVariant* _tmp76_;
			GVariant* _tmp77_;
			GVariant* _tmp78_;
			_tmp75_ = g_variant_get_child_value (range_content, (gsize) 1);
			_tmp76_ = _tmp75_;
			_tmp77_ = g_variant_get_child_value (range_content, (gsize) 0);
			_tmp78_ = _tmp77_;
			_tmp70_ = (key_get_variant_as_uint64 (_tmp76_) - key_get_variant_as_uint64 (_tmp78_)) < ((guint64) 13);
			_g_variant_unref0 (_tmp78_);
			_g_variant_unref0 (_tmp76_);
		} else {
			_tmp70_ = FALSE;
		}
		_tmp67_ = _tmp70_;
	}
	if (_tmp67_) {
		_tmp66_ = TRUE;
	} else {
		gboolean _tmp79_ = FALSE;
		gboolean _tmp80_ = FALSE;
		gboolean _tmp81_ = FALSE;
		gboolean _tmp82_ = FALSE;
		if (g_strcmp0 (type_string, "n") == 0) {
			_tmp82_ = TRUE;
		} else {
			_tmp82_ = g_strcmp0 (type_string, "i") == 0;
		}
		if (_tmp82_) {
			_tmp81_ = TRUE;
		} else {
			_tmp81_ = g_strcmp0 (type_string, "x") == 0;
		}
		if (_tmp81_) {
			_tmp80_ = range_type == RANGE_TYPE_RANGE;
		} else {
			_tmp80_ = FALSE;
		}
		if (_tmp80_) {
			GVariant* _tmp83_;
			GVariant* _tmp84_;
			GVariant* _tmp85_;
			GVariant* _tmp86_;
			_tmp83_ = g_variant_get_child_value (range_content, (gsize) 1);
			_tmp84_ = _tmp83_;
			_tmp85_ = g_variant_get_child_value (range_content, (gsize) 0);
			_tmp86_ = _tmp85_;
			_tmp79_ = (key_get_variant_as_int64 (_tmp84_) - key_get_variant_as_int64 (_tmp86_)) < ((gint64) 13);
			_g_variant_unref0 (_tmp86_);
			_g_variant_unref0 (_tmp84_);
		} else {
			_tmp79_ = FALSE;
		}
		_tmp66_ = _tmp79_;
	}
	if (_tmp66_) {
		_tmp65_ = TRUE;
	} else {
		_tmp65_ = g_strcmp0 (type_string, "()") == 0;
	}
	if (_tmp65_) {
		Block36Data* _data36_;
		_data36_ = g_slice_new0 (Block36Data);
		_data36_->_ref_count_ = 1;
		_data36_->_data35_ = block35_data_ref (_data35_);
		context_popover_new_section (_data35_->popover);
		if (planned_change) {
			GVariant* _tmp87_;
			GVariant* _tmp88_;
			GAction* _tmp89_;
			_tmp87_ = modifications_handler_get_key_planned_value (_data35_->modifications_handler, _data35_->full_name);
			_tmp88_ = _tmp87_;
			_tmp89_ = context_popover_create_buttons_list (_data35_->popover, TRUE, delayed_apply_menu, planned_change, type_string, range_content, _tmp88_);
			_g_object_unref0 (_data36_->action);
			_data36_->action = _tmp89_;
			_g_variant_unref0 (_tmp88_);
		} else {
			if (is_key_default) {
				GAction* _tmp90_;
				_tmp90_ = context_popover_create_buttons_list (_data35_->popover, TRUE, delayed_apply_menu, planned_change, type_string, range_content, NULL);
				_g_object_unref0 (_data36_->action);
				_data36_->action = _tmp90_;
			} else {
				GVariant* key_value = NULL;
				GVariant* _tmp91_ = NULL;
				gboolean _tmp92_;
				GVariant* _tmp93_;
				GAction* _tmp94_;
				_tmp92_ = registry_variant_dict_lookup (properties, (guint16) PROPERTY_QUERY_KEY_VALUE, "v", &_tmp91_, NULL);
				_g_variant_unref0 (key_value);
				key_value = _tmp91_;
				if (!_tmp92_) {
					g_assert_not_reached ();
				}
				_tmp93_ = key_value;
				_tmp94_ = context_popover_create_buttons_list (_data35_->popover, TRUE, delayed_apply_menu, planned_change, type_string, range_content, _tmp93_);
				_g_object_unref0 (_data36_->action);
				_data36_->action = _tmp94_;
				_g_variant_unref0 (key_value);
			}
		}
		g_signal_connect_data (_data35_->popover, "change-dismissed", (GCallback) ____lambda42__context_popover_change_dismissed, block36_data_ref (_data36_), (GClosureNotify) block36_data_unref, 0);
		g_signal_connect_data (_data35_->popover, "value-changed", (GCallback) ____lambda43__context_popover_value_changed, block36_data_ref (_data36_), (GClosureNotify) block36_data_unref, 0);
		block36_data_unref (_data36_);
		_data36_ = NULL;
	} else {
		gboolean _tmp95_ = FALSE;
		gboolean _tmp96_ = FALSE;
		if (!delayed_apply_menu) {
			_tmp96_ = !planned_change;
		} else {
			_tmp96_ = FALSE;
		}
		if (_tmp96_) {
			_tmp95_ = g_strcmp0 (type_string, "<flags>") == 0;
		} else {
			_tmp95_ = FALSE;
		}
		if (_tmp95_) {
			Block37Data* _data37_;
			gsize _tmp104_ = 0;
			const gchar** _tmp105_;
			gchar** _tmp106_;
			gint _tmp106__length1;
			GVariant* _tmp107_;
			GVariant* _tmp108_;
			gsize _tmp109_ = 0;
			const gchar** _tmp110_;
			const gchar** _tmp111_;
			gint _tmp111__length1;
			gchar** _tmp112_;
			gint _tmp112__length1;
			gulong _tmp113_;
			_data37_ = g_slice_new0 (Block37Data);
			_data37_->_ref_count_ = 1;
			_data37_->_data35_ = block35_data_ref (_data35_);
			context_popover_new_section (_data35_->popover);
			if (!is_key_default) {
				GVariant* _tmp97_;
				gchar* _tmp98_;
				gchar* _tmp99_;
				gchar* _tmp100_;
				gchar* _tmp101_;
				gchar* _tmp102_;
				gchar* _tmp103_;
				_tmp97_ = variant_sq;
				_tmp98_ = g_variant_print (_tmp97_, TRUE);
				_tmp99_ = _tmp98_;
				_tmp100_ = g_strconcat ("view.set-to-default(", _tmp99_, NULL);
				_tmp101_ = _tmp100_;
				_tmp102_ = g_strconcat (_tmp101_, ")", NULL);
				_tmp103_ = _tmp102_;
				context_popover_new_gaction (_data35_->popover, "default2", _tmp103_);
				_g_free0 (_tmp103_);
				_g_free0 (_tmp101_);
				_g_free0 (_tmp99_);
			}
			_tmp105_ = g_variant_get_strv (range_content, &_tmp104_);
			_tmp106_ = (_tmp105_ != NULL) ? _vala_array_dup11 (_tmp105_, _tmp104_) : _tmp105_;
			_tmp106__length1 = _tmp104_;
			_tmp105_ = (g_free (_tmp105_), NULL);
			_data37_->all_flags = _tmp106_;
			_data37_->all_flags_length1 = _tmp106__length1;
			_data37_->_all_flags_size_ = _data37_->all_flags_length1;
			_tmp107_ = modifications_handler_get_key_custom_value (_data35_->modifications_handler, _data35_->full_name, _data35_->context_id);
			_tmp108_ = _tmp107_;
			_tmp110_ = g_variant_get_strv (_tmp108_, &_tmp109_);
			_tmp111_ = _tmp110_;
			_tmp111__length1 = _tmp109_;
			_tmp112_ = _data37_->all_flags;
			_tmp112__length1 = _data37_->all_flags_length1;
			context_popover_create_flags_list (_data35_->popover, _tmp111_, (gint) _tmp109_, _tmp112_, (gint) _tmp112__length1);
			_tmp111_ = (g_free (_tmp111_), NULL);
			_g_variant_unref0 (_tmp108_);
			_tmp113_ = g_signal_connect_data (_data35_->modifications_handler, "delayed-changes-changed", (GCallback) _____lambda44__modifications_handler_delayed_changes_changed, block37_data_ref (_data37_), (GClosureNotify) block37_data_unref, 0);
			_data37_->delayed_modifications_changed_handler = _tmp113_;
			g_signal_connect_data ((GtkWidget*) _data35_->popover, "destroy", (GCallback) _____lambda45__gtk_widget_destroy, block37_data_ref (_data37_), (GClosureNotify) block37_data_unref, 0);
			g_signal_connect_data (_data35_->popover, "value-changed", (GCallback) _____lambda46__context_popover_value_changed, block37_data_ref (_data37_), (GClosureNotify) block37_data_unref, 0);
			block37_data_unref (_data37_);
			_data37_ = NULL;
		} else {
			if (planned_change) {
				GVariant* _tmp114_;
				gchar* _tmp115_;
				gchar* _tmp116_;
				gchar* _tmp117_;
				gchar* _tmp118_;
				gchar* _tmp119_;
				gchar* _tmp120_;
				GVariant* _tmp121_;
				context_popover_new_section (_data35_->popover);
				_tmp114_ = variant_s;
				_tmp115_ = g_variant_print (_tmp114_, FALSE);
				_tmp116_ = _tmp115_;
				_tmp117_ = g_strconcat ("ui.dismiss-change(", _tmp116_, NULL);
				_tmp118_ = _tmp117_;
				_tmp119_ = g_strconcat (_tmp118_, ")", NULL);
				_tmp120_ = _tmp119_;
				context_popover_new_gaction (_data35_->popover, "dismiss", _tmp120_);
				_g_free0 (_tmp120_);
				_g_free0 (_tmp118_);
				_g_free0 (_tmp116_);
				_tmp121_ = planned_value;
				if (_tmp121_ != NULL) {
					GVariant* _tmp122_;
					gchar* _tmp123_;
					gchar* _tmp124_;
					gchar* _tmp125_;
					gchar* _tmp126_;
					gchar* _tmp127_;
					gchar* _tmp128_;
					_tmp122_ = variant_sq;
					_tmp123_ = g_variant_print (_tmp122_, TRUE);
					_tmp124_ = _tmp123_;
					_tmp125_ = g_strconcat ("view.set-to-default(", _tmp124_, NULL);
					_tmp126_ = _tmp125_;
					_tmp127_ = g_strconcat (_tmp126_, ")", NULL);
					_tmp128_ = _tmp127_;
					context_popover_new_gaction (_data35_->popover, "default1", _tmp128_);
					_g_free0 (_tmp128_);
					_g_free0 (_tmp126_);
					_g_free0 (_tmp124_);
				}
			} else {
				if (!is_key_default) {
					GVariant* _tmp129_;
					gchar* _tmp130_;
					gchar* _tmp131_;
					gchar* _tmp132_;
					gchar* _tmp133_;
					gchar* _tmp134_;
					gchar* _tmp135_;
					context_popover_new_section (_data35_->popover);
					_tmp129_ = variant_sq;
					_tmp130_ = g_variant_print (_tmp129_, TRUE);
					_tmp131_ = _tmp130_;
					_tmp132_ = g_strconcat ("view.set-to-default(", _tmp131_, NULL);
					_tmp133_ = _tmp132_;
					_tmp134_ = g_strconcat (_tmp133_, ")", NULL);
					_tmp135_ = _tmp134_;
					context_popover_new_gaction (_data35_->popover, "default1", _tmp135_);
					_g_free0 (_tmp135_);
					_g_free0 (_tmp133_);
					_g_free0 (_tmp131_);
				}
			}
		}
	}
	registry_variant_dict_clear (properties);
	result = TRUE;
	_g_variant_unref0 (planned_value);
	_g_variant_unref0 (variant_sq);
	_g_variant_unref0 (variant_s);
	_g_variant_unref0 (range_content);
	_g_free0 (type_string);
	_g_object_unref0 (properties);
	_g_object_unref0 (model);
	block35_data_unref (_data35_);
	_data35_ = NULL;
	return result;
}

static gboolean
registry_list_generate_ghost_popover (ClickableListBoxRow* row,
                                      GVariant* copy_text_variant)
{
	ContextPopover* _tmp0_;
	ContextPopover* popover = NULL;
	ContextPopover* _tmp1_;
	ContextPopover* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	g_return_val_if_fail (copy_text_variant != NULL, FALSE);
	_tmp0_ = row->nullable_popover;
	if (_tmp0_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp1_ = row->nullable_popover;
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONTEXT_POPOVER, ContextPopover));
	popover = _tmp2_;
	_tmp3_ = g_variant_print (copy_text_variant, FALSE);
	_tmp4_ = _tmp3_;
	_tmp5_ = g_strconcat ("app.copy(", _tmp4_, NULL);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_strconcat (_tmp6_, ")", NULL);
	_tmp8_ = _tmp7_;
	context_popover_new_gaction (popover, "copy", _tmp8_);
	_g_free0 (_tmp8_);
	_g_free0 (_tmp6_);
	_g_free0 (_tmp4_);
	result = TRUE;
	_g_object_unref0 (popover);
	return result;
}

static Block38Data*
block38_data_ref (Block38Data* _data38_)
{
	g_atomic_int_inc (&_data38_->_ref_count_);
	return _data38_;
}

static void
block38_data_unref (void * _userdata_)
{
	Block38Data* _data38_;
	_data38_ = (Block38Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data38_->_ref_count_)) {
		_g_object_unref0 (_data38_->row);
		g_slice_free (Block38Data, _data38_);
	}
}

static Block39Data*
block39_data_ref (Block39Data* _data39_)
{
	g_atomic_int_inc (&_data39_->_ref_count_);
	return _data39_;
}

static void
block39_data_unref (void * _userdata_)
{
	Block39Data* _data39_;
	_data39_ = (Block39Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data39_->_ref_count_)) {
		_g_object_unref0 (_data39_->action);
		block38_data_unref (_data39_->_data38_);
		_data39_->_data38_ = NULL;
		g_slice_free (Block39Data, _data39_);
	}
}

static void
___lambda47_ (Block39Data* _data39_)
{
	Block38Data* _data38_;
	_data38_ = _data39_->_data38_;
	registry_list_on_popover_change_dismissed (_data38_->row);
}

static void
____lambda47__context_popover_change_dismissed (ContextPopover* _sender,
                                                gpointer self)
{
	___lambda47_ (self);
}

static void
___lambda48_ (Block39Data* _data39_,
              GVariant* gvariant)
{
	Block38Data* _data38_;
	GAction* _tmp0_;
	_data38_ = _data39_->_data38_;
	_tmp0_ = _data39_->action;
	registry_list_on_popover_value_change (_data38_->row, gvariant, _tmp0_);
}

static void
____lambda48__context_popover_value_changed (ContextPopover* _sender,
                                             GVariant* gvariant,
                                             gpointer self)
{
	___lambda48_ (self, gvariant);
}

static gboolean
registry_list_generate_dconf_popover (KeyListBoxRow* row,
                                      ModificationsHandler* modifications_handler,
                                      GVariant* copy_text_variant)
{
	Block38Data* _data38_;
	KeyListBoxRow* _tmp0_;
	ContextPopover* _tmp1_;
	SettingsModel* model = NULL;
	SettingsModel* _tmp2_;
	SettingsModel* _tmp3_;
	SettingsModel* _tmp4_;
	ContextPopover* popover = NULL;
	ContextPopover* _tmp5_;
	ContextPopover* _tmp6_;
	GVariant* variant_s = NULL;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	GVariant* _tmp9_;
	GVariant* variant_sq = NULL;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	GVariant* _tmp12_;
	gboolean _tmp13_;
	gboolean _tmp14_;
	ContextPopover* _tmp24_;
	GVariant* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	ContextPopover* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gboolean planned_change = FALSE;
	const gchar* _tmp39_;
	const gchar* _tmp40_;
	GVariant* planned_value = NULL;
	const gchar* _tmp41_;
	const gchar* _tmp42_;
	GVariant* _tmp43_;
	gboolean _tmp44_ = FALSE;
	gboolean _tmp45_ = FALSE;
	const gchar* _tmp46_;
	const gchar* _tmp47_;
	gboolean result;
	g_return_val_if_fail (row != NULL, FALSE);
	g_return_val_if_fail (modifications_handler != NULL, FALSE);
	g_return_val_if_fail (copy_text_variant != NULL, FALSE);
	_data38_ = g_slice_new0 (Block38Data);
	_data38_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (row);
	_g_object_unref0 (_data38_->row);
	_data38_->row = _tmp0_;
	_tmp1_ = ((ClickableListBoxRow*) _data38_->row)->nullable_popover;
	if (_tmp1_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp2_ = modifications_handler_get_model (modifications_handler);
	_tmp3_ = _tmp2_;
	_tmp4_ = _g_object_ref0 (_tmp3_);
	model = _tmp4_;
	_tmp5_ = ((ClickableListBoxRow*) _data38_->row)->nullable_popover;
	_tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONTEXT_POPOVER, ContextPopover));
	popover = _tmp6_;
	_tmp7_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _data38_->row);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_variant_new_string (_tmp8_);
	g_variant_ref_sink (_tmp9_);
	variant_s = _tmp9_;
	_tmp10_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _data38_->row);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_variant_new ("(sq)", _tmp11_, MODEL_UTILS_dconf_context_id, NULL);
	g_variant_ref_sink (_tmp12_);
	variant_sq = _tmp12_;
	_tmp13_ = clickable_list_box_row_get_search_result_mode ((ClickableListBoxRow*) _data38_->row);
	_tmp14_ = _tmp13_;
	if (_tmp14_) {
		ContextPopover* _tmp15_;
		GVariant* _tmp16_;
		gchar* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		ContextPopover* _tmp23_;
		_tmp15_ = popover;
		_tmp16_ = variant_s;
		_tmp17_ = g_variant_print (_tmp16_, FALSE);
		_tmp18_ = _tmp17_;
		_tmp19_ = g_strconcat ("browser.open-parent(", _tmp18_, NULL);
		_tmp20_ = _tmp19_;
		_tmp21_ = g_strconcat (_tmp20_, ")", NULL);
		_tmp22_ = _tmp21_;
		context_popover_new_gaction (_tmp15_, "open-parent", _tmp22_);
		_g_free0 (_tmp22_);
		_g_free0 (_tmp20_);
		_g_free0 (_tmp18_);
		_tmp23_ = popover;
		context_popover_new_section (_tmp23_);
	}
	_tmp24_ = popover;
	_tmp25_ = variant_sq;
	_tmp26_ = g_variant_print (_tmp25_, TRUE);
	_tmp27_ = _tmp26_;
	_tmp28_ = g_strconcat ("browser.open-object(", _tmp27_, NULL);
	_tmp29_ = _tmp28_;
	_tmp30_ = g_strconcat (_tmp29_, ")", NULL);
	_tmp31_ = _tmp30_;
	context_popover_new_gaction (_tmp24_, "customize", _tmp31_);
	_g_free0 (_tmp31_);
	_g_free0 (_tmp29_);
	_g_free0 (_tmp27_);
	_tmp32_ = popover;
	_tmp33_ = g_variant_print (copy_text_variant, FALSE);
	_tmp34_ = _tmp33_;
	_tmp35_ = g_strconcat ("app.copy(", _tmp34_, NULL);
	_tmp36_ = _tmp35_;
	_tmp37_ = g_strconcat (_tmp36_, ")", NULL);
	_tmp38_ = _tmp37_;
	context_popover_new_gaction (_tmp32_, "copy", _tmp38_);
	_g_free0 (_tmp38_);
	_g_free0 (_tmp36_);
	_g_free0 (_tmp34_);
	_tmp39_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _data38_->row);
	_tmp40_ = _tmp39_;
	planned_change = modifications_handler_key_has_planned_change (modifications_handler, _tmp40_);
	_tmp41_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _data38_->row);
	_tmp42_ = _tmp41_;
	_tmp43_ = modifications_handler_get_key_planned_value (modifications_handler, _tmp42_);
	planned_value = _tmp43_;
	_tmp46_ = key_list_box_row_get_type_string (_data38_->row);
	_tmp47_ = _tmp46_;
	if (g_strcmp0 (_tmp47_, "b") == 0) {
		_tmp45_ = TRUE;
	} else {
		const gchar* _tmp48_;
		const gchar* _tmp49_;
		_tmp48_ = key_list_box_row_get_type_string (_data38_->row);
		_tmp49_ = _tmp48_;
		_tmp45_ = g_strcmp0 (_tmp49_, "mb") == 0;
	}
	if (_tmp45_) {
		_tmp44_ = TRUE;
	} else {
		const gchar* _tmp50_;
		const gchar* _tmp51_;
		_tmp50_ = key_list_box_row_get_type_string (_data38_->row);
		_tmp51_ = _tmp50_;
		_tmp44_ = g_strcmp0 (_tmp51_, "()") == 0;
	}
	if (_tmp44_) {
		Block39Data* _data39_;
		ContextPopover* _tmp52_;
		gboolean delayed_apply_menu = FALSE;
		RegistryVariantDict* properties = NULL;
		SettingsModel* _tmp53_;
		const gchar* _tmp54_;
		const gchar* _tmp55_;
		GVariant* _tmp56_;
		GVariant* _tmp57_;
		RegistryVariantDict* _tmp58_;
		RegistryVariantDict* _tmp59_;
		GVariant* key_value = NULL;
		RegistryVariantDict* _tmp60_;
		GVariant* _tmp61_ = NULL;
		gboolean _tmp62_;
		RegistryVariantDict* _tmp63_;
		GVariant* _tmp64_ = NULL;
		ContextPopover* _tmp67_;
		const gchar* _tmp68_;
		const gchar* _tmp69_;
		GAction* _tmp70_;
		ContextPopover* _tmp71_;
		ContextPopover* _tmp72_;
		_data39_ = g_slice_new0 (Block39Data);
		_data39_->_ref_count_ = 1;
		_data39_->_data38_ = block38_data_ref (_data38_);
		_tmp52_ = popover;
		context_popover_new_section (_tmp52_);
		delayed_apply_menu = modifications_handler_get_current_delay_mode (modifications_handler);
		_tmp53_ = model;
		_tmp54_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _data38_->row);
		_tmp55_ = _tmp54_;
		_tmp56_ = settings_model_get_key_properties (_tmp53_, _tmp55_, MODEL_UTILS_dconf_context_id, (guint16) PROPERTY_QUERY_KEY_VALUE);
		_tmp57_ = _tmp56_;
		_tmp58_ = registry_variant_dict_new_from_aqv (_tmp57_);
		_tmp59_ = _tmp58_;
		_g_variant_unref0 (_tmp57_);
		properties = _tmp59_;
		_tmp60_ = properties;
		_tmp62_ = registry_variant_dict_lookup (_tmp60_, (guint16) PROPERTY_QUERY_KEY_VALUE, "v", &_tmp61_, NULL);
		_g_variant_unref0 (key_value);
		key_value = _tmp61_;
		if (!_tmp62_) {
			g_assert_not_reached ();
		}
		_tmp63_ = properties;
		registry_variant_dict_clear (_tmp63_);
		if (planned_change) {
			GVariant* _tmp65_;
			_tmp65_ = planned_value;
			_tmp64_ = _tmp65_;
		} else {
			GVariant* _tmp66_;
			_tmp66_ = key_value;
			_tmp64_ = _tmp66_;
		}
		_tmp67_ = popover;
		_tmp68_ = key_list_box_row_get_type_string (_data38_->row);
		_tmp69_ = _tmp68_;
		_tmp70_ = context_popover_create_buttons_list (_tmp67_, TRUE, delayed_apply_menu, planned_change, _tmp69_, NULL, _tmp64_);
		_data39_->action = _tmp70_;
		_tmp71_ = popover;
		g_signal_connect_data (_tmp71_, "change-dismissed", (GCallback) ____lambda47__context_popover_change_dismissed, block39_data_ref (_data39_), (GClosureNotify) block39_data_unref, 0);
		_tmp72_ = popover;
		g_signal_connect_data (_tmp72_, "value-changed", (GCallback) ____lambda48__context_popover_value_changed, block39_data_ref (_data39_), (GClosureNotify) block39_data_unref, 0);
		if (!delayed_apply_menu) {
			ContextPopover* _tmp73_;
			ContextPopover* _tmp74_;
			GVariant* _tmp75_;
			gchar* _tmp76_;
			gchar* _tmp77_;
			gchar* _tmp78_;
			gchar* _tmp79_;
			gchar* _tmp80_;
			gchar* _tmp81_;
			_tmp73_ = popover;
			context_popover_new_section (_tmp73_);
			_tmp74_ = popover;
			_tmp75_ = variant_s;
			_tmp76_ = g_variant_print (_tmp75_, FALSE);
			_tmp77_ = _tmp76_;
			_tmp78_ = g_strconcat ("ui.erase(", _tmp77_, NULL);
			_tmp79_ = _tmp78_;
			_tmp80_ = g_strconcat (_tmp79_, ")", NULL);
			_tmp81_ = _tmp80_;
			context_popover_new_gaction (_tmp74_, "erase", _tmp81_);
			_g_free0 (_tmp81_);
			_g_free0 (_tmp79_);
			_g_free0 (_tmp77_);
		}
		_g_variant_unref0 (key_value);
		_g_object_unref0 (properties);
		block39_data_unref (_data39_);
		_data39_ = NULL;
	} else {
		gboolean _tmp93_ = FALSE;
		if (planned_change) {
			ContextPopover* _tmp82_;
			const gchar* _tmp83_ = NULL;
			GVariant* _tmp84_;
			ContextPopover* _tmp85_;
			GVariant* _tmp86_;
			gchar* _tmp87_;
			gchar* _tmp88_;
			gchar* _tmp89_;
			gchar* _tmp90_;
			gchar* _tmp91_;
			gchar* _tmp92_;
			_tmp82_ = popover;
			context_popover_new_section (_tmp82_);
			_tmp84_ = planned_value;
			if (_tmp84_ == NULL) {
				_tmp83_ = "unerase";
			} else {
				_tmp83_ = "dismiss";
			}
			_tmp85_ = popover;
			_tmp86_ = variant_s;
			_tmp87_ = g_variant_print (_tmp86_, FALSE);
			_tmp88_ = _tmp87_;
			_tmp89_ = g_strconcat ("ui.dismiss-change(", _tmp88_, NULL);
			_tmp90_ = _tmp89_;
			_tmp91_ = g_strconcat (_tmp90_, ")", NULL);
			_tmp92_ = _tmp91_;
			context_popover_new_gaction (_tmp85_, _tmp83_, _tmp92_);
			_g_free0 (_tmp92_);
			_g_free0 (_tmp90_);
			_g_free0 (_tmp88_);
		}
		if (!planned_change) {
			_tmp93_ = TRUE;
		} else {
			GVariant* _tmp94_;
			_tmp94_ = planned_value;
			_tmp93_ = _tmp94_ != NULL;
		}
		if (_tmp93_) {
			ContextPopover* _tmp95_;
			ContextPopover* _tmp96_;
			GVariant* _tmp97_;
			gchar* _tmp98_;
			gchar* _tmp99_;
			gchar* _tmp100_;
			gchar* _tmp101_;
			gchar* _tmp102_;
			gchar* _tmp103_;
			_tmp95_ = popover;
			context_popover_new_section (_tmp95_);
			_tmp96_ = popover;
			_tmp97_ = variant_s;
			_tmp98_ = g_variant_print (_tmp97_, FALSE);
			_tmp99_ = _tmp98_;
			_tmp100_ = g_strconcat ("ui.erase(", _tmp99_, NULL);
			_tmp101_ = _tmp100_;
			_tmp102_ = g_strconcat (_tmp101_, ")", NULL);
			_tmp103_ = _tmp102_;
			context_popover_new_gaction (_tmp96_, "erase", _tmp103_);
			_g_free0 (_tmp103_);
			_g_free0 (_tmp101_);
			_g_free0 (_tmp99_);
		}
	}
	result = TRUE;
	_g_variant_unref0 (planned_value);
	_g_variant_unref0 (variant_sq);
	_g_variant_unref0 (variant_s);
	_g_object_unref0 (popover);
	_g_object_unref0 (model);
	block38_data_unref (_data38_);
	_data38_ = NULL;
	return result;
}

static void
registry_list_on_popover_change_dismissed (KeyListBoxRow* row)
{
	g_return_if_fail (row != NULL);
	clickable_list_box_row_destroy_popover ((ClickableListBoxRow*) row);
	key_list_box_row_change_dismissed (row);
}

static gpointer
_g_variant_type_copy0 (gpointer self)
{
	return self ? g_variant_type_copy (self) : NULL;
}

static void
registry_list_on_popover_value_change (KeyListBoxRow* row,
                                       GVariant* gvariant,
                                       GAction* action)
{
	GVariantType* _tmp0_ = NULL;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GVariantType* variant_type = NULL;
	GVariantType* _tmp8_;
	GVariant* _tmp9_;
	GVariant* _tmp10_;
	GVariant* _tmp11_;
	GVariant* _tmp12_;
	g_return_if_fail (row != NULL);
	g_return_if_fail (action != NULL);
	clickable_list_box_row_hide_right_click_popover ((ClickableListBoxRow*) row);
	_tmp1_ = key_list_box_row_get_type_string (row);
	_tmp2_ = _tmp1_;
	if (g_strcmp0 (_tmp2_, "<enum>") == 0) {
		const GVariantType* _tmp3_;
		GVariantType* _tmp4_;
		_tmp3_ = G_VARIANT_TYPE_STRING;
		_tmp4_ = _g_variant_type_copy0 (_tmp3_);
		_g_variant_type_free0 (_tmp0_);
		_tmp0_ = _tmp4_;
	} else {
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		GVariantType* _tmp7_;
		_tmp5_ = key_list_box_row_get_type_string (row);
		_tmp6_ = _tmp5_;
		_tmp7_ = g_variant_type_new (_tmp6_);
		_g_variant_type_free0 (_tmp0_);
		_tmp0_ = _tmp7_;
	}
	_tmp8_ = _g_variant_type_copy0 (_tmp0_);
	variant_type = _tmp8_;
	_tmp9_ = g_variant_new_maybe (variant_type, gvariant);
	g_variant_ref_sink (_tmp9_);
	_tmp10_ = _tmp9_;
	_tmp11_ = g_variant_new_maybe (NULL, _tmp10_);
	g_variant_ref_sink (_tmp11_);
	_tmp12_ = _tmp11_;
	g_action_change_state (action, _tmp12_);
	_g_variant_unref0 (_tmp12_);
	_g_variant_unref0 (_tmp10_);
	key_list_box_row_set_key_value (row, gvariant);
	_g_variant_type_free0 (variant_type);
	_g_variant_type_free0 (_tmp0_);
}

static inline GVariant*
_registry_list_get_folder_or_search_copy_text_variant (ClickableListBoxRow* row)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GVariant* _tmp2_;
	GVariant* _tmp3_;
	GVariant* result;
	g_return_val_if_fail (row != NULL, NULL);
	_tmp0_ = _registry_list_get_folder_or_search_copy_text (row);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_variant_new_string (_tmp1_);
	g_variant_ref_sink (_tmp2_);
	_tmp3_ = _tmp2_;
	_g_free0 (_tmp1_);
	result = _tmp3_;
	return result;
}

static inline GVariant*
_registry_list_get_key_copy_text_variant (ClickableListBoxRow* row,
                                          ModificationsHandler* modifications_handler)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GVariant* _tmp2_;
	GVariant* _tmp3_;
	GVariant* result;
	g_return_val_if_fail (row != NULL, NULL);
	g_return_val_if_fail (modifications_handler != NULL, NULL);
	_tmp0_ = _registry_list_get_key_copy_text (row, modifications_handler);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_variant_new_string (_tmp1_);
	g_variant_ref_sink (_tmp2_);
	_tmp3_ = _tmp2_;
	_g_free0 (_tmp1_);
	result = _tmp3_;
	return result;
}

gboolean
registry_list_is_first_row (gint row_index,
                            GtkListBoxRow* before)
{
	gboolean is_first_row = FALSE;
	gboolean result;
	is_first_row = row_index == 0;
	if (is_first_row != (before == NULL)) {
		g_assert_not_reached ();
	}
	result = is_first_row;
	return result;
}

void
registry_list_update_row_header_with_context (GtkListBoxRow* row,
                                              GtkListBoxRow* before,
                                              SettingsModel* model,
                                              gboolean local_search_header)
{
	gchar* label_text = NULL;
	ClickableListBoxRow* row_content = NULL;
	GtkWidget* _tmp0_;
	ClickableListBoxRow* _tmp1_;
	ClickableListBoxRow* _tmp2_;
	ClickableListBoxRow* _tmp3_;
	const gchar* _tmp50_;
	ListBoxRowHeader* _tmp51_;
	ListBoxRowHeader* _tmp52_;
	g_return_if_fail (row != NULL);
	g_return_if_fail (before != NULL);
	g_return_if_fail (model != NULL);
	label_text = NULL;
	_tmp0_ = gtk_bin_get_child ((GtkBin*) row);
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
	row_content = _tmp1_;
	_tmp2_ = row_content;
	if (_tmp2_ == NULL) {
		g_assert_not_reached ();
	}
	_tmp3_ = row_content;
	if (IS_KEY_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
		KeyListBoxRow* key_list_box_row = NULL;
		ClickableListBoxRow* _tmp4_;
		KeyListBoxRow* _tmp5_;
		guint16 context_id = 0U;
		KeyListBoxRow* _tmp6_;
		guint16 _tmp7_;
		guint16 _tmp8_;
		ClickableListBoxRow* before_content = NULL;
		GtkWidget* _tmp9_;
		ClickableListBoxRow* _tmp10_;
		ClickableListBoxRow* _tmp11_;
		gboolean _tmp12_ = FALSE;
		ClickableListBoxRow* _tmp13_;
		_tmp4_ = row_content;
		_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
		key_list_box_row = _tmp5_;
		_tmp6_ = key_list_box_row;
		_tmp7_ = clickable_list_box_row_get_context_id ((ClickableListBoxRow*) _tmp6_);
		_tmp8_ = _tmp7_;
		context_id = _tmp8_;
		_tmp9_ = gtk_bin_get_child ((GtkBin*) before);
		_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
		before_content = _tmp10_;
		_tmp11_ = before_content;
		if (_tmp11_ == NULL) {
			g_assert_not_reached ();
		}
		_tmp13_ = before_content;
		if (IS_RETURN_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
			_tmp12_ = TRUE;
		} else {
			ClickableListBoxRow* _tmp14_;
			guint16 _tmp15_;
			guint16 _tmp16_;
			_tmp14_ = before_content;
			_tmp15_ = clickable_list_box_row_get_context_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
			_tmp16_ = _tmp15_;
			_tmp12_ = _tmp16_ != context_id;
		}
		if (_tmp12_) {
			KeyListBoxRow* _tmp17_;
			gboolean _tmp18_;
			gboolean _tmp19_;
			_tmp17_ = key_list_box_row;
			_tmp18_ = key_list_box_row_get_has_schema (_tmp17_);
			_tmp19_ = _tmp18_;
			if (_tmp19_) {
				GtkWidget* _tmp20_;
				const gchar* _tmp21_;
				const gchar* _tmp22_;
				RegistryVariantDict* properties = NULL;
				KeyListBoxRow* _tmp23_;
				const gchar* _tmp24_;
				const gchar* _tmp25_;
				GVariant* _tmp26_;
				GVariant* _tmp27_;
				RegistryVariantDict* _tmp28_;
				RegistryVariantDict* _tmp29_;
				gchar* schema_id = NULL;
				RegistryVariantDict* _tmp30_;
				gchar* _tmp31_ = NULL;
				gboolean _tmp32_;
				_tmp20_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (row, gtk_list_box_row_get_type (), GtkListBoxRow));
				_tmp21_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow));
				_tmp22_ = _tmp21_;
				if (!settings_model_key_exists (model, _tmp22_, context_id)) {
					_g_object_unref0 (before_content);
					_g_object_unref0 (key_list_box_row);
					_g_object_unref0 (row_content);
					_g_free0 (label_text);
					return;
				}
				_tmp23_ = key_list_box_row;
				_tmp24_ = clickable_list_box_row_get_full_name ((ClickableListBoxRow*) _tmp23_);
				_tmp25_ = _tmp24_;
				_tmp26_ = settings_model_get_key_properties (model, _tmp25_, context_id, (guint16) PROPERTY_QUERY_SCHEMA_ID);
				_tmp27_ = _tmp26_;
				_tmp28_ = registry_variant_dict_new_from_aqv (_tmp27_);
				_tmp29_ = _tmp28_;
				_g_variant_unref0 (_tmp27_);
				properties = _tmp29_;
				_tmp30_ = properties;
				_tmp32_ = registry_variant_dict_lookup (_tmp30_, (guint16) PROPERTY_QUERY_SCHEMA_ID, "s", &_tmp31_, NULL);
				_g_free0 (schema_id);
				schema_id = _tmp31_;
				if (!_tmp32_) {
					g_assert_not_reached ();
				}
				if (local_search_header) {
					const gchar* _tmp33_;
					gchar* _tmp34_;
					_tmp33_ = schema_id;
					_tmp34_ = g_strdup_printf (_ ("%s (local keys)"), _tmp33_);
					_g_free0 (label_text);
					label_text = _tmp34_;
				} else {
					const gchar* _tmp35_;
					gchar* _tmp36_;
					_tmp35_ = schema_id;
					_tmp36_ = g_strdup (_tmp35_);
					_g_free0 (label_text);
					label_text = _tmp36_;
				}
				_g_free0 (schema_id);
				_g_object_unref0 (properties);
			} else {
				if (local_search_header) {
					gchar* _tmp37_;
					_tmp37_ = g_strdup (_ ("Local keys not defined by a schema"));
					_g_free0 (label_text);
					label_text = _tmp37_;
				} else {
					gchar* _tmp38_;
					_tmp38_ = g_strdup (_ ("Keys not defined by a schema"));
					_g_free0 (label_text);
					label_text = _tmp38_;
				}
			}
		}
		_g_object_unref0 (before_content);
		_g_object_unref0 (key_list_box_row);
	} else {
		ClickableListBoxRow* _tmp39_;
		_tmp39_ = row_content;
		if (IS_FOLDER_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
			ClickableListBoxRow* before_content = NULL;
			GtkWidget* _tmp40_;
			ClickableListBoxRow* _tmp41_;
			ClickableListBoxRow* _tmp42_;
			gboolean _tmp43_ = FALSE;
			ClickableListBoxRow* _tmp44_;
			_tmp40_ = gtk_bin_get_child ((GtkBin*) before);
			_tmp41_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
			before_content = _tmp41_;
			_tmp42_ = before_content;
			if (_tmp42_ == NULL) {
				g_assert_not_reached ();
			}
			_tmp44_ = before_content;
			if (IS_FILTER_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
				_tmp43_ = TRUE;
			} else {
				ClickableListBoxRow* _tmp45_;
				_tmp45_ = before_content;
				_tmp43_ = IS_RETURN_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow));
			}
			if (_tmp43_) {
				gchar* _tmp46_;
				_tmp46_ = g_strdup (_ ("Subfolders"));
				_g_free0 (label_text);
				label_text = _tmp46_;
			}
			_g_object_unref0 (before_content);
		} else {
			ClickableListBoxRow* _tmp47_;
			_tmp47_ = row_content;
			if (IS_FILTER_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
				gchar* _tmp48_;
				_tmp48_ = g_strdup (_ ("Other actions"));
				_g_free0 (label_text);
				label_text = _tmp48_;
			} else {
				ClickableListBoxRow* _tmp49_;
				_tmp49_ = row_content;
				if (!IS_SEARCH_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_CLICKABLE_LIST_BOX_ROW, ClickableListBoxRow))) {
					g_assert_not_reached ();
				}
			}
		}
	}
	_tmp50_ = label_text;
	_tmp51_ = list_box_row_header_new (FALSE, _tmp50_);
	g_object_ref_sink (_tmp51_);
	_tmp52_ = _tmp51_;
	gtk_list_box_row_set_header (row, (GtkWidget*) _tmp52_);
	_g_object_unref0 (_tmp52_);
	_g_object_unref0 (row_content);
	_g_free0 (label_text);
}

RegistryList*
registry_list_construct (GType object_type)
{
	RegistryList * self = NULL;
	self = (RegistryList*) g_object_new (object_type, NULL);
	return self;
}

static gboolean
registry_list_get_search_mode (RegistryList* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_search_mode;
	return result;
}

void
registry_list_set_search_mode (RegistryList* self,
                               gboolean value)
{
	g_return_if_fail (self != NULL);
	self->priv->_search_mode = value;
}

ModificationsHandler*
registry_list_get_modifications_handler (RegistryList* self)
{
	ModificationsHandler* result;
	ModificationsHandler* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_modifications_handler;
	result = _tmp0_;
	return result;
}

void
registry_list_set_modifications_handler (RegistryList* self,
                                         ModificationsHandler* value)
{
	ModificationsHandler* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_modifications_handler);
	self->priv->_modifications_handler = _tmp0_;
}

const gchar*
registry_list_get_placeholder_label (RegistryList* self)
{
	RegistryListClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = REGISTRY_LIST_GET_CLASS (self);
	if (_klass_->get_placeholder_label) {
		return _klass_->get_placeholder_label (self);
	}
	return NULL;
}

static Block40Data*
block40_data_ref (Block40Data* _data40_)
{
	g_atomic_int_inc (&_data40_->_ref_count_);
	return _data40_;
}

static void
block40_data_unref (void * _userdata_)
{
	Block40Data* _data40_;
	_data40_ = (Block40Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data40_->_ref_count_)) {
		RegistryList* self;
		self = _data40_->self;
		_g_object_unref0 (self);
		g_slice_free (Block40Data, _data40_);
	}
}

static void
_registry_list_small_keys_list_rows___lambda53_ (Block40Data* _data40_,
                                                 GtkWidget* row)
{
	RegistryList* self;
	GtkWidget* row_child = NULL;
	GtkWidget* _tmp0_;
	GtkWidget* _tmp1_;
	gboolean _tmp2_ = FALSE;
	GtkWidget* _tmp3_;
	self = _data40_->self;
	g_return_if_fail (row != NULL);
	_tmp0_ = gtk_bin_get_child ((GtkBin*) G_TYPE_CHECK_INSTANCE_CAST (row, gtk_list_box_row_get_type (), GtkListBoxRow));
	_tmp1_ = _g_object_ref0 (_tmp0_);
	row_child = _tmp1_;
	_tmp3_ = row_child;
	if (_tmp3_ != NULL) {
		GtkWidget* _tmp4_;
		_tmp4_ = row_child;
		_tmp2_ = IS_KEY_LIST_BOX_ROW (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		GtkWidget* _tmp5_;
		_tmp5_ = row_child;
		key_list_box_row_set_small_keys_list_rows (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), TYPE_KEY_LIST_BOX_ROW, KeyListBoxRow), _data40_->value);
	}
	_g_object_unref0 (row_child);
}

static void
__registry_list_small_keys_list_rows___lambda53__gtk_callback (GtkWidget* widget,
                                                               gpointer self)
{
	_registry_list_small_keys_list_rows___lambda53_ (self, widget);
}

void
registry_list_set_small_keys_list_rows (RegistryList* self,
                                        gboolean value)
{
	Block40Data* _data40_;
	GtkListBox* _tmp0_;
	g_return_if_fail (self != NULL);
	_data40_ = g_slice_new0 (Block40Data);
	_data40_->_ref_count_ = 1;
	_data40_->self = g_object_ref (self);
	_data40_->value = value;
	self->priv->_small_keys_list_rows = _data40_->value;
	_tmp0_ = self->key_list_box;
	gtk_container_foreach ((GtkContainer*) _tmp0_, __registry_list_small_keys_list_rows___lambda53__gtk_callback, _data40_);
	block40_data_unref (_data40_);
	_data40_ = NULL;
}

static GObject *
registry_list_constructor (GType type,
                           guint n_construct_properties,
                           GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	RegistryList * self;
	RegistryPlaceholder* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	GtkListBox* _tmp3_;
	GtkAdjustment* _tmp4_;
	GtkAdjustment* _tmp5_;
	parent_class = G_OBJECT_CLASS (registry_list_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REGISTRY_LIST, RegistryList);
	_tmp0_ = self->priv->placeholder;
	_tmp1_ = registry_list_get_placeholder_label (self);
	_tmp2_ = _tmp1_;
	registry_placeholder_set_label (_tmp0_, _tmp2_);
	registry_list_register_size_allocate (self);
	_tmp3_ = self->key_list_box;
	_tmp4_ = gtk_list_box_get_adjustment (_tmp3_);
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (self->priv->adjustment);
	self->priv->adjustment = _tmp5_;
	return obj;
}

static void
registry_list_class_init (RegistryListClass * klass,
                          gpointer klass_data)
{
	registry_list_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &RegistryList_private_offset);
	((RegistryListClass *) klass)->select_first_row = (void (*) (RegistryList*)) registry_list_real_select_first_row;
	G_OBJECT_CLASS (klass)->get_property = _vala_registry_list_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_registry_list_set_property;
	G_OBJECT_CLASS (klass)->constructor = registry_list_constructor;
	G_OBJECT_CLASS (klass)->finalize = registry_list_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_LIST_SEARCH_MODE_PROPERTY, registry_list_properties[REGISTRY_LIST_SEARCH_MODE_PROPERTY] = g_param_spec_boolean ("search-mode", "search-mode", "search-mode", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_LIST_MODIFICATIONS_HANDLER_PROPERTY, registry_list_properties[REGISTRY_LIST_MODIFICATIONS_HANDLER_PROPERTY] = g_param_spec_object ("modifications-handler", "modifications-handler", "modifications-handler", TYPE_MODIFICATIONS_HANDLER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_LIST_PLACEHOLDER_LABEL_PROPERTY, registry_list_properties[REGISTRY_LIST_PLACEHOLDER_LABEL_PROPERTY] = g_param_spec_string ("placeholder-label", "placeholder-label", "placeholder-label", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), REGISTRY_LIST_SMALL_KEYS_LIST_ROWS_PROPERTY, registry_list_properties[REGISTRY_LIST_SMALL_KEYS_LIST_ROWS_PROPERTY] = g_param_spec_boolean ("small-keys-list-rows", "small-keys-list-rows", "small-keys-list-rows", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_EXPLICIT_NOTIFY));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/ca/desrt/dconf-editor/ui/registry-list.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "key_list_box", FALSE, G_STRUCT_OFFSET (RegistryList, key_list_box));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "scrolled", FALSE, RegistryList_private_offset + G_STRUCT_OFFSET (RegistryListPrivate, scrolled));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "placeholder", FALSE, RegistryList_private_offset + G_STRUCT_OFFSET (RegistryListPrivate, placeholder));
}

static void
registry_list_browsable_view_interface_init (BrowsableViewIface * iface,
                                             gpointer iface_data)
{
	registry_list_browsable_view_parent_iface = g_type_interface_peek_parent (iface);
	iface->handle_copy_text = (gboolean (*) (BrowsableView*, gchar**)) registry_list_real_handle_copy_text;
}

static void
registry_list_adaptative_widget_interface_init (AdaptativeWidgetIface * iface,
                                                gpointer iface_data)
{
	registry_list_adaptative_widget_parent_iface = g_type_interface_peek_parent (iface);
	iface->set_window_size = (void (*) (AdaptativeWidget*, AdaptativeWidgetWindowSize)) registry_list_real_set_window_size;
}

static void
registry_list_instance_init (RegistryList * self,
                             gpointer klass)
{
	GListStore* _tmp0_;
	GListStore* _tmp1_;
	self->priv = registry_list_get_instance_private (self);
	self->current_path_if_search_mode = NULL;
	self->search_is_path_search = FALSE;
	_tmp0_ = g_list_store_new (TYPE_SIMPLE_SETTING_OBJECT);
	self->list_model = _tmp0_;
	_tmp1_ = g_list_store_new (TYPE_CLICKABLE_LIST_BOX_ROW);
	self->priv->rows_possibly_with_popover = _tmp1_;
	self->priv->_small_keys_list_rows = FALSE;
	self->priv->window_size = ADAPTATIVE_WIDGET_WINDOW_SIZE_START_SIZE;
	self->priv->width = -1;
	self->priv->height = -1;
	g_type_ensure (TYPE_REGISTRY_PLACEHOLDER);
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
registry_list_finalize (GObject * obj)
{
	RegistryList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REGISTRY_LIST, RegistryList);
	_g_object_unref0 (self->priv->adjustment);
	_g_free0 (self->current_path_if_search_mode);
	_g_object_unref0 (self->list_model);
	_g_object_unref0 (self->priv->rows_possibly_with_popover);
	_g_object_unref0 (self->priv->_modifications_handler);
	G_OBJECT_CLASS (registry_list_parent_class)->finalize (obj);
}

static GType
registry_list_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (RegistryListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) registry_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RegistryList), 0, (GInstanceInitFunc) registry_list_instance_init, NULL };
	static const GInterfaceInfo browsable_view_info = { (GInterfaceInitFunc) registry_list_browsable_view_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo adaptative_widget_info = { (GInterfaceInitFunc) registry_list_adaptative_widget_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType registry_list_type_id;
	registry_list_type_id = g_type_register_static (gtk_grid_get_type (), "RegistryList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	g_type_add_interface_static (registry_list_type_id, TYPE_BROWSABLE_VIEW, &browsable_view_info);
	g_type_add_interface_static (registry_list_type_id, TYPE_ADAPTATIVE_WIDGET, &adaptative_widget_info);
	RegistryList_private_offset = g_type_add_instance_private (registry_list_type_id, sizeof (RegistryListPrivate));
	return registry_list_type_id;
}

GType
registry_list_get_type (void)
{
	static volatile gsize registry_list_type_id__once = 0;
	if (g_once_init_enter (&registry_list_type_id__once)) {
		GType registry_list_type_id;
		registry_list_type_id = registry_list_get_type_once ();
		g_once_init_leave (&registry_list_type_id__once, registry_list_type_id);
	}
	return registry_list_type_id__once;
}

static void
_vala_registry_list_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	RegistryList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_REGISTRY_LIST, RegistryList);
	switch (property_id) {
		case REGISTRY_LIST_SEARCH_MODE_PROPERTY:
		g_value_set_boolean (value, registry_list_get_search_mode (self));
		break;
		case REGISTRY_LIST_MODIFICATIONS_HANDLER_PROPERTY:
		g_value_set_object (value, registry_list_get_modifications_handler (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_registry_list_set_property (GObject * object,
                                  guint property_id,
                                  const GValue * value,
                                  GParamSpec * pspec)
{
	RegistryList * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_REGISTRY_LIST, RegistryList);
	switch (property_id) {
		case REGISTRY_LIST_SEARCH_MODE_PROPERTY:
		registry_list_set_search_mode (self, g_value_get_boolean (value));
		break;
		case REGISTRY_LIST_MODIFICATIONS_HANDLER_PROPERTY:
		registry_list_set_modifications_handler (self, g_value_get_object (value));
		break;
		case REGISTRY_LIST_SMALL_KEYS_LIST_ROWS_PROPERTY:
		registry_list_set_small_keys_list_rows (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize 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,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

