/* tools-release-row-presentation.c generated by valac 0.56.19, the Vala compiler
 * generated from tools-release-row-presentation.vala, do not modify */

#include "protonplus_core.h"
#include <glib.h>
#include <glib-object.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

enum  {
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_CONNECTED_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_release_row_job_signal_binding_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
enum  {
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PRIMARY_ACTION_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_INSTALLED_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_RECOMMENDED_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_IN_USE_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UPDATE_AVAILABLE_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UNAVAILABLE_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_BUSY_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PROGRESS_INDETERMINATE_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_CANCEL_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_CANCEL_ENABLED_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_UPDATE_ACTION_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_OPEN_FOLDER_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_DELETE_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_MENU_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_NUM_PROPERTIES];

struct _ProtonPlusWidgetsToolsReleaseRowJobSignalBindingPrivate {
	GWeakRef job_ref;
	GWeakRef target_ref;
	gulong state_handler;
	gulong step_handler;
	gulong progress_handler;
	gulong canceled_handler;
	gulong variant_handler;
	gulong release_handler;
	gboolean _connected;
};

struct _ProtonPlusWidgetsToolsReleaseRowPresentationPrivate {
	ProtonPlusWidgetsToolsReleaseRowPrimaryAction _primary_action;
	gboolean _installed;
	gboolean _recommended;
	gboolean _in_use;
	gboolean _update_available;
	gboolean _unavailable;
	gboolean _busy;
	gboolean _progress_indeterminate;
	gboolean _show_cancel;
	gboolean _cancel_enabled;
	gboolean _show_update_action;
	gboolean _show_open_folder;
	gboolean _show_delete;
};

static gint ProtonPlusWidgetsToolsReleaseRowJobSignalBinding_private_offset;
static gpointer proton_plus_widgets_tools_release_row_job_signal_binding_parent_class = NULL;
static gint ProtonPlusWidgetsToolsReleaseRowPresentation_private_offset;
static gpointer proton_plus_widgets_tools_release_row_presentation_parent_class = NULL;

static GType proton_plus_widgets_tools_release_row_job_signal_target_get_type_once (void);
static void proton_plus_widgets_tools_release_row_job_signal_binding_state_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self);
static void _proton_plus_widgets_tools_release_row_job_signal_binding_state_changed_g_object_notify (GObject* _sender,
                                                                                              GParamSpec* pspec,
                                                                                              gpointer self);
static void proton_plus_widgets_tools_release_row_job_signal_binding_step_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self);
static void _proton_plus_widgets_tools_release_row_job_signal_binding_step_changed_g_object_notify (GObject* _sender,
                                                                                             GParamSpec* pspec,
                                                                                             gpointer self);
static void proton_plus_widgets_tools_release_row_job_signal_binding_progress_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self);
static void _proton_plus_widgets_tools_release_row_job_signal_binding_progress_changed_proton_plus_services_install_job_progress_updated (ProtonPlusServicesInstallJob* _sender,
                                                                                                                                   gpointer self);
static void proton_plus_widgets_tools_release_row_job_signal_binding_canceled_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self);
static void _proton_plus_widgets_tools_release_row_job_signal_binding_canceled_changed_g_object_notify (GObject* _sender,
                                                                                                 GParamSpec* pspec,
                                                                                                 gpointer self);
static void proton_plus_widgets_tools_release_row_job_signal_binding_variant_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self);
static void _proton_plus_widgets_tools_release_row_job_signal_binding_variant_changed_g_object_notify (GObject* _sender,
                                                                                                GParamSpec* pspec,
                                                                                                gpointer self);
static void proton_plus_widgets_tools_release_row_job_signal_binding_release_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self);
static void _proton_plus_widgets_tools_release_row_job_signal_binding_release_changed_g_object_notify (GObject* _sender,
                                                                                                GParamSpec* pspec,
                                                                                                gpointer self);
static void proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self,
                                                                                  gulong* handler);
static void proton_plus_widgets_tools_release_row_job_signal_binding_set_connected (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self,
                                                                             gboolean value);
static void proton_plus_widgets_tools_release_row_job_signal_binding_real_dispose (GObject* base);
static void proton_plus_widgets_tools_release_row_job_signal_binding_finalize (GObject * obj);
static GType proton_plus_widgets_tools_release_row_job_signal_binding_get_type_once (void);
static void _vala_proton_plus_widgets_tools_release_row_job_signal_binding_get_property (GObject * object,
                                                                                  guint property_id,
                                                                                  GValue * value,
                                                                                  GParamSpec * pspec);
static void _vala_proton_plus_widgets_tools_release_row_job_signal_binding_set_property (GObject * object,
                                                                                  guint property_id,
                                                                                  const GValue * value,
                                                                                  GParamSpec * pspec);
