/* accounts-editor-edit-pane.c generated by valac 0.56.3, the Vala compiler
 * generated from accounts-editor-edit-pane.vala, do not modify */

/*
 * Copyright 2018-2019 Michael Gratton <mike@vee.net>
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

#include <gtk/gtk.h>
#include <glib-object.h>
#include "geary-client-43.0.h"
#include <glib.h>
#include <gio/gio.h>
#include "geary-engine.h"
#include <gee.h>
#include <gdk/gdk.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <pango/pango.h>

#define ACCOUNTS_TYPE_EDITOR_PANE (accounts_editor_pane_get_type ())
#define ACCOUNTS_EDITOR_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane))
#define ACCOUNTS_IS_EDITOR_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_EDITOR_PANE))
#define ACCOUNTS_EDITOR_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPaneIface))

typedef struct _AccountsEditorPane AccountsEditorPane;
typedef struct _AccountsEditorPaneIface AccountsEditorPaneIface;

#define ACCOUNTS_TYPE_ACCOUNT_PANE (accounts_account_pane_get_type ())
#define ACCOUNTS_ACCOUNT_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane))
#define ACCOUNTS_IS_ACCOUNT_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_ACCOUNT_PANE))
#define ACCOUNTS_ACCOUNT_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPaneIface))

typedef struct _AccountsAccountPane AccountsAccountPane;
typedef struct _AccountsAccountPaneIface AccountsAccountPaneIface;

#define ACCOUNTS_TYPE_COMMAND_PANE (accounts_command_pane_get_type ())
#define ACCOUNTS_COMMAND_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane))
#define ACCOUNTS_IS_COMMAND_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_COMMAND_PANE))
#define ACCOUNTS_COMMAND_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPaneIface))

typedef struct _AccountsCommandPane AccountsCommandPane;
typedef struct _AccountsCommandPaneIface AccountsCommandPaneIface;

#define ACCOUNTS_TYPE_EDITOR_EDIT_PANE (accounts_editor_edit_pane_get_type ())
#define ACCOUNTS_EDITOR_EDIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane))
#define ACCOUNTS_EDITOR_EDIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPaneClass))
#define ACCOUNTS_IS_EDITOR_EDIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_EDITOR_EDIT_PANE))
#define ACCOUNTS_IS_EDITOR_EDIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_EDITOR_EDIT_PANE))
#define ACCOUNTS_EDITOR_EDIT_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPaneClass))

typedef struct _AccountsEditorEditPane AccountsEditorEditPane;
typedef struct _AccountsEditorEditPaneClass AccountsEditorEditPaneClass;
typedef struct _AccountsEditorEditPanePrivate AccountsEditorEditPanePrivate;
enum  {
	ACCOUNTS_EDITOR_EDIT_PANE_0_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_INITIAL_WIDGET_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_ACCOUNT_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_COMMANDS_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_IS_OPERATION_RUNNING_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_OP_CANCELLABLE_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_EDITOR_PROPERTY,
	ACCOUNTS_EDITOR_EDIT_PANE_NUM_PROPERTIES
};
static GParamSpec* accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block42Data Block42Data;

#define ACCOUNTS_TYPE_EDITOR_ROW (accounts_editor_row_get_type ())
#define ACCOUNTS_EDITOR_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_EDITOR_ROW, AccountsEditorRow))
#define ACCOUNTS_EDITOR_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_EDITOR_ROW, AccountsEditorRowClass))
#define ACCOUNTS_IS_EDITOR_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_EDITOR_ROW))
#define ACCOUNTS_IS_EDITOR_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_EDITOR_ROW))
#define ACCOUNTS_EDITOR_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_EDITOR_ROW, AccountsEditorRowClass))

typedef struct _AccountsEditorRow AccountsEditorRow;
typedef struct _AccountsEditorRowClass AccountsEditorRowClass;

#define ACCOUNTS_TYPE_LABELLED_EDITOR_ROW (accounts_labelled_editor_row_get_type ())
#define ACCOUNTS_LABELLED_EDITOR_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow))
#define ACCOUNTS_LABELLED_EDITOR_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRowClass))
#define ACCOUNTS_IS_LABELLED_EDITOR_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_LABELLED_EDITOR_ROW))
#define ACCOUNTS_IS_LABELLED_EDITOR_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_LABELLED_EDITOR_ROW))
#define ACCOUNTS_LABELLED_EDITOR_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRowClass))

typedef struct _AccountsLabelledEditorRow AccountsLabelledEditorRow;
typedef struct _AccountsLabelledEditorRowClass AccountsLabelledEditorRowClass;

#define ACCOUNTS_TYPE_ACCOUNT_ROW (accounts_account_row_get_type ())
#define ACCOUNTS_ACCOUNT_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow))
#define ACCOUNTS_ACCOUNT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRowClass))
#define ACCOUNTS_IS_ACCOUNT_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_ACCOUNT_ROW))
#define ACCOUNTS_IS_ACCOUNT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_ACCOUNT_ROW))
#define ACCOUNTS_ACCOUNT_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRowClass))

typedef struct _AccountsAccountRow AccountsAccountRow;
typedef struct _AccountsAccountRowClass AccountsAccountRowClass;

#define ACCOUNTS_TYPE_DISPLAY_NAME_ROW (accounts_display_name_row_get_type ())
#define ACCOUNTS_DISPLAY_NAME_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_DISPLAY_NAME_ROW, AccountsDisplayNameRow))
#define ACCOUNTS_DISPLAY_NAME_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_DISPLAY_NAME_ROW, AccountsDisplayNameRowClass))
#define ACCOUNTS_IS_DISPLAY_NAME_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_DISPLAY_NAME_ROW))
#define ACCOUNTS_IS_DISPLAY_NAME_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_DISPLAY_NAME_ROW))
#define ACCOUNTS_DISPLAY_NAME_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_DISPLAY_NAME_ROW, AccountsDisplayNameRowClass))

typedef struct _AccountsDisplayNameRow AccountsDisplayNameRow;
typedef struct _AccountsDisplayNameRowClass AccountsDisplayNameRowClass;

#define ACCOUNTS_TYPE_MAILBOX_ROW (accounts_mailbox_row_get_type ())
#define ACCOUNTS_MAILBOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRow))
#define ACCOUNTS_MAILBOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRowClass))
#define ACCOUNTS_IS_MAILBOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_MAILBOX_ROW))
#define ACCOUNTS_IS_MAILBOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_MAILBOX_ROW))
#define ACCOUNTS_MAILBOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRowClass))

typedef struct _AccountsMailboxRow AccountsMailboxRow;
typedef struct _AccountsMailboxRowClass AccountsMailboxRowClass;

#define ACCOUNTS_TYPE_ADD_ROW (accounts_add_row_get_type ())
#define ACCOUNTS_ADD_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_ADD_ROW, AccountsAddRow))
#define ACCOUNTS_ADD_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_ADD_ROW, AccountsAddRowClass))
#define ACCOUNTS_IS_ADD_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_ADD_ROW))
#define ACCOUNTS_IS_ADD_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_ADD_ROW))
#define ACCOUNTS_ADD_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_ADD_ROW, AccountsAddRowClass))

typedef struct _AccountsAddRow AccountsAddRow;
typedef struct _AccountsAddRowClass AccountsAddRowClass;

#define ACCOUNTS_TYPE_ADD_MAILBOX_ROW (accounts_add_mailbox_row_get_type ())
#define ACCOUNTS_ADD_MAILBOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_ADD_MAILBOX_ROW, AccountsAddMailboxRow))
#define ACCOUNTS_ADD_MAILBOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_ADD_MAILBOX_ROW, AccountsAddMailboxRowClass))
#define ACCOUNTS_IS_ADD_MAILBOX_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_ADD_MAILBOX_ROW))
#define ACCOUNTS_IS_ADD_MAILBOX_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_ADD_MAILBOX_ROW))
#define ACCOUNTS_ADD_MAILBOX_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_ADD_MAILBOX_ROW, AccountsAddMailboxRowClass))

typedef struct _AccountsAddMailboxRow AccountsAddMailboxRow;
typedef struct _AccountsAddMailboxRowClass AccountsAddMailboxRowClass;

#define ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND (accounts_signature_changed_command_get_type ())
#define ACCOUNTS_SIGNATURE_CHANGED_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommand))
#define ACCOUNTS_SIGNATURE_CHANGED_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommandClass))
#define ACCOUNTS_IS_SIGNATURE_CHANGED_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND))
#define ACCOUNTS_IS_SIGNATURE_CHANGED_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND))
#define ACCOUNTS_SIGNATURE_CHANGED_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommandClass))

typedef struct _AccountsSignatureChangedCommand AccountsSignatureChangedCommand;
typedef struct _AccountsSignatureChangedCommandClass AccountsSignatureChangedCommandClass;
#define _g_free0(var) (var = (g_free (var), NULL))

#define ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW (accounts_email_prefetch_row_get_type ())
#define ACCOUNTS_EMAIL_PREFETCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW, AccountsEmailPrefetchRow))
#define ACCOUNTS_EMAIL_PREFETCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW, AccountsEmailPrefetchRowClass))
#define ACCOUNTS_IS_EMAIL_PREFETCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW))
#define ACCOUNTS_IS_EMAIL_PREFETCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW))
#define ACCOUNTS_EMAIL_PREFETCH_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW, AccountsEmailPrefetchRowClass))

typedef struct _AccountsEmailPrefetchRow AccountsEmailPrefetchRow;
typedef struct _AccountsEmailPrefetchRowClass AccountsEmailPrefetchRowClass;

#define ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND (accounts_reorder_mailbox_command_get_type ())
#define ACCOUNTS_REORDER_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, AccountsReorderMailboxCommand))
#define ACCOUNTS_REORDER_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, AccountsReorderMailboxCommandClass))
#define ACCOUNTS_IS_REORDER_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND))
#define ACCOUNTS_IS_REORDER_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND))
#define ACCOUNTS_REORDER_MAILBOX_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, AccountsReorderMailboxCommandClass))

typedef struct _AccountsReorderMailboxCommand AccountsReorderMailboxCommand;
typedef struct _AccountsReorderMailboxCommandClass AccountsReorderMailboxCommandClass;

#define ACCOUNTS_TYPE_EDITOR_SERVERS_PANE (accounts_editor_servers_pane_get_type ())
#define ACCOUNTS_EDITOR_SERVERS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_EDITOR_SERVERS_PANE, AccountsEditorServersPane))
#define ACCOUNTS_EDITOR_SERVERS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_EDITOR_SERVERS_PANE, AccountsEditorServersPaneClass))
#define ACCOUNTS_IS_EDITOR_SERVERS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_EDITOR_SERVERS_PANE))
#define ACCOUNTS_IS_EDITOR_SERVERS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_EDITOR_SERVERS_PANE))
#define ACCOUNTS_EDITOR_SERVERS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_EDITOR_SERVERS_PANE, AccountsEditorServersPaneClass))

typedef struct _AccountsEditorServersPane AccountsEditorServersPane;
typedef struct _AccountsEditorServersPaneClass AccountsEditorServersPaneClass;
typedef struct _Block43Data Block43Data;
typedef struct _AccountsEditorRowPrivate AccountsEditorRowPrivate;
typedef struct _AccountsLabelledEditorRowPrivate AccountsLabelledEditorRowPrivate;
typedef struct _AccountsAccountRowPrivate AccountsAccountRowPrivate;
typedef struct _AccountsDisplayNameRowPrivate AccountsDisplayNameRowPrivate;
enum  {
	ACCOUNTS_DISPLAY_NAME_ROW_0_PROPERTY,
	ACCOUNTS_DISPLAY_NAME_ROW_NUM_PROPERTIES
};
static GParamSpec* accounts_display_name_row_properties[ACCOUNTS_DISPLAY_NAME_ROW_NUM_PROPERTIES];
typedef struct _AccountsAddRowPrivate AccountsAddRowPrivate;
typedef struct _AccountsAddMailboxRowPrivate AccountsAddMailboxRowPrivate;
enum  {
	ACCOUNTS_ADD_MAILBOX_ROW_0_PROPERTY,
	ACCOUNTS_ADD_MAILBOX_ROW_NUM_PROPERTIES
};
static GParamSpec* accounts_add_mailbox_row_properties[ACCOUNTS_ADD_MAILBOX_ROW_NUM_PROPERTIES];

#define ACCOUNTS_TYPE_EDITOR_POPOVER (accounts_editor_popover_get_type ())
#define ACCOUNTS_EDITOR_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover))
#define ACCOUNTS_EDITOR_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopoverClass))
#define ACCOUNTS_IS_EDITOR_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_EDITOR_POPOVER))
#define ACCOUNTS_IS_EDITOR_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_EDITOR_POPOVER))
#define ACCOUNTS_EDITOR_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopoverClass))

typedef struct _AccountsEditorPopover AccountsEditorPopover;
typedef struct _AccountsEditorPopoverClass AccountsEditorPopoverClass;

#define ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER (accounts_mailbox_editor_popover_get_type ())
#define ACCOUNTS_MAILBOX_EDITOR_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, AccountsMailboxEditorPopover))
#define ACCOUNTS_MAILBOX_EDITOR_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, AccountsMailboxEditorPopoverClass))
#define ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER))
#define ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER))
#define ACCOUNTS_MAILBOX_EDITOR_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, AccountsMailboxEditorPopoverClass))

typedef struct _AccountsMailboxEditorPopover AccountsMailboxEditorPopover;
typedef struct _AccountsMailboxEditorPopoverClass AccountsMailboxEditorPopoverClass;
typedef struct _Block44Data Block44Data;

#define ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND (accounts_append_mailbox_command_get_type ())
#define ACCOUNTS_APPEND_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, AccountsAppendMailboxCommand))
#define ACCOUNTS_APPEND_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, AccountsAppendMailboxCommandClass))
#define ACCOUNTS_IS_APPEND_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND))
#define ACCOUNTS_IS_APPEND_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND))
#define ACCOUNTS_APPEND_MAILBOX_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, AccountsAppendMailboxCommandClass))

typedef struct _AccountsAppendMailboxCommand AccountsAppendMailboxCommand;
typedef struct _AccountsAppendMailboxCommandClass AccountsAppendMailboxCommandClass;
typedef struct _AccountsMailboxRowPrivate AccountsMailboxRowPrivate;
enum  {
	ACCOUNTS_MAILBOX_ROW_0_PROPERTY,
	ACCOUNTS_MAILBOX_ROW_NUM_PROPERTIES
};
static GParamSpec* accounts_mailbox_row_properties[ACCOUNTS_MAILBOX_ROW_NUM_PROPERTIES];
typedef struct _Block45Data Block45Data;

#define ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND (accounts_update_mailbox_command_get_type ())
#define ACCOUNTS_UPDATE_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, AccountsUpdateMailboxCommand))
#define ACCOUNTS_UPDATE_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, AccountsUpdateMailboxCommandClass))
#define ACCOUNTS_IS_UPDATE_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND))
#define ACCOUNTS_IS_UPDATE_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND))
#define ACCOUNTS_UPDATE_MAILBOX_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, AccountsUpdateMailboxCommandClass))

typedef struct _AccountsUpdateMailboxCommand AccountsUpdateMailboxCommand;
typedef struct _AccountsUpdateMailboxCommandClass AccountsUpdateMailboxCommandClass;

#define ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND (accounts_remove_mailbox_command_get_type ())
#define ACCOUNTS_REMOVE_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, AccountsRemoveMailboxCommand))
#define ACCOUNTS_REMOVE_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, AccountsRemoveMailboxCommandClass))
#define ACCOUNTS_IS_REMOVE_MAILBOX_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND))
#define ACCOUNTS_IS_REMOVE_MAILBOX_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND))
#define ACCOUNTS_REMOVE_MAILBOX_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, AccountsRemoveMailboxCommandClass))

typedef struct _AccountsRemoveMailboxCommand AccountsRemoveMailboxCommand;
typedef struct _AccountsRemoveMailboxCommandClass AccountsRemoveMailboxCommandClass;
typedef struct _AccountsEditorPopoverPrivate AccountsEditorPopoverPrivate;
typedef struct _AccountsMailboxEditorPopoverPrivate AccountsMailboxEditorPopoverPrivate;
enum  {
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_0_PROPERTY,
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_DISPLAY_NAME_PROPERTY,
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_ADDRESS_PROPERTY,
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_NUM_PROPERTIES
};
static GParamSpec* accounts_mailbox_editor_popover_properties[ACCOUNTS_MAILBOX_EDITOR_POPOVER_NUM_PROPERTIES];
enum  {
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_ACTIVATED_SIGNAL,
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_REMOVE_CLICKED_SIGNAL,
	ACCOUNTS_MAILBOX_EDITOR_POPOVER_NUM_SIGNALS
};
static guint accounts_mailbox_editor_popover_signals[ACCOUNTS_MAILBOX_EDITOR_POPOVER_NUM_SIGNALS] = {0};
typedef struct _AccountsAppendMailboxCommandPrivate AccountsAppendMailboxCommandPrivate;
enum  {
	ACCOUNTS_APPEND_MAILBOX_COMMAND_0_PROPERTY,
	ACCOUNTS_APPEND_MAILBOX_COMMAND_NUM_PROPERTIES
};
static GParamSpec* accounts_append_mailbox_command_properties[ACCOUNTS_APPEND_MAILBOX_COMMAND_NUM_PROPERTIES];
typedef struct _AccountsAppendMailboxCommandExecuteData AccountsAppendMailboxCommandExecuteData;
typedef struct _AccountsAppendMailboxCommandUndoData AccountsAppendMailboxCommandUndoData;
typedef struct _AccountsUpdateMailboxCommandPrivate AccountsUpdateMailboxCommandPrivate;
enum  {
	ACCOUNTS_UPDATE_MAILBOX_COMMAND_0_PROPERTY,
	ACCOUNTS_UPDATE_MAILBOX_COMMAND_NUM_PROPERTIES
};
static GParamSpec* accounts_update_mailbox_command_properties[ACCOUNTS_UPDATE_MAILBOX_COMMAND_NUM_PROPERTIES];
typedef struct _AccountsUpdateMailboxCommandExecuteData AccountsUpdateMailboxCommandExecuteData;
typedef struct _AccountsUpdateMailboxCommandUndoData AccountsUpdateMailboxCommandUndoData;
typedef struct _AccountsReorderMailboxCommandPrivate AccountsReorderMailboxCommandPrivate;
enum  {
	ACCOUNTS_REORDER_MAILBOX_COMMAND_0_PROPERTY,
	ACCOUNTS_REORDER_MAILBOX_COMMAND_NUM_PROPERTIES
};
static GParamSpec* accounts_reorder_mailbox_command_properties[ACCOUNTS_REORDER_MAILBOX_COMMAND_NUM_PROPERTIES];
typedef struct _AccountsReorderMailboxCommandExecuteData AccountsReorderMailboxCommandExecuteData;
typedef struct _AccountsReorderMailboxCommandUndoData AccountsReorderMailboxCommandUndoData;
typedef struct _AccountsRemoveMailboxCommandPrivate AccountsRemoveMailboxCommandPrivate;
enum  {
	ACCOUNTS_REMOVE_MAILBOX_COMMAND_0_PROPERTY,
	ACCOUNTS_REMOVE_MAILBOX_COMMAND_NUM_PROPERTIES
};
static GParamSpec* accounts_remove_mailbox_command_properties[ACCOUNTS_REMOVE_MAILBOX_COMMAND_NUM_PROPERTIES];
typedef struct _AccountsRemoveMailboxCommandExecuteData AccountsRemoveMailboxCommandExecuteData;
typedef struct _AccountsRemoveMailboxCommandUndoData AccountsRemoveMailboxCommandUndoData;
typedef struct _AccountsSignatureChangedCommandPrivate AccountsSignatureChangedCommandPrivate;
enum  {
	ACCOUNTS_SIGNATURE_CHANGED_COMMAND_0_PROPERTY,
	ACCOUNTS_SIGNATURE_CHANGED_COMMAND_NUM_PROPERTIES
};
static GParamSpec* accounts_signature_changed_command_properties[ACCOUNTS_SIGNATURE_CHANGED_COMMAND_NUM_PROPERTIES];
typedef struct _AccountsSignatureChangedCommandExecuteData AccountsSignatureChangedCommandExecuteData;
typedef struct _AccountsSignatureChangedCommandUndoData AccountsSignatureChangedCommandUndoData;
typedef struct _AccountsSignatureChangedCommandRedoData AccountsSignatureChangedCommandRedoData;
typedef struct _AccountsEmailPrefetchRowPrivate AccountsEmailPrefetchRowPrivate;
enum  {
	ACCOUNTS_EMAIL_PREFETCH_ROW_0_PROPERTY,
	ACCOUNTS_EMAIL_PREFETCH_ROW_NUM_PROPERTIES
};
static GParamSpec* accounts_email_prefetch_row_properties[ACCOUNTS_EMAIL_PREFETCH_ROW_NUM_PROPERTIES];
typedef struct _Block46Data Block46Data;

struct _AccountsEditorPaneIface {
	GTypeInterface parent_iface;
	AccountsEditor* (*get_editor) (AccountsEditorPane* self);
	void (*set_editor) (AccountsEditorPane* self, AccountsEditor* value);
	GtkWidget* (*get_initial_widget) (AccountsEditorPane* self);
	gboolean (*get_is_operation_running) (AccountsEditorPane* self);
	void (*set_is_operation_running) (AccountsEditorPane* self, gboolean value);
	GCancellable* (*get_op_cancellable) (AccountsEditorPane* self);
	void (*set_op_cancellable) (AccountsEditorPane* self, GCancellable* value);
	GtkHeaderBar* (*get_header) (AccountsEditorPane* self);
};

struct _AccountsAccountPaneIface {
	GTypeInterface parent_iface;
	GearyAccountInformation* (*get_account) (AccountsAccountPane* self);
	void (*set_account) (AccountsAccountPane* self, GearyAccountInformation* value);
};

struct _AccountsCommandPaneIface {
	GTypeInterface parent_iface;
	ApplicationCommandStack* (*get_commands) (AccountsCommandPane* self);
	void (*set_commands) (AccountsCommandPane* self, ApplicationCommandStack* value);
	void (*undo) (AccountsCommandPane* self);
	void (*redo) (AccountsCommandPane* self);
	void (*command_executed) (AccountsCommandPane* self);
};

struct _AccountsEditorEditPane {
	GtkGrid parent_instance;
	AccountsEditorEditPanePrivate * priv;
};

struct _AccountsEditorEditPaneClass {
	GtkGridClass parent_class;
};

struct _AccountsEditorEditPanePrivate {
	GearyAccountInformation* _account;
	ApplicationCommandStack* _commands;
	gboolean _is_operation_running;
	GCancellable* _op_cancellable;
	AccountsEditor* _editor;
	GtkHeaderBar* header;
	GtkGrid* pane_content;
	GtkAdjustment* pane_adjustment;
	GtkListBox* details_list;
	GtkListBox* senders_list;
	GtkFrame* signature_frame;
	AccountsSignatureWebView* signature_preview;
	gboolean signature_changed;
	GtkListBox* settings_list;
	GtkButton* undo_button;
	GtkButton* remove_button;
};

struct _Block42Data {
	int _ref_count_;
	AccountsEditorEditPane* self;
	GearyAccountInformation* account;
};

struct _Block43Data {
	int _ref_count_;
	AccountsEditorEditPane* self;
	GtkMessageDialog* dialog;
};

struct _AccountsEditorRow {
	GtkListBoxRow parent_instance;
	AccountsEditorRowPrivate * priv;
};

struct _AccountsEditorRowClass {
	GtkListBoxRowClass parent_class;
	void (*activated) (AccountsEditorRow* self, gconstpointer pane);
};

struct _AccountsLabelledEditorRow {
	AccountsEditorRow parent_instance;
	AccountsLabelledEditorRowPrivate * priv;
};

struct _AccountsLabelledEditorRowClass {
	AccountsEditorRowClass parent_class;
};

struct _AccountsAccountRow {
	AccountsLabelledEditorRow parent_instance;
	AccountsAccountRowPrivate * priv;
};

struct _AccountsAccountRowClass {
	AccountsLabelledEditorRowClass parent_class;
	void (*update) (AccountsAccountRow* self);
};

struct _AccountsDisplayNameRow {
	AccountsAccountRow parent_instance;
	AccountsDisplayNameRowPrivate * priv;
};

struct _AccountsDisplayNameRowClass {
	AccountsAccountRowClass parent_class;
};

struct _AccountsDisplayNameRowPrivate {
	ComponentsEntryUndo* value_undo;
	ApplicationCommandStack* commands;
	GCancellable* cancellable;
};

struct _AccountsAddRow {
	AccountsEditorRow parent_instance;
	AccountsAddRowPrivate * priv;
};

struct _AccountsAddRowClass {
	AccountsEditorRowClass parent_class;
};

struct _AccountsAddMailboxRow {
	AccountsAddRow parent_instance;
	AccountsAddMailboxRowPrivate * priv;
};

struct _AccountsAddMailboxRowClass {
	AccountsAddRowClass parent_class;
};

struct _Block44Data {
	int _ref_count_;
	AccountsAddMailboxRow* self;
	AccountsMailboxEditorPopover* popover;
	AccountsEditorEditPane* pane;
};

struct _AccountsMailboxRow {
	AccountsAccountRow parent_instance;
	GearyRFC822MailboxAddress* mailbox;
	AccountsMailboxRowPrivate * priv;
};

struct _AccountsMailboxRowClass {
	AccountsAccountRowClass parent_class;
};

struct _Block45Data {
	int _ref_count_;
	AccountsMailboxRow* self;
	AccountsMailboxEditorPopover* popover;
	AccountsEditorEditPane* pane;
};

struct _AccountsEditorPopover {
	GtkPopover parent_instance;
	GtkWidget* popup_focus;
	AccountsEditorPopoverPrivate * priv;
};

struct _AccountsEditorPopoverClass {
	GtkPopoverClass parent_class;
};

struct _AccountsMailboxEditorPopover {
	AccountsEditorPopover parent_instance;
	AccountsMailboxEditorPopoverPrivate * priv;
};

struct _AccountsMailboxEditorPopoverClass {
	AccountsEditorPopoverClass parent_class;
};

struct _AccountsMailboxEditorPopoverPrivate {
	gchar* _display_name;
	gchar* _address;
	GtkEntry* name_entry;
	ComponentsEntryUndo* name_undo;
	GtkEntry* address_entry;
	ComponentsEntryUndo* address_undo;
	ComponentsEmailValidator* address_validator;
	GtkButton* remove_button;
};

struct _AccountsAppendMailboxCommand {
	ApplicationCommand parent_instance;
	AccountsAppendMailboxCommandPrivate * priv;
};

struct _AccountsAppendMailboxCommandClass {
	ApplicationCommandClass parent_class;
};

struct _AccountsAppendMailboxCommandPrivate {
	GtkListBox* senders_list;
	AccountsMailboxRow* new_row;
	gint mailbox_index;
};

struct _AccountsAppendMailboxCommandExecuteData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsAppendMailboxCommand* self;
	GCancellable* cancellable;
	GtkListBox* _tmp0_;
	AccountsMailboxRow* _tmp1_;
	AccountsMailboxRow* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GearyAccountInformation* _tmp4_;
	AccountsMailboxRow* _tmp5_;
	GearyRFC822MailboxAddress* _tmp6_;
	AccountsMailboxRow* _tmp7_;
	GearyAccountInformation* _tmp8_;
	GearyAccountInformation* _tmp9_;
};

struct _AccountsAppendMailboxCommandUndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsAppendMailboxCommand* self;
	GCancellable* cancellable;
	GtkListBox* _tmp0_;
	AccountsMailboxRow* _tmp1_;
	AccountsMailboxRow* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GearyAccountInformation* _tmp4_;
	AccountsMailboxRow* _tmp5_;
	GearyRFC822MailboxAddress* _tmp6_;
	AccountsMailboxRow* _tmp7_;
	GearyAccountInformation* _tmp8_;
	GearyAccountInformation* _tmp9_;
};

struct _AccountsUpdateMailboxCommand {
	ApplicationCommand parent_instance;
	AccountsUpdateMailboxCommandPrivate * priv;
};

struct _AccountsUpdateMailboxCommandClass {
	ApplicationCommandClass parent_class;
};

struct _AccountsUpdateMailboxCommandPrivate {
	AccountsMailboxRow* row;
	GearyRFC822MailboxAddress* new_mailbox;
	GearyRFC822MailboxAddress* old_mailbox;
	gint mailbox_index;
};

struct _AccountsUpdateMailboxCommandExecuteData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsUpdateMailboxCommand* self;
	GCancellable* cancellable;
	AccountsMailboxRow* _tmp0_;
	GearyRFC822MailboxAddress* _tmp1_;
	GearyRFC822MailboxAddress* _tmp2_;
	AccountsMailboxRow* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyAccountInformation* _tmp5_;
	GearyRFC822MailboxAddress* _tmp6_;
	AccountsMailboxRow* _tmp7_;
	GearyAccountInformation* _tmp8_;
	GearyAccountInformation* _tmp9_;
};

struct _AccountsUpdateMailboxCommandUndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsUpdateMailboxCommand* self;
	GCancellable* cancellable;
	AccountsMailboxRow* _tmp0_;
	GearyRFC822MailboxAddress* _tmp1_;
	GearyRFC822MailboxAddress* _tmp2_;
	AccountsMailboxRow* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyAccountInformation* _tmp5_;
	GearyRFC822MailboxAddress* _tmp6_;
	AccountsMailboxRow* _tmp7_;
	GearyAccountInformation* _tmp8_;
	GearyAccountInformation* _tmp9_;
};

struct _AccountsReorderMailboxCommand {
	ApplicationCommand parent_instance;
	AccountsReorderMailboxCommandPrivate * priv;
};

struct _AccountsReorderMailboxCommandClass {
	ApplicationCommandClass parent_class;
};

struct _AccountsReorderMailboxCommandPrivate {
	AccountsMailboxRow* source;
	gint source_index;
	gint target_index;
	GearyAccountInformation* account;
	GtkListBox* list;
};

struct _AccountsReorderMailboxCommandExecuteData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsReorderMailboxCommand* self;
	GCancellable* cancellable;
};

struct _AccountsReorderMailboxCommandUndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsReorderMailboxCommand* self;
	GCancellable* cancellable;
};

struct _AccountsRemoveMailboxCommand {
	ApplicationCommand parent_instance;
	AccountsRemoveMailboxCommandPrivate * priv;
};

struct _AccountsRemoveMailboxCommandClass {
	ApplicationCommandClass parent_class;
};

struct _AccountsRemoveMailboxCommandPrivate {
	AccountsMailboxRow* row;
	GearyRFC822MailboxAddress* mailbox;
	gint mailbox_index;
	GtkListBox* list;
};

struct _AccountsRemoveMailboxCommandExecuteData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsRemoveMailboxCommand* self;
	GCancellable* cancellable;
	GtkListBox* _tmp0_;
	AccountsMailboxRow* _tmp1_;
	AccountsMailboxRow* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyRFC822MailboxAddress* _tmp5_;
	AccountsMailboxRow* _tmp6_;
	GearyAccountInformation* _tmp7_;
	GearyAccountInformation* _tmp8_;
};

struct _AccountsRemoveMailboxCommandUndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsRemoveMailboxCommand* self;
	GCancellable* cancellable;
	GtkListBox* _tmp0_;
	AccountsMailboxRow* _tmp1_;
	AccountsMailboxRow* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyRFC822MailboxAddress* _tmp5_;
	AccountsMailboxRow* _tmp6_;
	GearyAccountInformation* _tmp7_;
	GearyAccountInformation* _tmp8_;
};

struct _AccountsSignatureChangedCommand {
	ApplicationCommand parent_instance;
	AccountsSignatureChangedCommandPrivate * priv;
};

struct _AccountsSignatureChangedCommandClass {
	ApplicationCommandClass parent_class;
};

struct _AccountsSignatureChangedCommandPrivate {
	ComponentsWebView* signature_view;
	GearyAccountInformation* account;
	gchar* old_value;
	gboolean old_enabled;
	gchar* new_value;
	gboolean new_enabled;
};

struct _AccountsSignatureChangedCommandExecuteData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsSignatureChangedCommand* self;
	GCancellable* cancellable;
	gchar* _tmp0_;
	ComponentsWebView* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	GError* _inner_error0_;
};

struct _AccountsSignatureChangedCommandUndoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsSignatureChangedCommand* self;
	GCancellable* cancellable;
	ComponentsWebView* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
};

struct _AccountsSignatureChangedCommandRedoData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	AccountsSignatureChangedCommand* self;
	GCancellable* cancellable;
	ComponentsWebView* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
};

struct _AccountsEmailPrefetchRow {
	AccountsAccountRow parent_instance;
	AccountsEmailPrefetchRowPrivate * priv;
};

struct _AccountsEmailPrefetchRowClass {
	AccountsAccountRowClass parent_class;
};

struct _Block46Data {
	int _ref_count_;
	AccountsEmailPrefetchRow* self;
	AccountsEditorEditPane* pane;
};

static gint AccountsEditorEditPane_private_offset;
static gpointer accounts_editor_edit_pane_parent_class = NULL;
static AccountsEditorPaneIface * accounts_editor_edit_pane_accounts_editor_pane_parent_iface = NULL;
static AccountsAccountPaneIface * accounts_editor_edit_pane_accounts_account_pane_parent_iface = NULL;
static AccountsCommandPaneIface * accounts_editor_edit_pane_accounts_command_pane_parent_iface = NULL;
static gint AccountsDisplayNameRow_private_offset;
static gpointer accounts_display_name_row_parent_class = NULL;
static gpointer accounts_add_mailbox_row_parent_class = NULL;
static gpointer accounts_mailbox_row_parent_class = NULL;
static gint AccountsMailboxEditorPopover_private_offset;
static gpointer accounts_mailbox_editor_popover_parent_class = NULL;
static gint AccountsAppendMailboxCommand_private_offset;
static gpointer accounts_append_mailbox_command_parent_class = NULL;
static gint AccountsUpdateMailboxCommand_private_offset;
static gpointer accounts_update_mailbox_command_parent_class = NULL;
static gint AccountsReorderMailboxCommand_private_offset;
static gpointer accounts_reorder_mailbox_command_parent_class = NULL;
static gint AccountsRemoveMailboxCommand_private_offset;
static gpointer accounts_remove_mailbox_command_parent_class = NULL;
static gint AccountsSignatureChangedCommand_private_offset;
static gpointer accounts_signature_changed_command_parent_class = NULL;
static gpointer accounts_email_prefetch_row_parent_class = NULL;

VALA_EXTERN GType accounts_editor_pane_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_account_pane_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_command_pane_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_editor_edit_pane_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void accounts_account_pane_disconnect_account_signals (AccountsAccountPane* self);
VALA_EXTERN void accounts_command_pane_disconnect_command_signals (AccountsCommandPane* self);
VALA_EXTERN AccountsEditorEditPane* accounts_editor_edit_pane_new (AccountsEditor* editor,
                                                       GearyAccountInformation* account);
VALA_EXTERN AccountsEditorEditPane* accounts_editor_edit_pane_construct (GType object_type,
                                                             AccountsEditor* editor,
                                                             GearyAccountInformation* account);
static Block42Data* block42_data_ref (Block42Data* _data42_);
static void block42_data_unref (void * _userdata_);
VALA_EXTERN void accounts_editor_pane_set_editor (AccountsEditorPane* self,
                                      AccountsEditor* value);
VALA_EXTERN void accounts_account_pane_set_account (AccountsAccountPane* self,
                                        GearyAccountInformation* value);
VALA_EXTERN void accounts_editor_seperator_headers (GtkListBoxRow* row,
                                        GtkListBoxRow* first);
static void _accounts_editor_seperator_headers_gtk_list_box_update_header_func (GtkListBoxRow* row,
                                                                         GtkListBoxRow* before,
                                                                         gpointer self);
VALA_EXTERN ApplicationCommandStack* accounts_command_pane_get_commands (AccountsCommandPane* self);
VALA_EXTERN GCancellable* accounts_editor_pane_get_op_cancellable (AccountsEditorPane* self);
VALA_EXTERN AccountsDisplayNameRow* accounts_display_name_row_new (GearyAccountInformation* account,
                                                       ApplicationCommandStack* commands,
                                                       GCancellable* cancellable);
VALA_EXTERN AccountsDisplayNameRow* accounts_display_name_row_construct (GType object_type,
                                                             GearyAccountInformation* account,
                                                             ApplicationCommandStack* commands,
                                                             GCancellable* cancellable);
VALA_EXTERN GType accounts_editor_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_labelled_editor_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_account_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_display_name_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_mailbox_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AccountsMailboxRow* accounts_editor_edit_pane_new_mailbox_row (AccountsEditorEditPane* self,
                                                               GearyRFC822MailboxAddress* sender);
VALA_EXTERN AccountsAddMailboxRow* accounts_add_mailbox_row_new (void);
VALA_EXTERN AccountsAddMailboxRow* accounts_add_mailbox_row_construct (GType object_type);
VALA_EXTERN GType accounts_add_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_add_mailbox_row_get_type (void) G_GNUC_CONST ;
static void __lambda84_ (AccountsEditorEditPane* self);
static void ___lambda84__components_web_view_content_loaded (ComponentsWebView* _sender,
                                                      gpointer self);
static void __lambda85_ (AccountsEditorEditPane* self);
static void ___lambda85__components_web_view_document_modified (ComponentsWebView* _sender,
                                                         gpointer self);
static gboolean __lambda86_ (Block42Data* _data42_);
VALA_EXTERN AccountsSignatureChangedCommand* accounts_signature_changed_command_new (ComponentsWebView* signature_view,
                                                                         GearyAccountInformation* account);
VALA_EXTERN AccountsSignatureChangedCommand* accounts_signature_changed_command_construct (GType object_type,
                                                                               ComponentsWebView* signature_view,
                                                                               GearyAccountInformation* account);
VALA_EXTERN GType accounts_signature_changed_command_get_type (void) G_GNUC_CONST ;
static gboolean ___lambda86__gtk_widget_focus_out_event (GtkWidget* _sender,
                                                  GdkEventFocus* event,
                                                  gpointer self);
VALA_EXTERN AccountsEmailPrefetchRow* accounts_email_prefetch_row_new (AccountsEditorEditPane* pane);
VALA_EXTERN AccountsEmailPrefetchRow* accounts_email_prefetch_row_construct (GType object_type,
                                                                 AccountsEditorEditPane* pane);
VALA_EXTERN GType accounts_email_prefetch_row_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AccountsEditor* accounts_editor_pane_get_editor (AccountsEditorPane* self);
VALA_EXTERN AccountsManager* accounts_editor_get_accounts (AccountsEditor* self);
VALA_EXTERN void accounts_account_pane_connect_account_signals (AccountsAccountPane* self);
VALA_EXTERN void accounts_command_pane_connect_command_signals (AccountsCommandPane* self);
VALA_EXTERN gchar* accounts_editor_edit_pane_get_default_name (AccountsEditorEditPane* self);
VALA_EXTERN GearyAccountInformation* accounts_account_pane_get_account (AccountsAccountPane* self);
static GtkHeaderBar* accounts_editor_edit_pane_real_get_header (AccountsEditorPane* base);
VALA_EXTERN AccountsMailboxRow* accounts_mailbox_row_new (GearyAccountInformation* account,
                                              GearyRFC822MailboxAddress* mailbox);
VALA_EXTERN AccountsMailboxRow* accounts_mailbox_row_construct (GType object_type,
                                                    GearyAccountInformation* account,
                                                    GearyRFC822MailboxAddress* mailbox);
static void accounts_editor_edit_pane_on_sender_row_moved (AccountsEditorEditPane* self,
                                                    AccountsEditorRow* source,
                                                    gint new_position);
static void _accounts_editor_edit_pane_on_sender_row_moved_accounts_editor_row_move_to (AccountsEditorRow* _sender,
                                                                                 gint new_position,
                                                                                 gpointer self);
static void accounts_editor_edit_pane_on_sender_row_dropped (AccountsEditorEditPane* self,
                                                      AccountsEditorRow* source,
                                                      AccountsEditorRow* target);
static void _accounts_editor_edit_pane_on_sender_row_dropped_accounts_editor_row_dropped (AccountsEditorRow* _sender,
                                                                                   AccountsEditorRow* target,
                                                                                   gpointer self);
static void accounts_editor_edit_pane_real_command_executed (AccountsCommandPane* base);
VALA_EXTERN void accounts_editor_update_command_actions (AccountsEditor* self);
VALA_EXTERN AccountsReorderMailboxCommand* accounts_reorder_mailbox_command_new (AccountsMailboxRow* source,
                                                                     gint target_index,
                                                                     GearyAccountInformation* account,
                                                                     GtkListBox* list);
VALA_EXTERN AccountsReorderMailboxCommand* accounts_reorder_mailbox_command_construct (GType object_type,
                                                                           AccountsMailboxRow* source,
                                                                           gint target_index,
                                                                           GearyAccountInformation* account,
                                                                           GtkListBox* list);
VALA_EXTERN GType accounts_reorder_mailbox_command_get_type (void) G_GNUC_CONST ;
static void accounts_editor_edit_pane_on_setting_activated (AccountsEditorEditPane* self,
                                                     GtkListBoxRow* row);
VALA_EXTERN void accounts_editor_row_activated (AccountsEditorRow* self,
                                    gconstpointer pane);
static void _accounts_editor_edit_pane_on_setting_activated_gtk_list_box_row_activated (GtkListBox* _sender,
                                                                                 GtkListBoxRow* row,
                                                                                 gpointer self);
static void accounts_editor_edit_pane_on_server_settings_clicked (AccountsEditorEditPane* self);
VALA_EXTERN void accounts_editor_push (AccountsEditor* self,
                           AccountsEditorPane* pane);
VALA_EXTERN AccountsEditorServersPane* accounts_editor_servers_pane_new (AccountsEditor* editor,
                                                             GearyAccountInformation* account);
VALA_EXTERN AccountsEditorServersPane* accounts_editor_servers_pane_construct (GType object_type,
                                                                   AccountsEditor* editor,
                                                                   GearyAccountInformation* account);
VALA_EXTERN GType accounts_editor_servers_pane_get_type (void) G_GNUC_CONST ;
static void _accounts_editor_edit_pane_on_server_settings_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                               gpointer self);
static void accounts_editor_edit_pane_on_remove_account_clicked (AccountsEditorEditPane* self);
static Block43Data* block43_data_ref (Block43Data* _data43_);
static void block43_data_unref (void * _userdata_);
static void ___lambda93_ (Block43Data* _data43_,
                   gint response_id);
VALA_EXTERN void accounts_editor_remove_account (AccountsEditor* self,
                                     GearyAccountInformation* account);
static void ____lambda93__gtk_dialog_response (GtkDialog* _sender,
                                        gint response_id,
                                        gpointer self);
static void _accounts_editor_edit_pane_on_remove_account_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                              gpointer self);
static void accounts_editor_edit_pane_on_back_button_clicked (AccountsEditorEditPane* self);
VALA_EXTERN void accounts_editor_pop (AccountsEditor* self);
static void _accounts_editor_edit_pane_on_back_button_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                           gpointer self);
static gboolean accounts_editor_edit_pane_on_list_keynav_failed (AccountsEditorEditPane* self,
                                                          GtkWidget* widget,
                                                          GtkDirectionType direction);
static gboolean _accounts_editor_edit_pane_on_list_keynav_failed_gtk_widget_keynav_failed (GtkWidget* _sender,
                                                                                    GtkDirectionType direction,
                                                                                    gpointer self);
VALA_EXTERN GtkHeaderBar* accounts_editor_pane_get_header (AccountsEditorPane* self);
VALA_EXTERN GtkWidget* accounts_editor_pane_get_initial_widget (AccountsEditorPane* self);
VALA_EXTERN gboolean accounts_editor_pane_get_is_operation_running (AccountsEditorPane* self);
VALA_EXTERN void accounts_editor_pane_set_is_operation_running (AccountsEditorPane* self,
                                                    gboolean value);
VALA_EXTERN void accounts_editor_pane_set_op_cancellable (AccountsEditorPane* self,
                                              GCancellable* value);
VALA_EXTERN void accounts_command_pane_command_executed (AccountsCommandPane* self);
VALA_EXTERN void accounts_command_pane_set_commands (AccountsCommandPane* self,
                                         ApplicationCommandStack* value);
static void accounts_editor_edit_pane_finalize (GObject * obj);
static GType accounts_editor_edit_pane_get_type_once (void);
static void _vala_accounts_editor_edit_pane_get_property (GObject * object,
                                                   guint property_id,
                                                   GValue * value,
                                                   GParamSpec * pspec);
static void _vala_accounts_editor_edit_pane_set_property (GObject * object,
                                                   guint property_id,
                                                   const GValue * value,
                                                   GParamSpec * pspec);
VALA_EXTERN void accounts_account_row_update (AccountsAccountRow* self);
VALA_EXTERN AccountsAccountRow* accounts_account_row_construct (GType object_type,
                                                    GType panetype_type,
                                                    GBoxedCopyFunc panetype_dup_func,
                                                    GDestroyNotify panetype_destroy_func,
                                                    GType v_type,
                                                    GBoxedCopyFunc v_dup_func,
                                                    GDestroyNotify v_destroy_func,
                                                    GearyAccountInformation* account,
                                                    const gchar* label,
                                                    gconstpointer value);
VALA_EXTERN gconstpointer accounts_labelled_editor_row_get_value (AccountsLabelledEditorRow* self);
static gboolean accounts_display_name_row_on_focus_out (AccountsDisplayNameRow* self);
static gboolean _accounts_display_name_row_on_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender,
                                                                             GdkEventFocus* event,
                                                                             gpointer self);
static void accounts_display_name_row_real_update (AccountsAccountRow* base);
VALA_EXTERN GearyAccountInformation* accounts_account_row_get_account (AccountsAccountRow* self);
static void accounts_display_name_row_commit (AccountsDisplayNameRow* self);
static void accounts_display_name_row_finalize (GObject * obj);
static GType accounts_display_name_row_get_type_once (void);
VALA_EXTERN AccountsAddRow* accounts_add_row_new (GType panetype_type,
                                      GBoxedCopyFunc panetype_dup_func,
                                      GDestroyNotify panetype_destroy_func);
VALA_EXTERN AccountsAddRow* accounts_add_row_construct (GType object_type,
                                            GType panetype_type,
                                            GBoxedCopyFunc panetype_dup_func,
                                            GDestroyNotify panetype_destroy_func);
static void accounts_add_mailbox_row_real_activated (AccountsEditorRow* base,
                                              AccountsEditorEditPane* pane);
VALA_EXTERN GType accounts_editor_popover_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType accounts_mailbox_editor_popover_get_type (void) G_GNUC_CONST ;
static Block44Data* block44_data_ref (Block44Data* _data44_);
static void block44_data_unref (void * _userdata_);
VALA_EXTERN AccountsMailboxEditorPopover* accounts_mailbox_editor_popover_new (const gchar* display_name,
                                                                   const gchar* address,
                                                                   gboolean can_remove);
VALA_EXTERN AccountsMailboxEditorPopover* accounts_mailbox_editor_popover_construct (GType object_type,
                                                                         const gchar* display_name,
                                                                         const gchar* address,
                                                                         gboolean can_remove);
static void __lambda83_ (Block44Data* _data44_);
VALA_EXTERN const gchar* accounts_mailbox_editor_popover_get_display_name (AccountsMailboxEditorPopover* self);
VALA_EXTERN const gchar* accounts_mailbox_editor_popover_get_address (AccountsMailboxEditorPopover* self);
VALA_EXTERN AccountsAppendMailboxCommand* accounts_append_mailbox_command_new (GtkListBox* senders_list,
                                                                   AccountsMailboxRow* new_row);
VALA_EXTERN AccountsAppendMailboxCommand* accounts_append_mailbox_command_construct (GType object_type,
                                                                         GtkListBox* senders_list,
                                                                         AccountsMailboxRow* new_row);
VALA_EXTERN GType accounts_append_mailbox_command_get_type (void) G_GNUC_CONST ;
static void ___lambda83__accounts_mailbox_editor_popover_activated (AccountsMailboxEditorPopover* _sender,
                                                             gpointer self);
VALA_EXTERN void accounts_editor_popover_popup (AccountsEditorPopover* self);
static GType accounts_add_mailbox_row_get_type_once (void);
VALA_EXTERN void accounts_editor_row_enable_drag (AccountsEditorRow* self);
static void accounts_mailbox_row_real_activated (AccountsEditorRow* base,
                                          AccountsEditorEditPane* pane);
static Block45Data* block45_data_ref (Block45Data* _data45_);
static void block45_data_unref (void * _userdata_);
static void __lambda81_ (Block45Data* _data45_);
VALA_EXTERN AccountsUpdateMailboxCommand* accounts_update_mailbox_command_new (AccountsMailboxRow* row,
                                                                   GearyRFC822MailboxAddress* new_mailbox);
VALA_EXTERN AccountsUpdateMailboxCommand* accounts_update_mailbox_command_construct (GType object_type,
                                                                         AccountsMailboxRow* row,
                                                                         GearyRFC822MailboxAddress* new_mailbox);
VALA_EXTERN GType accounts_update_mailbox_command_get_type (void) G_GNUC_CONST ;
static void ___lambda81__accounts_mailbox_editor_popover_activated (AccountsMailboxEditorPopover* _sender,
                                                             gpointer self);
static void __lambda82_ (Block45Data* _data45_);
VALA_EXTERN AccountsRemoveMailboxCommand* accounts_remove_mailbox_command_new (AccountsMailboxRow* row);
VALA_EXTERN AccountsRemoveMailboxCommand* accounts_remove_mailbox_command_construct (GType object_type,
                                                                         AccountsMailboxRow* row);
VALA_EXTERN GType accounts_remove_mailbox_command_get_type (void) G_GNUC_CONST ;
static void ___lambda82__accounts_mailbox_editor_popover_remove_clicked (AccountsMailboxEditorPopover* _sender,
                                                                  gpointer self);
static void accounts_mailbox_row_real_update (AccountsAccountRow* base);
VALA_EXTERN void accounts_labelled_editor_row_set_dim_label (AccountsLabelledEditorRow* self,
                                                 gboolean is_dim);
VALA_EXTERN GtkLabel* accounts_labelled_editor_row_get_label (AccountsLabelledEditorRow* self);
static void accounts_mailbox_row_finalize (GObject * obj);
static GType accounts_mailbox_row_get_type_once (void);
static void accounts_mailbox_editor_popover_on_name_changed (AccountsMailboxEditorPopover* self);
static void _accounts_mailbox_editor_popover_on_name_changed_gtk_editable_changed (GtkEditable* _sender,
                                                                            gpointer self);
static void accounts_mailbox_editor_popover_on_activate (AccountsMailboxEditorPopover* self);
static void _accounts_mailbox_editor_popover_on_activate_gtk_entry_activate (GtkEntry* _sender,
                                                                      gpointer self);
static void accounts_mailbox_editor_popover_on_address_changed (AccountsMailboxEditorPopover* self);
static void _accounts_mailbox_editor_popover_on_address_changed_gtk_editable_changed (GtkEditable* _sender,
                                                                               gpointer self);
static void accounts_mailbox_editor_popover_on_remove_clicked (AccountsMailboxEditorPopover* self);
static void _accounts_mailbox_editor_popover_on_remove_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                            gpointer self);
static void accounts_mailbox_editor_popover_set_display_name (AccountsMailboxEditorPopover* self,
                                                       const gchar* value);
static void accounts_mailbox_editor_popover_set_address (AccountsMailboxEditorPopover* self,
                                                  const gchar* value);
VALA_EXTERN AccountsEditorPopover* accounts_editor_popover_new (void);
VALA_EXTERN AccountsEditorPopover* accounts_editor_popover_construct (GType object_type);
VALA_EXTERN void accounts_editor_popover_add_labelled_row (AccountsEditorPopover* self,
                                               const gchar* label,
                                               GtkWidget* value);
VALA_EXTERN GtkGrid* accounts_editor_popover_get_layout (AccountsEditorPopover* self);
static void accounts_mailbox_editor_popover_finalize (GObject * obj);
static GType accounts_mailbox_editor_popover_get_type_once (void);
static void _vala_accounts_mailbox_editor_popover_get_property (GObject * object,
                                                         guint property_id,
                                                         GValue * value,
                                                         GParamSpec * pspec);
static void _vala_accounts_mailbox_editor_popover_set_property (GObject * object,
                                                         guint property_id,
                                                         const GValue * value,
                                                         GParamSpec * pspec);
static void accounts_append_mailbox_command_real_execute_data_free (gpointer _data);
static void accounts_append_mailbox_command_real_execute (ApplicationCommand* base,
                                                   GCancellable* cancellable,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
static gboolean accounts_append_mailbox_command_real_execute_co (AccountsAppendMailboxCommandExecuteData* _data_);
static void accounts_append_mailbox_command_real_undo_data_free (gpointer _data);
static void accounts_append_mailbox_command_real_undo (ApplicationCommand* base,
                                                GCancellable* cancellable,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
static gboolean accounts_append_mailbox_command_real_undo_co (AccountsAppendMailboxCommandUndoData* _data_);
static void accounts_append_mailbox_command_finalize (GObject * obj);
static GType accounts_append_mailbox_command_get_type_once (void);
static void accounts_update_mailbox_command_real_execute_data_free (gpointer _data);
static void accounts_update_mailbox_command_real_execute (ApplicationCommand* base,
                                                   GCancellable* cancellable,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
static gboolean accounts_update_mailbox_command_real_execute_co (AccountsUpdateMailboxCommandExecuteData* _data_);
static void accounts_update_mailbox_command_real_undo_data_free (gpointer _data);
static void accounts_update_mailbox_command_real_undo (ApplicationCommand* base,
                                                GCancellable* cancellable,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
static gboolean accounts_update_mailbox_command_real_undo_co (AccountsUpdateMailboxCommandUndoData* _data_);
static void accounts_update_mailbox_command_finalize (GObject * obj);
static GType accounts_update_mailbox_command_get_type_once (void);
static void accounts_reorder_mailbox_command_real_execute_data_free (gpointer _data);
static void accounts_reorder_mailbox_command_real_execute (ApplicationCommand* base,
                                                    GCancellable* cancellable,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
static gboolean accounts_reorder_mailbox_command_real_execute_co (AccountsReorderMailboxCommandExecuteData* _data_);
static void accounts_reorder_mailbox_command_move_source (AccountsReorderMailboxCommand* self,
                                                   gint destination);
static void accounts_reorder_mailbox_command_real_undo_data_free (gpointer _data);
static void accounts_reorder_mailbox_command_real_undo (ApplicationCommand* base,
                                                 GCancellable* cancellable,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
static gboolean accounts_reorder_mailbox_command_real_undo_co (AccountsReorderMailboxCommandUndoData* _data_);
static void accounts_reorder_mailbox_command_finalize (GObject * obj);
static GType accounts_reorder_mailbox_command_get_type_once (void);
static void accounts_remove_mailbox_command_real_execute_data_free (gpointer _data);
static void accounts_remove_mailbox_command_real_execute (ApplicationCommand* base,
                                                   GCancellable* cancellable,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
static gboolean accounts_remove_mailbox_command_real_execute_co (AccountsRemoveMailboxCommandExecuteData* _data_);
static void accounts_remove_mailbox_command_real_undo_data_free (gpointer _data);
static void accounts_remove_mailbox_command_real_undo (ApplicationCommand* base,
                                                GCancellable* cancellable,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
static gboolean accounts_remove_mailbox_command_real_undo_co (AccountsRemoveMailboxCommandUndoData* _data_);
static void accounts_remove_mailbox_command_finalize (GObject * obj);
static GType accounts_remove_mailbox_command_get_type_once (void);
static void accounts_signature_changed_command_real_execute_data_free (gpointer _data);
static void accounts_signature_changed_command_real_execute (ApplicationCommand* base,
                                                      GCancellable* cancellable,
                                                      GAsyncReadyCallback _callback_,
                                                      gpointer _user_data_);
static gboolean accounts_signature_changed_command_real_execute_co (AccountsSignatureChangedCommandExecuteData* _data_);
static void accounts_signature_changed_command_execute_ready (GObject* source_object,
                                                       GAsyncResult* _res_,
                                                       gpointer _user_data_);
static inline void accounts_signature_changed_command_update_account_signature (AccountsSignatureChangedCommand* self,
                                                                  const gchar* sig,
                                                                  gboolean enabled);
static void accounts_signature_changed_command_real_undo_data_free (gpointer _data);
static void accounts_signature_changed_command_real_undo (ApplicationCommand* base,
                                                   GCancellable* cancellable,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
static gboolean accounts_signature_changed_command_real_undo_co (AccountsSignatureChangedCommandUndoData* _data_);
static void accounts_signature_changed_command_real_redo_data_free (gpointer _data);
static void accounts_signature_changed_command_real_redo (ApplicationCommand* base,
                                                   GCancellable* cancellable,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
static gboolean accounts_signature_changed_command_real_redo_co (AccountsSignatureChangedCommandRedoData* _data_);
static void accounts_signature_changed_command_finalize (GObject * obj);
static GType accounts_signature_changed_command_get_type_once (void);
static gboolean accounts_email_prefetch_row_row_separator (GtkTreeModel* model,
                                                    GtkTreeIter* iter);
static Block46Data* block46_data_ref (Block46Data* _data46_);
static void block46_data_unref (void * _userdata_);
static gboolean _accounts_email_prefetch_row_row_separator_gtk_tree_view_row_separator_func (GtkTreeModel* model,
                                                                                      GtkTreeIter* iter,
                                                                                      gpointer self);
static gchar* accounts_email_prefetch_row_get_label (AccountsEmailPrefetchRow* self,
                                              gint duration,
                                              gboolean append);
static void __lambda87_ (Block46Data* _data46_);
static void ___lambda87__gtk_combo_box_changed (GtkComboBox* _sender,
                                         gpointer self);
static void accounts_email_prefetch_row_real_update (AccountsAccountRow* base);
static GType accounts_email_prefetch_row_get_type_once (void);

static inline gpointer
accounts_editor_edit_pane_get_instance_private (AccountsEditorEditPane* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsEditorEditPane_private_offset);
}

static GtkWidget*
accounts_editor_edit_pane_real_get_initial_widget (AccountsEditorPane* base)
{
	GtkWidget* result;
	AccountsEditorEditPane* self;
	GtkListBox* _tmp0_;
	GtkListBoxRow* _tmp1_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = self->priv->details_list;
	_tmp1_ = gtk_list_box_get_row_at_index (_tmp0_, 0);
	result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget);
	return result;
}

static GearyAccountInformation*
accounts_editor_edit_pane_real_get_account (AccountsAccountPane* base)
{
	GearyAccountInformation* result;
	AccountsEditorEditPane* self;
	GearyAccountInformation* _tmp0_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = self->priv->_account;
	result = _tmp0_;
	return result;
}

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

static void
accounts_editor_edit_pane_real_set_account (AccountsAccountPane* base,
                                            GearyAccountInformation* value)
{
	AccountsEditorEditPane* self;
	GearyAccountInformation* old_value;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	old_value = accounts_editor_edit_pane_real_get_account (base);
	if (old_value != value) {
		GearyAccountInformation* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_account);
		self->priv->_account = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_ACCOUNT_PROPERTY]);
	}
}

static ApplicationCommandStack*
accounts_editor_edit_pane_real_get_commands (AccountsCommandPane* base)
{
	ApplicationCommandStack* result;
	AccountsEditorEditPane* self;
	ApplicationCommandStack* _tmp0_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = self->priv->_commands;
	result = _tmp0_;
	return result;
}

static void
accounts_editor_edit_pane_real_set_commands (AccountsCommandPane* base,
                                             ApplicationCommandStack* value)
{
	AccountsEditorEditPane* self;
	ApplicationCommandStack* old_value;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	old_value = accounts_editor_edit_pane_real_get_commands (base);
	if (old_value != value) {
		ApplicationCommandStack* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_commands);
		self->priv->_commands = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_COMMANDS_PROPERTY]);
	}
}

static gboolean
accounts_editor_edit_pane_real_get_is_operation_running (AccountsEditorPane* base)
{
	gboolean result;
	AccountsEditorEditPane* self;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	result = self->priv->_is_operation_running;
	return result;
}

static void
accounts_editor_edit_pane_real_set_is_operation_running (AccountsEditorPane* base,
                                                         gboolean value)
{
	AccountsEditorEditPane* self;
	gboolean old_value;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	old_value = accounts_editor_edit_pane_real_get_is_operation_running (base);
	if (old_value != value) {
		self->priv->_is_operation_running = value;
		g_object_notify_by_pspec ((GObject *) self, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_IS_OPERATION_RUNNING_PROPERTY]);
	}
}

static GCancellable*
accounts_editor_edit_pane_real_get_op_cancellable (AccountsEditorPane* base)
{
	GCancellable* result;
	AccountsEditorEditPane* self;
	GCancellable* _tmp0_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = self->priv->_op_cancellable;
	result = _tmp0_;
	return result;
}

static void
accounts_editor_edit_pane_real_set_op_cancellable (AccountsEditorPane* base,
                                                   GCancellable* value)
{
	AccountsEditorEditPane* self;
	GCancellable* old_value;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	old_value = accounts_editor_edit_pane_real_get_op_cancellable (base);
	if (old_value != value) {
		GCancellable* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_op_cancellable);
		self->priv->_op_cancellable = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_OP_CANCELLABLE_PROPERTY]);
	}
}

static AccountsEditor*
accounts_editor_edit_pane_real_get_editor (AccountsEditorPane* base)
{
	AccountsEditor* result;
	AccountsEditorEditPane* self;
	AccountsEditor* _tmp0_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = self->priv->_editor;
	result = _tmp0_;
	return result;
}

static void
accounts_editor_edit_pane_real_set_editor (AccountsEditorPane* base,
                                           AccountsEditor* value)
{
	AccountsEditorEditPane* self;
	AccountsEditor* old_value;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	old_value = accounts_editor_edit_pane_real_get_editor (base);
	if (old_value != value) {
		self->priv->_editor = value;
		g_object_notify_by_pspec ((GObject *) self, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_EDITOR_PROPERTY]);
	}
}

static Block42Data*
block42_data_ref (Block42Data* _data42_)
{
	g_atomic_int_inc (&_data42_->_ref_count_);
	return _data42_;
}

static void
block42_data_unref (void * _userdata_)
{
	Block42Data* _data42_;
	_data42_ = (Block42Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data42_->_ref_count_)) {
		AccountsEditorEditPane* self;
		self = _data42_->self;
		_g_object_unref0 (_data42_->account);
		_g_object_unref0 (self);
		g_slice_free (Block42Data, _data42_);
	}
}

static void
_accounts_editor_seperator_headers_gtk_list_box_update_header_func (GtkListBoxRow* row,
                                                                    GtkListBoxRow* before,
                                                                    gpointer self)
{
	accounts_editor_seperator_headers (row, before);
}

static void
__lambda84_ (AccountsEditorEditPane* self)
{
	AccountsSignatureWebView* _tmp0_;
	GCancellable* _tmp1_;
	GCancellable* _tmp2_;
	_tmp0_ = self->priv->signature_preview;
	_tmp1_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp2_ = _tmp1_;
	components_web_view_set_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, COMPONENTS_TYPE_WEB_VIEW, ComponentsWebView), TRUE, _tmp2_, NULL, NULL);
}

static void
___lambda84__components_web_view_content_loaded (ComponentsWebView* _sender,
                                                 gpointer self)
{
	__lambda84_ ((AccountsEditorEditPane*) self);
}

static void
__lambda85_ (AccountsEditorEditPane* self)
{
	self->priv->signature_changed = TRUE;
}

static void
___lambda85__components_web_view_document_modified (ComponentsWebView* _sender,
                                                    gpointer self)
{
	__lambda85_ ((AccountsEditorEditPane*) self);
}

static gboolean
__lambda86_ (Block42Data* _data42_)
{
	AccountsEditorEditPane* self;
	gboolean _tmp0_ = FALSE;
	AccountsSignatureWebView* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	self = _data42_->self;
	_tmp1_ = self->priv->signature_preview;
	g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), "is-focus", &_tmp2_, NULL);
	_tmp3_ = _tmp2_;
	if (!_tmp3_) {
		_tmp0_ = self->priv->signature_changed;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		ApplicationCommandStack* _tmp4_;
		ApplicationCommandStack* _tmp5_;
		AccountsSignatureWebView* _tmp6_;
		AccountsSignatureChangedCommand* _tmp7_;
		AccountsSignatureChangedCommand* _tmp8_;
		GCancellable* _tmp9_;
		GCancellable* _tmp10_;
		_tmp4_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
		_tmp5_ = _tmp4_;
		_tmp6_ = self->priv->signature_preview;
		_tmp7_ = accounts_signature_changed_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, COMPONENTS_TYPE_WEB_VIEW, ComponentsWebView), _data42_->account);
		_tmp8_ = _tmp7_;
		_tmp9_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
		_tmp10_ = _tmp9_;
		application_command_stack_execute (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp10_, NULL, NULL);
		_g_object_unref0 (_tmp8_);
	}
	result = GDK_EVENT_PROPAGATE;
	return result;
}

static gboolean
___lambda86__gtk_widget_focus_out_event (GtkWidget* _sender,
                                         GdkEventFocus* event,
                                         gpointer self)
{
	gboolean result;
	result = __lambda86_ (self);
	return result;
}

AccountsEditorEditPane*
accounts_editor_edit_pane_construct (GType object_type,
                                     AccountsEditor* editor,
                                     GearyAccountInformation* account)
{
	AccountsEditorEditPane * self = NULL;
	Block42Data* _data42_;
	GearyAccountInformation* _tmp0_;
	GtkGrid* _tmp1_;
	GtkAdjustment* _tmp2_;
	GtkListBox* _tmp3_;
	GtkListBox* _tmp4_;
	ApplicationCommandStack* _tmp5_;
	ApplicationCommandStack* _tmp6_;
	GCancellable* _tmp7_;
	GCancellable* _tmp8_;
	AccountsDisplayNameRow* _tmp9_;
	AccountsDisplayNameRow* _tmp10_;
	GtkListBox* _tmp11_;
	GtkListBox* _tmp25_;
	AccountsAddMailboxRow* _tmp26_;
	AccountsAddMailboxRow* _tmp27_;
	ApplicationClient* _tmp28_;
	ApplicationClient* _tmp29_;
	ApplicationConfiguration* _tmp30_;
	ApplicationConfiguration* _tmp31_;
	AccountsSignatureWebView* _tmp32_;
	AccountsSignatureWebView* _tmp33_;
	AccountsSignatureWebView* _tmp34_;
	GdkEventMask _tmp35_;
	GdkEventMask _tmp36_;
	AccountsSignatureWebView* _tmp37_;
	AccountsSignatureWebView* _tmp38_;
	AccountsSignatureWebView* _tmp39_;
	AccountsSignatureWebView* _tmp40_;
	AccountsSignatureWebView* _tmp41_;
	const gchar* _tmp42_;
	const gchar* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	GtkFrame* _tmp46_;
	AccountsSignatureWebView* _tmp47_;
	GtkListBox* _tmp48_;
	GtkListBox* _tmp49_;
	AccountsEmailPrefetchRow* _tmp50_;
	AccountsEmailPrefetchRow* _tmp51_;
	GtkButton* _tmp52_;
	AccountsEditor* _tmp53_;
	AccountsEditor* _tmp54_;
	AccountsManager* _tmp55_;
	AccountsManager* _tmp56_;
	g_return_val_if_fail (ACCOUNTS_IS_EDITOR (editor), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (account, GEARY_TYPE_ACCOUNT_INFORMATION), NULL);
	_data42_ = g_slice_new0 (Block42Data);
	_data42_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (account);
	_g_object_unref0 (_data42_->account);
	_data42_->account = _tmp0_;
	self = (AccountsEditorEditPane*) g_object_new (object_type, NULL);
	_data42_->self = g_object_ref (self);
	accounts_editor_pane_set_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane), editor);
	accounts_account_pane_set_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane), _data42_->account);
	_tmp1_ = self->priv->pane_content;
	_tmp2_ = self->priv->pane_adjustment;
	gtk_container_set_focus_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer), _tmp2_);
	_tmp3_ = self->priv->details_list;
	gtk_list_box_set_header_func (_tmp3_, _accounts_editor_seperator_headers_gtk_list_box_update_header_func, NULL, NULL);
	_tmp4_ = self->priv->details_list;
	_tmp5_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp6_ = _tmp5_;
	_tmp7_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp8_ = _tmp7_;
	_tmp9_ = accounts_display_name_row_new (_data42_->account, _tmp6_, _tmp8_);
	g_object_ref_sink (_tmp9_);
	_tmp10_ = _tmp9_;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
	_g_object_unref0 (_tmp10_);
	_tmp11_ = self->priv->senders_list;
	gtk_list_box_set_header_func (_tmp11_, _accounts_editor_seperator_headers_gtk_list_box_update_header_func, NULL, NULL);
	{
		GeeList* _sender_list = NULL;
		GeeList* _tmp12_;
		GeeList* _tmp13_;
		gint _sender_size = 0;
		GeeList* _tmp14_;
		gint _tmp15_;
		gint _tmp16_;
		gint _sender_index = 0;
		_tmp12_ = geary_account_information_get_sender_mailboxes (_data42_->account);
		_tmp13_ = _tmp12_;
		_sender_list = _tmp13_;
		_tmp14_ = _sender_list;
		_tmp15_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
		_tmp16_ = _tmp15_;
		_sender_size = _tmp16_;
		_sender_index = -1;
		while (TRUE) {
			gint _tmp17_;
			gint _tmp18_;
			GearyRFC822MailboxAddress* sender = NULL;
			GeeList* _tmp19_;
			gpointer _tmp20_;
			GtkListBox* _tmp21_;
			GearyRFC822MailboxAddress* _tmp22_;
			AccountsMailboxRow* _tmp23_;
			AccountsMailboxRow* _tmp24_;
			_sender_index = _sender_index + 1;
			_tmp17_ = _sender_index;
			_tmp18_ = _sender_size;
			if (!(_tmp17_ < _tmp18_)) {
				break;
			}
			_tmp19_ = _sender_list;
			_tmp20_ = gee_list_get (_tmp19_, _sender_index);
			sender = (GearyRFC822MailboxAddress*) _tmp20_;
			_tmp21_ = self->priv->senders_list;
			_tmp22_ = sender;
			_tmp23_ = accounts_editor_edit_pane_new_mailbox_row (self, _tmp22_);
			_tmp24_ = _tmp23_;
			gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget));
			_g_object_unref0 (_tmp24_);
			_g_object_unref0 (sender);
		}
		_g_object_unref0 (_sender_list);
	}
	_tmp25_ = self->priv->senders_list;
	_tmp26_ = accounts_add_mailbox_row_new ();
	g_object_ref_sink (_tmp26_);
	_tmp27_ = _tmp26_;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget));
	_g_object_unref0 (_tmp27_);
	_tmp28_ = accounts_editor_get_application (editor);
	_tmp29_ = _tmp28_;
	_tmp30_ = application_client_get_config (_tmp29_);
	_tmp31_ = _tmp30_;
	_tmp32_ = accounts_signature_web_view_new (_tmp31_);
	g_object_ref_sink (_tmp32_);
	_g_object_unref0 (self->priv->signature_preview);
	self->priv->signature_preview = _tmp32_;
	_tmp33_ = self->priv->signature_preview;
	_tmp34_ = self->priv->signature_preview;
	_tmp35_ = gtk_widget_get_events (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
	_tmp36_ = _tmp35_;
	gtk_widget_set_events (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), _tmp36_ | GDK_FOCUS_CHANGE);
	_tmp37_ = self->priv->signature_preview;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, COMPONENTS_TYPE_WEB_VIEW, ComponentsWebView), "content-loaded", (GCallback) ___lambda84__components_web_view_content_loaded, self, 0);
	_tmp38_ = self->priv->signature_preview;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, COMPONENTS_TYPE_WEB_VIEW, ComponentsWebView), "document-modified", (GCallback) ___lambda85__components_web_view_document_modified, self, 0);
	_tmp39_ = self->priv->signature_preview;
	g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) ___lambda86__gtk_widget_focus_out_event, block42_data_ref (_data42_), (GClosureNotify) block42_data_unref, 0);
	_tmp40_ = self->priv->signature_preview;
	gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget));
	_tmp41_ = self->priv->signature_preview;
	_tmp42_ = geary_account_information_get_signature (_data42_->account);
	_tmp43_ = _tmp42_;
	_tmp44_ = geary_html_smart_escape (_tmp43_);
	_tmp45_ = _tmp44_;
	components_web_view_load_html (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, COMPONENTS_TYPE_WEB_VIEW, ComponentsWebView), _tmp45_, NULL);
	_g_free0 (_tmp45_);
	_tmp46_ = self->priv->signature_frame;
	_tmp47_ = self->priv->signature_preview;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_widget_get_type (), GtkWidget));
	_tmp48_ = self->priv->settings_list;
	gtk_list_box_set_header_func (_tmp48_, _accounts_editor_seperator_headers_gtk_list_box_update_header_func, NULL, NULL);
	_tmp49_ = self->priv->settings_list;
	_tmp50_ = accounts_email_prefetch_row_new (self);
	g_object_ref_sink (_tmp50_);
	_tmp51_ = _tmp50_;
	gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_widget_get_type (), GtkWidget));
	_g_object_unref0 (_tmp51_);
	_tmp52_ = self->priv->remove_button;
	_tmp53_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp54_ = _tmp53_;
	_tmp55_ = accounts_editor_get_accounts (_tmp54_);
	_tmp56_ = _tmp55_;
	gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, gtk_widget_get_type (), GtkWidget), !accounts_manager_is_goa_account (_tmp56_, _data42_->account));
	accounts_account_pane_connect_account_signals (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	accounts_command_pane_connect_command_signals (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	block42_data_unref (_data42_);
	_data42_ = NULL;
	return self;
}

AccountsEditorEditPane*
accounts_editor_edit_pane_new (AccountsEditor* editor,
                               GearyAccountInformation* account)
{
	return accounts_editor_edit_pane_construct (ACCOUNTS_TYPE_EDITOR_EDIT_PANE, editor, account);
}

gchar*
accounts_editor_edit_pane_get_default_name (AccountsEditorEditPane* self)
{
	gchar* name = NULL;
	GearyAccountInformation* _tmp0_;
	GearyAccountInformation* _tmp1_;
	GearyRFC822MailboxAddress* _tmp2_;
	GearyRFC822MailboxAddress* _tmp3_;
	GearyRFC822MailboxAddress* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* result;
	g_return_val_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self), NULL);
	_tmp0_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = geary_account_information_get_primary_mailbox (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = _tmp3_;
	_tmp5_ = geary_rf_c822_mailbox_address_get_name (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_strdup (_tmp6_);
	_tmp8_ = _tmp7_;
	_g_object_unref0 (_tmp4_);
	name = _tmp8_;
	_tmp9_ = name;
	if (geary_string_is_empty_or_whitespace (_tmp9_)) {
		AccountsEditor* _tmp10_;
		AccountsEditor* _tmp11_;
		AccountsManager* _tmp12_;
		AccountsManager* _tmp13_;
		gchar* _tmp14_;
		_tmp10_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
		_tmp11_ = _tmp10_;
		_tmp12_ = accounts_editor_get_accounts (_tmp11_);
		_tmp13_ = _tmp12_;
		_tmp14_ = accounts_manager_get_account_name (_tmp13_);
		_g_free0 (name);
		name = _tmp14_;
	}
	result = name;
	return result;
}

/** {@inheritDoc} */
static GtkHeaderBar*
accounts_editor_edit_pane_real_get_header (AccountsEditorPane* base)
{
	AccountsEditorEditPane * self;
	GtkHeaderBar* _tmp0_;
	GtkHeaderBar* _tmp1_;
	GtkHeaderBar* result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = self->priv->header;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	result = _tmp1_;
	return result;
}

