/* conversation_details.c generated by valac 0.56.19, the Vala compiler
 * generated from conversation_details.vala, do not modify */

#include <glib-object.h>
#include <gio/gio.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "xmpp-vala.h"
#include <gee.h>
#include "libdino.h"
#include "dino_i18n.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
#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 DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS (dino_ui_view_model_conversation_details_get_type ())
#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetails))
#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetailsClass))
#define DINO_UI_VIEW_MODEL_IS_CONVERSATION_DETAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS))
#define DINO_UI_VIEW_MODEL_IS_CONVERSATION_DETAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS))
#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetailsClass))

typedef struct _DinoUiViewModelConversationDetails DinoUiViewModelConversationDetails;
typedef struct _DinoUiViewModelConversationDetailsClass DinoUiViewModelConversationDetailsClass;
typedef struct _DinoUiViewModelConversationDetailsPrivate DinoUiViewModelConversationDetailsPrivate;

#define DINO_UI_VIEW_MODEL_TYPE_AVATAR_PICTURE_MODEL (dino_ui_view_model_avatar_picture_model_get_type ())
#define DINO_UI_VIEW_MODEL_AVATAR_PICTURE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_VIEW_MODEL_TYPE_AVATAR_PICTURE_MODEL, DinoUiViewModelAvatarPictureModel))
#define DINO_UI_VIEW_MODEL_AVATAR_PICTURE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_VIEW_MODEL_TYPE_AVATAR_PICTURE_MODEL, DinoUiViewModelAvatarPictureModelClass))
#define DINO_UI_VIEW_MODEL_IS_AVATAR_PICTURE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_VIEW_MODEL_TYPE_AVATAR_PICTURE_MODEL))
#define DINO_UI_VIEW_MODEL_IS_AVATAR_PICTURE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_VIEW_MODEL_TYPE_AVATAR_PICTURE_MODEL))
#define DINO_UI_VIEW_MODEL_AVATAR_PICTURE_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_VIEW_MODEL_TYPE_AVATAR_PICTURE_MODEL, DinoUiViewModelAvatarPictureModelClass))

typedef struct _DinoUiViewModelAvatarPictureModel DinoUiViewModelAvatarPictureModel;
typedef struct _DinoUiViewModelAvatarPictureModelClass DinoUiViewModelAvatarPictureModelClass;

#define DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL (dino_ui_view_model_compat_avatar_picture_model_get_type ())
#define DINO_UI_VIEW_MODEL_COMPAT_AVATAR_PICTURE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL, DinoUiViewModelCompatAvatarPictureModel))
#define DINO_UI_VIEW_MODEL_COMPAT_AVATAR_PICTURE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL, DinoUiViewModelCompatAvatarPictureModelClass))
#define DINO_UI_VIEW_MODEL_IS_COMPAT_AVATAR_PICTURE_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL))
#define DINO_UI_VIEW_MODEL_IS_COMPAT_AVATAR_PICTURE_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL))
#define DINO_UI_VIEW_MODEL_COMPAT_AVATAR_PICTURE_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL, DinoUiViewModelCompatAvatarPictureModelClass))

typedef struct _DinoUiViewModelCompatAvatarPictureModel DinoUiViewModelCompatAvatarPictureModel;
typedef struct _DinoUiViewModelCompatAvatarPictureModelClass DinoUiViewModelCompatAvatarPictureModelClass;
typedef enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_DEFAULT,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_ON,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_HIGHLIGHT,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF
} DinoUiViewModelConversationDetailsNotificationSetting;

#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_SETTING (dino_ui_view_model_conversation_details_notification_setting_get_type ())
typedef enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_OFF,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_HIGHLIGHT_OFF
} DinoUiViewModelConversationDetailsNotificationOptions;

#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_OPTIONS (dino_ui_view_model_conversation_details_notification_options_get_type ())
typedef enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_USER,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_DOMAIN,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK
} DinoUiViewModelConversationDetailsBlockState;

#define DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_BLOCK_STATE (dino_ui_view_model_conversation_details_block_state_get_type ())
enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_0_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_AVATAR_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NAME_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PINNED_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_IS_DEFAULT_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_SHOW_BLOCKED_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ACCOUNT_JID_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ROOM_CONFIGURATION_ROWS_PROPERTY,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NUM_PROPERTIES
};
static GParamSpec* dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY (dino_ui_view_model_preferences_row_any_get_type ())
#define DINO_UI_VIEW_MODEL_PREFERENCES_ROW_ANY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY, DinoUiViewModelPreferencesRowAny))
#define DINO_UI_VIEW_MODEL_PREFERENCES_ROW_ANY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY, DinoUiViewModelPreferencesRowAnyClass))
#define DINO_UI_VIEW_MODEL_PREFERENCES_ROW_IS_ANY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY))
#define DINO_UI_VIEW_MODEL_PREFERENCES_ROW_IS_ANY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY))
#define DINO_UI_VIEW_MODEL_PREFERENCES_ROW_ANY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY, DinoUiViewModelPreferencesRowAnyClass))

typedef struct _DinoUiViewModelPreferencesRowAny DinoUiViewModelPreferencesRowAny;
typedef struct _DinoUiViewModelPreferencesRowAnyClass DinoUiViewModelPreferencesRowAnyClass;

#define TYPE_MUC_MEMBER_SORTER (muc_member_sorter_get_type ())
#define MUC_MEMBER_SORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MUC_MEMBER_SORTER, MucMemberSorter))
#define MUC_MEMBER_SORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MUC_MEMBER_SORTER, MucMemberSorterClass))
#define IS_MUC_MEMBER_SORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MUC_MEMBER_SORTER))
#define IS_MUC_MEMBER_SORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MUC_MEMBER_SORTER))
#define MUC_MEMBER_SORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MUC_MEMBER_SORTER, MucMemberSorterClass))

typedef struct _MucMemberSorter MucMemberSorter;
typedef struct _MucMemberSorterClass MucMemberSorterClass;
enum  {
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PIN_CHANGED_SIGNAL,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_CHANGED_SIGNAL,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_FLIPPED_SIGNAL,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_CHANGED_SIGNAL,
	DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NUM_SIGNALS
};
static guint dino_ui_view_model_conversation_details_signals[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NUM_SIGNALS] = {0};
typedef struct _MucMemberSorterPrivate MucMemberSorterPrivate;
enum  {
	MUC_MEMBER_SORTER_0_PROPERTY,
	MUC_MEMBER_SORTER_NUM_PROPERTIES
};
static GParamSpec* muc_member_sorter_properties[MUC_MEMBER_SORTER_NUM_PROPERTIES];

#define DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER (dino_ui_model_conference_member_get_type ())
#define DINO_UI_MODEL_CONFERENCE_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember))
#define DINO_UI_MODEL_CONFERENCE_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMemberClass))
#define DINO_UI_MODEL_IS_CONFERENCE_MEMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER))
#define DINO_UI_MODEL_IS_CONFERENCE_MEMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER))
#define DINO_UI_MODEL_CONFERENCE_MEMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMemberClass))

typedef struct _DinoUiModelConferenceMember DinoUiModelConferenceMember;
typedef struct _DinoUiModelConferenceMemberClass DinoUiModelConferenceMemberClass;

#define DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS (dino_ui_model_conversation_details_get_type ())
#define DINO_UI_MODEL_CONVERSATION_DETAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiModelConversationDetails))
#define DINO_UI_MODEL_CONVERSATION_DETAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiModelConversationDetailsClass))
#define DINO_UI_MODEL_IS_CONVERSATION_DETAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS))
#define DINO_UI_MODEL_IS_CONVERSATION_DETAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS))
#define DINO_UI_MODEL_CONVERSATION_DETAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiModelConversationDetailsClass))

typedef struct _DinoUiModelConversationDetails DinoUiModelConversationDetails;
typedef struct _DinoUiModelConversationDetailsClass DinoUiModelConversationDetailsClass;
typedef struct _DinoUiModelConversationDetailsPrivate DinoUiModelConversationDetailsPrivate;
enum  {
	DINO_UI_MODEL_CONVERSATION_DETAILS_0_PROPERTY,
	DINO_UI_MODEL_CONVERSATION_DETAILS_CONVERSATION_PROPERTY,
	DINO_UI_MODEL_CONVERSATION_DETAILS_DISPLAY_NAME_PROPERTY,
	DINO_UI_MODEL_CONVERSATION_DETAILS_DATA_FORM_PROPERTY,
	DINO_UI_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY,
	DINO_UI_MODEL_CONVERSATION_DETAILS_DOMAIN_BLOCKED_PROPERTY,
	DINO_UI_MODEL_CONVERSATION_DETAILS_NUM_PROPERTIES
};
static GParamSpec* dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_NUM_PROPERTIES];
#define _xmpp_xep_data_forms_data_form_unref0(var) ((var == NULL) ? NULL : (var = (xmpp_xep_data_forms_data_form_unref (var), NULL)))
#define _xmpp_jid_unref0(var) ((var == NULL) ? NULL : (var = (xmpp_jid_unref (var), NULL)))
typedef struct _DinoUiModelConferenceMemberPrivate DinoUiModelConferenceMemberPrivate;
enum  {
	DINO_UI_MODEL_CONFERENCE_MEMBER_0_PROPERTY,
	DINO_UI_MODEL_CONFERENCE_MEMBER_NAME_PROPERTY,
	DINO_UI_MODEL_CONFERENCE_MEMBER_JID_PROPERTY,
	DINO_UI_MODEL_CONFERENCE_MEMBER_AFFILIATION_PROPERTY,
	DINO_UI_MODEL_CONFERENCE_MEMBER_NUM_PROPERTIES
};
static GParamSpec* dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_NUM_PROPERTIES];

#define DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW (dino_ui_view_model_conference_member_list_row_get_type ())
#define DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRow))
#define DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRowClass))
#define DINO_UI_VIEW_MODEL_IS_CONFERENCE_MEMBER_LIST_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW))
#define DINO_UI_VIEW_MODEL_IS_CONFERENCE_MEMBER_LIST_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW))
#define DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRowClass))

typedef struct _DinoUiViewModelConferenceMemberListRow DinoUiViewModelConferenceMemberListRow;
typedef struct _DinoUiViewModelConferenceMemberListRowClass DinoUiViewModelConferenceMemberListRowClass;
typedef struct _DinoUiViewModelConferenceMemberListRowPrivate DinoUiViewModelConferenceMemberListRowPrivate;
enum  {
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_0_PROPERTY,
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AVATAR_PROPERTY,
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NAME_PROPERTY,
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_JID_PROPERTY,
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_PROPERTY,
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_STR_PROPERTY,
	DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NUM_PROPERTIES
};
static GParamSpec* dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NUM_PROPERTIES];