static void proton_plus_widgets_tools_release_row_presentation_set_installed (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                       gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_recommended (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                         gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_in_use (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                    gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_update_available (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                              gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_unavailable (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                         gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_busy (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                  gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_primary_action (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                            ProtonPlusWidgetsToolsReleaseRowPrimaryAction value);
static void proton_plus_widgets_tools_release_row_presentation_set_progress_indeterminate (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                                    gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_show_cancel (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                         gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_cancel_enabled (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                            gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_show_update_action (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                                gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_show_open_folder (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                              gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_set_show_delete (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                         gboolean value);
static void proton_plus_widgets_tools_release_row_presentation_finalize (GObject * obj);
static GType proton_plus_widgets_tools_release_row_presentation_get_type_once (void);
static void _vala_proton_plus_widgets_tools_release_row_presentation_get_property (GObject * object,
                                                                            guint property_id,
                                                                            GValue * value,
                                                                            GParamSpec * pspec);
static void _vala_proton_plus_widgets_tools_release_row_presentation_set_property (GObject * object,
                                                                            guint property_id,
                                                                            const GValue * value,
                                                                            GParamSpec * pspec);

void
proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_state_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_TARGET_GET_INTERFACE (self);
	if (_iface_->release_row_job_state_changed) {
		_iface_->release_row_job_state_changed (self);
	}
}

void
proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_step_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_TARGET_GET_INTERFACE (self);
	if (_iface_->release_row_job_step_changed) {
		_iface_->release_row_job_step_changed (self);
	}
}

void
proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_progress_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_TARGET_GET_INTERFACE (self);
	if (_iface_->release_row_job_progress_changed) {
		_iface_->release_row_job_progress_changed (self);
	}
}

void
proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_canceled_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_TARGET_GET_INTERFACE (self);
	if (_iface_->release_row_job_canceled_changed) {
		_iface_->release_row_job_canceled_changed (self);
	}
}

void
proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_variant_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_TARGET_GET_INTERFACE (self);
	if (_iface_->release_row_job_variant_changed) {
		_iface_->release_row_job_variant_changed (self);
	}
}

void
proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_release_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_TARGET_GET_INTERFACE (self);
	if (_iface_->release_row_job_release_changed) {
		_iface_->release_row_job_release_changed (self);
	}
}

static void
proton_plus_widgets_tools_release_row_job_signal_target_default_init (ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface * iface,
                                                                      gpointer iface_data)
{
}

static GType
proton_plus_widgets_tools_release_row_job_signal_target_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsReleaseRowJobSignalTargetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_release_row_job_signal_target_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType proton_plus_widgets_tools_release_row_job_signal_target_type_id;
	proton_plus_widgets_tools_release_row_job_signal_target_type_id = g_type_register_static (G_TYPE_INTERFACE, "ProtonPlusWidgetsToolsReleaseRowJobSignalTarget", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (proton_plus_widgets_tools_release_row_job_signal_target_type_id, G_TYPE_OBJECT);
	return proton_plus_widgets_tools_release_row_job_signal_target_type_id;
}

GType
proton_plus_widgets_tools_release_row_job_signal_target_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_release_row_job_signal_target_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_release_row_job_signal_target_type_id__once)) {
		GType proton_plus_widgets_tools_release_row_job_signal_target_type_id;
		proton_plus_widgets_tools_release_row_job_signal_target_type_id = proton_plus_widgets_tools_release_row_job_signal_target_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_release_row_job_signal_target_type_id__once, proton_plus_widgets_tools_release_row_job_signal_target_type_id);
	}
	return proton_plus_widgets_tools_release_row_job_signal_target_type_id__once;
}

static inline gpointer
proton_plus_widgets_tools_release_row_job_signal_binding_get_instance_private (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsToolsReleaseRowJobSignalBinding_private_offset);
}

static void
_proton_plus_widgets_tools_release_row_job_signal_binding_state_changed_g_object_notify (GObject* _sender,
                                                                                         GParamSpec* pspec,
                                                                                         gpointer self)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_state_changed ((ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) self);
}

static void
_proton_plus_widgets_tools_release_row_job_signal_binding_step_changed_g_object_notify (GObject* _sender,
                                                                                        GParamSpec* pspec,
                                                                                        gpointer self)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_step_changed ((ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) self);
}

static void
_proton_plus_widgets_tools_release_row_job_signal_binding_progress_changed_proton_plus_services_install_job_progress_updated (ProtonPlusServicesInstallJob* _sender,
                                                                                                                              gpointer self)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_progress_changed ((ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) self);
}

static void
_proton_plus_widgets_tools_release_row_job_signal_binding_canceled_changed_g_object_notify (GObject* _sender,
                                                                                            GParamSpec* pspec,
                                                                                            gpointer self)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_canceled_changed ((ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) self);
}

static void
_proton_plus_widgets_tools_release_row_job_signal_binding_variant_changed_g_object_notify (GObject* _sender,
                                                                                           GParamSpec* pspec,
                                                                                           gpointer self)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_variant_changed ((ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) self);
}