static void
_accounts_editor_edit_pane_on_sender_row_moved_accounts_editor_row_move_to (AccountsEditorRow* _sender,
                                                                            gint new_position,
                                                                            gpointer self)
{
	accounts_editor_edit_pane_on_sender_row_moved ((AccountsEditorEditPane*) self, _sender, new_position);
}

static void
_accounts_editor_edit_pane_on_sender_row_dropped_accounts_editor_row_dropped (AccountsEditorRow* _sender,
                                                                              AccountsEditorRow* target,
                                                                              gpointer self)
{
	accounts_editor_edit_pane_on_sender_row_dropped ((AccountsEditorEditPane*) self, _sender, target);
}

AccountsMailboxRow*
accounts_editor_edit_pane_new_mailbox_row (AccountsEditorEditPane* self,
                                           GearyRFC822MailboxAddress* sender)
{
	AccountsMailboxRow* row = NULL;
	GearyAccountInformation* _tmp0_;
	GearyAccountInformation* _tmp1_;
	AccountsMailboxRow* _tmp2_;
	AccountsMailboxRow* result;
	g_return_val_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (sender, GEARY_RF_C822_TYPE_MAILBOX_ADDRESS), NULL);
	_tmp0_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_mailbox_row_new (_tmp1_, sender);
	g_object_ref_sink (_tmp2_);
	row = _tmp2_;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (row, ACCOUNTS_TYPE_EDITOR_ROW, AccountsEditorRow), "move-to", (GCallback) _accounts_editor_edit_pane_on_sender_row_moved_accounts_editor_row_move_to, self, 0);
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (row, ACCOUNTS_TYPE_EDITOR_ROW, AccountsEditorRow), "dropped", (GCallback) _accounts_editor_edit_pane_on_sender_row_dropped_accounts_editor_row_dropped, self, 0);
	result = row;
	return result;
}