struct _DinoUiViewModelConversationDetails {
	GObject parent_instance;
	DinoUiViewModelConversationDetailsPrivate * priv;
	GListStore* about_rows;
	GListStore* settings_rows;
	GtkMapListModel* members;
	GtkSortListModel* members_sorted;
};

struct _DinoUiViewModelConversationDetailsClass {
	GObjectClass parent_class;
};

struct _DinoUiViewModelConversationDetailsPrivate {
	DinoUiViewModelCompatAvatarPictureModel* _avatar;
	gchar* _name;
	gboolean _pinned;
	DinoUiViewModelConversationDetailsNotificationSetting _notification;
	DinoUiViewModelConversationDetailsNotificationOptions _notification_options;
	gboolean _notification_is_default;
	gboolean _show_blocked;
	DinoUiViewModelConversationDetailsBlockState _blocked;
	gchar* _account_jid;
	GListStore* _room_configuration_rows;
};

struct _MucMemberSorter {
	GtkSorter parent_instance;
	MucMemberSorterPrivate * priv;
};

struct _MucMemberSorterClass {
	GtkSorterClass parent_class;
};

struct _DinoUiModelConversationDetails {
	GObject parent_instance;
	DinoUiModelConversationDetailsPrivate * priv;
	gchar* data_form_bak;
	GListStore* members;
};

struct _DinoUiModelConversationDetailsClass {
	GObjectClass parent_class;
};

struct _DinoUiModelConversationDetailsPrivate {
	DinoEntitiesConversation* _conversation;
	DinoModelConversationDisplayName* _display_name;
	XmppXepDataFormsDataForm* _data_form;
	gboolean _blocked;
	gboolean _domain_blocked;
};

struct _DinoUiModelConferenceMember {
	GObject parent_instance;
	DinoUiModelConferenceMemberPrivate * priv;
};

struct _DinoUiModelConferenceMemberClass {
	GObjectClass parent_class;
};

struct _DinoUiModelConferenceMemberPrivate {
	gchar* _name;
	XmppJid* _jid;
	XmppXepMucAffiliation _affiliation;
};

struct _DinoUiViewModelConferenceMemberListRow {
	GObject parent_instance;
	DinoUiViewModelConferenceMemberListRowPrivate * priv;
};

struct _DinoUiViewModelConferenceMemberListRowClass {
	GObjectClass parent_class;
};

struct _DinoUiViewModelConferenceMemberListRowPrivate {
	DinoUiViewModelCompatAvatarPictureModel* _avatar;
	gchar* _name;
	gchar* _jid;
	XmppXepMucAffiliation _affiliation;
	gchar* _affiliation_str;
};

static gint DinoUiViewModelConversationDetails_private_offset;
static gpointer dino_ui_view_model_conversation_details_parent_class = NULL;
static gpointer muc_member_sorter_parent_class = NULL;
static gint DinoUiModelConversationDetails_private_offset;
static gpointer dino_ui_model_conversation_details_parent_class = NULL;
static gint DinoUiModelConferenceMember_private_offset;
static gpointer dino_ui_model_conference_member_parent_class = NULL;
static gint DinoUiViewModelConferenceMemberListRow_private_offset;
static gpointer dino_ui_view_model_conference_member_list_row_parent_class = NULL;

VALA_EXTERN GType dino_ui_view_model_conversation_details_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiViewModelConversationDetails, g_object_unref)
VALA_EXTERN GType dino_ui_view_model_avatar_picture_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiViewModelAvatarPictureModel, g_object_unref)
VALA_EXTERN GType dino_ui_view_model_compat_avatar_picture_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiViewModelCompatAvatarPictureModel, g_object_unref)
VALA_EXTERN GType dino_ui_view_model_conversation_details_notification_setting_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType dino_ui_view_model_conversation_details_notification_options_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType dino_ui_view_model_conversation_details_block_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType dino_ui_view_model_preferences_row_any_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiViewModelPreferencesRowAny, g_object_unref)
VALA_EXTERN MucMemberSorter* muc_member_sorter_new (void);
VALA_EXTERN MucMemberSorter* muc_member_sorter_construct (GType object_type);
VALA_EXTERN GType muc_member_sorter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MucMemberSorter, g_object_unref)
VALA_EXTERN DinoUiViewModelConversationDetails* dino_ui_view_model_conversation_details_new (void);
VALA_EXTERN DinoUiViewModelConversationDetails* dino_ui_view_model_conversation_details_construct (GType object_type);
VALA_EXTERN DinoUiViewModelCompatAvatarPictureModel* dino_ui_view_model_conversation_details_get_avatar (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_avatar (DinoUiViewModelConversationDetails* self,
                                                         DinoUiViewModelCompatAvatarPictureModel* value);
VALA_EXTERN const gchar* dino_ui_view_model_conversation_details_get_name (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_name (DinoUiViewModelConversationDetails* self,
                                                       const gchar* value);
VALA_EXTERN gboolean dino_ui_view_model_conversation_details_get_pinned (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_pinned (DinoUiViewModelConversationDetails* self,
                                                         gboolean value);
VALA_EXTERN DinoUiViewModelConversationDetailsNotificationSetting dino_ui_view_model_conversation_details_get_notification (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_notification (DinoUiViewModelConversationDetails* self,
                                                               DinoUiViewModelConversationDetailsNotificationSetting value);
VALA_EXTERN DinoUiViewModelConversationDetailsNotificationOptions dino_ui_view_model_conversation_details_get_notification_options (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_notification_options (DinoUiViewModelConversationDetails* self,
                                                                       DinoUiViewModelConversationDetailsNotificationOptions value);
VALA_EXTERN gboolean dino_ui_view_model_conversation_details_get_notification_is_default (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_notification_is_default (DinoUiViewModelConversationDetails* self,
                                                                          gboolean value);
VALA_EXTERN gboolean dino_ui_view_model_conversation_details_get_show_blocked (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_show_blocked (DinoUiViewModelConversationDetails* self,
                                                               gboolean value);
VALA_EXTERN DinoUiViewModelConversationDetailsBlockState dino_ui_view_model_conversation_details_get_blocked (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_blocked (DinoUiViewModelConversationDetails* self,
                                                          DinoUiViewModelConversationDetailsBlockState value);
VALA_EXTERN const gchar* dino_ui_view_model_conversation_details_get_account_jid (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_account_jid (DinoUiViewModelConversationDetails* self,
                                                              const gchar* value);
VALA_EXTERN GListStore* dino_ui_view_model_conversation_details_get_room_configuration_rows (DinoUiViewModelConversationDetails* self);
VALA_EXTERN void dino_ui_view_model_conversation_details_set_room_configuration_rows (DinoUiViewModelConversationDetails* self,
                                                                          GListStore* value);
static GObject * dino_ui_view_model_conversation_details_constructor (GType type,
                                                               guint n_construct_properties,
                                                               GObjectConstructParam * construct_properties);
static void dino_ui_view_model_conversation_details_finalize (GObject * obj);
static GType dino_ui_view_model_conversation_details_get_type_once (void);
static void _vala_dino_ui_view_model_conversation_details_get_property (GObject * object,
                                                                 guint property_id,
                                                                 GValue * value,
                                                                 GParamSpec * pspec);
static void _vala_dino_ui_view_model_conversation_details_set_property (GObject * object,
                                                                 guint property_id,
                                                                 const GValue * value,
                                                                 GParamSpec * pspec);
static GtkOrdering muc_member_sorter_real_compare (GtkSorter* base,
                                            GObject* item1,
                                            GObject* item2);
VALA_EXTERN GType dino_ui_model_conference_member_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiModelConferenceMember, g_object_unref)
static XmppXepMucAffiliation* _vala_array_dup4 (XmppXepMucAffiliation* self,
                                         gssize length);
VALA_EXTERN XmppXepMucAffiliation dino_ui_model_conference_member_get_affiliation (DinoUiModelConferenceMember* self);
VALA_EXTERN const gchar* dino_ui_model_conference_member_get_name (DinoUiModelConferenceMember* self);
static GtkSorterOrder muc_member_sorter_real_get_order (GtkSorter* base);
static GType muc_member_sorter_get_type_once (void);
VALA_EXTERN GType dino_ui_model_conversation_details_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiModelConversationDetails, g_object_unref)
VALA_EXTERN void dino_ui_model_conversation_details_populate (DinoUiModelConversationDetails* self,
                                                  DinoStreamInteractor* stream_interactor,
                                                  DinoEntitiesConversation* conversation);
VALA_EXTERN void dino_ui_conversation_details_populate_dialog (DinoUiModelConversationDetails* model,
                                                   DinoEntitiesConversation* conversation,
                                                   DinoStreamInteractor* stream_interactor);
VALA_EXTERN DinoUiModelConferenceMember* dino_ui_model_conference_member_new (void);
VALA_EXTERN DinoUiModelConferenceMember* dino_ui_model_conference_member_construct (GType object_type);
VALA_EXTERN void dino_ui_model_conference_member_set_name (DinoUiModelConferenceMember* self,
                                               const gchar* value);
VALA_EXTERN void dino_ui_model_conference_member_set_jid (DinoUiModelConferenceMember* self,
                                              XmppJid* value);
VALA_EXTERN void dino_ui_model_conference_member_set_affiliation (DinoUiModelConferenceMember* self,
                                                      XmppXepMucAffiliation value);
VALA_EXTERN DinoUiModelConversationDetails* dino_ui_model_conversation_details_new (void);
VALA_EXTERN DinoUiModelConversationDetails* dino_ui_model_conversation_details_construct (GType object_type);
VALA_EXTERN DinoEntitiesConversation* dino_ui_model_conversation_details_get_conversation (DinoUiModelConversationDetails* self);
VALA_EXTERN void dino_ui_model_conversation_details_set_conversation (DinoUiModelConversationDetails* self,
                                                          DinoEntitiesConversation* value);
VALA_EXTERN DinoModelConversationDisplayName* dino_ui_model_conversation_details_get_display_name (DinoUiModelConversationDetails* self);
VALA_EXTERN void dino_ui_model_conversation_details_set_display_name (DinoUiModelConversationDetails* self,
                                                          DinoModelConversationDisplayName* value);
VALA_EXTERN XmppXepDataFormsDataForm* dino_ui_model_conversation_details_get_data_form (DinoUiModelConversationDetails* self);
VALA_EXTERN void dino_ui_model_conversation_details_set_data_form (DinoUiModelConversationDetails* self,
                                                       XmppXepDataFormsDataForm* value);
VALA_EXTERN gboolean dino_ui_model_conversation_details_get_blocked (DinoUiModelConversationDetails* self);
VALA_EXTERN void dino_ui_model_conversation_details_set_blocked (DinoUiModelConversationDetails* self,
                                                     gboolean value);
VALA_EXTERN gboolean dino_ui_model_conversation_details_get_domain_blocked (DinoUiModelConversationDetails* self);
VALA_EXTERN void dino_ui_model_conversation_details_set_domain_blocked (DinoUiModelConversationDetails* self,
                                                            gboolean value);
static void dino_ui_model_conversation_details_finalize (GObject * obj);
static GType dino_ui_model_conversation_details_get_type_once (void);
static void _vala_dino_ui_model_conversation_details_get_property (GObject * object,
                                                            guint property_id,
                                                            GValue * value,
                                                            GParamSpec * pspec);
static void _vala_dino_ui_model_conversation_details_set_property (GObject * object,
                                                            guint property_id,
                                                            const GValue * value,
                                                            GParamSpec * pspec);
VALA_EXTERN XmppJid* dino_ui_model_conference_member_get_jid (DinoUiModelConferenceMember* self);
static void dino_ui_model_conference_member_finalize (GObject * obj);
static GType dino_ui_model_conference_member_get_type_once (void);
static void _vala_dino_ui_model_conference_member_get_property (GObject * object,
                                                         guint property_id,
                                                         GValue * value,
                                                         GParamSpec * pspec);
static void _vala_dino_ui_model_conference_member_set_property (GObject * object,
                                                         guint property_id,
                                                         const GValue * value,
                                                         GParamSpec * pspec);
VALA_EXTERN GType dino_ui_view_model_conference_member_list_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoUiViewModelConferenceMemberListRow, g_object_unref)
static gchar* dino_ui_view_model_conference_member_list_row_affiliation_to_str (DinoUiViewModelConferenceMemberListRow* self,
                                                                         XmppXepMucAffiliation affiliation);
VALA_EXTERN DinoUiViewModelConferenceMemberListRow* dino_ui_view_model_conference_member_list_row_new (void);
VALA_EXTERN DinoUiViewModelConferenceMemberListRow* dino_ui_view_model_conference_member_list_row_construct (GType object_type);
VALA_EXTERN DinoUiViewModelCompatAvatarPictureModel* dino_ui_view_model_conference_member_list_row_get_avatar (DinoUiViewModelConferenceMemberListRow* self);
VALA_EXTERN void dino_ui_view_model_conference_member_list_row_set_avatar (DinoUiViewModelConferenceMemberListRow* self,
                                                               DinoUiViewModelCompatAvatarPictureModel* value);
VALA_EXTERN const gchar* dino_ui_view_model_conference_member_list_row_get_name (DinoUiViewModelConferenceMemberListRow* self);
VALA_EXTERN void dino_ui_view_model_conference_member_list_row_set_name (DinoUiViewModelConferenceMemberListRow* self,
                                                             const gchar* value);
VALA_EXTERN const gchar* dino_ui_view_model_conference_member_list_row_get_jid (DinoUiViewModelConferenceMemberListRow* self);
VALA_EXTERN void dino_ui_view_model_conference_member_list_row_set_jid (DinoUiViewModelConferenceMemberListRow* self,
                                                            const gchar* value);
VALA_EXTERN XmppXepMucAffiliation dino_ui_view_model_conference_member_list_row_get_affiliation (DinoUiViewModelConferenceMemberListRow* self);
VALA_EXTERN void dino_ui_view_model_conference_member_list_row_set_affiliation (DinoUiViewModelConferenceMemberListRow* self,
                                                                    XmppXepMucAffiliation value);
VALA_EXTERN const gchar* dino_ui_view_model_conference_member_list_row_get_affiliation_str (DinoUiViewModelConferenceMemberListRow* self);
VALA_EXTERN void dino_ui_view_model_conference_member_list_row_set_affiliation_str (DinoUiViewModelConferenceMemberListRow* self,
                                                                        const gchar* value);
static GObject * dino_ui_view_model_conference_member_list_row_constructor (GType type,
                                                                     guint n_construct_properties,
                                                                     GObjectConstructParam * construct_properties);
static gboolean _dino_ui_view_model_conference_member_list_row___lambda178_ (DinoUiViewModelConferenceMemberListRow* self,
                                                                      GBinding* _,
                                                                      GValue* from_value,
                                                                      GValue* to_value);
static gboolean __dino_ui_view_model_conference_member_list_row___lambda178__gbinding_transform_func (GBinding* binding,
                                                                                               GValue* from_value,
                                                                                               GValue* to_value,
                                                                                               gpointer self);
static void dino_ui_view_model_conference_member_list_row_finalize (GObject * obj);
static GType dino_ui_view_model_conference_member_list_row_get_type_once (void);
static void _vala_dino_ui_view_model_conference_member_list_row_get_property (GObject * object,
                                                                       guint property_id,
                                                                       GValue * value,
                                                                       GParamSpec * pspec);
static void _vala_dino_ui_view_model_conference_member_list_row_set_property (GObject * object,
                                                                       guint property_id,
                                                                       const GValue * value,
                                                                       GParamSpec * pspec);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
dino_ui_view_model_conversation_details_get_instance_private (DinoUiViewModelConversationDetails* self)
{
	return G_STRUCT_MEMBER_P (self, DinoUiViewModelConversationDetails_private_offset);
}

static GType
dino_ui_view_model_conversation_details_block_state_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_USER, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_USER", "user"}, {DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_DOMAIN, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_DOMAIN", "domain"}, {DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_STATE_UNBLOCK", "unblock"}, {0, NULL, NULL}};
	GType dino_ui_view_model_conversation_details_block_state_type_id;
	dino_ui_view_model_conversation_details_block_state_type_id = g_enum_register_static ("DinoUiViewModelConversationDetailsBlockState", values);
	return dino_ui_view_model_conversation_details_block_state_type_id;
}

GType
dino_ui_view_model_conversation_details_block_state_get_type (void)
{
	static volatile gsize dino_ui_view_model_conversation_details_block_state_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_view_model_conversation_details_block_state_type_id__once)) {
		GType dino_ui_view_model_conversation_details_block_state_type_id;
		dino_ui_view_model_conversation_details_block_state_type_id = dino_ui_view_model_conversation_details_block_state_get_type_once ();
		g_once_init_leave (&dino_ui_view_model_conversation_details_block_state_type_id__once, dino_ui_view_model_conversation_details_block_state_type_id);
	}
	return dino_ui_view_model_conversation_details_block_state_type_id__once;
}

static GType
dino_ui_view_model_conversation_details_notification_options_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_OFF, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_OFF", "on-off"}, {DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_HIGHLIGHT_OFF, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_ON_HIGHLIGHT_OFF", "on-highlight-off"}, {0, NULL, NULL}};
	GType dino_ui_view_model_conversation_details_notification_options_type_id;
	dino_ui_view_model_conversation_details_notification_options_type_id = g_enum_register_static ("DinoUiViewModelConversationDetailsNotificationOptions", values);
	return dino_ui_view_model_conversation_details_notification_options_type_id;
}