static void
_proton_plus_widgets_tools_release_row_job_signal_binding_release_changed_g_object_notify (GObject* _sender,
                                                                                           GParamSpec* pspec,
                                                                                           gpointer self)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_release_changed ((ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) self);
}

ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*
proton_plus_widgets_tools_release_row_job_signal_binding_construct (GType object_type,
                                                                    ProtonPlusServicesInstallJob* job,
                                                                    ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalBinding * self = NULL;
	gulong _tmp0_;
	gulong _tmp1_;
	gulong _tmp2_;
	gulong _tmp3_;
	gulong _tmp4_;
	gulong _tmp5_;
	g_return_val_if_fail (job != NULL, NULL);
	g_return_val_if_fail (target != NULL, NULL);
	self = (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) g_object_new (object_type, NULL);
	g_weak_ref_clear (&self->priv->job_ref);
	g_weak_ref_init (&self->priv->job_ref, (GObject*) job);
	g_weak_ref_clear (&self->priv->target_ref);
	g_weak_ref_init (&self->priv->target_ref, (GObject*) target);
	_tmp0_ = g_signal_connect_object ((GObject*) job, "notify::state", (GCallback) _proton_plus_widgets_tools_release_row_job_signal_binding_state_changed_g_object_notify, self, 0);
	self->priv->state_handler = _tmp0_;
	_tmp1_ = g_signal_connect_object ((GObject*) job, "notify::step", (GCallback) _proton_plus_widgets_tools_release_row_job_signal_binding_step_changed_g_object_notify, self, 0);
	self->priv->step_handler = _tmp1_;
	_tmp2_ = g_signal_connect_object (job, "progress-updated", (GCallback) _proton_plus_widgets_tools_release_row_job_signal_binding_progress_changed_proton_plus_services_install_job_progress_updated, self, 0);
	self->priv->progress_handler = _tmp2_;
	_tmp3_ = g_signal_connect_object ((GObject*) job, "notify::canceled", (GCallback) _proton_plus_widgets_tools_release_row_job_signal_binding_canceled_changed_g_object_notify, self, 0);
	self->priv->canceled_handler = _tmp3_;
	_tmp4_ = g_signal_connect_object ((GObject*) job, "notify::selected-variant-name", (GCallback) _proton_plus_widgets_tools_release_row_job_signal_binding_variant_changed_g_object_notify, self, 0);
	self->priv->variant_handler = _tmp4_;
	_tmp5_ = g_signal_connect_object ((GObject*) job, "notify::release", (GCallback) _proton_plus_widgets_tools_release_row_job_signal_binding_release_changed_g_object_notify, self, 0);
	self->priv->release_handler = _tmp5_;
	return self;
}

ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*
proton_plus_widgets_tools_release_row_job_signal_binding_new (ProtonPlusServicesInstallJob* job,
                                                              ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target)
{
	return proton_plus_widgets_tools_release_row_job_signal_binding_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_JOB_SIGNAL_BINDING, job, target);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_state_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp1_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp2_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->target_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_RELEASE_ROW_JOB_SIGNAL_TARGET (_tmp0_) ? ((ProtonPlusWidgetsToolsReleaseRowJobSignalTarget*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	target = _tmp1_;
	_tmp3_ = target;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_state_changed (_tmp2_);
	}
	_g_object_unref0 (target);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_step_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp1_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp2_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->target_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_RELEASE_ROW_JOB_SIGNAL_TARGET (_tmp0_) ? ((ProtonPlusWidgetsToolsReleaseRowJobSignalTarget*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	target = _tmp1_;
	_tmp3_ = target;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_step_changed (_tmp2_);
	}
	_g_object_unref0 (target);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_progress_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp1_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp2_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->target_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_RELEASE_ROW_JOB_SIGNAL_TARGET (_tmp0_) ? ((ProtonPlusWidgetsToolsReleaseRowJobSignalTarget*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	target = _tmp1_;
	_tmp3_ = target;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_progress_changed (_tmp2_);
	}
	_g_object_unref0 (target);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_canceled_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp1_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp2_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->target_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_RELEASE_ROW_JOB_SIGNAL_TARGET (_tmp0_) ? ((ProtonPlusWidgetsToolsReleaseRowJobSignalTarget*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	target = _tmp1_;
	_tmp3_ = target;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_canceled_changed (_tmp2_);
	}
	_g_object_unref0 (target);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_variant_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp1_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp2_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->target_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_RELEASE_ROW_JOB_SIGNAL_TARGET (_tmp0_) ? ((ProtonPlusWidgetsToolsReleaseRowJobSignalTarget*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	target = _tmp1_;
	_tmp3_ = target;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_variant_changed (_tmp2_);
	}
	_g_object_unref0 (target);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_release_changed (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* target = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp1_;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp2_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowJobSignalTarget* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = g_weak_ref_get (&self->priv->target_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_RELEASE_ROW_JOB_SIGNAL_TARGET (_tmp0_) ? ((ProtonPlusWidgetsToolsReleaseRowJobSignalTarget*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	target = _tmp1_;
	_tmp3_ = target;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		proton_plus_widgets_tools_release_row_job_signal_target_release_row_job_release_changed (_tmp2_);
	}
	_g_object_unref0 (target);
}

void
proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handlers (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	gboolean _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_connected;
	if (!_tmp0_) {
		return;
	}
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (self, &self->priv->state_handler);
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (self, &self->priv->step_handler);
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (self, &self->priv->progress_handler);
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (self, &self->priv->canceled_handler);
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (self, &self->priv->variant_handler);
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (self, &self->priv->release_handler);
	proton_plus_widgets_tools_release_row_job_signal_binding_set_connected (self, FALSE);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handler (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self,
                                                                             gulong* handler)
{
	ProtonPlusServicesInstallJob* job = NULL;
	GObject* _tmp0_;
	ProtonPlusServicesInstallJob* _tmp1_;
	ProtonPlusServicesInstallJob* _tmp2_ = NULL;
	ProtonPlusServicesInstallJob* _tmp3_;
	g_return_if_fail (self != NULL);
	if ((*handler) == ((gulong) 0)) {
		return;
	}
	_tmp0_ = g_weak_ref_get (&self->priv->job_ref);
	_tmp1_ = PROTON_PLUS_SERVICES_IS_INSTALL_JOB (_tmp0_) ? ((ProtonPlusServicesInstallJob*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	job = _tmp1_;
	_tmp3_ = job;
	_tmp2_ = _tmp3_;
	if (_tmp2_ != NULL) {
		g_signal_handler_disconnect ((GObject*) _tmp2_, *handler);
	}
	*handler = (gulong) 0;
	_g_object_unref0 (job);
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_real_dispose (GObject* base)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalBinding * self;
	self = (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding*) base;
	proton_plus_widgets_tools_release_row_job_signal_binding_disconnect_handlers (self);
	G_OBJECT_CLASS (proton_plus_widgets_tools_release_row_job_signal_binding_parent_class)->dispose (G_TYPE_CHECK_INSTANCE_CAST (self, G_TYPE_OBJECT, GObject));
}

gboolean
proton_plus_widgets_tools_release_row_job_signal_binding_get_connected (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_connected;
	return result;
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_set_connected (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding* self,
                                                                        gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_job_signal_binding_get_connected (self);
	if (old_value != value) {
		self->priv->_connected = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_job_signal_binding_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_CONNECTED_PROPERTY]);
	}
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_class_init (ProtonPlusWidgetsToolsReleaseRowJobSignalBindingClass * klass,
                                                                     gpointer klass_data)
{
	proton_plus_widgets_tools_release_row_job_signal_binding_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsToolsReleaseRowJobSignalBinding_private_offset);
	((GObjectClass *) klass)->dispose = (void (*) (GObject*)) proton_plus_widgets_tools_release_row_job_signal_binding_real_dispose;
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_tools_release_row_job_signal_binding_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_tools_release_row_job_signal_binding_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_tools_release_row_job_signal_binding_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_CONNECTED_PROPERTY, proton_plus_widgets_tools_release_row_job_signal_binding_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_CONNECTED_PROPERTY] = g_param_spec_boolean ("connected", "connected", "connected", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_instance_init (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding * self,
                                                                        gpointer klass)
{
	self->priv = proton_plus_widgets_tools_release_row_job_signal_binding_get_instance_private (self);
	self->priv->state_handler = (gulong) 0;
	self->priv->step_handler = (gulong) 0;
	self->priv->progress_handler = (gulong) 0;
	self->priv->canceled_handler = (gulong) 0;
	self->priv->variant_handler = (gulong) 0;
	self->priv->release_handler = (gulong) 0;
	self->priv->_connected = TRUE;
}

static void
proton_plus_widgets_tools_release_row_job_signal_binding_finalize (GObject * obj)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalBinding * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_JOB_SIGNAL_BINDING, ProtonPlusWidgetsToolsReleaseRowJobSignalBinding);
	g_weak_ref_clear (&self->priv->job_ref);
	g_weak_ref_clear (&self->priv->target_ref);
	G_OBJECT_CLASS (proton_plus_widgets_tools_release_row_job_signal_binding_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_tools_release_row_job_signal_binding_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsReleaseRowJobSignalBindingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_release_row_job_signal_binding_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsReleaseRowJobSignalBinding), 0, (GInstanceInitFunc) proton_plus_widgets_tools_release_row_job_signal_binding_instance_init, NULL };
	GType proton_plus_widgets_tools_release_row_job_signal_binding_type_id;
	proton_plus_widgets_tools_release_row_job_signal_binding_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsToolsReleaseRowJobSignalBinding", &g_define_type_info, 0);
	ProtonPlusWidgetsToolsReleaseRowJobSignalBinding_private_offset = g_type_add_instance_private (proton_plus_widgets_tools_release_row_job_signal_binding_type_id, sizeof (ProtonPlusWidgetsToolsReleaseRowJobSignalBindingPrivate));
	return proton_plus_widgets_tools_release_row_job_signal_binding_type_id;
}

GType
proton_plus_widgets_tools_release_row_job_signal_binding_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_release_row_job_signal_binding_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_release_row_job_signal_binding_type_id__once)) {
		GType proton_plus_widgets_tools_release_row_job_signal_binding_type_id;
		proton_plus_widgets_tools_release_row_job_signal_binding_type_id = proton_plus_widgets_tools_release_row_job_signal_binding_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_release_row_job_signal_binding_type_id__once, proton_plus_widgets_tools_release_row_job_signal_binding_type_id);
	}
	return proton_plus_widgets_tools_release_row_job_signal_binding_type_id__once;
}

static void
_vala_proton_plus_widgets_tools_release_row_job_signal_binding_get_property (GObject * object,
                                                                             guint property_id,
                                                                             GValue * value,
                                                                             GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalBinding * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_JOB_SIGNAL_BINDING, ProtonPlusWidgetsToolsReleaseRowJobSignalBinding);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_CONNECTED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_job_signal_binding_get_connected (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_tools_release_row_job_signal_binding_set_property (GObject * object,
                                                                             guint property_id,
                                                                             const GValue * value,
                                                                             GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsReleaseRowJobSignalBinding * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_JOB_SIGNAL_BINDING, ProtonPlusWidgetsToolsReleaseRowJobSignalBinding);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_JOB_SIGNAL_BINDING_CONNECTED_PROPERTY:
		proton_plus_widgets_tools_release_row_job_signal_binding_set_connected (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static GType
proton_plus_widgets_tools_release_row_primary_action_get_type_once (void)
{
	static const GEnumValue values[] = {{PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_NONE, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_NONE", "none"}, {PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_INSTALL, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_INSTALL", "install"}, {PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_RETRY, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_RETRY", "retry"}, {PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_PROGRESS, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_PROGRESS", "progress"}, {0, NULL, NULL}};
	GType proton_plus_widgets_tools_release_row_primary_action_type_id;
	proton_plus_widgets_tools_release_row_primary_action_type_id = g_enum_register_static ("ProtonPlusWidgetsToolsReleaseRowPrimaryAction", values);
	return proton_plus_widgets_tools_release_row_primary_action_type_id;
}

GType
proton_plus_widgets_tools_release_row_primary_action_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_release_row_primary_action_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_release_row_primary_action_type_id__once)) {
		GType proton_plus_widgets_tools_release_row_primary_action_type_id;
		proton_plus_widgets_tools_release_row_primary_action_type_id = proton_plus_widgets_tools_release_row_primary_action_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_release_row_primary_action_type_id__once, proton_plus_widgets_tools_release_row_primary_action_type_id);
	}
	return proton_plus_widgets_tools_release_row_primary_action_type_id__once;
}

static GType
proton_plus_widgets_tools_release_row_retry_action_get_type_once (void)
{
	static const GEnumValue values[] = {{PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_NONE, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_NONE", "none"}, {PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_INSTALL, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_INSTALL", "install"}, {PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_UPDATE, "PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_UPDATE", "update"}, {0, NULL, NULL}};
	GType proton_plus_widgets_tools_release_row_retry_action_type_id;
	proton_plus_widgets_tools_release_row_retry_action_type_id = g_enum_register_static ("ProtonPlusWidgetsToolsReleaseRowRetryAction", values);
	return proton_plus_widgets_tools_release_row_retry_action_type_id;
}

GType
proton_plus_widgets_tools_release_row_retry_action_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_release_row_retry_action_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_release_row_retry_action_type_id__once)) {
		GType proton_plus_widgets_tools_release_row_retry_action_type_id;
		proton_plus_widgets_tools_release_row_retry_action_type_id = proton_plus_widgets_tools_release_row_retry_action_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_release_row_retry_action_type_id__once, proton_plus_widgets_tools_release_row_retry_action_type_id);
	}
	return proton_plus_widgets_tools_release_row_retry_action_type_id__once;
}