/** {@inheritDoc} */
static void
accounts_editor_edit_pane_real_command_executed (AccountsCommandPane* base)
{
	AccountsEditorEditPane * self;
	AccountsEditor* _tmp0_;
	AccountsEditor* _tmp1_;
	ApplicationCommand* next_undo = NULL;
	ApplicationCommandStack* _tmp2_;
	ApplicationCommandStack* _tmp3_;
	ApplicationCommand* _tmp4_;
	const gchar* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
	ApplicationCommand* _tmp7_;
	GtkButton* _tmp14_;
	GearyAccountInformation* _tmp15_;
	GearyAccountInformation* _tmp16_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	_tmp0_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp1_ = _tmp0_;
	accounts_editor_update_command_actions (_tmp1_);
	_tmp2_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp3_ = _tmp2_;
	_tmp4_ = application_command_stack_peek_undo (_tmp3_);
	next_undo = _tmp4_;
	_tmp7_ = next_undo;
	if (_tmp7_ != NULL) {
		ApplicationCommand* _tmp8_;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		_tmp8_ = next_undo;
		_tmp9_ = application_command_get_undo_label (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp6_ = _tmp10_ != NULL;
	} else {
		_tmp6_ = FALSE;
	}
	if (_tmp6_) {
		ApplicationCommand* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		_tmp11_ = next_undo;
		_tmp12_ = application_command_get_undo_label (_tmp11_);
		_tmp13_ = _tmp12_;
		_tmp5_ = _tmp13_;
	} else {
		_tmp5_ = "";
	}
	_tmp14_ = self->priv->undo_button;
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), _tmp5_);
	_tmp15_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp16_ = _tmp15_;
	g_signal_emit_by_name (_tmp16_, "changed");
	_g_object_unref0 (next_undo);
}