GType
dino_ui_view_model_conversation_details_notification_options_get_type (void)
{
	static volatile gsize dino_ui_view_model_conversation_details_notification_options_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_view_model_conversation_details_notification_options_type_id__once)) {
		GType dino_ui_view_model_conversation_details_notification_options_type_id;
		dino_ui_view_model_conversation_details_notification_options_type_id = dino_ui_view_model_conversation_details_notification_options_get_type_once ();
		g_once_init_leave (&dino_ui_view_model_conversation_details_notification_options_type_id__once, dino_ui_view_model_conversation_details_notification_options_type_id);
	}
	return dino_ui_view_model_conversation_details_notification_options_type_id__once;
}

static GType
dino_ui_view_model_conversation_details_notification_setting_get_type_once (void)
{
	static const GEnumValue values[] = {{DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_DEFAULT, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_DEFAULT", "default"}, {DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_ON, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_ON", "on"}, {DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_HIGHLIGHT, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_HIGHLIGHT", "highlight"}, {DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF, "DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_SETTING_OFF", "off"}, {0, NULL, NULL}};
	GType dino_ui_view_model_conversation_details_notification_setting_type_id;
	dino_ui_view_model_conversation_details_notification_setting_type_id = g_enum_register_static ("DinoUiViewModelConversationDetailsNotificationSetting", values);
	return dino_ui_view_model_conversation_details_notification_setting_type_id;
}

GType
dino_ui_view_model_conversation_details_notification_setting_get_type (void)
{
	static volatile gsize dino_ui_view_model_conversation_details_notification_setting_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_view_model_conversation_details_notification_setting_type_id__once)) {
		GType dino_ui_view_model_conversation_details_notification_setting_type_id;
		dino_ui_view_model_conversation_details_notification_setting_type_id = dino_ui_view_model_conversation_details_notification_setting_get_type_once ();
		g_once_init_leave (&dino_ui_view_model_conversation_details_notification_setting_type_id__once, dino_ui_view_model_conversation_details_notification_setting_type_id);
	}
	return dino_ui_view_model_conversation_details_notification_setting_type_id__once;
}

DinoUiViewModelConversationDetails*
dino_ui_view_model_conversation_details_construct (GType object_type)
{
	DinoUiViewModelConversationDetails * self = NULL;
	self = (DinoUiViewModelConversationDetails*) g_object_new (object_type, NULL);
	return self;
}

DinoUiViewModelConversationDetails*
dino_ui_view_model_conversation_details_new (void)
{
	return dino_ui_view_model_conversation_details_construct (DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS);
}

DinoUiViewModelCompatAvatarPictureModel*
dino_ui_view_model_conversation_details_get_avatar (DinoUiViewModelConversationDetails* self)
{
	DinoUiViewModelCompatAvatarPictureModel* result;
	DinoUiViewModelCompatAvatarPictureModel* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_avatar;
	result = _tmp0_;
	return result;
}

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

void
dino_ui_view_model_conversation_details_set_avatar (DinoUiViewModelConversationDetails* self,
                                                    DinoUiViewModelCompatAvatarPictureModel* value)
{
	DinoUiViewModelCompatAvatarPictureModel* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_avatar (self);
	if (old_value != value) {
		DinoUiViewModelCompatAvatarPictureModel* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_avatar);
		self->priv->_avatar = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_AVATAR_PROPERTY]);
	}
}

const gchar*
dino_ui_view_model_conversation_details_get_name (DinoUiViewModelConversationDetails* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conversation_details_set_name (DinoUiViewModelConversationDetails* self,
                                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NAME_PROPERTY]);
	}
}

gboolean
dino_ui_view_model_conversation_details_get_pinned (DinoUiViewModelConversationDetails* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_pinned;
	return result;
}

void
dino_ui_view_model_conversation_details_set_pinned (DinoUiViewModelConversationDetails* self,
                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_pinned (self);
	if (old_value != value) {
		self->priv->_pinned = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PINNED_PROPERTY]);
	}
}