static inline gpointer
proton_plus_widgets_tools_release_row_presentation_get_instance_private (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsToolsReleaseRowPresentation_private_offset);
}

ProtonPlusWidgetsToolsReleaseRowPresentation*
proton_plus_widgets_tools_release_row_presentation_evaluate (ProtonPlusServicesInstallJobState state,
                                                             ProtonPlusServicesInstallJobStep step,
                                                             gboolean supports_update_check,
                                                             gboolean has_installed_directory,
                                                             gboolean cancellation_requested,
                                                             gboolean recommended,
                                                             gboolean in_use,
                                                             gboolean action_available,
                                                             ProtonPlusWidgetsToolsReleaseRowRetryAction retry_action)
{
	ProtonPlusWidgetsToolsReleaseRowPresentation* _result_ = NULL;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp0_;
	gboolean _tmp1_ = FALSE;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp2_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp3_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp4_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp5_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp6_;
	gboolean _tmp7_ = FALSE;
	gboolean _tmp8_ = FALSE;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp9_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp10_;
	gboolean _tmp11_;
	gboolean _tmp17_ = FALSE;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp18_;
	gboolean _tmp19_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp20_;
	gboolean _tmp21_ = FALSE;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp22_;
	gboolean _tmp23_ = FALSE;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp24_;
	gboolean _tmp25_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp26_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp27_;
	gboolean _tmp28_;
	ProtonPlusWidgetsToolsReleaseRowPresentation* result;
	_tmp0_ = proton_plus_widgets_tools_release_row_presentation_new ();
	_result_ = _tmp0_;
	if (state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_UP_TO_DATE) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_UPDATE_AVAILABLE;
	}
	_tmp2_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_installed (_tmp2_, _tmp1_);
	_tmp3_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_recommended (_tmp3_, recommended);
	_tmp4_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_in_use (_tmp4_, in_use);
	_tmp5_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_update_available (_tmp5_, state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_UPDATE_AVAILABLE);
	_tmp6_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_unavailable (_tmp6_, !action_available);
	if (state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_BUSY_INSTALLING) {
		_tmp8_ = TRUE;
	} else {
		_tmp8_ = state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_BUSY_UPDATING;
	}
	if (_tmp8_) {
		_tmp7_ = TRUE;
	} else {
		_tmp7_ = state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_BUSY_REMOVING;
	}
	_tmp9_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_busy (_tmp9_, _tmp7_);
	_tmp10_ = _result_;
	_tmp11_ = _tmp10_->priv->_busy;
	if (_tmp11_) {
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp12_;
		_tmp12_ = _result_;
		proton_plus_widgets_tools_release_row_presentation_set_primary_action (_tmp12_, PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_PROGRESS);
	} else {
		if (!action_available) {
			ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp13_;
			_tmp13_ = _result_;
			proton_plus_widgets_tools_release_row_presentation_set_primary_action (_tmp13_, PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_NONE);
		} else {
			if (retry_action == PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_INSTALL) {
				ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp14_;
				_tmp14_ = _result_;
				proton_plus_widgets_tools_release_row_presentation_set_primary_action (_tmp14_, PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_RETRY);
			} else {
				switch (state) {
					case PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_NOT_INSTALLED:
					{
						ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp15_;
						_tmp15_ = _result_;
						proton_plus_widgets_tools_release_row_presentation_set_primary_action (_tmp15_, PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_INSTALL);
						break;
					}
					default:
					{
						ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp16_;
						_tmp16_ = _result_;
						proton_plus_widgets_tools_release_row_presentation_set_primary_action (_tmp16_, PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRIMARY_ACTION_NONE);
						break;
					}
				}
			}
		}
	}
	_tmp18_ = _result_;
	_tmp19_ = _tmp18_->priv->_busy;
	if (_tmp19_) {
		_tmp17_ = step != PROTON_PLUS_SERVICES_INSTALL_JOB_STEP_DOWNLOADING;
	} else {
		_tmp17_ = FALSE;
	}
	_tmp20_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_progress_indeterminate (_tmp20_, _tmp17_);
	if (state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_BUSY_INSTALLING) {
		_tmp21_ = TRUE;
	} else {
		_tmp21_ = state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_BUSY_UPDATING;
	}
	_tmp22_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_show_cancel (_tmp22_, _tmp21_);
	_tmp24_ = _result_;
	_tmp25_ = _tmp24_->priv->_show_cancel;
	if (_tmp25_) {
		_tmp23_ = !cancellation_requested;
	} else {
		_tmp23_ = FALSE;
	}
	_tmp26_ = _result_;
	proton_plus_widgets_tools_release_row_presentation_set_cancel_enabled (_tmp26_, _tmp23_);
	_tmp27_ = _result_;
	_tmp28_ = _tmp27_->priv->_busy;
	if (!_tmp28_) {
		gboolean _tmp29_ = FALSE;
		gboolean _tmp30_ = FALSE;
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp31_;
		gboolean _tmp32_;
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp36_;
		gboolean _tmp37_ = FALSE;
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp38_;
		gboolean _tmp39_;
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp40_;
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp41_;
		ProtonPlusWidgetsToolsReleaseRowPresentation* _tmp42_;
		gboolean _tmp43_;
		_tmp31_ = _result_;
		_tmp32_ = _tmp31_->priv->_installed;
		if (_tmp32_) {
			_tmp30_ = action_available;
		} else {
			_tmp30_ = FALSE;
		}
		if (_tmp30_) {
			gboolean _tmp33_ = FALSE;
			gboolean _tmp34_ = FALSE;
			if (retry_action == PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_RETRY_ACTION_UPDATE) {
				_tmp34_ = TRUE;
			} else {
				_tmp34_ = state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_UPDATE_AVAILABLE;
			}
			if (_tmp34_) {
				_tmp33_ = TRUE;
			} else {
				gboolean _tmp35_ = FALSE;
				if (state == PROTON_PLUS_SERVICES_INSTALL_JOB_STATE_UP_TO_DATE) {
					_tmp35_ = supports_update_check;
				} else {
					_tmp35_ = FALSE;
				}
				_tmp33_ = _tmp35_;
			}
			_tmp29_ = _tmp33_;
		} else {
			_tmp29_ = FALSE;
		}
		_tmp36_ = _result_;
		proton_plus_widgets_tools_release_row_presentation_set_show_update_action (_tmp36_, _tmp29_);
		_tmp38_ = _result_;
		_tmp39_ = _tmp38_->priv->_installed;
		if (_tmp39_) {
			_tmp37_ = has_installed_directory;
		} else {
			_tmp37_ = FALSE;
		}
		_tmp40_ = _result_;
		proton_plus_widgets_tools_release_row_presentation_set_show_open_folder (_tmp40_, _tmp37_);
		_tmp41_ = _result_;
		_tmp42_ = _result_;
		_tmp43_ = _tmp42_->priv->_installed;
		proton_plus_widgets_tools_release_row_presentation_set_show_delete (_tmp41_, _tmp43_);
	}
	result = _result_;
	return result;
}