static void
accounts_editor_edit_pane_on_sender_row_moved (AccountsEditorEditPane* self,
                                               AccountsEditorRow* source,
                                               gint new_position)
{
	ApplicationCommandStack* _tmp0_;
	ApplicationCommandStack* _tmp1_;
	GearyAccountInformation* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GtkListBox* _tmp4_;
	AccountsReorderMailboxCommand* _tmp5_;
	AccountsReorderMailboxCommand* _tmp6_;
	GCancellable* _tmp7_;
	GCancellable* _tmp8_;
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self));
	g_return_if_fail (ACCOUNTS_IS_EDITOR_ROW (source));
	_tmp0_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp3_ = _tmp2_;
	_tmp4_ = self->priv->senders_list;
	_tmp5_ = accounts_reorder_mailbox_command_new (G_TYPE_CHECK_INSTANCE_CAST (source, ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRow), new_position, _tmp3_, _tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp8_ = _tmp7_;
	application_command_stack_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp8_, NULL, NULL);
	_g_object_unref0 (_tmp6_);
}

static void
accounts_editor_edit_pane_on_sender_row_dropped (AccountsEditorEditPane* self,
                                                 AccountsEditorRow* source,
                                                 AccountsEditorRow* target)
{
	ApplicationCommandStack* _tmp0_;
	ApplicationCommandStack* _tmp1_;
	GearyAccountInformation* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GtkListBox* _tmp4_;
	AccountsReorderMailboxCommand* _tmp5_;
	AccountsReorderMailboxCommand* _tmp6_;
	GCancellable* _tmp7_;
	GCancellable* _tmp8_;
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self));
	g_return_if_fail (ACCOUNTS_IS_EDITOR_ROW (source));
	g_return_if_fail (ACCOUNTS_IS_EDITOR_ROW (target));
	_tmp0_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp3_ = _tmp2_;
	_tmp4_ = self->priv->senders_list;
	_tmp5_ = accounts_reorder_mailbox_command_new (G_TYPE_CHECK_INSTANCE_CAST (source, ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRow), gtk_list_box_row_get_index (G_TYPE_CHECK_INSTANCE_CAST (target, gtk_list_box_row_get_type (), GtkListBoxRow)), _tmp3_, _tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp8_ = _tmp7_;
	application_command_stack_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp8_, NULL, NULL);
	_g_object_unref0 (_tmp6_);
}

static void
accounts_editor_edit_pane_on_setting_activated (AccountsEditorEditPane* self,
                                                GtkListBoxRow* row)
{
	AccountsEditorRow* setting = NULL;
	AccountsEditorRow* _tmp0_;
	AccountsEditorRow* _tmp1_;
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self));
	g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (row, gtk_list_box_row_get_type ()));
	_tmp0_ = _g_object_ref0 (ACCOUNTS_IS_EDITOR_ROW (row) ? ((AccountsEditorRow*) row) : NULL);
	setting = _tmp0_;
	_tmp1_ = setting;
	if (_tmp1_ != NULL) {
		AccountsEditorRow* _tmp2_;
		_tmp2_ = setting;
		accounts_editor_row_activated (_tmp2_, self);
	}
	_g_object_unref0 (setting);
}

static void
_accounts_editor_edit_pane_on_setting_activated_gtk_list_box_row_activated (GtkListBox* _sender,
                                                                            GtkListBoxRow* row,
                                                                            gpointer self)
{
	accounts_editor_edit_pane_on_setting_activated ((AccountsEditorEditPane*) self, row);
}

static void
accounts_editor_edit_pane_on_server_settings_clicked (AccountsEditorEditPane* self)
{
	AccountsEditor* _tmp0_;
	AccountsEditor* _tmp1_;
	AccountsEditor* _tmp2_;
	AccountsEditor* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyAccountInformation* _tmp5_;
	AccountsEditorServersPane* _tmp6_;
	AccountsEditorServersPane* _tmp7_;
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self));
	_tmp0_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp3_ = _tmp2_;
	_tmp4_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp5_ = _tmp4_;
	_tmp6_ = accounts_editor_servers_pane_new (_tmp3_, _tmp5_);
	g_object_ref_sink (_tmp6_);
	_tmp7_ = _tmp6_;
	accounts_editor_push (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_g_object_unref0 (_tmp7_);
}

static void
_accounts_editor_edit_pane_on_server_settings_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                          gpointer self)
{
	accounts_editor_edit_pane_on_server_settings_clicked ((AccountsEditorEditPane*) self);
}

static Block43Data*
block43_data_ref (Block43Data* _data43_)
{
	g_atomic_int_inc (&_data43_->_ref_count_);
	return _data43_;
}

static void
block43_data_unref (void * _userdata_)
{
	Block43Data* _data43_;
	_data43_ = (Block43Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data43_->_ref_count_)) {
		AccountsEditorEditPane* self;
		self = _data43_->self;
		_g_object_unref0 (_data43_->dialog);
		_g_object_unref0 (self);
		g_slice_free (Block43Data, _data43_);
	}
}

static void
___lambda93_ (Block43Data* _data43_,
              gint response_id)
{
	AccountsEditorEditPane* self;
	GtkMessageDialog* _tmp4_;
	self = _data43_->self;
	if (response_id == ((gint) GTK_RESPONSE_ACCEPT)) {
		AccountsEditor* _tmp0_;
		AccountsEditor* _tmp1_;
		GearyAccountInformation* _tmp2_;
		GearyAccountInformation* _tmp3_;
		_tmp0_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
		_tmp1_ = _tmp0_;
		_tmp2_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
		_tmp3_ = _tmp2_;
		accounts_editor_remove_account (_tmp1_, _tmp3_);
	}
	_tmp4_ = _data43_->dialog;
	gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
}

static void
____lambda93__gtk_dialog_response (GtkDialog* _sender,
                                   gint response_id,
                                   gpointer self)
{
	___lambda93_ (self, response_id);
}

static void
accounts_editor_edit_pane_on_remove_account_clicked (AccountsEditorEditPane* self)
{
	AccountsEditor* _tmp0_;
	AccountsEditor* _tmp1_;
	AccountsManager* _tmp2_;
	AccountsManager* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyAccountInformation* _tmp5_;
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self));
	_tmp0_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_editor_get_accounts (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp5_ = _tmp4_;
	if (!accounts_manager_is_goa_account (_tmp3_, _tmp5_)) {
		Block43Data* _data43_;
		GtkButton* button = NULL;
		GtkButton* _tmp6_;
		GtkButton* _tmp7_;
		GtkStyleContext* _tmp8_;
		GtkButton* _tmp9_;
		AccountsEditor* _tmp10_;
		AccountsEditor* _tmp11_;
		GearyAccountInformation* _tmp12_;
		GearyAccountInformation* _tmp13_;
		GearyRFC822MailboxAddress* _tmp14_;
		GearyRFC822MailboxAddress* _tmp15_;
		GearyRFC822MailboxAddress* _tmp16_;
		const gchar* _tmp17_;
		const gchar* _tmp18_;
		GtkMessageDialog* _tmp19_;
		GtkMessageDialog* _tmp20_;
		GtkMessageDialog* _tmp21_;
		GtkMessageDialog* _tmp22_;
		GtkMessageDialog* _tmp23_;
		GtkButton* _tmp24_;
		GtkMessageDialog* _tmp25_;
		GtkMessageDialog* _tmp26_;
		_data43_ = g_slice_new0 (Block43Data);
		_data43_->_ref_count_ = 1;
		_data43_->self = g_object_ref (self);
		_tmp6_ = (GtkButton*) gtk_button_new_with_mnemonic (_ ("Remove Account"));
		g_object_ref_sink (_tmp6_);
		button = _tmp6_;
		_tmp7_ = button;
		_tmp8_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
		gtk_style_context_add_class (_tmp8_, GTK_STYLE_CLASS_DESTRUCTIVE_ACTION);
		_tmp9_ = button;
		gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
		_tmp10_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
		_tmp11_ = _tmp10_;
		_tmp12_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
		_tmp13_ = _tmp12_;
		_tmp14_ = geary_account_information_get_primary_mailbox (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp16_ = _tmp15_;
		_tmp17_ = geary_rf_c822_mailbox_address_get_address (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp19_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, _ ("Remove Account: %s"), _tmp18_);
		g_object_ref_sink (_tmp19_);
		_tmp20_ = _tmp19_;
		_g_object_unref0 (_tmp16_);
		_data43_->dialog = _tmp20_;
		_tmp21_ = _data43_->dialog;
		g_object_set (_tmp21_, "secondary-text", _ ("This will remove it from Geary and delete locally cached email data fr" \
"om your computer. Nothing will be deleted from your service provider."), NULL);
		_tmp22_ = _data43_->dialog;
		gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_dialog_get_type (), GtkDialog), _ ("_Cancel"), (gint) GTK_RESPONSE_CANCEL);
		_tmp23_ = _data43_->dialog;
		_tmp24_ = button;
		gtk_dialog_add_action_widget (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_dialog_get_type (), GtkDialog), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget), (gint) GTK_RESPONSE_ACCEPT);
		_tmp25_ = _data43_->dialog;
		g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_dialog_get_type (), GtkDialog), "response", (GCallback) ____lambda93__gtk_dialog_response, block43_data_ref (_data43_), (GClosureNotify) block43_data_unref, 0);
		_tmp26_ = _data43_->dialog;
		gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget));
		_g_object_unref0 (button);
		block43_data_unref (_data43_);
		_data43_ = NULL;
	}
}

static void
_accounts_editor_edit_pane_on_remove_account_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                         gpointer self)
{
	accounts_editor_edit_pane_on_remove_account_clicked ((AccountsEditorEditPane*) self);
}

static void
accounts_editor_edit_pane_on_back_button_clicked (AccountsEditorEditPane* self)
{
	AccountsEditor* _tmp0_;
	AccountsEditor* _tmp1_;
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self));
	_tmp0_ = accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp1_ = _tmp0_;
	accounts_editor_pop (_tmp1_);
}

static void
_accounts_editor_edit_pane_on_back_button_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                      gpointer self)
{
	accounts_editor_edit_pane_on_back_button_clicked ((AccountsEditorEditPane*) self);
}

static gboolean
accounts_editor_edit_pane_on_list_keynav_failed (AccountsEditorEditPane* self,
                                                 GtkWidget* widget,
                                                 GtkDirectionType direction)
{
	gboolean ret = FALSE;
	GtkContainer* next = NULL;
	GtkContainer* _tmp16_;
	gboolean result;
	g_return_val_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (self), FALSE);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (widget, gtk_widget_get_type ()), FALSE);
	ret = GDK_EVENT_PROPAGATE;
	next = NULL;
	if (direction == GTK_DIR_DOWN) {
		GtkListBox* _tmp0_;
		_tmp0_ = self->priv->details_list;
		if (widget == G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget)) {
			GtkListBox* _tmp1_;
			GtkContainer* _tmp2_;
			_tmp1_ = self->priv->senders_list;
			_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer));
			_g_object_unref0 (next);
			next = _tmp2_;
		} else {
			GtkListBox* _tmp3_;
			_tmp3_ = self->priv->senders_list;
			if (widget == G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget)) {
				AccountsSignatureWebView* _tmp4_;
				_tmp4_ = self->priv->signature_preview;
				gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
			} else {
				AccountsSignatureWebView* _tmp5_;
				_tmp5_ = self->priv->signature_preview;
				if (widget == G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget)) {
					GtkListBox* _tmp6_;
					GtkContainer* _tmp7_;
					_tmp6_ = self->priv->settings_list;
					_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer));
					_g_object_unref0 (next);
					next = _tmp7_;
				}
			}
		}
	} else {
		if (direction == GTK_DIR_UP) {
			GtkListBox* _tmp8_;
			_tmp8_ = self->priv->settings_list;
			if (widget == G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget)) {
				AccountsSignatureWebView* _tmp9_;
				_tmp9_ = self->priv->signature_preview;
				gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
			} else {
				AccountsSignatureWebView* _tmp10_;
				_tmp10_ = self->priv->signature_preview;
				if (widget == G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget)) {
					GtkListBox* _tmp11_;
					GtkContainer* _tmp12_;
					_tmp11_ = self->priv->senders_list;
					_tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_container_get_type (), GtkContainer));
					_g_object_unref0 (next);
					next = _tmp12_;
				} else {
					GtkListBox* _tmp13_;
					_tmp13_ = self->priv->senders_list;
					if (widget == G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget)) {
						GtkListBox* _tmp14_;
						GtkContainer* _tmp15_;
						_tmp14_ = self->priv->details_list;
						_tmp15_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_container_get_type (), GtkContainer));
						_g_object_unref0 (next);
						next = _tmp15_;
					}
				}
			}
		}
	}
	_tmp16_ = next;
	if (_tmp16_ != NULL) {
		GtkContainer* _tmp17_;
		_tmp17_ = next;
		gtk_widget_child_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget), direction);
		ret = GDK_EVENT_STOP;
	}
	result = ret;
	_g_object_unref0 (next);
	return result;
}

static gboolean
_accounts_editor_edit_pane_on_list_keynav_failed_gtk_widget_keynav_failed (GtkWidget* _sender,
                                                                           GtkDirectionType direction,
                                                                           gpointer self)
{
	gboolean result;
	result = accounts_editor_edit_pane_on_list_keynav_failed ((AccountsEditorEditPane*) self, _sender, direction);
	return result;
}

static void
accounts_editor_edit_pane_class_init (AccountsEditorEditPaneClass * klass,
                                      gpointer klass_data)
{
	accounts_editor_edit_pane_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsEditorEditPane_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_accounts_editor_edit_pane_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_accounts_editor_edit_pane_set_property;
	G_OBJECT_CLASS (klass)->finalize = accounts_editor_edit_pane_finalize;
	/** {@inheritDoc} */
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_EDITOR_EDIT_PANE_INITIAL_WIDGET_PROPERTY, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_INITIAL_WIDGET_PROPERTY] = g_param_spec_object ("initial-widget", "initial-widget", "initial-widget", gtk_widget_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	/** {@inheritDoc} */
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_EDITOR_EDIT_PANE_ACCOUNT_PROPERTY, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_ACCOUNT_PROPERTY] = g_param_spec_object ("account", "account", "account", GEARY_TYPE_ACCOUNT_INFORMATION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** {@inheritDoc} */
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_EDITOR_EDIT_PANE_COMMANDS_PROPERTY, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_COMMANDS_PROPERTY] = g_param_spec_object ("commands", "commands", "commands", APPLICATION_TYPE_COMMAND_STACK, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** {@inheritDoc} */
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_EDITOR_EDIT_PANE_IS_OPERATION_RUNNING_PROPERTY, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_IS_OPERATION_RUNNING_PROPERTY] = g_param_spec_boolean ("is-operation-running", "is-operation-running", "is-operation-running", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** {@inheritDoc} */
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_EDITOR_EDIT_PANE_OP_CANCELLABLE_PROPERTY, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_OP_CANCELLABLE_PROPERTY] = g_param_spec_object ("op-cancellable", "op-cancellable", "op-cancellable", g_cancellable_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** {@inheritDoc} */
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_EDITOR_EDIT_PANE_EDITOR_PROPERTY, accounts_editor_edit_pane_properties[ACCOUNTS_EDITOR_EDIT_PANE_EDITOR_PROPERTY] = g_param_spec_object ("editor", "editor", "editor", ACCOUNTS_TYPE_EDITOR, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), "/org/gnome/Geary/accounts_editor_edit_pane.ui");
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "header", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, header));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "pane_content", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, pane_content));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "pane_adjustment", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, pane_adjustment));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "details_list", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, details_list));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "senders_list", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, senders_list));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "signature_frame", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, signature_frame));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "settings_list", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, settings_list));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "undo_button", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, undo_button));
	gtk_widget_class_bind_template_child_full (GTK_WIDGET_CLASS (klass), "remove_button", FALSE, AccountsEditorEditPane_private_offset + G_STRUCT_OFFSET (AccountsEditorEditPanePrivate, remove_button));
	gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "on_setting_activated", G_CALLBACK(_accounts_editor_edit_pane_on_setting_activated_gtk_list_box_row_activated));
	gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "on_server_settings_clicked", G_CALLBACK(_accounts_editor_edit_pane_on_server_settings_clicked_gtk_button_clicked));
	gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "on_remove_account_clicked", G_CALLBACK(_accounts_editor_edit_pane_on_remove_account_clicked_gtk_button_clicked));
	gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "on_back_button_clicked", G_CALLBACK(_accounts_editor_edit_pane_on_back_button_clicked_gtk_button_clicked));
	gtk_widget_class_bind_template_callback_full (GTK_WIDGET_CLASS (klass), "on_list_keynav_failed", G_CALLBACK(_accounts_editor_edit_pane_on_list_keynav_failed_gtk_widget_keynav_failed));
}

static void
accounts_editor_edit_pane_accounts_editor_pane_interface_init (AccountsEditorPaneIface * iface,
                                                               gpointer iface_data)
{
	accounts_editor_edit_pane_accounts_editor_pane_parent_iface = g_type_interface_peek_parent (iface);
	iface->get_header = (GtkHeaderBar* (*) (AccountsEditorPane*)) accounts_editor_edit_pane_real_get_header;
	iface->get_initial_widget = accounts_editor_edit_pane_real_get_initial_widget;
	iface->get_is_operation_running = accounts_editor_edit_pane_real_get_is_operation_running;
	iface->set_is_operation_running = accounts_editor_edit_pane_real_set_is_operation_running;
	iface->get_op_cancellable = accounts_editor_edit_pane_real_get_op_cancellable;
	iface->set_op_cancellable = accounts_editor_edit_pane_real_set_op_cancellable;
	iface->get_editor = accounts_editor_edit_pane_real_get_editor;
	iface->set_editor = accounts_editor_edit_pane_real_set_editor;
}

static void
accounts_editor_edit_pane_accounts_account_pane_interface_init (AccountsAccountPaneIface * iface,
                                                                gpointer iface_data)
{
	accounts_editor_edit_pane_accounts_account_pane_parent_iface = g_type_interface_peek_parent (iface);
	iface->get_account = accounts_editor_edit_pane_real_get_account;
	iface->set_account = accounts_editor_edit_pane_real_set_account;
}

static void
accounts_editor_edit_pane_accounts_command_pane_interface_init (AccountsCommandPaneIface * iface,
                                                                gpointer iface_data)
{
	accounts_editor_edit_pane_accounts_command_pane_parent_iface = g_type_interface_peek_parent (iface);
	iface->command_executed = (void (*) (AccountsCommandPane*)) accounts_editor_edit_pane_real_command_executed;
	iface->get_commands = accounts_editor_edit_pane_real_get_commands;
	iface->set_commands = accounts_editor_edit_pane_real_set_commands;
}

static void
accounts_editor_edit_pane_instance_init (AccountsEditorEditPane * self,
                                         gpointer klass)
{
	ApplicationCommandStack* _tmp0_;
	self->priv = accounts_editor_edit_pane_get_instance_private (self);
	_tmp0_ = application_command_stack_new ();
	self->priv->_commands = _tmp0_;
	self->priv->_is_operation_running = FALSE;
	self->priv->_op_cancellable = NULL;
	self->priv->signature_changed = FALSE;
	gtk_widget_init_template (GTK_WIDGET (self));
}

static void
accounts_editor_edit_pane_finalize (GObject * obj)
{
	AccountsEditorEditPane * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	accounts_account_pane_disconnect_account_signals (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	accounts_command_pane_disconnect_command_signals (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_g_object_unref0 (self->priv->_account);
	_g_object_unref0 (self->priv->_commands);
	_g_object_unref0 (self->priv->_op_cancellable);
	_g_object_unref0 (self->priv->signature_preview);
	G_OBJECT_CLASS (accounts_editor_edit_pane_parent_class)->finalize (obj);
}

/**
 * An account editor pane for editing a specific account's preferences.
 */
static GType
accounts_editor_edit_pane_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsEditorEditPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_editor_edit_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsEditorEditPane), 0, (GInstanceInitFunc) accounts_editor_edit_pane_instance_init, NULL };
	static const GInterfaceInfo accounts_editor_pane_info = { (GInterfaceInitFunc) accounts_editor_edit_pane_accounts_editor_pane_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo accounts_account_pane_info = { (GInterfaceInitFunc) accounts_editor_edit_pane_accounts_account_pane_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	static const GInterfaceInfo accounts_command_pane_info = { (GInterfaceInitFunc) accounts_editor_edit_pane_accounts_command_pane_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType accounts_editor_edit_pane_type_id;
	accounts_editor_edit_pane_type_id = g_type_register_static (gtk_grid_get_type (), "AccountsEditorEditPane", &g_define_type_info, 0);
	g_type_add_interface_static (accounts_editor_edit_pane_type_id, ACCOUNTS_TYPE_EDITOR_PANE, &accounts_editor_pane_info);
	g_type_add_interface_static (accounts_editor_edit_pane_type_id, ACCOUNTS_TYPE_ACCOUNT_PANE, &accounts_account_pane_info);
	g_type_add_interface_static (accounts_editor_edit_pane_type_id, ACCOUNTS_TYPE_COMMAND_PANE, &accounts_command_pane_info);
	AccountsEditorEditPane_private_offset = g_type_add_instance_private (accounts_editor_edit_pane_type_id, sizeof (AccountsEditorEditPanePrivate));
	return accounts_editor_edit_pane_type_id;
}

GType
accounts_editor_edit_pane_get_type (void)
{
	static volatile gsize accounts_editor_edit_pane_type_id__once = 0;
	if (g_once_init_enter (&accounts_editor_edit_pane_type_id__once)) {
		GType accounts_editor_edit_pane_type_id;
		accounts_editor_edit_pane_type_id = accounts_editor_edit_pane_get_type_once ();
		g_once_init_leave (&accounts_editor_edit_pane_type_id__once, accounts_editor_edit_pane_type_id);
	}
	return accounts_editor_edit_pane_type_id__once;
}

static void
_vala_accounts_editor_edit_pane_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec)
{
	AccountsEditorEditPane * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	switch (property_id) {
		case ACCOUNTS_EDITOR_EDIT_PANE_INITIAL_WIDGET_PROPERTY:
		g_value_set_object (value, accounts_editor_pane_get_initial_widget (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane)));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_ACCOUNT_PROPERTY:
		g_value_set_object (value, accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane)));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_COMMANDS_PROPERTY:
		g_value_set_object (value, accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane)));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_IS_OPERATION_RUNNING_PROPERTY:
		g_value_set_boolean (value, accounts_editor_pane_get_is_operation_running (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane)));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_OP_CANCELLABLE_PROPERTY:
		g_value_set_object (value, accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane)));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_EDITOR_PROPERTY:
		g_value_set_object (value, accounts_editor_pane_get_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane)));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_accounts_editor_edit_pane_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec)
{
	AccountsEditorEditPane * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, AccountsEditorEditPane);
	switch (property_id) {
		case ACCOUNTS_EDITOR_EDIT_PANE_ACCOUNT_PROPERTY:
		accounts_account_pane_set_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane), g_value_get_object (value));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_COMMANDS_PROPERTY:
		accounts_command_pane_set_commands (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane), g_value_get_object (value));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_IS_OPERATION_RUNNING_PROPERTY:
		accounts_editor_pane_set_is_operation_running (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane), g_value_get_boolean (value));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_OP_CANCELLABLE_PROPERTY:
		accounts_editor_pane_set_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane), g_value_get_object (value));
		break;
		case ACCOUNTS_EDITOR_EDIT_PANE_EDITOR_PROPERTY:
		accounts_editor_pane_set_editor (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane), g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
accounts_display_name_row_get_instance_private (AccountsDisplayNameRow* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsDisplayNameRow_private_offset);
}

static gboolean
_accounts_display_name_row_on_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender,
                                                                    GdkEventFocus* event,
                                                                    gpointer self)
{
	gboolean result;
	result = accounts_display_name_row_on_focus_out ((AccountsDisplayNameRow*) self);
	return result;
}