DinoUiViewModelConversationDetailsNotificationSetting
dino_ui_view_model_conversation_details_get_notification (DinoUiViewModelConversationDetails* self)
{
	DinoUiViewModelConversationDetailsNotificationSetting result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_notification;
	return result;
}

void
dino_ui_view_model_conversation_details_set_notification (DinoUiViewModelConversationDetails* self,
                                                          DinoUiViewModelConversationDetailsNotificationSetting value)
{
	DinoUiViewModelConversationDetailsNotificationSetting old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_notification (self);
	if (old_value != value) {
		self->priv->_notification = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_PROPERTY]);
	}
}

DinoUiViewModelConversationDetailsNotificationOptions
dino_ui_view_model_conversation_details_get_notification_options (DinoUiViewModelConversationDetails* self)
{
	DinoUiViewModelConversationDetailsNotificationOptions result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_notification_options;
	return result;
}

void
dino_ui_view_model_conversation_details_set_notification_options (DinoUiViewModelConversationDetails* self,
                                                                  DinoUiViewModelConversationDetailsNotificationOptions value)
{
	DinoUiViewModelConversationDetailsNotificationOptions old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_notification_options (self);
	if (old_value != value) {
		self->priv->_notification_options = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_PROPERTY]);
	}
}

gboolean
dino_ui_view_model_conversation_details_get_notification_is_default (DinoUiViewModelConversationDetails* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_notification_is_default;
	return result;
}

void
dino_ui_view_model_conversation_details_set_notification_is_default (DinoUiViewModelConversationDetails* self,
                                                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_notification_is_default (self);
	if (old_value != value) {
		self->priv->_notification_is_default = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_IS_DEFAULT_PROPERTY]);
	}
}

gboolean
dino_ui_view_model_conversation_details_get_show_blocked (DinoUiViewModelConversationDetails* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_show_blocked;
	return result;
}

void
dino_ui_view_model_conversation_details_set_show_blocked (DinoUiViewModelConversationDetails* self,
                                                          gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_show_blocked (self);
	if (old_value != value) {
		self->priv->_show_blocked = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_SHOW_BLOCKED_PROPERTY]);
	}
}

DinoUiViewModelConversationDetailsBlockState
dino_ui_view_model_conversation_details_get_blocked (DinoUiViewModelConversationDetails* self)
{
	DinoUiViewModelConversationDetailsBlockState result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_blocked;
	return result;
}

void
dino_ui_view_model_conversation_details_set_blocked (DinoUiViewModelConversationDetails* self,
                                                     DinoUiViewModelConversationDetailsBlockState value)
{
	DinoUiViewModelConversationDetailsBlockState old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_blocked (self);
	if (old_value != value) {
		self->priv->_blocked = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY]);
	}
}

const gchar*
dino_ui_view_model_conversation_details_get_account_jid (DinoUiViewModelConversationDetails* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_account_jid;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conversation_details_set_account_jid (DinoUiViewModelConversationDetails* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_account_jid (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_account_jid);
		self->priv->_account_jid = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ACCOUNT_JID_PROPERTY]);
	}
}

GListStore*
dino_ui_view_model_conversation_details_get_room_configuration_rows (DinoUiViewModelConversationDetails* self)
{
	GListStore* result;
	GListStore* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_room_configuration_rows;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conversation_details_set_room_configuration_rows (DinoUiViewModelConversationDetails* self,
                                                                     GListStore* value)
{
	GListStore* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conversation_details_get_room_configuration_rows (self);
	if (old_value != value) {
		GListStore* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_room_configuration_rows);
		self->priv->_room_configuration_rows = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ROOM_CONFIGURATION_ROWS_PROPERTY]);
	}
}

static GObject *
dino_ui_view_model_conversation_details_constructor (GType type,
                                                     guint n_construct_properties,
                                                     GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	DinoUiViewModelConversationDetails * self;
	GtkSortListModel* _tmp0_;
	GListModel* _tmp1_;
	GtkMapListModel* _tmp2_;
	parent_class = G_OBJECT_CLASS (dino_ui_view_model_conversation_details_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetails);
	_tmp0_ = self->members_sorted;
	_tmp1_ = _g_object_ref0 ((GListModel*) _tmp0_);
	_tmp2_ = gtk_map_list_model_new (_tmp1_, NULL, NULL, NULL);
	_g_object_unref0 (self->members);
	self->members = _tmp2_;
	return obj;
}

static void
dino_ui_view_model_conversation_details_class_init (DinoUiViewModelConversationDetailsClass * klass,
                                                    gpointer klass_data)
{
	dino_ui_view_model_conversation_details_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DinoUiViewModelConversationDetails_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_ui_view_model_conversation_details_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_dino_ui_view_model_conversation_details_set_property;
	G_OBJECT_CLASS (klass)->constructor = dino_ui_view_model_conversation_details_constructor;
	G_OBJECT_CLASS (klass)->finalize = dino_ui_view_model_conversation_details_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_AVATAR_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_AVATAR_PROPERTY] = g_param_spec_object ("avatar", "avatar", "avatar", DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NAME_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PINNED_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PINNED_PROPERTY] = g_param_spec_boolean ("pinned", "pinned", "pinned", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_PROPERTY] = g_param_spec_enum ("notification", "notification", "notification", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_SETTING, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_PROPERTY] = g_param_spec_enum ("notification-options", "notification-options", "notification-options", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_OPTIONS, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_IS_DEFAULT_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_IS_DEFAULT_PROPERTY] = g_param_spec_boolean ("notification-is-default", "notification-is-default", "notification-is-default", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_SHOW_BLOCKED_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_SHOW_BLOCKED_PROPERTY] = g_param_spec_boolean ("show-blocked", "show-blocked", "show-blocked", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY] = g_param_spec_enum ("blocked", "blocked", "blocked", DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_BLOCK_STATE, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ACCOUNT_JID_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ACCOUNT_JID_PROPERTY] = g_param_spec_string ("account-jid", "account-jid", "account-jid", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ROOM_CONFIGURATION_ROWS_PROPERTY, dino_ui_view_model_conversation_details_properties[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ROOM_CONFIGURATION_ROWS_PROPERTY] = g_param_spec_object ("room-configuration-rows", "room-configuration-rows", "room-configuration-rows", g_list_store_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	dino_ui_view_model_conversation_details_signals[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PIN_CHANGED_SIGNAL] = g_signal_new ("pin-changed", DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	dino_ui_view_model_conversation_details_signals[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCK_CHANGED_SIGNAL] = g_signal_new ("block-changed", DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_BLOCK_STATE);
	dino_ui_view_model_conversation_details_signals[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_FLIPPED_SIGNAL] = g_signal_new ("notification-flipped", DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	dino_ui_view_model_conversation_details_signals[DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_CHANGED_SIGNAL] = g_signal_new ("notification-changed", DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_TYPE_NOTIFICATION_SETTING);
}

static void
dino_ui_view_model_conversation_details_instance_init (DinoUiViewModelConversationDetails * self,
                                                       gpointer klass)
{
	GListStore* _tmp0_;
	GListStore* _tmp1_;
	GtkMapListModel* _tmp2_;
	MucMemberSorter* _tmp3_;
	GtkSortListModel* _tmp4_;
	self->priv = dino_ui_view_model_conversation_details_get_instance_private (self);
	_tmp0_ = g_list_store_new (DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY);
	self->about_rows = _tmp0_;
	_tmp1_ = g_list_store_new (DINO_UI_VIEW_MODEL_PREFERENCES_ROW_TYPE_ANY);
	self->settings_rows = _tmp1_;
	_tmp2_ = gtk_map_list_model_new (NULL, NULL, NULL, NULL);
	self->members = _tmp2_;
	_tmp3_ = muc_member_sorter_new ();
	_tmp4_ = gtk_sort_list_model_new (NULL, (GtkSorter*) _tmp3_);
	self->members_sorted = _tmp4_;
}

static void
dino_ui_view_model_conversation_details_finalize (GObject * obj)
{
	DinoUiViewModelConversationDetails * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetails);
	_g_object_unref0 (self->priv->_avatar);
	_g_free0 (self->priv->_name);
	_g_object_unref0 (self->about_rows);
	_g_free0 (self->priv->_account_jid);
	_g_object_unref0 (self->settings_rows);
	_g_object_unref0 (self->priv->_room_configuration_rows);
	_g_object_unref0 (self->members);
	_g_object_unref0 (self->members_sorted);
	G_OBJECT_CLASS (dino_ui_view_model_conversation_details_parent_class)->finalize (obj);
}

static GType
dino_ui_view_model_conversation_details_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoUiViewModelConversationDetailsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_ui_view_model_conversation_details_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoUiViewModelConversationDetails), 0, (GInstanceInitFunc) dino_ui_view_model_conversation_details_instance_init, NULL };
	GType dino_ui_view_model_conversation_details_type_id;
	dino_ui_view_model_conversation_details_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoUiViewModelConversationDetails", &g_define_type_info, 0);
	DinoUiViewModelConversationDetails_private_offset = g_type_add_instance_private (dino_ui_view_model_conversation_details_type_id, sizeof (DinoUiViewModelConversationDetailsPrivate));
	return dino_ui_view_model_conversation_details_type_id;
}

GType
dino_ui_view_model_conversation_details_get_type (void)
{
	static volatile gsize dino_ui_view_model_conversation_details_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_view_model_conversation_details_type_id__once)) {
		GType dino_ui_view_model_conversation_details_type_id;
		dino_ui_view_model_conversation_details_type_id = dino_ui_view_model_conversation_details_get_type_once ();
		g_once_init_leave (&dino_ui_view_model_conversation_details_type_id__once, dino_ui_view_model_conversation_details_type_id);
	}
	return dino_ui_view_model_conversation_details_type_id__once;
}