ProtonPlusWidgetsToolsReleaseRowPresentation*
proton_plus_widgets_tools_release_row_presentation_construct (GType object_type)
{
	ProtonPlusWidgetsToolsReleaseRowPresentation * self = NULL;
	self = (ProtonPlusWidgetsToolsReleaseRowPresentation*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusWidgetsToolsReleaseRowPresentation*
proton_plus_widgets_tools_release_row_presentation_new (void)
{
	return proton_plus_widgets_tools_release_row_presentation_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_PRESENTATION);
}

ProtonPlusWidgetsToolsReleaseRowPrimaryAction
proton_plus_widgets_tools_release_row_presentation_get_primary_action (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	ProtonPlusWidgetsToolsReleaseRowPrimaryAction result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_primary_action;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_primary_action (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                       ProtonPlusWidgetsToolsReleaseRowPrimaryAction value)
{
	ProtonPlusWidgetsToolsReleaseRowPrimaryAction old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_primary_action (self);
	if (old_value != value) {
		self->priv->_primary_action = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PRIMARY_ACTION_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_installed (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_installed;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_installed (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                  gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_installed (self);
	if (old_value != value) {
		self->priv->_installed = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_INSTALLED_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_recommended (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_recommended;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_recommended (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_recommended (self);
	if (old_value != value) {
		self->priv->_recommended = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_RECOMMENDED_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_in_use (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_in_use;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_in_use (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                               gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_in_use (self);
	if (old_value != value) {
		self->priv->_in_use = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_IN_USE_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_update_available (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_update_available;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_update_available (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_update_available (self);
	if (old_value != value) {
		self->priv->_update_available = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UPDATE_AVAILABLE_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_unavailable (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_unavailable;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_unavailable (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_unavailable (self);
	if (old_value != value) {
		self->priv->_unavailable = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UNAVAILABLE_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_busy (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_busy;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_busy (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                             gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_busy (self);
	if (old_value != value) {
		self->priv->_busy = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_BUSY_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_progress_indeterminate (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_progress_indeterminate;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_progress_indeterminate (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                               gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_progress_indeterminate (self);
	if (old_value != value) {
		self->priv->_progress_indeterminate = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PROGRESS_INDETERMINATE_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_show_cancel (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_cancel;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_show_cancel (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_show_cancel (self);
	if (old_value != value) {
		self->priv->_show_cancel = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_CANCEL_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_cancel_enabled (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_cancel_enabled;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_cancel_enabled (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                       gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_cancel_enabled (self);
	if (old_value != value) {
		self->priv->_cancel_enabled = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_CANCEL_ENABLED_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_show_update_action (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_update_action;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_show_update_action (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                           gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_show_update_action (self);
	if (old_value != value) {
		self->priv->_show_update_action = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_UPDATE_ACTION_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_show_open_folder (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_open_folder;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_show_open_folder (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_show_open_folder (self);
	if (old_value != value) {
		self->priv->_show_open_folder = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_OPEN_FOLDER_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_show_delete (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_delete;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_set_show_delete (ProtonPlusWidgetsToolsReleaseRowPresentation* self,
                                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_release_row_presentation_get_show_delete (self);
	if (old_value != value) {
		self->priv->_show_delete = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_DELETE_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_release_row_presentation_get_show_menu (ProtonPlusWidgetsToolsReleaseRowPresentation* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = TRUE;
	return result;
}

static void
proton_plus_widgets_tools_release_row_presentation_class_init (ProtonPlusWidgetsToolsReleaseRowPresentationClass * klass,
                                                               gpointer klass_data)
{
	proton_plus_widgets_tools_release_row_presentation_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsToolsReleaseRowPresentation_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_tools_release_row_presentation_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_tools_release_row_presentation_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_tools_release_row_presentation_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PRIMARY_ACTION_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PRIMARY_ACTION_PROPERTY] = g_param_spec_enum ("primary-action", "primary-action", "primary-action", PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_PRIMARY_ACTION, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_INSTALLED_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_INSTALLED_PROPERTY] = g_param_spec_boolean ("installed", "installed", "installed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_RECOMMENDED_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_RECOMMENDED_PROPERTY] = g_param_spec_boolean ("recommended", "recommended", "recommended", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_IN_USE_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_IN_USE_PROPERTY] = g_param_spec_boolean ("in-use", "in-use", "in-use", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UPDATE_AVAILABLE_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UPDATE_AVAILABLE_PROPERTY] = g_param_spec_boolean ("update-available", "update-available", "update-available", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UNAVAILABLE_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UNAVAILABLE_PROPERTY] = g_param_spec_boolean ("unavailable", "unavailable", "unavailable", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_BUSY_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_BUSY_PROPERTY] = g_param_spec_boolean ("busy", "busy", "busy", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PROGRESS_INDETERMINATE_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PROGRESS_INDETERMINATE_PROPERTY] = g_param_spec_boolean ("progress-indeterminate", "progress-indeterminate", "progress-indeterminate", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_CANCEL_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_CANCEL_PROPERTY] = g_param_spec_boolean ("show-cancel", "show-cancel", "show-cancel", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_CANCEL_ENABLED_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_CANCEL_ENABLED_PROPERTY] = g_param_spec_boolean ("cancel-enabled", "cancel-enabled", "cancel-enabled", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_UPDATE_ACTION_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_UPDATE_ACTION_PROPERTY] = g_param_spec_boolean ("show-update-action", "show-update-action", "show-update-action", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_OPEN_FOLDER_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_OPEN_FOLDER_PROPERTY] = g_param_spec_boolean ("show-open-folder", "show-open-folder", "show-open-folder", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_DELETE_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_DELETE_PROPERTY] = g_param_spec_boolean ("show-delete", "show-delete", "show-delete", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_MENU_PROPERTY, proton_plus_widgets_tools_release_row_presentation_properties[PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_MENU_PROPERTY] = g_param_spec_boolean ("show-menu", "show-menu", "show-menu", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
proton_plus_widgets_tools_release_row_presentation_instance_init (ProtonPlusWidgetsToolsReleaseRowPresentation * self,
                                                                  gpointer klass)
{
	self->priv = proton_plus_widgets_tools_release_row_presentation_get_instance_private (self);
}

static void
proton_plus_widgets_tools_release_row_presentation_finalize (GObject * obj)
{
	ProtonPlusWidgetsToolsReleaseRowPresentation * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_PRESENTATION, ProtonPlusWidgetsToolsReleaseRowPresentation);
	G_OBJECT_CLASS (proton_plus_widgets_tools_release_row_presentation_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_tools_release_row_presentation_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsReleaseRowPresentationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_release_row_presentation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsReleaseRowPresentation), 0, (GInstanceInitFunc) proton_plus_widgets_tools_release_row_presentation_instance_init, NULL };
	GType proton_plus_widgets_tools_release_row_presentation_type_id;
	proton_plus_widgets_tools_release_row_presentation_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsToolsReleaseRowPresentation", &g_define_type_info, 0);
	ProtonPlusWidgetsToolsReleaseRowPresentation_private_offset = g_type_add_instance_private (proton_plus_widgets_tools_release_row_presentation_type_id, sizeof (ProtonPlusWidgetsToolsReleaseRowPresentationPrivate));
	return proton_plus_widgets_tools_release_row_presentation_type_id;
}

GType
proton_plus_widgets_tools_release_row_presentation_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_release_row_presentation_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_release_row_presentation_type_id__once)) {
		GType proton_plus_widgets_tools_release_row_presentation_type_id;
		proton_plus_widgets_tools_release_row_presentation_type_id = proton_plus_widgets_tools_release_row_presentation_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_release_row_presentation_type_id__once, proton_plus_widgets_tools_release_row_presentation_type_id);
	}
	return proton_plus_widgets_tools_release_row_presentation_type_id__once;
}

static void
_vala_proton_plus_widgets_tools_release_row_presentation_get_property (GObject * object,
                                                                       guint property_id,
                                                                       GValue * value,
                                                                       GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsReleaseRowPresentation * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_PRESENTATION, ProtonPlusWidgetsToolsReleaseRowPresentation);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PRIMARY_ACTION_PROPERTY:
		g_value_set_enum (value, proton_plus_widgets_tools_release_row_presentation_get_primary_action (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_INSTALLED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_installed (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_RECOMMENDED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_recommended (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_IN_USE_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_in_use (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UPDATE_AVAILABLE_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_update_available (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UNAVAILABLE_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_unavailable (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_BUSY_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_busy (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PROGRESS_INDETERMINATE_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_progress_indeterminate (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_CANCEL_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_show_cancel (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_CANCEL_ENABLED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_cancel_enabled (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_UPDATE_ACTION_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_show_update_action (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_OPEN_FOLDER_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_show_open_folder (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_DELETE_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_show_delete (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_MENU_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_release_row_presentation_get_show_menu (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_tools_release_row_presentation_set_property (GObject * object,
                                                                       guint property_id,
                                                                       const GValue * value,
                                                                       GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsReleaseRowPresentation * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW_PRESENTATION, ProtonPlusWidgetsToolsReleaseRowPresentation);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PRIMARY_ACTION_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_primary_action (self, g_value_get_enum (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_INSTALLED_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_installed (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_RECOMMENDED_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_recommended (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_IN_USE_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_in_use (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UPDATE_AVAILABLE_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_update_available (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_UNAVAILABLE_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_unavailable (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_BUSY_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_busy (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_PROGRESS_INDETERMINATE_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_progress_indeterminate (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_CANCEL_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_show_cancel (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_CANCEL_ENABLED_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_cancel_enabled (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_UPDATE_ACTION_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_show_update_action (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_OPEN_FOLDER_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_show_open_folder (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_PRESENTATION_SHOW_DELETE_PROPERTY:
		proton_plus_widgets_tools_release_row_presentation_set_show_delete (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