AccountsDisplayNameRow*
accounts_display_name_row_construct (GType object_type,
                                     GearyAccountInformation* account,
                                     ApplicationCommandStack* commands,
                                     GCancellable* cancellable)
{
	AccountsDisplayNameRow * self = NULL;
	GtkEntry* _tmp0_;
	GtkEntry* _tmp1_;
	ApplicationCommandStack* _tmp2_;
	GCancellable* _tmp3_;
	gconstpointer _tmp4_;
	gconstpointer _tmp5_;
	ComponentsEntryUndo* _tmp6_;
	gconstpointer _tmp7_;
	gconstpointer _tmp8_;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (account, GEARY_TYPE_ACCOUNT_INFORMATION), NULL);
	g_return_val_if_fail (APPLICATION_IS_COMMAND_STACK (commands), NULL);
	g_return_val_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()), NULL);
	_tmp0_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	self = (AccountsDisplayNameRow*) accounts_account_row_construct (object_type, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, gtk_entry_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, account, _ ("Account name"), _tmp1_);
	_g_object_unref0 (_tmp1_);
	gtk_list_box_row_set_activatable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_list_box_row_get_type (), GtkListBoxRow), FALSE);
	_tmp2_ = _g_object_ref0 (commands);
	_g_object_unref0 (self->priv->commands);
	self->priv->commands = _tmp2_;
	_tmp3_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (self->priv->cancellable);
	self->priv->cancellable = _tmp3_;
	accounts_account_row_update (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp4_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp5_ = _tmp4_;
	_tmp6_ = components_entry_undo_new ((GtkEntry*) _tmp5_);
	_g_object_unref0 (self->priv->value_undo);
	self->priv->value_undo = _tmp6_;
	_tmp7_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp8_ = _tmp7_;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST ((GtkEntry*) _tmp8_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _accounts_display_name_row_on_focus_out_gtk_widget_focus_out_event, self, 0);
	return self;
}

AccountsDisplayNameRow*
accounts_display_name_row_new (GearyAccountInformation* account,
                               ApplicationCommandStack* commands,
                               GCancellable* cancellable)
{
	return accounts_display_name_row_construct (ACCOUNTS_TYPE_DISPLAY_NAME_ROW, account, commands, cancellable);
}

static void
accounts_display_name_row_real_update (AccountsAccountRow* base)
{
	AccountsDisplayNameRow * self;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	GearyAccountInformation* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GearyRFC822MailboxAddress* _tmp4_;
	GearyRFC822MailboxAddress* _tmp5_;
	GearyRFC822MailboxAddress* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gconstpointer _tmp9_;
	gconstpointer _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	GearyAccountInformation* _tmp13_;
	GearyAccountInformation* _tmp14_;
	const gchar* _tmp15_;
	const gchar* _tmp16_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_DISPLAY_NAME_ROW, AccountsDisplayNameRow);
	_tmp0_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp3_ = _tmp2_;
	_tmp4_ = geary_account_information_get_primary_mailbox (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = _tmp5_;
	_tmp7_ = geary_rf_c822_mailbox_address_get_address (_tmp6_);
	_tmp8_ = _tmp7_;
	gtk_entry_set_placeholder_text ((GtkEntry*) _tmp1_, _tmp8_);
	_g_object_unref0 (_tmp6_);
	_tmp9_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp10_ = _tmp9_;
	_tmp11_ = gtk_entry_get_text ((GtkEntry*) _tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp14_ = _tmp13_;
	_tmp15_ = geary_account_information_get_display_name (_tmp14_);
	_tmp16_ = _tmp15_;
	if (g_strcmp0 (_tmp12_, _tmp16_) != 0) {
		gconstpointer _tmp17_;
		gconstpointer _tmp18_;
		GearyAccountInformation* _tmp19_;
		GearyAccountInformation* _tmp20_;
		const gchar* _tmp21_;
		const gchar* _tmp22_;
		_tmp17_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
		_tmp18_ = _tmp17_;
		_tmp19_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
		_tmp20_ = _tmp19_;
		_tmp21_ = geary_account_information_get_display_name (_tmp20_);
		_tmp22_ = _tmp21_;
		gtk_entry_set_text ((GtkEntry*) _tmp18_, _tmp22_);
	}
}

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

static void
accounts_display_name_row_commit (AccountsDisplayNameRow* self)
{
	gchar* value = NULL;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp23_;
	GearyAccountInformation* _tmp24_;
	GearyAccountInformation* _tmp25_;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	const gchar* _tmp35_;
	g_return_if_fail (ACCOUNTS_IS_DISPLAY_NAME_ROW (self));
	_tmp0_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_entry_get_text ((GtkEntry*) _tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = string_strip (_tmp3_);
	value = _tmp4_;
	_tmp5_ = value;
	if (g_strcmp0 (_tmp5_, "") == 0) {
		GearyAccountInformation* _tmp6_;
		GearyAccountInformation* _tmp7_;
		GearyRFC822MailboxAddress* _tmp8_;
		GearyRFC822MailboxAddress* _tmp9_;
		GearyRFC822MailboxAddress* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		gchar* _tmp13_;
		gconstpointer _tmp14_;
		gconstpointer _tmp15_;
		GearyAccountInformation* _tmp16_;
		GearyAccountInformation* _tmp17_;
		GearyRFC822MailboxAddress* _tmp18_;
		GearyRFC822MailboxAddress* _tmp19_;
		GearyRFC822MailboxAddress* _tmp20_;
		const gchar* _tmp21_;
		const gchar* _tmp22_;
		_tmp6_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
		_tmp7_ = _tmp6_;
		_tmp8_ = geary_account_information_get_primary_mailbox (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp10_ = _tmp9_;
		_tmp11_ = geary_rf_c822_mailbox_address_get_address (_tmp10_);
		_tmp12_ = _tmp11_;
		_tmp13_ = g_strdup (_tmp12_);
		_g_free0 (value);
		value = _tmp13_;
		_g_object_unref0 (_tmp10_);
		_tmp14_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
		_tmp15_ = _tmp14_;
		_tmp16_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
		_tmp17_ = _tmp16_;
		_tmp18_ = geary_account_information_get_primary_mailbox (_tmp17_);
		_tmp19_ = _tmp18_;
		_tmp20_ = _tmp19_;
		_tmp21_ = geary_rf_c822_mailbox_address_get_address (_tmp20_);
		_tmp22_ = _tmp21_;
		gtk_entry_set_text ((GtkEntry*) _tmp15_, _tmp22_);
		_g_object_unref0 (_tmp20_);
	}
	_tmp23_ = value;
	_tmp24_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp25_ = _tmp24_;
	_tmp26_ = geary_account_information_get_display_name (_tmp25_);
	_tmp27_ = _tmp26_;
	if (g_strcmp0 (_tmp23_, _tmp27_) != 0) {
		ApplicationCommandStack* _tmp28_;
		GearyAccountInformation* _tmp29_;
		GearyAccountInformation* _tmp30_;
		const gchar* _tmp31_;
		ApplicationPropertyCommand* _tmp32_;
		ApplicationPropertyCommand* _tmp33_;
		GCancellable* _tmp34_;
		_tmp28_ = self->priv->commands;
		_tmp29_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
		_tmp30_ = _tmp29_;
		_tmp31_ = value;
		_tmp32_ = application_property_command_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, G_TYPE_OBJECT, GObject), "label", _tmp31_, _ ("Change account name back to “%s”"), NULL, NULL, NULL);
		_tmp33_ = _tmp32_;
		_tmp34_ = self->priv->cancellable;
		application_command_stack_execute (_tmp28_, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp34_, NULL, NULL);
		_g_object_unref0 (_tmp33_);
	}
	_tmp35_ = value;
	if (geary_string_is_empty (_tmp35_)) {
	}
	_g_free0 (value);
}

static gboolean
accounts_display_name_row_on_focus_out (AccountsDisplayNameRow* self)
{
	gboolean result;
	g_return_val_if_fail (ACCOUNTS_IS_DISPLAY_NAME_ROW (self), FALSE);
	accounts_display_name_row_commit (self);
	result = GDK_EVENT_PROPAGATE;
	return result;
}

static void
accounts_display_name_row_class_init (AccountsDisplayNameRowClass * klass,
                                      gpointer klass_data)
{
	accounts_display_name_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsDisplayNameRow_private_offset);
	((AccountsAccountRowClass *) klass)->update = (void (*) (AccountsAccountRow*)) accounts_display_name_row_real_update;
	G_OBJECT_CLASS (klass)->finalize = accounts_display_name_row_finalize;
}

static void
accounts_display_name_row_instance_init (AccountsDisplayNameRow * self,
                                         gpointer klass)
{
	self->priv = accounts_display_name_row_get_instance_private (self);
}

static void
accounts_display_name_row_finalize (GObject * obj)
{
	AccountsDisplayNameRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_DISPLAY_NAME_ROW, AccountsDisplayNameRow);
	_g_object_unref0 (self->priv->value_undo);
	_g_object_unref0 (self->priv->commands);
	_g_object_unref0 (self->priv->cancellable);
	G_OBJECT_CLASS (accounts_display_name_row_parent_class)->finalize (obj);
}

static GType
accounts_display_name_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsDisplayNameRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_display_name_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsDisplayNameRow), 0, (GInstanceInitFunc) accounts_display_name_row_instance_init, NULL };
	GType accounts_display_name_row_type_id;
	accounts_display_name_row_type_id = g_type_register_static (ACCOUNTS_TYPE_ACCOUNT_ROW, "AccountsDisplayNameRow", &g_define_type_info, 0);
	AccountsDisplayNameRow_private_offset = g_type_add_instance_private (accounts_display_name_row_type_id, sizeof (AccountsDisplayNameRowPrivate));
	return accounts_display_name_row_type_id;
}

GType
accounts_display_name_row_get_type (void)
{
	static volatile gsize accounts_display_name_row_type_id__once = 0;
	if (g_once_init_enter (&accounts_display_name_row_type_id__once)) {
		GType accounts_display_name_row_type_id;
		accounts_display_name_row_type_id = accounts_display_name_row_get_type_once ();
		g_once_init_leave (&accounts_display_name_row_type_id__once, accounts_display_name_row_type_id);
	}
	return accounts_display_name_row_type_id__once;
}

AccountsAddMailboxRow*
accounts_add_mailbox_row_construct (GType object_type)
{
	AccountsAddMailboxRow * self = NULL;
	self = (AccountsAddMailboxRow*) accounts_add_row_construct (object_type, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _ ("Add a new sender email address"));
	return self;
}

AccountsAddMailboxRow*
accounts_add_mailbox_row_new (void)
{
	return accounts_add_mailbox_row_construct (ACCOUNTS_TYPE_ADD_MAILBOX_ROW);
}

static Block44Data*
block44_data_ref (Block44Data* _data44_)
{
	g_atomic_int_inc (&_data44_->_ref_count_);
	return _data44_;
}

static void
block44_data_unref (void * _userdata_)
{
	Block44Data* _data44_;
	_data44_ = (Block44Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data44_->_ref_count_)) {
		AccountsAddMailboxRow* self;
		self = _data44_->self;
		_g_object_unref0 (_data44_->popover);
		_g_object_unref0 (_data44_->pane);
		_g_object_unref0 (self);
		g_slice_free (Block44Data, _data44_);
	}
}

static void
__lambda83_ (Block44Data* _data44_)
{
	AccountsAddMailboxRow* self;
	ApplicationCommandStack* _tmp0_;
	ApplicationCommandStack* _tmp1_;
	GtkContainer* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	GearyRFC822MailboxAddress* _tmp7_;
	GearyRFC822MailboxAddress* _tmp8_;
	AccountsMailboxRow* _tmp9_;
	AccountsMailboxRow* _tmp10_;
	AccountsAppendMailboxCommand* _tmp11_;
	AccountsAppendMailboxCommand* _tmp12_;
	GCancellable* _tmp13_;
	GCancellable* _tmp14_;
	self = _data44_->self;
	_tmp0_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (_data44_->pane, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
	_tmp3_ = accounts_mailbox_editor_popover_get_display_name (_data44_->popover);
	_tmp4_ = _tmp3_;
	_tmp5_ = accounts_mailbox_editor_popover_get_address (_data44_->popover);
	_tmp6_ = _tmp5_;
	_tmp7_ = geary_rf_c822_mailbox_address_new (_tmp4_, _tmp6_);
	_tmp8_ = _tmp7_;
	_tmp9_ = accounts_editor_edit_pane_new_mailbox_row (_data44_->pane, _tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = accounts_append_mailbox_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_list_box_get_type (), GtkListBox), _tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (_data44_->pane, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp14_ = _tmp13_;
	application_command_stack_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp14_, NULL, NULL);
	_g_object_unref0 (_tmp12_);
	_g_object_unref0 (_tmp10_);
	_g_object_unref0 (_tmp8_);
	gtk_popover_popdown (G_TYPE_CHECK_INSTANCE_CAST (_data44_->popover, gtk_popover_get_type (), GtkPopover));
}

static void
___lambda83__accounts_mailbox_editor_popover_activated (AccountsMailboxEditorPopover* _sender,
                                                        gpointer self)
{
	__lambda83_ (self);
}

static void
accounts_add_mailbox_row_real_activated (AccountsEditorRow* base,
                                         AccountsEditorEditPane* pane)
{
	AccountsAddMailboxRow * self;
	Block44Data* _data44_;
	AccountsEditorEditPane* _tmp0_;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_;
	AccountsMailboxEditorPopover* _tmp4_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_ADD_MAILBOX_ROW, AccountsAddMailboxRow);
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (pane));
	_data44_ = g_slice_new0 (Block44Data);
	_data44_->_ref_count_ = 1;
	_data44_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (pane);
	_g_object_unref0 (_data44_->pane);
	_data44_->pane = _tmp0_;
	_tmp2_ = accounts_editor_edit_pane_get_default_name (_data44_->pane);
	_tmp1_ = _tmp2_;
	if (_tmp1_ == NULL) {
		gchar* _tmp3_;
		_tmp3_ = g_strdup ("");
		_g_free0 (_tmp1_);
		_tmp1_ = _tmp3_;
	}
	_tmp4_ = accounts_mailbox_editor_popover_new (_tmp1_, "", FALSE);
	g_object_ref_sink (_tmp4_);
	_data44_->popover = _tmp4_;
	g_signal_connect_data (_data44_->popover, "activated", (GCallback) ___lambda83__accounts_mailbox_editor_popover_activated, block44_data_ref (_data44_), (GClosureNotify) block44_data_unref, 0);
	gtk_popover_set_relative_to (G_TYPE_CHECK_INSTANCE_CAST (_data44_->popover, gtk_popover_get_type (), GtkPopover), G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
	accounts_editor_popover_popup (G_TYPE_CHECK_INSTANCE_CAST (_data44_->popover, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover));
	_g_free0 (_tmp1_);
	block44_data_unref (_data44_);
	_data44_ = NULL;
}

static void
accounts_add_mailbox_row_class_init (AccountsAddMailboxRowClass * klass,
                                     gpointer klass_data)
{
	accounts_add_mailbox_row_parent_class = g_type_class_peek_parent (klass);
	((AccountsEditorRowClass *) klass)->activated = (void (*) (AccountsEditorRow*, gconstpointer)) accounts_add_mailbox_row_real_activated;
}

static void
accounts_add_mailbox_row_instance_init (AccountsAddMailboxRow * self,
                                        gpointer klass)
{
}

static GType
accounts_add_mailbox_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsAddMailboxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_add_mailbox_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsAddMailboxRow), 0, (GInstanceInitFunc) accounts_add_mailbox_row_instance_init, NULL };
	GType accounts_add_mailbox_row_type_id;
	accounts_add_mailbox_row_type_id = g_type_register_static (ACCOUNTS_TYPE_ADD_ROW, "AccountsAddMailboxRow", &g_define_type_info, 0);
	return accounts_add_mailbox_row_type_id;
}

GType
accounts_add_mailbox_row_get_type (void)
{
	static volatile gsize accounts_add_mailbox_row_type_id__once = 0;
	if (g_once_init_enter (&accounts_add_mailbox_row_type_id__once)) {
		GType accounts_add_mailbox_row_type_id;
		accounts_add_mailbox_row_type_id = accounts_add_mailbox_row_get_type_once ();
		g_once_init_leave (&accounts_add_mailbox_row_type_id__once, accounts_add_mailbox_row_type_id);
	}
	return accounts_add_mailbox_row_type_id__once;
}

AccountsMailboxRow*
accounts_mailbox_row_construct (GType object_type,
                                GearyAccountInformation* account,
                                GearyRFC822MailboxAddress* mailbox)
{
	AccountsMailboxRow * self = NULL;
	GtkLabel* label = NULL;
	GtkLabel* _tmp0_;
	GearyRFC822MailboxAddress* _tmp1_;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (account, GEARY_TYPE_ACCOUNT_INFORMATION), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (mailbox, GEARY_RF_C822_TYPE_MAILBOX_ADDRESS), NULL);
	_tmp0_ = (GtkLabel*) gtk_label_new ("");
	g_object_ref_sink (_tmp0_);
	label = _tmp0_;
	gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
	self = (AccountsMailboxRow*) accounts_account_row_construct (object_type, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, gtk_label_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, account, "", label);
	_tmp1_ = _g_object_ref0 (mailbox);
	_g_object_unref0 (self->mailbox);
	self->mailbox = _tmp1_;
	accounts_editor_row_enable_drag (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_ROW, AccountsEditorRow));
	accounts_account_row_update (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_g_object_unref0 (label);
	return self;
}

AccountsMailboxRow*
accounts_mailbox_row_new (GearyAccountInformation* account,
                          GearyRFC822MailboxAddress* mailbox)
{
	return accounts_mailbox_row_construct (ACCOUNTS_TYPE_MAILBOX_ROW, account, mailbox);
}

static Block45Data*
block45_data_ref (Block45Data* _data45_)
{
	g_atomic_int_inc (&_data45_->_ref_count_);
	return _data45_;
}

static void
block45_data_unref (void * _userdata_)
{
	Block45Data* _data45_;
	_data45_ = (Block45Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data45_->_ref_count_)) {
		AccountsMailboxRow* self;
		self = _data45_->self;
		_g_object_unref0 (_data45_->popover);
		_g_object_unref0 (_data45_->pane);
		_g_object_unref0 (self);
		g_slice_free (Block45Data, _data45_);
	}
}

static void
__lambda81_ (Block45Data* _data45_)
{
	AccountsMailboxRow* self;
	ApplicationCommandStack* _tmp0_;
	ApplicationCommandStack* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	GearyRFC822MailboxAddress* _tmp6_;
	GearyRFC822MailboxAddress* _tmp7_;
	AccountsUpdateMailboxCommand* _tmp8_;
	AccountsUpdateMailboxCommand* _tmp9_;
	GCancellable* _tmp10_;
	GCancellable* _tmp11_;
	self = _data45_->self;
	_tmp0_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (_data45_->pane, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_mailbox_editor_popover_get_display_name (_data45_->popover);
	_tmp3_ = _tmp2_;
	_tmp4_ = accounts_mailbox_editor_popover_get_address (_data45_->popover);
	_tmp5_ = _tmp4_;
	_tmp6_ = geary_rf_c822_mailbox_address_new (_tmp3_, _tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = accounts_update_mailbox_command_new (self, _tmp7_);
	_tmp9_ = _tmp8_;
	_tmp10_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (_data45_->pane, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp11_ = _tmp10_;
	application_command_stack_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp11_, NULL, NULL);
	_g_object_unref0 (_tmp9_);
	_g_object_unref0 (_tmp7_);
	gtk_popover_popdown (G_TYPE_CHECK_INSTANCE_CAST (_data45_->popover, gtk_popover_get_type (), GtkPopover));
}

static void
___lambda81__accounts_mailbox_editor_popover_activated (AccountsMailboxEditorPopover* _sender,
                                                        gpointer self)
{
	__lambda81_ (self);
}

static void
__lambda82_ (Block45Data* _data45_)
{
	AccountsMailboxRow* self;
	ApplicationCommandStack* _tmp0_;
	ApplicationCommandStack* _tmp1_;
	AccountsRemoveMailboxCommand* _tmp2_;
	AccountsRemoveMailboxCommand* _tmp3_;
	GCancellable* _tmp4_;
	GCancellable* _tmp5_;
	self = _data45_->self;
	_tmp0_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (_data45_->pane, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_remove_mailbox_command_new (self);
	_tmp3_ = _tmp2_;
	_tmp4_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (_data45_->pane, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp5_ = _tmp4_;
	application_command_stack_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp5_, NULL, NULL);
	_g_object_unref0 (_tmp3_);
	gtk_popover_popdown (G_TYPE_CHECK_INSTANCE_CAST (_data45_->popover, gtk_popover_get_type (), GtkPopover));
}

static void
___lambda82__accounts_mailbox_editor_popover_remove_clicked (AccountsMailboxEditorPopover* _sender,
                                                             gpointer self)
{
	__lambda82_ (self);
}

static void
accounts_mailbox_row_real_activated (AccountsEditorRow* base,
                                     AccountsEditorEditPane* pane)
{
	AccountsMailboxRow * self;
	Block45Data* _data45_;
	AccountsEditorEditPane* _tmp0_;
	const gchar* _tmp1_ = NULL;
	GearyRFC822MailboxAddress* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	GearyRFC822MailboxAddress* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	GearyAccountInformation* _tmp8_;
	GearyAccountInformation* _tmp9_;
	gboolean _tmp10_;
	gboolean _tmp11_;
	AccountsMailboxEditorPopover* _tmp12_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRow);
	g_return_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (pane));
	_data45_ = g_slice_new0 (Block45Data);
	_data45_->_ref_count_ = 1;
	_data45_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (pane);
	_g_object_unref0 (_data45_->pane);
	_data45_->pane = _tmp0_;
	_tmp2_ = self->mailbox;
	_tmp3_ = geary_rf_c822_mailbox_address_get_name (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp1_ = _tmp4_;
	if (_tmp1_ == NULL) {
		_tmp1_ = "";
	}
	_tmp5_ = self->mailbox;
	_tmp6_ = geary_rf_c822_mailbox_address_get_address (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp9_ = _tmp8_;
	_tmp10_ = geary_account_information_get_has_sender_aliases (_tmp9_);
	_tmp11_ = _tmp10_;
	_tmp12_ = accounts_mailbox_editor_popover_new (_tmp1_, _tmp7_, _tmp11_);
	g_object_ref_sink (_tmp12_);
	_data45_->popover = _tmp12_;
	g_signal_connect_data (_data45_->popover, "activated", (GCallback) ___lambda81__accounts_mailbox_editor_popover_activated, block45_data_ref (_data45_), (GClosureNotify) block45_data_unref, 0);
	g_signal_connect_data (_data45_->popover, "remove-clicked", (GCallback) ___lambda82__accounts_mailbox_editor_popover_remove_clicked, block45_data_ref (_data45_), (GClosureNotify) block45_data_unref, 0);
	gtk_popover_set_relative_to (G_TYPE_CHECK_INSTANCE_CAST (_data45_->popover, gtk_popover_get_type (), GtkPopover), G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
	accounts_editor_popover_popup (G_TYPE_CHECK_INSTANCE_CAST (_data45_->popover, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover));
	block45_data_unref (_data45_);
	_data45_ = NULL;
}

static void
accounts_mailbox_row_real_update (AccountsAccountRow* base)
{
	AccountsMailboxRow * self;
	gchar* name = NULL;
	GearyRFC822MailboxAddress* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	GtkLabel* _tmp6_;
	GtkLabel* _tmp7_;
	const gchar* _tmp8_;
	gconstpointer _tmp9_;
	gconstpointer _tmp10_;
	GearyRFC822MailboxAddress* _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRow);
	_tmp0_ = self->mailbox;
	_tmp1_ = geary_rf_c822_mailbox_address_get_name (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strdup (_tmp2_);
	name = _tmp3_;
	_tmp4_ = name;
	if (geary_string_is_empty_or_whitespace (_tmp4_)) {
		gchar* _tmp5_;
		_tmp5_ = g_strdup (_ ("Name not set"));
		_g_free0 (name);
		name = _tmp5_;
		accounts_labelled_editor_row_set_dim_label (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow), TRUE);
	} else {
		accounts_labelled_editor_row_set_dim_label (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow), FALSE);
	}
	_tmp6_ = accounts_labelled_editor_row_get_label (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp7_ = _tmp6_;
	_tmp8_ = name;
	gtk_label_set_text (_tmp7_, _tmp8_);
	_tmp9_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp10_ = _tmp9_;
	_tmp11_ = self->mailbox;
	_tmp12_ = geary_rf_c822_mailbox_address_get_address (_tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = string_strip (_tmp13_);
	_tmp15_ = _tmp14_;
	gtk_label_set_text ((GtkLabel*) _tmp10_, _tmp15_);
	_g_free0 (_tmp15_);
	_g_free0 (name);
}

static void
accounts_mailbox_row_class_init (AccountsMailboxRowClass * klass,
                                 gpointer klass_data)
{
	accounts_mailbox_row_parent_class = g_type_class_peek_parent (klass);
	((AccountsEditorRowClass *) klass)->activated = (void (*) (AccountsEditorRow*, gconstpointer)) accounts_mailbox_row_real_activated;
	((AccountsAccountRowClass *) klass)->update = (void (*) (AccountsAccountRow*)) accounts_mailbox_row_real_update;
	G_OBJECT_CLASS (klass)->finalize = accounts_mailbox_row_finalize;
}

static void
accounts_mailbox_row_instance_init (AccountsMailboxRow * self,
                                    gpointer klass)
{
}

static void
accounts_mailbox_row_finalize (GObject * obj)
{
	AccountsMailboxRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_MAILBOX_ROW, AccountsMailboxRow);
	_g_object_unref0 (self->mailbox);
	G_OBJECT_CLASS (accounts_mailbox_row_parent_class)->finalize (obj);
}

static GType
accounts_mailbox_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsMailboxRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_mailbox_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsMailboxRow), 0, (GInstanceInitFunc) accounts_mailbox_row_instance_init, NULL };
	GType accounts_mailbox_row_type_id;
	accounts_mailbox_row_type_id = g_type_register_static (ACCOUNTS_TYPE_ACCOUNT_ROW, "AccountsMailboxRow", &g_define_type_info, 0);
	return accounts_mailbox_row_type_id;
}