static void
_vala_dino_ui_view_model_conversation_details_get_property (GObject * object,
                                                            guint property_id,
                                                            GValue * value,
                                                            GParamSpec * pspec)
{
	DinoUiViewModelConversationDetails * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetails);
	switch (property_id) {
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_AVATAR_PROPERTY:
		g_value_set_object (value, dino_ui_view_model_conversation_details_get_avatar (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NAME_PROPERTY:
		g_value_set_string (value, dino_ui_view_model_conversation_details_get_name (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PINNED_PROPERTY:
		g_value_set_boolean (value, dino_ui_view_model_conversation_details_get_pinned (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_PROPERTY:
		g_value_set_enum (value, dino_ui_view_model_conversation_details_get_notification (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_PROPERTY:
		g_value_set_enum (value, dino_ui_view_model_conversation_details_get_notification_options (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_IS_DEFAULT_PROPERTY:
		g_value_set_boolean (value, dino_ui_view_model_conversation_details_get_notification_is_default (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_SHOW_BLOCKED_PROPERTY:
		g_value_set_boolean (value, dino_ui_view_model_conversation_details_get_show_blocked (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY:
		g_value_set_enum (value, dino_ui_view_model_conversation_details_get_blocked (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ACCOUNT_JID_PROPERTY:
		g_value_set_string (value, dino_ui_view_model_conversation_details_get_account_jid (self));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ROOM_CONFIGURATION_ROWS_PROPERTY:
		g_value_set_object (value, dino_ui_view_model_conversation_details_get_room_configuration_rows (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_dino_ui_view_model_conversation_details_set_property (GObject * object,
                                                            guint property_id,
                                                            const GValue * value,
                                                            GParamSpec * pspec)
{
	DinoUiViewModelConversationDetails * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_VIEW_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiViewModelConversationDetails);
	switch (property_id) {
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_AVATAR_PROPERTY:
		dino_ui_view_model_conversation_details_set_avatar (self, g_value_get_object (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NAME_PROPERTY:
		dino_ui_view_model_conversation_details_set_name (self, g_value_get_string (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_PINNED_PROPERTY:
		dino_ui_view_model_conversation_details_set_pinned (self, g_value_get_boolean (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_PROPERTY:
		dino_ui_view_model_conversation_details_set_notification (self, g_value_get_enum (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_OPTIONS_PROPERTY:
		dino_ui_view_model_conversation_details_set_notification_options (self, g_value_get_enum (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_NOTIFICATION_IS_DEFAULT_PROPERTY:
		dino_ui_view_model_conversation_details_set_notification_is_default (self, g_value_get_boolean (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_SHOW_BLOCKED_PROPERTY:
		dino_ui_view_model_conversation_details_set_show_blocked (self, g_value_get_boolean (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY:
		dino_ui_view_model_conversation_details_set_blocked (self, g_value_get_enum (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ACCOUNT_JID_PROPERTY:
		dino_ui_view_model_conversation_details_set_account_jid (self, g_value_get_string (value));
		break;
		case DINO_UI_VIEW_MODEL_CONVERSATION_DETAILS_ROOM_CONFIGURATION_ROWS_PROPERTY:
		dino_ui_view_model_conversation_details_set_room_configuration_rows (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static XmppXepMucAffiliation*
_vala_array_dup4 (XmppXepMucAffiliation* self,
                  gssize length)
{
	if (length > 0) {
		return _vala_memdup2 (self, length * sizeof (XmppXepMucAffiliation));
	}
	return NULL;
}

static GtkOrdering
muc_member_sorter_real_compare (GtkSorter* base,
                                GObject* item1,
                                GObject* item2)
{
	MucMemberSorter * self;
	DinoUiModelConferenceMember* member_list_row1 = NULL;
	DinoUiModelConferenceMember* _tmp0_;
	DinoUiModelConferenceMember* member_list_row2 = NULL;
	DinoUiModelConferenceMember* _tmp1_;
	XmppXepMucAffiliation* test = NULL;
	XmppXepMucAffiliation* _tmp2_;
	gint test_length1;
	gint _test_size_;
	GeeArrayList* affiliation_ordering = NULL;
	XmppXepMucAffiliation* _tmp3_;
	gint _tmp3__length1;
	XmppXepMucAffiliation* _tmp4_;
	gint _tmp4__length1;
	GeeArrayList* _tmp5_;
	gint affiliation_sorting = 0;
	GeeArrayList* _tmp6_;
	DinoUiModelConferenceMember* _tmp7_;
	XmppXepMucAffiliation _tmp8_;
	XmppXepMucAffiliation _tmp9_;
	GeeArrayList* _tmp10_;
	DinoUiModelConferenceMember* _tmp11_;
	XmppXepMucAffiliation _tmp12_;
	XmppXepMucAffiliation _tmp13_;
	GtkOrdering result;
	self = (MucMemberSorter*) base;
	_tmp0_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (item1, DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember));
	member_list_row1 = _tmp0_;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (item2, DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember));
	member_list_row2 = _tmp1_;
	_tmp2_ = g_new0 (XmppXepMucAffiliation, 3);
	_tmp2_[0] = XMPP_XEP_MUC_AFFILIATION_OWNER;
	_tmp2_[1] = XMPP_XEP_MUC_AFFILIATION_ADMIN;
	_tmp2_[2] = XMPP_XEP_MUC_AFFILIATION_MEMBER;
	test = _tmp2_;
	test_length1 = 3;
	_test_size_ = test_length1;
	_tmp3_ = test;
	_tmp3__length1 = test_length1;
	_tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup4 (_tmp3_, _tmp3__length1) : _tmp3_;
	_tmp4__length1 = _tmp3__length1;
	_tmp5_ = gee_array_list_new_wrap (XMPP_XEP_MUC_TYPE_AFFILIATION, NULL, NULL, _tmp4_, _tmp4__length1, NULL, NULL, NULL);
	affiliation_ordering = _tmp5_;
	_tmp6_ = affiliation_ordering;
	_tmp7_ = member_list_row1;
	_tmp8_ = dino_ui_model_conference_member_get_affiliation (_tmp7_);
	_tmp9_ = _tmp8_;
	_tmp10_ = affiliation_ordering;
	_tmp11_ = member_list_row2;
	_tmp12_ = dino_ui_model_conference_member_get_affiliation (_tmp11_);
	_tmp13_ = _tmp12_;
	affiliation_sorting = gee_abstract_list_index_of ((GeeAbstractList*) _tmp6_, (gpointer) ((gintptr) _tmp9_)) - gee_abstract_list_index_of ((GeeAbstractList*) _tmp10_, (gpointer) ((gintptr) _tmp13_));
	if (affiliation_sorting == 0) {
		DinoUiModelConferenceMember* _tmp14_;
		const gchar* _tmp15_;
		const gchar* _tmp16_;
		DinoUiModelConferenceMember* _tmp17_;
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		_tmp14_ = member_list_row1;
		_tmp15_ = dino_ui_model_conference_member_get_name (_tmp14_);
		_tmp16_ = _tmp15_;
		_tmp17_ = member_list_row2;
		_tmp18_ = dino_ui_model_conference_member_get_name (_tmp17_);
		_tmp19_ = _tmp18_;
		result = gtk_ordering_from_cmpfunc (g_utf8_collate (_tmp16_, _tmp19_));
		_g_object_unref0 (affiliation_ordering);
		test = (g_free (test), NULL);
		_g_object_unref0 (member_list_row2);
		_g_object_unref0 (member_list_row1);
		return result;
	}
	result = gtk_ordering_from_cmpfunc (affiliation_sorting);
	_g_object_unref0 (affiliation_ordering);
	test = (g_free (test), NULL);
	_g_object_unref0 (member_list_row2);
	_g_object_unref0 (member_list_row1);
	return result;
}

static GtkSorterOrder
muc_member_sorter_real_get_order (GtkSorter* base)
{
	MucMemberSorter * self;
	GtkSorterOrder result;
	self = (MucMemberSorter*) base;
	result = GTK_SORTER_ORDER_TOTAL;
	return result;
}

MucMemberSorter*
muc_member_sorter_construct (GType object_type)
{
	MucMemberSorter * self = NULL;
	self = (MucMemberSorter*) g_object_new (object_type, NULL);
	return self;
}

MucMemberSorter*
muc_member_sorter_new (void)
{
	return muc_member_sorter_construct (TYPE_MUC_MEMBER_SORTER);
}

static void
muc_member_sorter_class_init (MucMemberSorterClass * klass,
                              gpointer klass_data)
{
	muc_member_sorter_parent_class = g_type_class_peek_parent (klass);
	((GtkSorterClass *) klass)->compare = (GtkOrdering (*) (GtkSorter*, GObject*, GObject*)) muc_member_sorter_real_compare;
	((GtkSorterClass *) klass)->get_order = (GtkSorterOrder (*) (GtkSorter*)) muc_member_sorter_real_get_order;
}

static void
muc_member_sorter_instance_init (MucMemberSorter * self,
                                 gpointer klass)
{
}

static GType
muc_member_sorter_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (MucMemberSorterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) muc_member_sorter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MucMemberSorter), 0, (GInstanceInitFunc) muc_member_sorter_instance_init, NULL };
	GType muc_member_sorter_type_id;
	muc_member_sorter_type_id = g_type_register_static (gtk_sorter_get_type (), "MucMemberSorter", &g_define_type_info, 0);
	return muc_member_sorter_type_id;
}

GType
muc_member_sorter_get_type (void)
{
	static volatile gsize muc_member_sorter_type_id__once = 0;
	if (g_once_init_enter (&muc_member_sorter_type_id__once)) {
		GType muc_member_sorter_type_id;
		muc_member_sorter_type_id = muc_member_sorter_get_type_once ();
		g_once_init_leave (&muc_member_sorter_type_id__once, muc_member_sorter_type_id);
	}
	return muc_member_sorter_type_id__once;
}

static inline gpointer
dino_ui_model_conversation_details_get_instance_private (DinoUiModelConversationDetails* self)
{
	return G_STRUCT_MEMBER_P (self, DinoUiModelConversationDetails_private_offset);
}

static gpointer
_xmpp_jid_ref0 (gpointer self)
{
	return self ? xmpp_jid_ref (self) : NULL;
}

void
dino_ui_model_conversation_details_populate (DinoUiModelConversationDetails* self,
                                             DinoStreamInteractor* stream_interactor,
                                             DinoEntitiesConversation* conversation)
{
	DinoEntitiesConversationType _tmp0_;
	DinoEntitiesConversationType _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (stream_interactor != NULL);
	g_return_if_fail (conversation != NULL);
	dino_ui_conversation_details_populate_dialog (self, conversation, stream_interactor);
	_tmp0_ = dino_entities_conversation_get_type_ (conversation);
	_tmp1_ = _tmp0_;
	if (_tmp1_ == DINO_ENTITIES_CONVERSATION_TYPE_GROUPCHAT) {
		GeeList* occupants = NULL;
		DinoModuleIdentity* _tmp2_;
		gpointer _tmp3_;
		DinoMucManager* _tmp4_;
		XmppJid* _tmp5_;
		XmppJid* _tmp6_;
		DinoEntitiesAccount* _tmp7_;
		DinoEntitiesAccount* _tmp8_;
		GeeList* _tmp9_;
		GeeList* _tmp10_;
		GeeList* _tmp11_;
		_tmp2_ = dino_muc_manager_IDENTITY;
		_tmp3_ = dino_stream_interactor_get_module (stream_interactor, DINO_TYPE_MUC_MANAGER, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp2_);
		_tmp4_ = (DinoMucManager*) _tmp3_;
		_tmp5_ = dino_entities_conversation_get_counterpart (conversation);
		_tmp6_ = _tmp5_;
		_tmp7_ = dino_entities_conversation_get_account (conversation);
		_tmp8_ = _tmp7_;
		_tmp9_ = dino_muc_manager_get_offline_members (_tmp4_, _tmp6_, _tmp8_);
		_tmp10_ = _tmp9_;
		_g_object_unref0 (_tmp4_);
		occupants = _tmp10_;
		_tmp11_ = occupants;
		if (_tmp11_ != NULL) {
			{
				GeeList* _occupant_list = NULL;
				GeeList* _tmp12_;
				gint _occupant_size = 0;
				GeeList* _tmp13_;
				gint _tmp14_;
				gint _tmp15_;
				gint _occupant_index = 0;
				_tmp12_ = occupants;
				_occupant_list = _tmp12_;
				_tmp13_ = _occupant_list;
				_tmp14_ = gee_collection_get_size ((GeeCollection*) _tmp13_);
				_tmp15_ = _tmp14_;
				_occupant_size = _tmp15_;
				_occupant_index = -1;
				while (TRUE) {
					gint _tmp16_;
					gint _tmp17_;
					XmppJid* occupant = NULL;
					GeeList* _tmp18_;
					gpointer _tmp19_;
					XmppXepMucAffiliation* affiliation = NULL;
					DinoModuleIdentity* _tmp20_;
					gpointer _tmp21_;
					DinoMucManager* _tmp22_;
					XmppJid* _tmp23_;
					XmppJid* _tmp24_;
					XmppJid* _tmp25_;
					DinoEntitiesAccount* _tmp26_;
					DinoEntitiesAccount* _tmp27_;
					XmppXepMucAffiliation* _tmp28_;
					XmppXepMucAffiliation* _tmp29_;
					GListStore* _tmp30_;
					XmppJid* _tmp31_;
					gchar* _tmp32_;
					XmppJid* _tmp33_;
					XmppJid* _tmp34_;
					XmppXepMucAffiliation* _tmp35_;
					DinoUiModelConferenceMember* _tmp36_ = NULL;
					DinoUiModelConferenceMember* _tmp37_;
					_occupant_index = _occupant_index + 1;
					_tmp16_ = _occupant_index;
					_tmp17_ = _occupant_size;
					if (!(_tmp16_ < _tmp17_)) {
						break;
					}
					_tmp18_ = _occupant_list;
					_tmp19_ = gee_list_get (_tmp18_, _occupant_index);
					occupant = (XmppJid*) _tmp19_;
					_tmp20_ = dino_muc_manager_IDENTITY;
					_tmp21_ = dino_stream_interactor_get_module (stream_interactor, DINO_TYPE_MUC_MANAGER, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp20_);
					_tmp22_ = (DinoMucManager*) _tmp21_;
					_tmp23_ = dino_entities_conversation_get_counterpart (conversation);
					_tmp24_ = _tmp23_;
					_tmp25_ = occupant;
					_tmp26_ = dino_entities_conversation_get_account (conversation);
					_tmp27_ = _tmp26_;
					_tmp28_ = dino_muc_manager_get_affiliation (_tmp22_, _tmp24_, _tmp25_, _tmp27_);
					_tmp29_ = _tmp28_;
					_g_object_unref0 (_tmp22_);
					affiliation = _tmp29_;
					_tmp30_ = self->members;
					_tmp31_ = occupant;
					_tmp32_ = xmpp_jid_to_string (_tmp31_);
					_tmp33_ = occupant;
					_tmp34_ = _xmpp_jid_ref0 (_tmp33_);
					_tmp35_ = affiliation;
					_tmp36_ = dino_ui_model_conference_member_new ();
					dino_ui_model_conference_member_set_name (_tmp36_, _tmp32_);
					_g_free0 (_tmp32_);
					dino_ui_model_conference_member_set_jid (_tmp36_, _tmp34_);
					_xmpp_jid_unref0 (_tmp34_);
					dino_ui_model_conference_member_set_affiliation (_tmp36_, *_tmp35_);
					_tmp37_ = _tmp36_;
					g_list_store_append (_tmp30_, (GObject*) _tmp37_);
					_g_object_unref0 (_tmp37_);
					_g_free0 (affiliation);
					_xmpp_jid_unref0 (occupant);
				}
			}
		}
		_g_object_unref0 (occupants);
	}
}

DinoUiModelConversationDetails*
dino_ui_model_conversation_details_construct (GType object_type)
{
	DinoUiModelConversationDetails * self = NULL;
	self = (DinoUiModelConversationDetails*) g_object_new (object_type, NULL);
	return self;
}

DinoUiModelConversationDetails*
dino_ui_model_conversation_details_new (void)
{
	return dino_ui_model_conversation_details_construct (DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS);
}

DinoEntitiesConversation*
dino_ui_model_conversation_details_get_conversation (DinoUiModelConversationDetails* self)
{
	DinoEntitiesConversation* result;
	DinoEntitiesConversation* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_conversation;
	result = _tmp0_;
	return result;
}

void
dino_ui_model_conversation_details_set_conversation (DinoUiModelConversationDetails* self,
                                                     DinoEntitiesConversation* value)
{
	DinoEntitiesConversation* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conversation_details_get_conversation (self);
	if (old_value != value) {
		DinoEntitiesConversation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_conversation);
		self->priv->_conversation = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_CONVERSATION_PROPERTY]);
	}
}

DinoModelConversationDisplayName*
dino_ui_model_conversation_details_get_display_name (DinoUiModelConversationDetails* self)
{
	DinoModelConversationDisplayName* result;
	DinoModelConversationDisplayName* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_display_name;
	result = _tmp0_;
	return result;
}

void
dino_ui_model_conversation_details_set_display_name (DinoUiModelConversationDetails* self,
                                                     DinoModelConversationDisplayName* value)
{
	DinoModelConversationDisplayName* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conversation_details_get_display_name (self);
	if (old_value != value) {
		DinoModelConversationDisplayName* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_display_name);
		self->priv->_display_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_DISPLAY_NAME_PROPERTY]);
	}
}

XmppXepDataFormsDataForm*
dino_ui_model_conversation_details_get_data_form (DinoUiModelConversationDetails* self)
{
	XmppXepDataFormsDataForm* result;
	XmppXepDataFormsDataForm* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_data_form;
	result = _tmp0_;
	return result;
}

static gpointer
_xmpp_xep_data_forms_data_form_ref0 (gpointer self)
{
	return self ? xmpp_xep_data_forms_data_form_ref (self) : NULL;
}

void
dino_ui_model_conversation_details_set_data_form (DinoUiModelConversationDetails* self,
                                                  XmppXepDataFormsDataForm* value)
{
	XmppXepDataFormsDataForm* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conversation_details_get_data_form (self);
	if (old_value != value) {
		XmppXepDataFormsDataForm* _tmp0_;
		_tmp0_ = _xmpp_xep_data_forms_data_form_ref0 (value);
		_xmpp_xep_data_forms_data_form_unref0 (self->priv->_data_form);
		self->priv->_data_form = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_DATA_FORM_PROPERTY]);
	}
}

gboolean
dino_ui_model_conversation_details_get_blocked (DinoUiModelConversationDetails* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_blocked;
	return result;
}

void
dino_ui_model_conversation_details_set_blocked (DinoUiModelConversationDetails* self,
                                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conversation_details_get_blocked (self);
	if (old_value != value) {
		self->priv->_blocked = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY]);
	}
}

gboolean
dino_ui_model_conversation_details_get_domain_blocked (DinoUiModelConversationDetails* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_domain_blocked;
	return result;
}

void
dino_ui_model_conversation_details_set_domain_blocked (DinoUiModelConversationDetails* self,
                                                       gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conversation_details_get_domain_blocked (self);
	if (old_value != value) {
		self->priv->_domain_blocked = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_DOMAIN_BLOCKED_PROPERTY]);
	}
}

static void
dino_ui_model_conversation_details_class_init (DinoUiModelConversationDetailsClass * klass,
                                               gpointer klass_data)
{
	dino_ui_model_conversation_details_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DinoUiModelConversationDetails_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_ui_model_conversation_details_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_dino_ui_model_conversation_details_set_property;
	G_OBJECT_CLASS (klass)->finalize = dino_ui_model_conversation_details_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONVERSATION_DETAILS_CONVERSATION_PROPERTY, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_CONVERSATION_PROPERTY] = g_param_spec_object ("conversation", "conversation", "conversation", DINO_ENTITIES_TYPE_CONVERSATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONVERSATION_DETAILS_DISPLAY_NAME_PROPERTY, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_DISPLAY_NAME_PROPERTY] = g_param_spec_object ("display-name", "display-name", "display-name", DINO_MODEL_TYPE_CONVERSATION_DISPLAY_NAME, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONVERSATION_DETAILS_DATA_FORM_PROPERTY, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_DATA_FORM_PROPERTY] = xmpp_xep_data_forms_param_spec_data_form ("data-form", "data-form", "data-form", XMPP_XEP_DATA_FORMS_TYPE_DATA_FORM, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY] = g_param_spec_boolean ("blocked", "blocked", "blocked", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONVERSATION_DETAILS_DOMAIN_BLOCKED_PROPERTY, dino_ui_model_conversation_details_properties[DINO_UI_MODEL_CONVERSATION_DETAILS_DOMAIN_BLOCKED_PROPERTY] = g_param_spec_boolean ("domain-blocked", "domain-blocked", "domain-blocked", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
dino_ui_model_conversation_details_instance_init (DinoUiModelConversationDetails * self,
                                                  gpointer klass)
{
	GListStore* _tmp0_;
	self->priv = dino_ui_model_conversation_details_get_instance_private (self);
	_tmp0_ = g_list_store_new (DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER);
	self->members = _tmp0_;
}

static void
dino_ui_model_conversation_details_finalize (GObject * obj)
{
	DinoUiModelConversationDetails * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiModelConversationDetails);
	_g_object_unref0 (self->priv->_conversation);
	_g_object_unref0 (self->priv->_display_name);
	_xmpp_xep_data_forms_data_form_unref0 (self->priv->_data_form);
	_g_free0 (self->data_form_bak);
	_g_object_unref0 (self->members);
	G_OBJECT_CLASS (dino_ui_model_conversation_details_parent_class)->finalize (obj);
}

static GType
dino_ui_model_conversation_details_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoUiModelConversationDetailsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_ui_model_conversation_details_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoUiModelConversationDetails), 0, (GInstanceInitFunc) dino_ui_model_conversation_details_instance_init, NULL };
	GType dino_ui_model_conversation_details_type_id;
	dino_ui_model_conversation_details_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoUiModelConversationDetails", &g_define_type_info, 0);
	DinoUiModelConversationDetails_private_offset = g_type_add_instance_private (dino_ui_model_conversation_details_type_id, sizeof (DinoUiModelConversationDetailsPrivate));
	return dino_ui_model_conversation_details_type_id;
}

GType
dino_ui_model_conversation_details_get_type (void)
{
	static volatile gsize dino_ui_model_conversation_details_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_model_conversation_details_type_id__once)) {
		GType dino_ui_model_conversation_details_type_id;
		dino_ui_model_conversation_details_type_id = dino_ui_model_conversation_details_get_type_once ();
		g_once_init_leave (&dino_ui_model_conversation_details_type_id__once, dino_ui_model_conversation_details_type_id);
	}
	return dino_ui_model_conversation_details_type_id__once;
}

static void
_vala_dino_ui_model_conversation_details_get_property (GObject * object,
                                                       guint property_id,
                                                       GValue * value,
                                                       GParamSpec * pspec)
{
	DinoUiModelConversationDetails * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiModelConversationDetails);
	switch (property_id) {
		case DINO_UI_MODEL_CONVERSATION_DETAILS_CONVERSATION_PROPERTY:
		g_value_set_object (value, dino_ui_model_conversation_details_get_conversation (self));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_DISPLAY_NAME_PROPERTY:
		g_value_set_object (value, dino_ui_model_conversation_details_get_display_name (self));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_DATA_FORM_PROPERTY:
		xmpp_xep_data_forms_value_set_data_form (value, dino_ui_model_conversation_details_get_data_form (self));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY:
		g_value_set_boolean (value, dino_ui_model_conversation_details_get_blocked (self));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_DOMAIN_BLOCKED_PROPERTY:
		g_value_set_boolean (value, dino_ui_model_conversation_details_get_domain_blocked (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_dino_ui_model_conversation_details_set_property (GObject * object,
                                                       guint property_id,
                                                       const GValue * value,
                                                       GParamSpec * pspec)
{
	DinoUiModelConversationDetails * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_MODEL_TYPE_CONVERSATION_DETAILS, DinoUiModelConversationDetails);
	switch (property_id) {
		case DINO_UI_MODEL_CONVERSATION_DETAILS_CONVERSATION_PROPERTY:
		dino_ui_model_conversation_details_set_conversation (self, g_value_get_object (value));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_DISPLAY_NAME_PROPERTY:
		dino_ui_model_conversation_details_set_display_name (self, g_value_get_object (value));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_DATA_FORM_PROPERTY:
		dino_ui_model_conversation_details_set_data_form (self, xmpp_xep_data_forms_value_get_data_form (value));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_BLOCKED_PROPERTY:
		dino_ui_model_conversation_details_set_blocked (self, g_value_get_boolean (value));
		break;
		case DINO_UI_MODEL_CONVERSATION_DETAILS_DOMAIN_BLOCKED_PROPERTY:
		dino_ui_model_conversation_details_set_domain_blocked (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
dino_ui_model_conference_member_get_instance_private (DinoUiModelConferenceMember* self)
{
	return G_STRUCT_MEMBER_P (self, DinoUiModelConferenceMember_private_offset);
}

DinoUiModelConferenceMember*
dino_ui_model_conference_member_construct (GType object_type)
{
	DinoUiModelConferenceMember * self = NULL;
	self = (DinoUiModelConferenceMember*) g_object_new (object_type, NULL);
	return self;
}

DinoUiModelConferenceMember*
dino_ui_model_conference_member_new (void)
{
	return dino_ui_model_conference_member_construct (DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER);
}

const gchar*
dino_ui_model_conference_member_get_name (DinoUiModelConferenceMember* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

void
dino_ui_model_conference_member_set_name (DinoUiModelConferenceMember* self,
                                          const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conference_member_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_NAME_PROPERTY]);
	}
}

XmppJid*
dino_ui_model_conference_member_get_jid (DinoUiModelConferenceMember* self)
{
	XmppJid* result;
	XmppJid* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_jid;
	result = _tmp0_;
	return result;
}

void
dino_ui_model_conference_member_set_jid (DinoUiModelConferenceMember* self,
                                         XmppJid* value)
{
	XmppJid* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conference_member_get_jid (self);
	if (old_value != value) {
		XmppJid* _tmp0_;
		_tmp0_ = _xmpp_jid_ref0 (value);
		_xmpp_jid_unref0 (self->priv->_jid);
		self->priv->_jid = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_JID_PROPERTY]);
	}
}

XmppXepMucAffiliation
dino_ui_model_conference_member_get_affiliation (DinoUiModelConferenceMember* self)
{
	XmppXepMucAffiliation result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_affiliation;
	return result;
}

void
dino_ui_model_conference_member_set_affiliation (DinoUiModelConferenceMember* self,
                                                 XmppXepMucAffiliation value)
{
	XmppXepMucAffiliation old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_model_conference_member_get_affiliation (self);
	if (old_value != value) {
		self->priv->_affiliation = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_AFFILIATION_PROPERTY]);
	}
}

static void
dino_ui_model_conference_member_class_init (DinoUiModelConferenceMemberClass * klass,
                                            gpointer klass_data)
{
	dino_ui_model_conference_member_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DinoUiModelConferenceMember_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_ui_model_conference_member_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_dino_ui_model_conference_member_set_property;
	G_OBJECT_CLASS (klass)->finalize = dino_ui_model_conference_member_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONFERENCE_MEMBER_NAME_PROPERTY, dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONFERENCE_MEMBER_JID_PROPERTY, dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_JID_PROPERTY] = xmpp_param_spec_jid ("jid", "jid", "jid", XMPP_TYPE_JID, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_MODEL_CONFERENCE_MEMBER_AFFILIATION_PROPERTY, dino_ui_model_conference_member_properties[DINO_UI_MODEL_CONFERENCE_MEMBER_AFFILIATION_PROPERTY] = g_param_spec_enum ("affiliation", "affiliation", "affiliation", XMPP_XEP_MUC_TYPE_AFFILIATION, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
dino_ui_model_conference_member_instance_init (DinoUiModelConferenceMember * self,
                                               gpointer klass)
{
	self->priv = dino_ui_model_conference_member_get_instance_private (self);
}

static void
dino_ui_model_conference_member_finalize (GObject * obj)
{
	DinoUiModelConferenceMember * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember);
	_g_free0 (self->priv->_name);
	_xmpp_jid_unref0 (self->priv->_jid);
	G_OBJECT_CLASS (dino_ui_model_conference_member_parent_class)->finalize (obj);
}

static GType
dino_ui_model_conference_member_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoUiModelConferenceMemberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_ui_model_conference_member_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoUiModelConferenceMember), 0, (GInstanceInitFunc) dino_ui_model_conference_member_instance_init, NULL };
	GType dino_ui_model_conference_member_type_id;
	dino_ui_model_conference_member_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoUiModelConferenceMember", &g_define_type_info, 0);
	DinoUiModelConferenceMember_private_offset = g_type_add_instance_private (dino_ui_model_conference_member_type_id, sizeof (DinoUiModelConferenceMemberPrivate));
	return dino_ui_model_conference_member_type_id;
}

GType
dino_ui_model_conference_member_get_type (void)
{
	static volatile gsize dino_ui_model_conference_member_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_model_conference_member_type_id__once)) {
		GType dino_ui_model_conference_member_type_id;
		dino_ui_model_conference_member_type_id = dino_ui_model_conference_member_get_type_once ();
		g_once_init_leave (&dino_ui_model_conference_member_type_id__once, dino_ui_model_conference_member_type_id);
	}
	return dino_ui_model_conference_member_type_id__once;
}

static void
_vala_dino_ui_model_conference_member_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec)
{
	DinoUiModelConferenceMember * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember);
	switch (property_id) {
		case DINO_UI_MODEL_CONFERENCE_MEMBER_NAME_PROPERTY:
		g_value_set_string (value, dino_ui_model_conference_member_get_name (self));
		break;
		case DINO_UI_MODEL_CONFERENCE_MEMBER_JID_PROPERTY:
		xmpp_value_set_jid (value, dino_ui_model_conference_member_get_jid (self));
		break;
		case DINO_UI_MODEL_CONFERENCE_MEMBER_AFFILIATION_PROPERTY:
		g_value_set_enum (value, dino_ui_model_conference_member_get_affiliation (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_dino_ui_model_conference_member_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec)
{
	DinoUiModelConferenceMember * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_MODEL_TYPE_CONFERENCE_MEMBER, DinoUiModelConferenceMember);
	switch (property_id) {
		case DINO_UI_MODEL_CONFERENCE_MEMBER_NAME_PROPERTY:
		dino_ui_model_conference_member_set_name (self, g_value_get_string (value));
		break;
		case DINO_UI_MODEL_CONFERENCE_MEMBER_JID_PROPERTY:
		dino_ui_model_conference_member_set_jid (self, xmpp_value_get_jid (value));
		break;
		case DINO_UI_MODEL_CONFERENCE_MEMBER_AFFILIATION_PROPERTY:
		dino_ui_model_conference_member_set_affiliation (self, g_value_get_enum (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
dino_ui_view_model_conference_member_list_row_get_instance_private (DinoUiViewModelConferenceMemberListRow* self)
{
	return G_STRUCT_MEMBER_P (self, DinoUiViewModelConferenceMemberListRow_private_offset);
}

static gchar*
dino_ui_view_model_conference_member_list_row_affiliation_to_str (DinoUiViewModelConferenceMemberListRow* self,
                                                                  XmppXepMucAffiliation affiliation)
{
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	switch (affiliation) {
		case XMPP_XEP_MUC_AFFILIATION_OWNER:
		{
			const gchar* _tmp0_;
			gchar* _tmp1_;
			_tmp0_ = dino_gettext ("Owner");
			_tmp1_ = g_strdup (_tmp0_);
			result = _tmp1_;
			return result;
		}
		case XMPP_XEP_MUC_AFFILIATION_ADMIN:
		{
			const gchar* _tmp2_;
			gchar* _tmp3_;
			_tmp2_ = dino_gettext ("Admin");
			_tmp3_ = g_strdup (_tmp2_);
			result = _tmp3_;
			return result;
		}
		case XMPP_XEP_MUC_AFFILIATION_MEMBER:
		{
			const gchar* _tmp4_;
			gchar* _tmp5_;
			_tmp4_ = dino_gettext ("Member");
			_tmp5_ = g_strdup (_tmp4_);
			result = _tmp5_;
			return result;
		}
		default:
		{
			result = NULL;
			return result;
		}
	}
}

DinoUiViewModelConferenceMemberListRow*
dino_ui_view_model_conference_member_list_row_construct (GType object_type)
{
	DinoUiViewModelConferenceMemberListRow * self = NULL;
	self = (DinoUiViewModelConferenceMemberListRow*) g_object_new (object_type, NULL);
	return self;
}

DinoUiViewModelConferenceMemberListRow*
dino_ui_view_model_conference_member_list_row_new (void)
{
	return dino_ui_view_model_conference_member_list_row_construct (DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW);
}

DinoUiViewModelCompatAvatarPictureModel*
dino_ui_view_model_conference_member_list_row_get_avatar (DinoUiViewModelConferenceMemberListRow* self)
{
	DinoUiViewModelCompatAvatarPictureModel* result;
	DinoUiViewModelCompatAvatarPictureModel* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_avatar;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conference_member_list_row_set_avatar (DinoUiViewModelConferenceMemberListRow* self,
                                                          DinoUiViewModelCompatAvatarPictureModel* value)
{
	DinoUiViewModelCompatAvatarPictureModel* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conference_member_list_row_get_avatar (self);
	if (old_value != value) {
		DinoUiViewModelCompatAvatarPictureModel* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_avatar);
		self->priv->_avatar = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AVATAR_PROPERTY]);
	}
}

const gchar*
dino_ui_view_model_conference_member_list_row_get_name (DinoUiViewModelConferenceMemberListRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conference_member_list_row_set_name (DinoUiViewModelConferenceMemberListRow* self,
                                                        const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conference_member_list_row_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NAME_PROPERTY]);
	}
}

const gchar*
dino_ui_view_model_conference_member_list_row_get_jid (DinoUiViewModelConferenceMemberListRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_jid;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conference_member_list_row_set_jid (DinoUiViewModelConferenceMemberListRow* self,
                                                       const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conference_member_list_row_get_jid (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_jid);
		self->priv->_jid = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_JID_PROPERTY]);
	}
}

XmppXepMucAffiliation
dino_ui_view_model_conference_member_list_row_get_affiliation (DinoUiViewModelConferenceMemberListRow* self)
{
	XmppXepMucAffiliation result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_affiliation;
	return result;
}

void
dino_ui_view_model_conference_member_list_row_set_affiliation (DinoUiViewModelConferenceMemberListRow* self,
                                                               XmppXepMucAffiliation value)
{
	XmppXepMucAffiliation old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conference_member_list_row_get_affiliation (self);
	if (old_value != value) {
		self->priv->_affiliation = value;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_PROPERTY]);
	}
}

const gchar*
dino_ui_view_model_conference_member_list_row_get_affiliation_str (DinoUiViewModelConferenceMemberListRow* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_affiliation_str;
	result = _tmp0_;
	return result;
}

void
dino_ui_view_model_conference_member_list_row_set_affiliation_str (DinoUiViewModelConferenceMemberListRow* self,
                                                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = dino_ui_view_model_conference_member_list_row_get_affiliation_str (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_affiliation_str);
		self->priv->_affiliation_str = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_STR_PROPERTY]);
	}
}

static gboolean
_dino_ui_view_model_conference_member_list_row___lambda178_ (DinoUiViewModelConferenceMemberListRow* self,
                                                             GBinding* _,
                                                             GValue* from_value,
                                                             GValue* to_value)
{
	GValue _tmp0_;
	gchar* _tmp1_;
	GValue _tmp2_ = {0};
	gboolean result;
	g_return_val_if_fail (_ != NULL, FALSE);
	g_return_val_if_fail (from_value != NULL, FALSE);
	g_return_val_if_fail (to_value != NULL, FALSE);
	_tmp0_ = *from_value;
	_tmp1_ = dino_ui_view_model_conference_member_list_row_affiliation_to_str (self, g_value_get_enum (&_tmp0_));
	g_value_init (&_tmp2_, G_TYPE_STRING);
	g_value_take_string (&_tmp2_, _tmp1_);
	G_IS_VALUE (to_value) ? (g_value_unset (to_value), NULL) : NULL;
	*to_value = _tmp2_;
	result = TRUE;
	return result;
}

static gboolean
__dino_ui_view_model_conference_member_list_row___lambda178__gbinding_transform_func (GBinding* binding,
                                                                                      GValue* from_value,
                                                                                      GValue* to_value,
                                                                                      gpointer self)
{
	gboolean result;
	result = _dino_ui_view_model_conference_member_list_row___lambda178_ ((DinoUiViewModelConferenceMemberListRow*) self, binding, from_value, to_value);
	return result;
}

static GObject *
dino_ui_view_model_conference_member_list_row_constructor (GType type,
                                                           guint n_construct_properties,
                                                           GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	DinoUiViewModelConferenceMemberListRow * self;
	parent_class = G_OBJECT_CLASS (dino_ui_view_model_conference_member_list_row_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRow);
	g_object_bind_property_with_closures ((GObject*) self, "affiliation", (GObject*) self, "affiliation-str", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL, (GClosure*) ((__dino_ui_view_model_conference_member_list_row___lambda178__gbinding_transform_func == NULL) ? NULL : g_cclosure_new ((GCallback) __dino_ui_view_model_conference_member_list_row___lambda178__gbinding_transform_func, g_object_ref (self), (GClosureNotify) g_object_unref)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	return obj;
}

static void
dino_ui_view_model_conference_member_list_row_class_init (DinoUiViewModelConferenceMemberListRowClass * klass,
                                                          gpointer klass_data)
{
	dino_ui_view_model_conference_member_list_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &DinoUiViewModelConferenceMemberListRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_dino_ui_view_model_conference_member_list_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_dino_ui_view_model_conference_member_list_row_set_property;
	G_OBJECT_CLASS (klass)->constructor = dino_ui_view_model_conference_member_list_row_constructor;
	G_OBJECT_CLASS (klass)->finalize = dino_ui_view_model_conference_member_list_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AVATAR_PROPERTY, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AVATAR_PROPERTY] = g_param_spec_object ("avatar", "avatar", "avatar", DINO_UI_VIEW_MODEL_TYPE_COMPAT_AVATAR_PICTURE_MODEL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NAME_PROPERTY, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_JID_PROPERTY, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_JID_PROPERTY] = g_param_spec_string ("jid", "jid", "jid", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_PROPERTY, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_PROPERTY] = g_param_spec_enum ("affiliation", "affiliation", "affiliation", XMPP_XEP_MUC_TYPE_AFFILIATION, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_STR_PROPERTY, dino_ui_view_model_conference_member_list_row_properties[DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_STR_PROPERTY] = g_param_spec_string ("affiliation-str", "affiliation-str", "affiliation-str", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
dino_ui_view_model_conference_member_list_row_instance_init (DinoUiViewModelConferenceMemberListRow * self,
                                                             gpointer klass)
{
	self->priv = dino_ui_view_model_conference_member_list_row_get_instance_private (self);
}

static void
dino_ui_view_model_conference_member_list_row_finalize (GObject * obj)
{
	DinoUiViewModelConferenceMemberListRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRow);
	_g_object_unref0 (self->priv->_avatar);
	_g_free0 (self->priv->_name);
	_g_free0 (self->priv->_jid);
	_g_free0 (self->priv->_affiliation_str);
	G_OBJECT_CLASS (dino_ui_view_model_conference_member_list_row_parent_class)->finalize (obj);
}

static GType
dino_ui_view_model_conference_member_list_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (DinoUiViewModelConferenceMemberListRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dino_ui_view_model_conference_member_list_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DinoUiViewModelConferenceMemberListRow), 0, (GInstanceInitFunc) dino_ui_view_model_conference_member_list_row_instance_init, NULL };
	GType dino_ui_view_model_conference_member_list_row_type_id;
	dino_ui_view_model_conference_member_list_row_type_id = g_type_register_static (G_TYPE_OBJECT, "DinoUiViewModelConferenceMemberListRow", &g_define_type_info, 0);
	DinoUiViewModelConferenceMemberListRow_private_offset = g_type_add_instance_private (dino_ui_view_model_conference_member_list_row_type_id, sizeof (DinoUiViewModelConferenceMemberListRowPrivate));
	return dino_ui_view_model_conference_member_list_row_type_id;
}

GType
dino_ui_view_model_conference_member_list_row_get_type (void)
{
	static volatile gsize dino_ui_view_model_conference_member_list_row_type_id__once = 0;
	if (g_once_init_enter (&dino_ui_view_model_conference_member_list_row_type_id__once)) {
		GType dino_ui_view_model_conference_member_list_row_type_id;
		dino_ui_view_model_conference_member_list_row_type_id = dino_ui_view_model_conference_member_list_row_get_type_once ();
		g_once_init_leave (&dino_ui_view_model_conference_member_list_row_type_id__once, dino_ui_view_model_conference_member_list_row_type_id);
	}
	return dino_ui_view_model_conference_member_list_row_type_id__once;
}

static void
_vala_dino_ui_view_model_conference_member_list_row_get_property (GObject * object,
                                                                  guint property_id,
                                                                  GValue * value,
                                                                  GParamSpec * pspec)
{
	DinoUiViewModelConferenceMemberListRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRow);
	switch (property_id) {
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AVATAR_PROPERTY:
		g_value_set_object (value, dino_ui_view_model_conference_member_list_row_get_avatar (self));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NAME_PROPERTY:
		g_value_set_string (value, dino_ui_view_model_conference_member_list_row_get_name (self));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_JID_PROPERTY:
		g_value_set_string (value, dino_ui_view_model_conference_member_list_row_get_jid (self));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_PROPERTY:
		g_value_set_enum (value, dino_ui_view_model_conference_member_list_row_get_affiliation (self));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_STR_PROPERTY:
		g_value_set_string (value, dino_ui_view_model_conference_member_list_row_get_affiliation_str (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_dino_ui_view_model_conference_member_list_row_set_property (GObject * object,
                                                                  guint property_id,
                                                                  const GValue * value,
                                                                  GParamSpec * pspec)
{
	DinoUiViewModelConferenceMemberListRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DINO_UI_VIEW_MODEL_TYPE_CONFERENCE_MEMBER_LIST_ROW, DinoUiViewModelConferenceMemberListRow);
	switch (property_id) {
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AVATAR_PROPERTY:
		dino_ui_view_model_conference_member_list_row_set_avatar (self, g_value_get_object (value));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_NAME_PROPERTY:
		dino_ui_view_model_conference_member_list_row_set_name (self, g_value_get_string (value));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_JID_PROPERTY:
		dino_ui_view_model_conference_member_list_row_set_jid (self, g_value_get_string (value));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_PROPERTY:
		dino_ui_view_model_conference_member_list_row_set_affiliation (self, g_value_get_enum (value));
		break;
		case DINO_UI_VIEW_MODEL_CONFERENCE_MEMBER_LIST_ROW_AFFILIATION_STR_PROPERTY:
		dino_ui_view_model_conference_member_list_row_set_affiliation_str (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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;
}