GType
accounts_mailbox_row_get_type (void)
{
	static volatile gsize accounts_mailbox_row_type_id__once = 0;
	if (g_once_init_enter (&accounts_mailbox_row_type_id__once)) {
		GType accounts_mailbox_row_type_id;
		accounts_mailbox_row_type_id = accounts_mailbox_row_get_type_once ();
		g_once_init_leave (&accounts_mailbox_row_type_id__once, accounts_mailbox_row_type_id);
	}
	return accounts_mailbox_row_type_id__once;
}

static inline gpointer
accounts_mailbox_editor_popover_get_instance_private (AccountsMailboxEditorPopover* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsMailboxEditorPopover_private_offset);
}

static void
_accounts_mailbox_editor_popover_on_name_changed_gtk_editable_changed (GtkEditable* _sender,
                                                                       gpointer self)
{
	accounts_mailbox_editor_popover_on_name_changed ((AccountsMailboxEditorPopover*) self);
}

static void
_accounts_mailbox_editor_popover_on_activate_gtk_entry_activate (GtkEntry* _sender,
                                                                 gpointer self)
{
	accounts_mailbox_editor_popover_on_activate ((AccountsMailboxEditorPopover*) self);
}

static void
_accounts_mailbox_editor_popover_on_address_changed_gtk_editable_changed (GtkEditable* _sender,
                                                                          gpointer self)
{
	accounts_mailbox_editor_popover_on_address_changed ((AccountsMailboxEditorPopover*) self);
}

static void
_accounts_mailbox_editor_popover_on_remove_clicked_gtk_button_clicked (GtkButton* _sender,
                                                                       gpointer self)
{
	accounts_mailbox_editor_popover_on_remove_clicked ((AccountsMailboxEditorPopover*) self);
}

const gchar*
accounts_mailbox_editor_popover_get_display_name (AccountsMailboxEditorPopover* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self), NULL);
	_tmp0_ = self->priv->_display_name;
	result = _tmp0_;
	return result;
}

static void
accounts_mailbox_editor_popover_set_display_name (AccountsMailboxEditorPopover* self,
                                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self));
	old_value = accounts_mailbox_editor_popover_get_display_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_display_name);
		self->priv->_display_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, accounts_mailbox_editor_popover_properties[ACCOUNTS_MAILBOX_EDITOR_POPOVER_DISPLAY_NAME_PROPERTY]);
	}
}

const gchar*
accounts_mailbox_editor_popover_get_address (AccountsMailboxEditorPopover* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self), NULL);
	_tmp0_ = self->priv->_address;
	result = _tmp0_;
	return result;
}

static void
accounts_mailbox_editor_popover_set_address (AccountsMailboxEditorPopover* self,
                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self));
	old_value = accounts_mailbox_editor_popover_get_address (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_address);
		self->priv->_address = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, accounts_mailbox_editor_popover_properties[ACCOUNTS_MAILBOX_EDITOR_POPOVER_ADDRESS_PROPERTY]);
	}
}

AccountsMailboxEditorPopover*
accounts_mailbox_editor_popover_construct (GType object_type,
                                           const gchar* display_name,
                                           const gchar* address,
                                           gboolean can_remove)
{
	AccountsMailboxEditorPopover * self = NULL;
	const gchar* _tmp0_ = NULL;
	GtkEntry* _tmp1_;
	GtkEntry* _tmp2_;
	GtkEntry* _tmp3_;
	GtkEntry* _tmp4_;
	GtkEntry* _tmp5_;
	GtkEntry* _tmp6_;
	GtkEntry* _tmp7_;
	ComponentsEntryUndo* _tmp8_;
	GtkEntry* _tmp9_;
	const gchar* _tmp10_ = NULL;
	GtkEntry* _tmp11_;
	GtkEntry* _tmp12_;
	GtkEntry* _tmp13_;
	GtkEntry* _tmp14_;
	GtkEntry* _tmp15_;
	GtkEntry* _tmp16_;
	GtkEntry* _tmp17_;
	ComponentsEntryUndo* _tmp18_;
	GtkEntry* _tmp19_;
	ComponentsEmailValidator* _tmp20_;
	GtkButton* _tmp21_;
	GtkButton* _tmp22_;
	GtkButton* _tmp23_;
	GtkStyleContext* _tmp24_;
	GtkButton* _tmp25_;
	GtkStyleContext* _tmp26_;
	GtkButton* _tmp27_;
	GtkButton* _tmp28_;
	GtkEntry* _tmp29_;
	GtkEntry* _tmp30_;
	GtkEntry* _tmp34_;
	GtkWidget* _tmp35_;
	self = (AccountsMailboxEditorPopover*) accounts_editor_popover_construct (object_type);
	accounts_mailbox_editor_popover_set_display_name (self, display_name);
	accounts_mailbox_editor_popover_set_address (self, address);
	_tmp0_ = display_name;
	if (_tmp0_ == NULL) {
		_tmp0_ = "";
	}
	_tmp1_ = self->priv->name_entry;
	gtk_entry_set_text (_tmp1_, _tmp0_);
	_tmp2_ = self->priv->name_entry;
	gtk_entry_set_placeholder_text (_tmp2_, _ ("Sender Name"));
	_tmp3_ = self->priv->name_entry;
	gtk_entry_set_width_chars (_tmp3_, 20);
	_tmp4_ = self->priv->name_entry;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_editable_get_type (), GtkEditable), "changed", (GCallback) _accounts_mailbox_editor_popover_on_name_changed_gtk_editable_changed, self, 0);
	_tmp5_ = self->priv->name_entry;
	g_signal_connect_object (_tmp5_, "activate", (GCallback) _accounts_mailbox_editor_popover_on_activate_gtk_entry_activate, self, 0);
	_tmp6_ = self->priv->name_entry;
	gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
	_tmp7_ = self->priv->name_entry;
	_tmp8_ = components_entry_undo_new (_tmp7_);
	_g_object_unref0 (self->priv->name_undo);
	self->priv->name_undo = _tmp8_;
	_tmp9_ = self->priv->address_entry;
	gtk_entry_set_input_purpose (_tmp9_, GTK_INPUT_PURPOSE_EMAIL);
	_tmp10_ = address;
	if (_tmp10_ == NULL) {
		_tmp10_ = "";
	}
	_tmp11_ = self->priv->address_entry;
	gtk_entry_set_text (_tmp11_, _tmp10_);
	_tmp12_ = self->priv->address_entry;
	gtk_entry_set_placeholder_text (_tmp12_, _ ("person@example.com"));
	_tmp13_ = self->priv->address_entry;
	gtk_entry_set_width_chars (_tmp13_, 20);
	_tmp14_ = self->priv->address_entry;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_editable_get_type (), GtkEditable), "changed", (GCallback) _accounts_mailbox_editor_popover_on_address_changed_gtk_editable_changed, self, 0);
	_tmp15_ = self->priv->address_entry;
	g_signal_connect_object (_tmp15_, "activate", (GCallback) _accounts_mailbox_editor_popover_on_activate_gtk_entry_activate, self, 0);
	_tmp16_ = self->priv->address_entry;
	gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget));
	_tmp17_ = self->priv->address_entry;
	_tmp18_ = components_entry_undo_new (_tmp17_);
	_g_object_unref0 (self->priv->address_undo);
	self->priv->address_undo = _tmp18_;
	_tmp19_ = self->priv->address_entry;
	_tmp20_ = components_email_validator_new (_tmp19_);
	_g_object_unref0 (self->priv->address_validator);
	self->priv->address_validator = _tmp20_;
	_tmp21_ = (GtkButton*) gtk_button_new_with_label (_ ("Remove"));
	g_object_ref_sink (_tmp21_);
	_g_object_unref0 (self->priv->remove_button);
	self->priv->remove_button = _tmp21_;
	_tmp22_ = self->priv->remove_button;
	gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_END);
	_tmp23_ = self->priv->remove_button;
	_tmp24_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp24_, "geary-setting-remove");
	_tmp25_ = self->priv->remove_button;
	_tmp26_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget));
	gtk_style_context_add_class (_tmp26_, GTK_STYLE_CLASS_DESTRUCTIVE_ACTION);
	_tmp27_ = self->priv->remove_button;
	g_signal_connect_object (_tmp27_, "clicked", (GCallback) _accounts_mailbox_editor_popover_on_remove_clicked_gtk_button_clicked, self, 0);
	_tmp28_ = self->priv->remove_button;
	gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget));
	_tmp29_ = self->priv->name_entry;
	accounts_editor_popover_add_labelled_row (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover), _ ("Sender name"), G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget));
	_tmp30_ = self->priv->address_entry;
	accounts_editor_popover_add_labelled_row (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover), _ ("Email address"), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_widget_get_type (), GtkWidget));
	if (can_remove) {
		GtkGrid* _tmp31_;
		GtkGrid* _tmp32_;
		GtkButton* _tmp33_;
		_tmp31_ = accounts_editor_popover_get_layout (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover));
		_tmp32_ = _tmp31_;
		_tmp33_ = self->priv->remove_button;
		gtk_grid_attach (_tmp32_, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), 0, 2, 2, 1);
	}
	_tmp34_ = self->priv->name_entry;
	_tmp35_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
	_g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover)->popup_focus);
	G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_EDITOR_POPOVER, AccountsEditorPopover)->popup_focus = _tmp35_;
	return self;
}

AccountsMailboxEditorPopover*
accounts_mailbox_editor_popover_new (const gchar* display_name,
                                     const gchar* address,
                                     gboolean can_remove)
{
	return accounts_mailbox_editor_popover_construct (ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, display_name, address, can_remove);
}

static void
accounts_mailbox_editor_popover_on_name_changed (AccountsMailboxEditorPopover* self)
{
	GtkEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	g_return_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self));
	_tmp0_ = self->priv->name_entry;
	_tmp1_ = gtk_entry_get_text (_tmp0_);
	_tmp2_ = string_strip (_tmp1_);
	_tmp3_ = _tmp2_;
	accounts_mailbox_editor_popover_set_display_name (self, _tmp3_);
	_g_free0 (_tmp3_);
}

static void
accounts_mailbox_editor_popover_on_address_changed (AccountsMailboxEditorPopover* self)
{
	GtkEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	g_return_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self));
	_tmp0_ = self->priv->address_entry;
	_tmp1_ = gtk_entry_get_text (_tmp0_);
	_tmp2_ = string_strip (_tmp1_);
	_tmp3_ = _tmp2_;
	accounts_mailbox_editor_popover_set_address (self, _tmp3_);
	_g_free0 (_tmp3_);
}

static void
accounts_mailbox_editor_popover_on_remove_clicked (AccountsMailboxEditorPopover* self)
{
	g_return_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self));
	g_signal_emit (self, accounts_mailbox_editor_popover_signals[ACCOUNTS_MAILBOX_EDITOR_POPOVER_REMOVE_CLICKED_SIGNAL], 0);
}

static void
accounts_mailbox_editor_popover_on_activate (AccountsMailboxEditorPopover* self)
{
	gboolean _tmp0_ = FALSE;
	ComponentsEmailValidator* _tmp1_;
	ComponentsValidatorValidity _tmp2_;
	ComponentsValidatorValidity _tmp3_;
	g_return_if_fail (ACCOUNTS_IS_MAILBOX_EDITOR_POPOVER (self));
	_tmp1_ = self->priv->address_validator;
	_tmp2_ = components_validator_get_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, COMPONENTS_TYPE_VALIDATOR, ComponentsValidator));
	_tmp3_ = _tmp2_;
	if (_tmp3_ == COMPONENTS_VALIDATOR_VALIDITY_INDETERMINATE) {
		_tmp0_ = TRUE;
	} else {
		ComponentsEmailValidator* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp4_ = self->priv->address_validator;
		_tmp5_ = components_validator_get_is_valid (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, COMPONENTS_TYPE_VALIDATOR, ComponentsValidator));
		_tmp6_ = _tmp5_;
		_tmp0_ = _tmp6_;
	}
	if (_tmp0_) {
		g_signal_emit (self, accounts_mailbox_editor_popover_signals[ACCOUNTS_MAILBOX_EDITOR_POPOVER_ACTIVATED_SIGNAL], 0);
	}
}

static void
accounts_mailbox_editor_popover_class_init (AccountsMailboxEditorPopoverClass * klass,
                                            gpointer klass_data)
{
	accounts_mailbox_editor_popover_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsMailboxEditorPopover_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_accounts_mailbox_editor_popover_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_accounts_mailbox_editor_popover_set_property;
	G_OBJECT_CLASS (klass)->finalize = accounts_mailbox_editor_popover_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_MAILBOX_EDITOR_POPOVER_DISPLAY_NAME_PROPERTY, accounts_mailbox_editor_popover_properties[ACCOUNTS_MAILBOX_EDITOR_POPOVER_DISPLAY_NAME_PROPERTY] = g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), ACCOUNTS_MAILBOX_EDITOR_POPOVER_ADDRESS_PROPERTY, accounts_mailbox_editor_popover_properties[ACCOUNTS_MAILBOX_EDITOR_POPOVER_ADDRESS_PROPERTY] = g_param_spec_string ("address", "address", "address", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	accounts_mailbox_editor_popover_signals[ACCOUNTS_MAILBOX_EDITOR_POPOVER_ACTIVATED_SIGNAL] = g_signal_new ("activated", ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	accounts_mailbox_editor_popover_signals[ACCOUNTS_MAILBOX_EDITOR_POPOVER_REMOVE_CLICKED_SIGNAL] = g_signal_new ("remove-clicked", ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
accounts_mailbox_editor_popover_instance_init (AccountsMailboxEditorPopover * self,
                                               gpointer klass)
{
	GtkEntry* _tmp0_;
	GtkEntry* _tmp1_;
	self->priv = accounts_mailbox_editor_popover_get_instance_private (self);
	_tmp0_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp0_);
	self->priv->name_entry = _tmp0_;
	_tmp1_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp1_);
	self->priv->address_entry = _tmp1_;
}

static void
accounts_mailbox_editor_popover_finalize (GObject * obj)
{
	AccountsMailboxEditorPopover * self;
	GtkEntry* _tmp0_;
	guint _tmp1_;
	GtkEntry* _tmp2_;
	guint _tmp3_;
	GtkEntry* _tmp4_;
	guint _tmp5_;
	GtkEntry* _tmp6_;
	guint _tmp7_;
	GtkButton* _tmp8_;
	guint _tmp9_;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, AccountsMailboxEditorPopover);
	_tmp0_ = self->priv->name_entry;
	g_signal_parse_name ("changed", gtk_editable_get_type (), &_tmp1_, NULL, FALSE);
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_editable_get_type (), GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _accounts_mailbox_editor_popover_on_name_changed_gtk_editable_changed, self);
	_tmp2_ = self->priv->name_entry;
	g_signal_parse_name ("activate", gtk_entry_get_type (), &_tmp3_, NULL, FALSE);
	g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _accounts_mailbox_editor_popover_on_activate_gtk_entry_activate, self);
	_tmp4_ = self->priv->address_entry;
	g_signal_parse_name ("changed", gtk_editable_get_type (), &_tmp5_, NULL, FALSE);
	g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_editable_get_type (), GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _accounts_mailbox_editor_popover_on_address_changed_gtk_editable_changed, self);
	_tmp6_ = self->priv->address_entry;
	g_signal_parse_name ("activate", gtk_entry_get_type (), &_tmp7_, NULL, FALSE);
	g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _accounts_mailbox_editor_popover_on_activate_gtk_entry_activate, self);
	_tmp8_ = self->priv->remove_button;
	g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp9_, NULL, FALSE);
	g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _accounts_mailbox_editor_popover_on_remove_clicked_gtk_button_clicked, self);
	_g_free0 (self->priv->_display_name);
	_g_free0 (self->priv->_address);
	_g_object_unref0 (self->priv->name_entry);
	_g_object_unref0 (self->priv->name_undo);
	_g_object_unref0 (self->priv->address_entry);
	_g_object_unref0 (self->priv->address_undo);
	_g_object_unref0 (self->priv->address_validator);
	_g_object_unref0 (self->priv->remove_button);
	G_OBJECT_CLASS (accounts_mailbox_editor_popover_parent_class)->finalize (obj);
}

static GType
accounts_mailbox_editor_popover_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsMailboxEditorPopoverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_mailbox_editor_popover_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsMailboxEditorPopover), 0, (GInstanceInitFunc) accounts_mailbox_editor_popover_instance_init, NULL };
	GType accounts_mailbox_editor_popover_type_id;
	accounts_mailbox_editor_popover_type_id = g_type_register_static (ACCOUNTS_TYPE_EDITOR_POPOVER, "AccountsMailboxEditorPopover", &g_define_type_info, 0);
	AccountsMailboxEditorPopover_private_offset = g_type_add_instance_private (accounts_mailbox_editor_popover_type_id, sizeof (AccountsMailboxEditorPopoverPrivate));
	return accounts_mailbox_editor_popover_type_id;
}

GType
accounts_mailbox_editor_popover_get_type (void)
{
	static volatile gsize accounts_mailbox_editor_popover_type_id__once = 0;
	if (g_once_init_enter (&accounts_mailbox_editor_popover_type_id__once)) {
		GType accounts_mailbox_editor_popover_type_id;
		accounts_mailbox_editor_popover_type_id = accounts_mailbox_editor_popover_get_type_once ();
		g_once_init_leave (&accounts_mailbox_editor_popover_type_id__once, accounts_mailbox_editor_popover_type_id);
	}
	return accounts_mailbox_editor_popover_type_id__once;
}

static void
_vala_accounts_mailbox_editor_popover_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec)
{
	AccountsMailboxEditorPopover * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, AccountsMailboxEditorPopover);
	switch (property_id) {
		case ACCOUNTS_MAILBOX_EDITOR_POPOVER_DISPLAY_NAME_PROPERTY:
		g_value_set_string (value, accounts_mailbox_editor_popover_get_display_name (self));
		break;
		case ACCOUNTS_MAILBOX_EDITOR_POPOVER_ADDRESS_PROPERTY:
		g_value_set_string (value, accounts_mailbox_editor_popover_get_address (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_accounts_mailbox_editor_popover_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec)
{
	AccountsMailboxEditorPopover * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, ACCOUNTS_TYPE_MAILBOX_EDITOR_POPOVER, AccountsMailboxEditorPopover);
	switch (property_id) {
		case ACCOUNTS_MAILBOX_EDITOR_POPOVER_DISPLAY_NAME_PROPERTY:
		accounts_mailbox_editor_popover_set_display_name (self, g_value_get_string (value));
		break;
		case ACCOUNTS_MAILBOX_EDITOR_POPOVER_ADDRESS_PROPERTY:
		accounts_mailbox_editor_popover_set_address (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
accounts_append_mailbox_command_get_instance_private (AccountsAppendMailboxCommand* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsAppendMailboxCommand_private_offset);
}

AccountsAppendMailboxCommand*
accounts_append_mailbox_command_construct (GType object_type,
                                           GtkListBox* senders_list,
                                           AccountsMailboxRow* new_row)
{
	AccountsAppendMailboxCommand * self = NULL;
	GtkListBox* _tmp0_;
	AccountsMailboxRow* _tmp1_;
	GearyAccountInformation* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GeeList* _tmp4_;
	GeeList* _tmp5_;
	GeeList* _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	GearyRFC822MailboxAddress* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (senders_list, gtk_list_box_get_type ()), NULL);
	g_return_val_if_fail (ACCOUNTS_IS_MAILBOX_ROW (new_row), NULL);
	self = (AccountsAppendMailboxCommand*) application_command_construct (object_type);
	_tmp0_ = _g_object_ref0 (senders_list);
	_g_object_unref0 (self->priv->senders_list);
	self->priv->senders_list = _tmp0_;
	_tmp1_ = _g_object_ref0 (new_row);
	_g_object_unref0 (self->priv->new_row);
	self->priv->new_row = _tmp1_;
	_tmp2_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (new_row, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp3_ = _tmp2_;
	_tmp4_ = geary_account_information_get_sender_mailboxes (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = _tmp5_;
	_tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
	_tmp8_ = _tmp7_;
	self->priv->mailbox_index = _tmp8_;
	_g_object_unref0 (_tmp6_);
	_tmp9_ = new_row->mailbox;
	_tmp10_ = geary_rf_c822_mailbox_address_get_address (_tmp9_);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_strdup_printf (_ ("Remove “%s”"), _tmp11_);
	_tmp13_ = _tmp12_;
	application_command_set_undo_label (G_TYPE_CHECK_INSTANCE_CAST (self, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp13_);
	_g_free0 (_tmp13_);
	return self;
}

AccountsAppendMailboxCommand*
accounts_append_mailbox_command_new (GtkListBox* senders_list,
                                     AccountsMailboxRow* new_row)
{
	return accounts_append_mailbox_command_construct (ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, senders_list, new_row);
}

static void
accounts_append_mailbox_command_real_execute_data_free (gpointer _data)
{
	AccountsAppendMailboxCommandExecuteData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsAppendMailboxCommandExecuteData, _data_);
}

static void
accounts_append_mailbox_command_real_execute (ApplicationCommand* base,
                                              GCancellable* cancellable,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	AccountsAppendMailboxCommand * self;
	AccountsAppendMailboxCommandExecuteData* _data_;
	AccountsAppendMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, AccountsAppendMailboxCommand);
	_data_ = g_slice_new0 (AccountsAppendMailboxCommandExecuteData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_append_mailbox_command_real_execute_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_append_mailbox_command_real_execute_co (_data_);
}

static void
accounts_append_mailbox_command_execute_finish (ApplicationCommand* base,
                                                GAsyncResult* _res_,
                                                GError** error)
{
	AccountsAppendMailboxCommandExecuteData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_append_mailbox_command_real_execute_co (AccountsAppendMailboxCommandExecuteData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->senders_list;
	_data_->_tmp1_ = _data_->self->priv->new_row;
	gtk_list_box_insert (_data_->_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp1_, gtk_widget_get_type (), GtkWidget), _data_->self->priv->mailbox_index);
	_data_->_tmp2_ = _data_->self->priv->new_row;
	_data_->_tmp3_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp2_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = _data_->self->priv->new_row;
	_data_->_tmp6_ = _data_->_tmp5_->mailbox;
	geary_account_information_append_sender (_data_->_tmp4_, _data_->_tmp6_);
	_data_->_tmp7_ = _data_->self->priv->new_row;
	_data_->_tmp8_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp7_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp9_ = _data_->_tmp8_;
	g_signal_emit_by_name (_data_->_tmp9_, "changed");
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_append_mailbox_command_real_undo_data_free (gpointer _data)
{
	AccountsAppendMailboxCommandUndoData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsAppendMailboxCommandUndoData, _data_);
}

static void
accounts_append_mailbox_command_real_undo (ApplicationCommand* base,
                                           GCancellable* cancellable,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_)
{
	AccountsAppendMailboxCommand * self;
	AccountsAppendMailboxCommandUndoData* _data_;
	AccountsAppendMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, AccountsAppendMailboxCommand);
	_data_ = g_slice_new0 (AccountsAppendMailboxCommandUndoData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_append_mailbox_command_real_undo_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_append_mailbox_command_real_undo_co (_data_);
}

static void
accounts_append_mailbox_command_undo_finish (ApplicationCommand* base,
                                             GAsyncResult* _res_,
                                             GError** error)
{
	AccountsAppendMailboxCommandUndoData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_append_mailbox_command_real_undo_co (AccountsAppendMailboxCommandUndoData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->senders_list;
	_data_->_tmp1_ = _data_->self->priv->new_row;
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp0_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp1_, gtk_widget_get_type (), GtkWidget));
	_data_->_tmp2_ = _data_->self->priv->new_row;
	_data_->_tmp3_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp2_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = _data_->self->priv->new_row;
	_data_->_tmp6_ = _data_->_tmp5_->mailbox;
	geary_account_information_remove_sender (_data_->_tmp4_, _data_->_tmp6_);
	_data_->_tmp7_ = _data_->self->priv->new_row;
	_data_->_tmp8_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp7_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp9_ = _data_->_tmp8_;
	g_signal_emit_by_name (_data_->_tmp9_, "changed");
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_append_mailbox_command_class_init (AccountsAppendMailboxCommandClass * klass,
                                            gpointer klass_data)
{
	accounts_append_mailbox_command_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsAppendMailboxCommand_private_offset);
	((ApplicationCommandClass *) klass)->execute = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_append_mailbox_command_real_execute;
	((ApplicationCommandClass *) klass)->execute_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_append_mailbox_command_execute_finish;
	((ApplicationCommandClass *) klass)->undo = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_append_mailbox_command_real_undo;
	((ApplicationCommandClass *) klass)->undo_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_append_mailbox_command_undo_finish;
	G_OBJECT_CLASS (klass)->finalize = accounts_append_mailbox_command_finalize;
}

static void
accounts_append_mailbox_command_instance_init (AccountsAppendMailboxCommand * self,
                                               gpointer klass)
{
	self->priv = accounts_append_mailbox_command_get_instance_private (self);
	self->priv->new_row = NULL;
}

static void
accounts_append_mailbox_command_finalize (GObject * obj)
{
	AccountsAppendMailboxCommand * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_APPEND_MAILBOX_COMMAND, AccountsAppendMailboxCommand);
	_g_object_unref0 (self->priv->senders_list);
	_g_object_unref0 (self->priv->new_row);
	G_OBJECT_CLASS (accounts_append_mailbox_command_parent_class)->finalize (obj);
}

static GType
accounts_append_mailbox_command_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsAppendMailboxCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_append_mailbox_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsAppendMailboxCommand), 0, (GInstanceInitFunc) accounts_append_mailbox_command_instance_init, NULL };
	GType accounts_append_mailbox_command_type_id;
	accounts_append_mailbox_command_type_id = g_type_register_static (APPLICATION_TYPE_COMMAND, "AccountsAppendMailboxCommand", &g_define_type_info, 0);
	AccountsAppendMailboxCommand_private_offset = g_type_add_instance_private (accounts_append_mailbox_command_type_id, sizeof (AccountsAppendMailboxCommandPrivate));
	return accounts_append_mailbox_command_type_id;
}

GType
accounts_append_mailbox_command_get_type (void)
{
	static volatile gsize accounts_append_mailbox_command_type_id__once = 0;
	if (g_once_init_enter (&accounts_append_mailbox_command_type_id__once)) {
		GType accounts_append_mailbox_command_type_id;
		accounts_append_mailbox_command_type_id = accounts_append_mailbox_command_get_type_once ();
		g_once_init_leave (&accounts_append_mailbox_command_type_id__once, accounts_append_mailbox_command_type_id);
	}
	return accounts_append_mailbox_command_type_id__once;
}

static inline gpointer
accounts_update_mailbox_command_get_instance_private (AccountsUpdateMailboxCommand* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsUpdateMailboxCommand_private_offset);
}

AccountsUpdateMailboxCommand*
accounts_update_mailbox_command_construct (GType object_type,
                                           AccountsMailboxRow* row,
                                           GearyRFC822MailboxAddress* new_mailbox)
{
	AccountsUpdateMailboxCommand * self = NULL;
	AccountsMailboxRow* _tmp0_;
	GearyRFC822MailboxAddress* _tmp1_;
	GearyRFC822MailboxAddress* _tmp2_;
	GearyRFC822MailboxAddress* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GearyAccountInformation* _tmp5_;
	GeeList* _tmp6_;
	GeeList* _tmp7_;
	GeeList* _tmp8_;
	GearyRFC822MailboxAddress* _tmp9_;
	GearyRFC822MailboxAddress* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	g_return_val_if_fail (ACCOUNTS_IS_MAILBOX_ROW (row), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (new_mailbox, GEARY_RF_C822_TYPE_MAILBOX_ADDRESS), NULL);
	self = (AccountsUpdateMailboxCommand*) application_command_construct (object_type);
	_tmp0_ = _g_object_ref0 (row);
	_g_object_unref0 (self->priv->row);
	self->priv->row = _tmp0_;
	_tmp1_ = _g_object_ref0 (new_mailbox);
	_g_object_unref0 (self->priv->new_mailbox);
	self->priv->new_mailbox = _tmp1_;
	_tmp2_ = row->mailbox;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	_g_object_unref0 (self->priv->old_mailbox);
	self->priv->old_mailbox = _tmp3_;
	_tmp4_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (row, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp5_ = _tmp4_;
	_tmp6_ = geary_account_information_get_sender_mailboxes (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = _tmp7_;
	_tmp9_ = self->priv->old_mailbox;
	self->priv->mailbox_index = gee_list_index_of (_tmp8_, _tmp9_);
	_g_object_unref0 (_tmp8_);
	_tmp10_ = self->priv->old_mailbox;
	_tmp11_ = geary_rf_c822_mailbox_address_get_address (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = g_strdup_printf (_ ("Undo changes to “%s”"), _tmp12_);
	_tmp14_ = _tmp13_;
	application_command_set_undo_label (G_TYPE_CHECK_INSTANCE_CAST (self, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp14_);
	_g_free0 (_tmp14_);
	return self;
}

AccountsUpdateMailboxCommand*
accounts_update_mailbox_command_new (AccountsMailboxRow* row,
                                     GearyRFC822MailboxAddress* new_mailbox)
{
	return accounts_update_mailbox_command_construct (ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, row, new_mailbox);
}

static void
accounts_update_mailbox_command_real_execute_data_free (gpointer _data)
{
	AccountsUpdateMailboxCommandExecuteData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsUpdateMailboxCommandExecuteData, _data_);
}

static void
accounts_update_mailbox_command_real_execute (ApplicationCommand* base,
                                              GCancellable* cancellable,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	AccountsUpdateMailboxCommand * self;
	AccountsUpdateMailboxCommandExecuteData* _data_;
	AccountsUpdateMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, AccountsUpdateMailboxCommand);
	_data_ = g_slice_new0 (AccountsUpdateMailboxCommandExecuteData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_update_mailbox_command_real_execute_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_update_mailbox_command_real_execute_co (_data_);
}

static void
accounts_update_mailbox_command_execute_finish (ApplicationCommand* base,
                                                GAsyncResult* _res_,
                                                GError** error)
{
	AccountsUpdateMailboxCommandExecuteData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_update_mailbox_command_real_execute_co (AccountsUpdateMailboxCommandExecuteData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->row;
	_data_->_tmp1_ = _data_->self->priv->new_mailbox;
	_data_->_tmp2_ = _g_object_ref0 (_data_->_tmp1_);
	_g_object_unref0 (_data_->_tmp0_->mailbox);
	_data_->_tmp0_->mailbox = _data_->_tmp2_;
	_data_->_tmp3_ = _data_->self->priv->row;
	_data_->_tmp4_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp3_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = _data_->self->priv->new_mailbox;
	geary_account_information_replace_sender (_data_->_tmp5_, _data_->self->priv->mailbox_index, _data_->_tmp6_);
	_data_->_tmp7_ = _data_->self->priv->row;
	_data_->_tmp8_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp7_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp9_ = _data_->_tmp8_;
	g_signal_emit_by_name (_data_->_tmp9_, "changed");
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_update_mailbox_command_real_undo_data_free (gpointer _data)
{
	AccountsUpdateMailboxCommandUndoData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsUpdateMailboxCommandUndoData, _data_);
}

static void
accounts_update_mailbox_command_real_undo (ApplicationCommand* base,
                                           GCancellable* cancellable,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_)
{
	AccountsUpdateMailboxCommand * self;
	AccountsUpdateMailboxCommandUndoData* _data_;
	AccountsUpdateMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, AccountsUpdateMailboxCommand);
	_data_ = g_slice_new0 (AccountsUpdateMailboxCommandUndoData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_update_mailbox_command_real_undo_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_update_mailbox_command_real_undo_co (_data_);
}

static void
accounts_update_mailbox_command_undo_finish (ApplicationCommand* base,
                                             GAsyncResult* _res_,
                                             GError** error)
{
	AccountsUpdateMailboxCommandUndoData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_update_mailbox_command_real_undo_co (AccountsUpdateMailboxCommandUndoData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->row;
	_data_->_tmp1_ = _data_->self->priv->old_mailbox;
	_data_->_tmp2_ = _g_object_ref0 (_data_->_tmp1_);
	_g_object_unref0 (_data_->_tmp0_->mailbox);
	_data_->_tmp0_->mailbox = _data_->_tmp2_;
	_data_->_tmp3_ = _data_->self->priv->row;
	_data_->_tmp4_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp3_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = _data_->self->priv->old_mailbox;
	geary_account_information_replace_sender (_data_->_tmp5_, _data_->self->priv->mailbox_index, _data_->_tmp6_);
	_data_->_tmp7_ = _data_->self->priv->row;
	_data_->_tmp8_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp7_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp9_ = _data_->_tmp8_;
	g_signal_emit_by_name (_data_->_tmp9_, "changed");
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_update_mailbox_command_class_init (AccountsUpdateMailboxCommandClass * klass,
                                            gpointer klass_data)
{
	accounts_update_mailbox_command_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsUpdateMailboxCommand_private_offset);
	((ApplicationCommandClass *) klass)->execute = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_update_mailbox_command_real_execute;
	((ApplicationCommandClass *) klass)->execute_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_update_mailbox_command_execute_finish;
	((ApplicationCommandClass *) klass)->undo = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_update_mailbox_command_real_undo;
	((ApplicationCommandClass *) klass)->undo_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_update_mailbox_command_undo_finish;
	G_OBJECT_CLASS (klass)->finalize = accounts_update_mailbox_command_finalize;
}

static void
accounts_update_mailbox_command_instance_init (AccountsUpdateMailboxCommand * self,
                                               gpointer klass)
{
	self->priv = accounts_update_mailbox_command_get_instance_private (self);
}

static void
accounts_update_mailbox_command_finalize (GObject * obj)
{
	AccountsUpdateMailboxCommand * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_UPDATE_MAILBOX_COMMAND, AccountsUpdateMailboxCommand);
	_g_object_unref0 (self->priv->row);
	_g_object_unref0 (self->priv->new_mailbox);
	_g_object_unref0 (self->priv->old_mailbox);
	G_OBJECT_CLASS (accounts_update_mailbox_command_parent_class)->finalize (obj);
}

static GType
accounts_update_mailbox_command_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsUpdateMailboxCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_update_mailbox_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsUpdateMailboxCommand), 0, (GInstanceInitFunc) accounts_update_mailbox_command_instance_init, NULL };
	GType accounts_update_mailbox_command_type_id;
	accounts_update_mailbox_command_type_id = g_type_register_static (APPLICATION_TYPE_COMMAND, "AccountsUpdateMailboxCommand", &g_define_type_info, 0);
	AccountsUpdateMailboxCommand_private_offset = g_type_add_instance_private (accounts_update_mailbox_command_type_id, sizeof (AccountsUpdateMailboxCommandPrivate));
	return accounts_update_mailbox_command_type_id;
}

GType
accounts_update_mailbox_command_get_type (void)
{
	static volatile gsize accounts_update_mailbox_command_type_id__once = 0;
	if (g_once_init_enter (&accounts_update_mailbox_command_type_id__once)) {
		GType accounts_update_mailbox_command_type_id;
		accounts_update_mailbox_command_type_id = accounts_update_mailbox_command_get_type_once ();
		g_once_init_leave (&accounts_update_mailbox_command_type_id__once, accounts_update_mailbox_command_type_id);
	}
	return accounts_update_mailbox_command_type_id__once;
}

static inline gpointer
accounts_reorder_mailbox_command_get_instance_private (AccountsReorderMailboxCommand* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsReorderMailboxCommand_private_offset);
}

AccountsReorderMailboxCommand*
accounts_reorder_mailbox_command_construct (GType object_type,
                                            AccountsMailboxRow* source,
                                            gint target_index,
                                            GearyAccountInformation* account,
                                            GtkListBox* list)
{
	AccountsReorderMailboxCommand * self = NULL;
	AccountsMailboxRow* _tmp0_;
	GearyAccountInformation* _tmp1_;
	GtkListBox* _tmp2_;
	g_return_val_if_fail (ACCOUNTS_IS_MAILBOX_ROW (source), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (account, GEARY_TYPE_ACCOUNT_INFORMATION), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (list, gtk_list_box_get_type ()), NULL);
	self = (AccountsReorderMailboxCommand*) application_command_construct (object_type);
	_tmp0_ = _g_object_ref0 (source);
	_g_object_unref0 (self->priv->source);
	self->priv->source = _tmp0_;
	self->priv->source_index = gtk_list_box_row_get_index (G_TYPE_CHECK_INSTANCE_CAST (source, gtk_list_box_row_get_type (), GtkListBoxRow));
	self->priv->target_index = target_index;
	_tmp1_ = _g_object_ref0 (account);
	_g_object_unref0 (self->priv->account);
	self->priv->account = _tmp1_;
	_tmp2_ = _g_object_ref0 (list);
	_g_object_unref0 (self->priv->list);
	self->priv->list = _tmp2_;
	return self;
}

AccountsReorderMailboxCommand*
accounts_reorder_mailbox_command_new (AccountsMailboxRow* source,
                                      gint target_index,
                                      GearyAccountInformation* account,
                                      GtkListBox* list)
{
	return accounts_reorder_mailbox_command_construct (ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, source, target_index, account, list);
}

static void
accounts_reorder_mailbox_command_real_execute_data_free (gpointer _data)
{
	AccountsReorderMailboxCommandExecuteData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsReorderMailboxCommandExecuteData, _data_);
}

static void
accounts_reorder_mailbox_command_real_execute (ApplicationCommand* base,
                                               GCancellable* cancellable,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_)
{
	AccountsReorderMailboxCommand * self;
	AccountsReorderMailboxCommandExecuteData* _data_;
	AccountsReorderMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, AccountsReorderMailboxCommand);
	_data_ = g_slice_new0 (AccountsReorderMailboxCommandExecuteData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_reorder_mailbox_command_real_execute_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_reorder_mailbox_command_real_execute_co (_data_);
}

static void
accounts_reorder_mailbox_command_execute_finish (ApplicationCommand* base,
                                                 GAsyncResult* _res_,
                                                 GError** error)
{
	AccountsReorderMailboxCommandExecuteData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_reorder_mailbox_command_real_execute_co (AccountsReorderMailboxCommandExecuteData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	accounts_reorder_mailbox_command_move_source (_data_->self, _data_->self->priv->target_index);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_reorder_mailbox_command_real_undo_data_free (gpointer _data)
{
	AccountsReorderMailboxCommandUndoData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsReorderMailboxCommandUndoData, _data_);
}

static void
accounts_reorder_mailbox_command_real_undo (ApplicationCommand* base,
                                            GCancellable* cancellable,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_)
{
	AccountsReorderMailboxCommand * self;
	AccountsReorderMailboxCommandUndoData* _data_;
	AccountsReorderMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, AccountsReorderMailboxCommand);
	_data_ = g_slice_new0 (AccountsReorderMailboxCommandUndoData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_reorder_mailbox_command_real_undo_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_reorder_mailbox_command_real_undo_co (_data_);
}

static void
accounts_reorder_mailbox_command_undo_finish (ApplicationCommand* base,
                                              GAsyncResult* _res_,
                                              GError** error)
{
	AccountsReorderMailboxCommandUndoData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_reorder_mailbox_command_real_undo_co (AccountsReorderMailboxCommandUndoData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	accounts_reorder_mailbox_command_move_source (_data_->self, _data_->self->priv->source_index);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_reorder_mailbox_command_move_source (AccountsReorderMailboxCommand* self,
                                              gint destination)
{
	GearyAccountInformation* _tmp0_;
	AccountsMailboxRow* _tmp1_;
	GearyRFC822MailboxAddress* _tmp2_;
	GearyAccountInformation* _tmp3_;
	AccountsMailboxRow* _tmp4_;
	GearyRFC822MailboxAddress* _tmp5_;
	GtkListBox* _tmp6_;
	AccountsMailboxRow* _tmp7_;
	GtkListBox* _tmp8_;
	AccountsMailboxRow* _tmp9_;
	AccountsMailboxRow* _tmp10_;
	g_return_if_fail (ACCOUNTS_IS_REORDER_MAILBOX_COMMAND (self));
	_tmp0_ = self->priv->account;
	_tmp1_ = self->priv->source;
	_tmp2_ = _tmp1_->mailbox;
	geary_account_information_remove_sender (_tmp0_, _tmp2_);
	_tmp3_ = self->priv->account;
	_tmp4_ = self->priv->source;
	_tmp5_ = _tmp4_->mailbox;
	geary_account_information_insert_sender (_tmp3_, destination, _tmp5_);
	_tmp6_ = self->priv->list;
	_tmp7_ = self->priv->source;
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
	_tmp8_ = self->priv->list;
	_tmp9_ = self->priv->source;
	gtk_list_box_insert (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), destination);
	_tmp10_ = self->priv->source;
	gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
}

static void
accounts_reorder_mailbox_command_class_init (AccountsReorderMailboxCommandClass * klass,
                                             gpointer klass_data)
{
	accounts_reorder_mailbox_command_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsReorderMailboxCommand_private_offset);
	((ApplicationCommandClass *) klass)->execute = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_reorder_mailbox_command_real_execute;
	((ApplicationCommandClass *) klass)->execute_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_reorder_mailbox_command_execute_finish;
	((ApplicationCommandClass *) klass)->undo = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_reorder_mailbox_command_real_undo;
	((ApplicationCommandClass *) klass)->undo_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_reorder_mailbox_command_undo_finish;
	G_OBJECT_CLASS (klass)->finalize = accounts_reorder_mailbox_command_finalize;
}

static void
accounts_reorder_mailbox_command_instance_init (AccountsReorderMailboxCommand * self,
                                                gpointer klass)
{
	self->priv = accounts_reorder_mailbox_command_get_instance_private (self);
}

static void
accounts_reorder_mailbox_command_finalize (GObject * obj)
{
	AccountsReorderMailboxCommand * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_REORDER_MAILBOX_COMMAND, AccountsReorderMailboxCommand);
	_g_object_unref0 (self->priv->source);
	_g_object_unref0 (self->priv->account);
	_g_object_unref0 (self->priv->list);
	G_OBJECT_CLASS (accounts_reorder_mailbox_command_parent_class)->finalize (obj);
}

static GType
accounts_reorder_mailbox_command_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsReorderMailboxCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_reorder_mailbox_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsReorderMailboxCommand), 0, (GInstanceInitFunc) accounts_reorder_mailbox_command_instance_init, NULL };
	GType accounts_reorder_mailbox_command_type_id;
	accounts_reorder_mailbox_command_type_id = g_type_register_static (APPLICATION_TYPE_COMMAND, "AccountsReorderMailboxCommand", &g_define_type_info, 0);
	AccountsReorderMailboxCommand_private_offset = g_type_add_instance_private (accounts_reorder_mailbox_command_type_id, sizeof (AccountsReorderMailboxCommandPrivate));
	return accounts_reorder_mailbox_command_type_id;
}

GType
accounts_reorder_mailbox_command_get_type (void)
{
	static volatile gsize accounts_reorder_mailbox_command_type_id__once = 0;
	if (g_once_init_enter (&accounts_reorder_mailbox_command_type_id__once)) {
		GType accounts_reorder_mailbox_command_type_id;
		accounts_reorder_mailbox_command_type_id = accounts_reorder_mailbox_command_get_type_once ();
		g_once_init_leave (&accounts_reorder_mailbox_command_type_id__once, accounts_reorder_mailbox_command_type_id);
	}
	return accounts_reorder_mailbox_command_type_id__once;
}

static inline gpointer
accounts_remove_mailbox_command_get_instance_private (AccountsRemoveMailboxCommand* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsRemoveMailboxCommand_private_offset);
}

AccountsRemoveMailboxCommand*
accounts_remove_mailbox_command_construct (GType object_type,
                                           AccountsMailboxRow* row)
{
	AccountsRemoveMailboxCommand * self = NULL;
	AccountsMailboxRow* _tmp0_;
	GearyRFC822MailboxAddress* _tmp1_;
	GearyRFC822MailboxAddress* _tmp2_;
	GearyAccountInformation* _tmp3_;
	GearyAccountInformation* _tmp4_;
	GeeList* _tmp5_;
	GeeList* _tmp6_;
	GeeList* _tmp7_;
	GearyRFC822MailboxAddress* _tmp8_;
	GtkContainer* _tmp9_;
	GtkListBox* _tmp10_;
	GearyRFC822MailboxAddress* _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	g_return_val_if_fail (ACCOUNTS_IS_MAILBOX_ROW (row), NULL);
	self = (AccountsRemoveMailboxCommand*) application_command_construct (object_type);
	_tmp0_ = _g_object_ref0 (row);
	_g_object_unref0 (self->priv->row);
	self->priv->row = _tmp0_;
	_tmp1_ = row->mailbox;
	_tmp2_ = _g_object_ref0 (_tmp1_);
	_g_object_unref0 (self->priv->mailbox);
	self->priv->mailbox = _tmp2_;
	_tmp3_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (row, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp4_ = _tmp3_;
	_tmp5_ = geary_account_information_get_sender_mailboxes (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = _tmp6_;
	_tmp8_ = self->priv->mailbox;
	self->priv->mailbox_index = gee_list_index_of (_tmp7_, _tmp8_);
	_g_object_unref0 (_tmp7_);
	_tmp9_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (row, gtk_widget_get_type (), GtkWidget));
	_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_list_box_get_type (), GtkListBox));
	_g_object_unref0 (self->priv->list);
	self->priv->list = _tmp10_;
	_tmp11_ = self->priv->mailbox;
	_tmp12_ = geary_rf_c822_mailbox_address_get_address (_tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strdup_printf (_ ("Add “%s” back"), _tmp13_);
	_tmp15_ = _tmp14_;
	application_command_set_undo_label (G_TYPE_CHECK_INSTANCE_CAST (self, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp15_);
	_g_free0 (_tmp15_);
	return self;
}

AccountsRemoveMailboxCommand*
accounts_remove_mailbox_command_new (AccountsMailboxRow* row)
{
	return accounts_remove_mailbox_command_construct (ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, row);
}

static void
accounts_remove_mailbox_command_real_execute_data_free (gpointer _data)
{
	AccountsRemoveMailboxCommandExecuteData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsRemoveMailboxCommandExecuteData, _data_);
}

static void
accounts_remove_mailbox_command_real_execute (ApplicationCommand* base,
                                              GCancellable* cancellable,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	AccountsRemoveMailboxCommand * self;
	AccountsRemoveMailboxCommandExecuteData* _data_;
	AccountsRemoveMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, AccountsRemoveMailboxCommand);
	_data_ = g_slice_new0 (AccountsRemoveMailboxCommandExecuteData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_remove_mailbox_command_real_execute_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_remove_mailbox_command_real_execute_co (_data_);
}

static void
accounts_remove_mailbox_command_execute_finish (ApplicationCommand* base,
                                                GAsyncResult* _res_,
                                                GError** error)
{
	AccountsRemoveMailboxCommandExecuteData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_remove_mailbox_command_real_execute_co (AccountsRemoveMailboxCommandExecuteData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->list;
	_data_->_tmp1_ = _data_->self->priv->row;
	gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp0_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp1_, gtk_widget_get_type (), GtkWidget));
	_data_->_tmp2_ = _data_->self->priv->row;
	_data_->_tmp3_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp2_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = _data_->self->priv->mailbox;
	geary_account_information_remove_sender (_data_->_tmp4_, _data_->_tmp5_);
	_data_->_tmp6_ = _data_->self->priv->row;
	_data_->_tmp7_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp6_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp8_ = _data_->_tmp7_;
	g_signal_emit_by_name (_data_->_tmp8_, "changed");
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_remove_mailbox_command_real_undo_data_free (gpointer _data)
{
	AccountsRemoveMailboxCommandUndoData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsRemoveMailboxCommandUndoData, _data_);
}

static void
accounts_remove_mailbox_command_real_undo (ApplicationCommand* base,
                                           GCancellable* cancellable,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_)
{
	AccountsRemoveMailboxCommand * self;
	AccountsRemoveMailboxCommandUndoData* _data_;
	AccountsRemoveMailboxCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, AccountsRemoveMailboxCommand);
	_data_ = g_slice_new0 (AccountsRemoveMailboxCommandUndoData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_remove_mailbox_command_real_undo_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_remove_mailbox_command_real_undo_co (_data_);
}

static void
accounts_remove_mailbox_command_undo_finish (ApplicationCommand* base,
                                             GAsyncResult* _res_,
                                             GError** error)
{
	AccountsRemoveMailboxCommandUndoData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_remove_mailbox_command_real_undo_co (AccountsRemoveMailboxCommandUndoData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->list;
	_data_->_tmp1_ = _data_->self->priv->row;
	gtk_list_box_insert (_data_->_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp1_, gtk_widget_get_type (), GtkWidget), _data_->self->priv->mailbox_index);
	_data_->_tmp2_ = _data_->self->priv->row;
	_data_->_tmp3_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp2_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = _data_->self->priv->mailbox;
	geary_account_information_insert_sender (_data_->_tmp4_, _data_->self->priv->mailbox_index, _data_->_tmp5_);
	_data_->_tmp6_ = _data_->self->priv->row;
	_data_->_tmp7_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp6_, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_data_->_tmp8_ = _data_->_tmp7_;
	g_signal_emit_by_name (_data_->_tmp8_, "changed");
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_remove_mailbox_command_class_init (AccountsRemoveMailboxCommandClass * klass,
                                            gpointer klass_data)
{
	accounts_remove_mailbox_command_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsRemoveMailboxCommand_private_offset);
	((ApplicationCommandClass *) klass)->execute = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_remove_mailbox_command_real_execute;
	((ApplicationCommandClass *) klass)->execute_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_remove_mailbox_command_execute_finish;
	((ApplicationCommandClass *) klass)->undo = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_remove_mailbox_command_real_undo;
	((ApplicationCommandClass *) klass)->undo_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_remove_mailbox_command_undo_finish;
	G_OBJECT_CLASS (klass)->finalize = accounts_remove_mailbox_command_finalize;
}

static void
accounts_remove_mailbox_command_instance_init (AccountsRemoveMailboxCommand * self,
                                               gpointer klass)
{
	self->priv = accounts_remove_mailbox_command_get_instance_private (self);
}

static void
accounts_remove_mailbox_command_finalize (GObject * obj)
{
	AccountsRemoveMailboxCommand * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_REMOVE_MAILBOX_COMMAND, AccountsRemoveMailboxCommand);
	_g_object_unref0 (self->priv->row);
	_g_object_unref0 (self->priv->mailbox);
	_g_object_unref0 (self->priv->list);
	G_OBJECT_CLASS (accounts_remove_mailbox_command_parent_class)->finalize (obj);
}

static GType
accounts_remove_mailbox_command_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsRemoveMailboxCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_remove_mailbox_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsRemoveMailboxCommand), 0, (GInstanceInitFunc) accounts_remove_mailbox_command_instance_init, NULL };
	GType accounts_remove_mailbox_command_type_id;
	accounts_remove_mailbox_command_type_id = g_type_register_static (APPLICATION_TYPE_COMMAND, "AccountsRemoveMailboxCommand", &g_define_type_info, 0);
	AccountsRemoveMailboxCommand_private_offset = g_type_add_instance_private (accounts_remove_mailbox_command_type_id, sizeof (AccountsRemoveMailboxCommandPrivate));
	return accounts_remove_mailbox_command_type_id;
}

GType
accounts_remove_mailbox_command_get_type (void)
{
	static volatile gsize accounts_remove_mailbox_command_type_id__once = 0;
	if (g_once_init_enter (&accounts_remove_mailbox_command_type_id__once)) {
		GType accounts_remove_mailbox_command_type_id;
		accounts_remove_mailbox_command_type_id = accounts_remove_mailbox_command_get_type_once ();
		g_once_init_leave (&accounts_remove_mailbox_command_type_id__once, accounts_remove_mailbox_command_type_id);
	}
	return accounts_remove_mailbox_command_type_id__once;
}

static inline gpointer
accounts_signature_changed_command_get_instance_private (AccountsSignatureChangedCommand* self)
{
	return G_STRUCT_MEMBER_P (self, AccountsSignatureChangedCommand_private_offset);
}

AccountsSignatureChangedCommand*
accounts_signature_changed_command_construct (GType object_type,
                                              ComponentsWebView* signature_view,
                                              GearyAccountInformation* account)
{
	AccountsSignatureChangedCommand * self = NULL;
	ComponentsWebView* _tmp0_;
	GearyAccountInformation* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	g_return_val_if_fail (COMPONENTS_IS_WEB_VIEW (signature_view), NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (account, GEARY_TYPE_ACCOUNT_INFORMATION), NULL);
	self = (AccountsSignatureChangedCommand*) application_command_construct (object_type);
	_tmp0_ = _g_object_ref0 (signature_view);
	_g_object_unref0 (self->priv->signature_view);
	self->priv->signature_view = _tmp0_;
	_tmp1_ = _g_object_ref0 (account);
	_g_object_unref0 (self->priv->account);
	self->priv->account = _tmp1_;
	_tmp2_ = geary_account_information_get_signature (account);
	_tmp3_ = _tmp2_;
	_tmp4_ = geary_html_smart_escape (_tmp3_);
	_g_free0 (self->priv->old_value);
	self->priv->old_value = _tmp4_;
	_tmp5_ = geary_account_information_get_use_signature (account);
	_tmp6_ = _tmp5_;
	self->priv->old_enabled = _tmp6_;
	application_command_set_undo_label (G_TYPE_CHECK_INSTANCE_CAST (self, APPLICATION_TYPE_COMMAND, ApplicationCommand), _ ("Undo signature changes"));
	return self;
}

AccountsSignatureChangedCommand*
accounts_signature_changed_command_new (ComponentsWebView* signature_view,
                                        GearyAccountInformation* account)
{
	return accounts_signature_changed_command_construct (ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, signature_view, account);
}

static void
accounts_signature_changed_command_real_execute_data_free (gpointer _data)
{
	AccountsSignatureChangedCommandExecuteData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsSignatureChangedCommandExecuteData, _data_);
}

static void
accounts_signature_changed_command_real_execute (ApplicationCommand* base,
                                                 GCancellable* cancellable,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_)
{
	AccountsSignatureChangedCommand * self;
	AccountsSignatureChangedCommandExecuteData* _data_;
	AccountsSignatureChangedCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommand);
	_data_ = g_slice_new0 (AccountsSignatureChangedCommandExecuteData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_signature_changed_command_real_execute_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_signature_changed_command_real_execute_co (_data_);
}

static void
accounts_signature_changed_command_execute_finish (ApplicationCommand* base,
                                                   GAsyncResult* _res_,
                                                   GError** error)
{
	AccountsSignatureChangedCommandExecuteData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static void
accounts_signature_changed_command_execute_ready (GObject* source_object,
                                                  GAsyncResult* _res_,
                                                  gpointer _user_data_)
{
	AccountsSignatureChangedCommandExecuteData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	accounts_signature_changed_command_real_execute_co (_data_);
}

static gboolean
accounts_signature_changed_command_real_execute_co (AccountsSignatureChangedCommandExecuteData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp1_ = _data_->self->priv->signature_view;
	_data_->_state_ = 1;
	components_web_view_get_html (_data_->_tmp1_, accounts_signature_changed_command_execute_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp2_ = components_web_view_get_html_finish (_data_->_tmp1_, _data_->_res_, &_data_->_inner_error0_);
	_data_->_tmp0_ = _data_->_tmp2_;
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		g_task_return_error (_data_->_async_result, _data_->_inner_error0_);
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp3_ = _data_->_tmp0_;
	_data_->_tmp0_ = NULL;
	_g_free0 (_data_->self->priv->new_value);
	_data_->self->priv->new_value = _data_->_tmp3_;
	_data_->_tmp4_ = _data_->self->priv->new_value;
	_data_->_tmp5_ = geary_html_html_to_text (_data_->_tmp4_, TRUE, GEARY_RF_C822_UTF8_CHARSET);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->self->priv->new_enabled = !geary_string_is_empty_or_whitespace (_data_->_tmp6_);
	_g_free0 (_data_->_tmp6_);
	_data_->_tmp7_ = _data_->self->priv->new_value;
	accounts_signature_changed_command_update_account_signature (_data_->self, _data_->_tmp7_, _data_->self->priv->new_enabled);
	_g_free0 (_data_->_tmp0_);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_signature_changed_command_real_undo_data_free (gpointer _data)
{
	AccountsSignatureChangedCommandUndoData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsSignatureChangedCommandUndoData, _data_);
}

static void
accounts_signature_changed_command_real_undo (ApplicationCommand* base,
                                              GCancellable* cancellable,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	AccountsSignatureChangedCommand * self;
	AccountsSignatureChangedCommandUndoData* _data_;
	AccountsSignatureChangedCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommand);
	_data_ = g_slice_new0 (AccountsSignatureChangedCommandUndoData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_signature_changed_command_real_undo_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_signature_changed_command_real_undo_co (_data_);
}

static void
accounts_signature_changed_command_undo_finish (ApplicationCommand* base,
                                                GAsyncResult* _res_,
                                                GError** error)
{
	AccountsSignatureChangedCommandUndoData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_signature_changed_command_real_undo_co (AccountsSignatureChangedCommandUndoData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->signature_view;
	_data_->_tmp1_ = _data_->self->priv->old_value;
	components_web_view_load_html (_data_->_tmp0_, _data_->_tmp1_, NULL);
	_data_->_tmp2_ = _data_->self->priv->old_value;
	accounts_signature_changed_command_update_account_signature (_data_->self, _data_->_tmp2_, _data_->self->priv->old_enabled);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
accounts_signature_changed_command_real_redo_data_free (gpointer _data)
{
	AccountsSignatureChangedCommandRedoData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->cancellable);
	_g_object_unref0 (_data_->self);
	g_slice_free (AccountsSignatureChangedCommandRedoData, _data_);
}

static void
accounts_signature_changed_command_real_redo (ApplicationCommand* base,
                                              GCancellable* cancellable,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	AccountsSignatureChangedCommand * self;
	AccountsSignatureChangedCommandRedoData* _data_;
	AccountsSignatureChangedCommand* _tmp0_;
	GCancellable* _tmp1_;
	g_return_if_fail ((cancellable == NULL) || G_TYPE_CHECK_INSTANCE_TYPE (cancellable, g_cancellable_get_type ()));
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommand);
	_data_ = g_slice_new0 (AccountsSignatureChangedCommandRedoData);
	_data_->_async_result = g_task_new (G_OBJECT (self), cancellable, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, accounts_signature_changed_command_real_redo_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (cancellable);
	_g_object_unref0 (_data_->cancellable);
	_data_->cancellable = _tmp1_;
	accounts_signature_changed_command_real_redo_co (_data_);
}

static void
accounts_signature_changed_command_redo_finish (ApplicationCommand* base,
                                                GAsyncResult* _res_,
                                                GError** error)
{
	AccountsSignatureChangedCommandRedoData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (NULL == _data_) {
		return;
	}
}

static gboolean
accounts_signature_changed_command_real_redo_co (AccountsSignatureChangedCommandRedoData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->signature_view;
	_data_->_tmp1_ = _data_->self->priv->new_value;
	components_web_view_load_html (_data_->_tmp0_, _data_->_tmp1_, NULL);
	_data_->_tmp2_ = _data_->self->priv->new_value;
	accounts_signature_changed_command_update_account_signature (_data_->self, _data_->_tmp2_, _data_->self->priv->new_enabled);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static inline void
accounts_signature_changed_command_update_account_signature (AccountsSignatureChangedCommand* self,
                                                             const gchar* sig,
                                                             gboolean enabled)
{
	GearyAccountInformation* _tmp0_;
	GearyAccountInformation* _tmp1_;
	GearyAccountInformation* _tmp2_;
	g_return_if_fail (ACCOUNTS_IS_SIGNATURE_CHANGED_COMMAND (self));
	g_return_if_fail (sig != NULL);
	_tmp0_ = self->priv->account;
	geary_account_information_set_signature (_tmp0_, sig);
	_tmp1_ = self->priv->account;
	geary_account_information_set_use_signature (_tmp1_, enabled);
	_tmp2_ = self->priv->account;
	g_signal_emit_by_name (_tmp2_, "changed");
}

static void
accounts_signature_changed_command_class_init (AccountsSignatureChangedCommandClass * klass,
                                               gpointer klass_data)
{
	accounts_signature_changed_command_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &AccountsSignatureChangedCommand_private_offset);
	((ApplicationCommandClass *) klass)->execute = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_signature_changed_command_real_execute;
	((ApplicationCommandClass *) klass)->execute_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_signature_changed_command_execute_finish;
	((ApplicationCommandClass *) klass)->undo = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_signature_changed_command_real_undo;
	((ApplicationCommandClass *) klass)->undo_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_signature_changed_command_undo_finish;
	((ApplicationCommandClass *) klass)->redo = (void (*) (ApplicationCommand*, GCancellable*, GAsyncReadyCallback, gpointer)) accounts_signature_changed_command_real_redo;
	((ApplicationCommandClass *) klass)->redo_finish = (void (*) (ApplicationCommand*, GAsyncResult*, GError**)) accounts_signature_changed_command_redo_finish;
	G_OBJECT_CLASS (klass)->finalize = accounts_signature_changed_command_finalize;
}

static void
accounts_signature_changed_command_instance_init (AccountsSignatureChangedCommand * self,
                                                  gpointer klass)
{
	self->priv = accounts_signature_changed_command_get_instance_private (self);
	self->priv->new_value = NULL;
	self->priv->new_enabled = FALSE;
}

static void
accounts_signature_changed_command_finalize (GObject * obj)
{
	AccountsSignatureChangedCommand * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, ACCOUNTS_TYPE_SIGNATURE_CHANGED_COMMAND, AccountsSignatureChangedCommand);
	_g_object_unref0 (self->priv->signature_view);
	_g_object_unref0 (self->priv->account);
	_g_free0 (self->priv->old_value);
	_g_free0 (self->priv->new_value);
	G_OBJECT_CLASS (accounts_signature_changed_command_parent_class)->finalize (obj);
}

static GType
accounts_signature_changed_command_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsSignatureChangedCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_signature_changed_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsSignatureChangedCommand), 0, (GInstanceInitFunc) accounts_signature_changed_command_instance_init, NULL };
	GType accounts_signature_changed_command_type_id;
	accounts_signature_changed_command_type_id = g_type_register_static (APPLICATION_TYPE_COMMAND, "AccountsSignatureChangedCommand", &g_define_type_info, 0);
	AccountsSignatureChangedCommand_private_offset = g_type_add_instance_private (accounts_signature_changed_command_type_id, sizeof (AccountsSignatureChangedCommandPrivate));
	return accounts_signature_changed_command_type_id;
}

GType
accounts_signature_changed_command_get_type (void)
{
	static volatile gsize accounts_signature_changed_command_type_id__once = 0;
	if (g_once_init_enter (&accounts_signature_changed_command_type_id__once)) {
		GType accounts_signature_changed_command_type_id;
		accounts_signature_changed_command_type_id = accounts_signature_changed_command_get_type_once ();
		g_once_init_leave (&accounts_signature_changed_command_type_id__once, accounts_signature_changed_command_type_id);
	}
	return accounts_signature_changed_command_type_id__once;
}

static gboolean
accounts_email_prefetch_row_row_separator (GtkTreeModel* model,
                                           GtkTreeIter* iter)
{
	GValue v = {0};
	GtkTreeIter _tmp0_;
	GValue _tmp1_ = {0};
	const gchar* _tmp2_;
	gboolean result;
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (model, gtk_tree_model_get_type ()), FALSE);
	g_return_val_if_fail (iter != NULL, FALSE);
	_tmp0_ = *iter;
	gtk_tree_model_get_value (model, &_tmp0_, 0, &_tmp1_);
	G_IS_VALUE (&v) ? (g_value_unset (&v), NULL) : NULL;
	v = _tmp1_;
	_tmp2_ = g_value_get_string (&v);
	result = g_strcmp0 (_tmp2_, ".") == 0;
	G_IS_VALUE (&v) ? (g_value_unset (&v), NULL) : NULL;
	return result;
}

static Block46Data*
block46_data_ref (Block46Data* _data46_)
{
	g_atomic_int_inc (&_data46_->_ref_count_);
	return _data46_;
}

static void
block46_data_unref (void * _userdata_)
{
	Block46Data* _data46_;
	_data46_ = (Block46Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data46_->_ref_count_)) {
		AccountsEmailPrefetchRow* self;
		self = _data46_->self;
		_g_object_unref0 (_data46_->pane);
		_g_object_unref0 (self);
		g_slice_free (Block46Data, _data46_);
	}
}

static gboolean
_accounts_email_prefetch_row_row_separator_gtk_tree_view_row_separator_func (GtkTreeModel* model,
                                                                             GtkTreeIter* iter,
                                                                             gpointer self)
{
	gboolean result;
	result = accounts_email_prefetch_row_row_separator (model, iter);
	return result;
}

static void
__lambda87_ (Block46Data* _data46_)
{
	AccountsEmailPrefetchRow* self;
	ApplicationCommandStack* _tmp0_;
	ApplicationCommandStack* _tmp1_;
	GearyAccountInformation* _tmp2_;
	GearyAccountInformation* _tmp3_;
	gconstpointer _tmp4_;
	gconstpointer _tmp5_;
	const gchar* _tmp6_;
	GearyAccountInformation* _tmp7_;
	GearyAccountInformation* _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	ApplicationPropertyCommand* _tmp15_;
	ApplicationPropertyCommand* _tmp16_;
	GCancellable* _tmp17_;
	GCancellable* _tmp18_;
	self = _data46_->self;
	_tmp0_ = accounts_command_pane_get_commands (G_TYPE_CHECK_INSTANCE_CAST (_data46_->pane, ACCOUNTS_TYPE_COMMAND_PANE, AccountsCommandPane));
	_tmp1_ = _tmp0_;
	_tmp2_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp3_ = _tmp2_;
	_tmp4_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp5_ = _tmp4_;
	_tmp6_ = gtk_combo_box_get_active_id (G_TYPE_CHECK_INSTANCE_CAST ((GtkComboBoxText*) _tmp5_, gtk_combo_box_get_type (), GtkComboBox));
	_tmp7_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp8_ = _tmp7_;
	_tmp9_ = geary_account_information_get_prefetch_period_days (_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = accounts_email_prefetch_row_get_label (self, _tmp10_, FALSE);
	_tmp12_ = _tmp11_;
	_tmp13_ = g_strdup_printf (_ ("Change download period back to: %s"), _tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = application_property_command_new (G_TYPE_INT, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, G_TYPE_OBJECT, GObject), "prefetch-period-days", (gpointer) ((gintptr) atoi (_tmp6_)), _tmp14_, NULL, NULL, NULL);
	_tmp16_ = _tmp15_;
	_tmp17_ = accounts_editor_pane_get_op_cancellable (G_TYPE_CHECK_INSTANCE_CAST (_data46_->pane, ACCOUNTS_TYPE_EDITOR_PANE, AccountsEditorPane));
	_tmp18_ = _tmp17_;
	application_command_stack_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, APPLICATION_TYPE_COMMAND, ApplicationCommand), _tmp18_, NULL, NULL);
	_g_object_unref0 (_tmp16_);
	_g_free0 (_tmp14_);
	_g_free0 (_tmp12_);
}

static void
___lambda87__gtk_combo_box_changed (GtkComboBox* _sender,
                                    gpointer self)
{
	__lambda87_ (self);
}

AccountsEmailPrefetchRow*
accounts_email_prefetch_row_construct (GType object_type,
                                       AccountsEditorEditPane* pane)
{
	AccountsEmailPrefetchRow * self = NULL;
	Block46Data* _data46_;
	AccountsEditorEditPane* _tmp0_;
	GearyAccountInformation* _tmp1_;
	GearyAccountInformation* _tmp2_;
	GtkComboBoxText* _tmp3_;
	GtkComboBoxText* _tmp4_;
	gconstpointer _tmp5_;
	gconstpointer _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gconstpointer _tmp23_;
	gconstpointer _tmp24_;
	g_return_val_if_fail (ACCOUNTS_IS_EDITOR_EDIT_PANE (pane), NULL);
	_data46_ = g_slice_new0 (Block46Data);
	_data46_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (pane);
	_g_object_unref0 (_data46_->pane);
	_data46_->pane = _tmp0_;
	_tmp1_ = accounts_account_pane_get_account (G_TYPE_CHECK_INSTANCE_CAST (_data46_->pane, ACCOUNTS_TYPE_ACCOUNT_PANE, AccountsAccountPane));
	_tmp2_ = _tmp1_;
	_tmp3_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
	g_object_ref_sink (_tmp3_);
	_tmp4_ = _tmp3_;
	self = (AccountsEmailPrefetchRow*) accounts_account_row_construct (object_type, ACCOUNTS_TYPE_EDITOR_EDIT_PANE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, gtk_combo_box_text_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp2_, _ ("Download mail"), _tmp4_);
	_data46_->self = g_object_ref (self);
	_g_object_unref0 (_tmp4_);
	gtk_list_box_row_set_activatable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_list_box_row_get_type (), GtkListBoxRow), FALSE);
	_tmp5_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp6_ = _tmp5_;
	gtk_combo_box_set_row_separator_func (G_TYPE_CHECK_INSTANCE_CAST ((GtkComboBoxText*) _tmp6_, gtk_combo_box_get_type (), GtkComboBox), _accounts_email_prefetch_row_row_separator_gtk_tree_view_row_separator_func, NULL, NULL);
	_tmp7_ = accounts_email_prefetch_row_get_label (self, 14, TRUE);
	_tmp8_ = _tmp7_;
	_g_free0 (_tmp8_);
	_tmp9_ = accounts_email_prefetch_row_get_label (self, 30, TRUE);
	_tmp10_ = _tmp9_;
	_g_free0 (_tmp10_);
	_tmp11_ = accounts_email_prefetch_row_get_label (self, 90, TRUE);
	_tmp12_ = _tmp11_;
	_g_free0 (_tmp12_);
	_tmp13_ = accounts_email_prefetch_row_get_label (self, 180, TRUE);
	_tmp14_ = _tmp13_;
	_g_free0 (_tmp14_);
	_tmp15_ = accounts_email_prefetch_row_get_label (self, 365, TRUE);
	_tmp16_ = _tmp15_;
	_g_free0 (_tmp16_);
	_tmp17_ = accounts_email_prefetch_row_get_label (self, 720, TRUE);
	_tmp18_ = _tmp17_;
	_g_free0 (_tmp18_);
	_tmp19_ = accounts_email_prefetch_row_get_label (self, 1461, TRUE);
	_tmp20_ = _tmp19_;
	_g_free0 (_tmp20_);
	_tmp21_ = accounts_email_prefetch_row_get_label (self, -1, TRUE);
	_tmp22_ = _tmp21_;
	_g_free0 (_tmp22_);
	accounts_account_row_update (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp23_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp24_ = _tmp23_;
	g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST ((GtkComboBoxText*) _tmp24_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) ___lambda87__gtk_combo_box_changed, block46_data_ref (_data46_), (GClosureNotify) block46_data_unref, 0);
	block46_data_unref (_data46_);
	_data46_ = NULL;
	return self;
}

AccountsEmailPrefetchRow*
accounts_email_prefetch_row_new (AccountsEditorEditPane* pane)
{
	return accounts_email_prefetch_row_construct (ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW, pane);
}

static void
accounts_email_prefetch_row_real_update (AccountsAccountRow* base)
{
	AccountsEmailPrefetchRow * self;
	gchar* id = NULL;
	GearyAccountInformation* _tmp0_;
	GearyAccountInformation* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	gchar* _tmp4_;
	gconstpointer _tmp5_;
	gconstpointer _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, ACCOUNTS_TYPE_EMAIL_PREFETCH_ROW, AccountsEmailPrefetchRow);
	_tmp0_ = accounts_account_row_get_account (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_ACCOUNT_ROW, AccountsAccountRow));
	_tmp1_ = _tmp0_;
	_tmp2_ = geary_account_information_get_prefetch_period_days (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strdup_printf ("%i", _tmp3_);
	id = _tmp4_;
	_tmp5_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
	_tmp6_ = _tmp5_;
	_tmp7_ = gtk_combo_box_get_active_id (G_TYPE_CHECK_INSTANCE_CAST ((GtkComboBoxText*) _tmp6_, gtk_combo_box_get_type (), GtkComboBox));
	_tmp8_ = id;
	if (g_strcmp0 (_tmp7_, _tmp8_) != 0) {
		gconstpointer _tmp9_;
		gconstpointer _tmp10_;
		const gchar* _tmp11_;
		_tmp9_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
		_tmp10_ = _tmp9_;
		_tmp11_ = id;
		gtk_combo_box_set_active_id (G_TYPE_CHECK_INSTANCE_CAST ((GtkComboBoxText*) _tmp10_, gtk_combo_box_get_type (), GtkComboBox), _tmp11_);
	}
	_g_free0 (id);
}

static gchar*
accounts_email_prefetch_row_get_label (AccountsEmailPrefetchRow* self,
                                       gint duration,
                                       gboolean append)
{
	gchar* label = NULL;
	gchar* _tmp0_;
	gboolean is_custom = FALSE;
	gchar* result;
	g_return_val_if_fail (ACCOUNTS_IS_EMAIL_PREFETCH_ROW (self), NULL);
	_tmp0_ = g_strdup ("");
	label = _tmp0_;
	is_custom = FALSE;
	switch (duration) {
		case -1:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup (_ ("Everything"));
			_g_free0 (label);
			label = _tmp1_;
			break;
		}
		case 14:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup (_ ("2 weeks back"));
			_g_free0 (label);
			label = _tmp2_;
			break;
		}
		case 30:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup (_ ("1 month back"));
			_g_free0 (label);
			label = _tmp3_;
			break;
		}
		case 90:
		{
			gchar* _tmp4_;
			_tmp4_ = g_strdup (_ ("3 months back"));
			_g_free0 (label);
			label = _tmp4_;
			break;
		}
		case 180:
		{
			gchar* _tmp5_;
			_tmp5_ = g_strdup (_ ("6 months back"));
			_g_free0 (label);
			label = _tmp5_;
			break;
		}
		case 365:
		{
			gchar* _tmp6_;
			_tmp6_ = g_strdup (_ ("1 year back"));
			_g_free0 (label);
			label = _tmp6_;
			break;
		}
		case 720:
		{
			gchar* _tmp7_;
			_tmp7_ = g_strdup (_ ("2 years back"));
			_g_free0 (label);
			label = _tmp7_;
			break;
		}
		case 1461:
		{
			gchar* _tmp8_;
			_tmp8_ = g_strdup (_ ("4 years back"));
			_g_free0 (label);
			label = _tmp8_;
			break;
		}
		default:
		{
			gchar* _tmp9_;
			is_custom = TRUE;
			_tmp9_ = g_strdup_printf (ngettext ("%d day back", "%d days back", (gulong) duration), duration);
			_g_free0 (label);
			label = _tmp9_;
			break;
		}
	}
	if (append) {
		gboolean _tmp10_ = FALSE;
		gconstpointer _tmp13_;
		gconstpointer _tmp14_;
		gchar* _tmp15_;
		gchar* _tmp16_;
		const gchar* _tmp17_;
		if (duration == -1) {
			_tmp10_ = TRUE;
		} else {
			_tmp10_ = is_custom;
		}
		if (_tmp10_) {
			gconstpointer _tmp11_;
			gconstpointer _tmp12_;
			_tmp11_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
			_tmp12_ = _tmp11_;
			gtk_combo_box_text_append ((GtkComboBoxText*) _tmp12_, ".", ".");
		}
		_tmp13_ = accounts_labelled_editor_row_get_value (G_TYPE_CHECK_INSTANCE_CAST (self, ACCOUNTS_TYPE_LABELLED_EDITOR_ROW, AccountsLabelledEditorRow));
		_tmp14_ = _tmp13_;
		_tmp15_ = g_strdup_printf ("%i", duration);
		_tmp16_ = _tmp15_;
		_tmp17_ = label;
		gtk_combo_box_text_append ((GtkComboBoxText*) _tmp14_, _tmp16_, _tmp17_);
		_g_free0 (_tmp16_);
	}
	result = label;
	return result;
}

static void
accounts_email_prefetch_row_class_init (AccountsEmailPrefetchRowClass * klass,
                                        gpointer klass_data)
{
	accounts_email_prefetch_row_parent_class = g_type_class_peek_parent (klass);
	((AccountsAccountRowClass *) klass)->update = (void (*) (AccountsAccountRow*)) accounts_email_prefetch_row_real_update;
}

static void
accounts_email_prefetch_row_instance_init (AccountsEmailPrefetchRow * self,
                                           gpointer klass)
{
}

static GType
accounts_email_prefetch_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (AccountsEmailPrefetchRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) accounts_email_prefetch_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AccountsEmailPrefetchRow), 0, (GInstanceInitFunc) accounts_email_prefetch_row_instance_init, NULL };
	GType accounts_email_prefetch_row_type_id;
	accounts_email_prefetch_row_type_id = g_type_register_static (ACCOUNTS_TYPE_ACCOUNT_ROW, "AccountsEmailPrefetchRow", &g_define_type_info, 0);
	return accounts_email_prefetch_row_type_id;
}

GType
accounts_email_prefetch_row_get_type (void)
{
	static volatile gsize accounts_email_prefetch_row_type_id__once = 0;
	if (g_once_init_enter (&accounts_email_prefetch_row_type_id__once)) {
		GType accounts_email_prefetch_row_type_id;
		accounts_email_prefetch_row_type_id = accounts_email_prefetch_row_get_type_once ();
		g_once_init_leave (&accounts_email_prefetch_row_type_id__once, accounts_email_prefetch_row_type_id);
	}
	return accounts_email_prefetch_row_type_id__once;
}

