GnuCash 2.3.0
Data Structures | Files | Defines | Typedefs | Functions
Register Page
Content Plugins

Data Structures

struct  status_action
struct  GncPluginPageRegisterPrivate
struct  GncPluginPageRegister
struct  GncPluginPageRegisterClass

Files

file  gnc-plugin-page-register.c
 

Functions providing a register page for the GnuCash UI.


file  gnc-plugin-page-register.h
 

Functions providing a register page for the GnuCash UI.


Defines

#define DEFAULT_LINES_AMOUNT   50
#define CLEARED_VALUE   "cleared_value"
#define DEFAULT_FILTER   "0x001f"
#define DEFAULT_SORT_ORDER   "BY_STANDARD"
#define GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(o)   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_PAGE_REGISTER, GncPluginPageRegisterPrivate))
#define KEY_REGISTER_TYPE   "RegisterType"
#define KEY_ACCOUNT_NAME   "AccountName"
#define KEY_REGISTER_STYLE   "RegisterStyle"
#define KEY_DOUBLE_LINE   "DoubleLineMode"
#define LABEL_ACCOUNT   "Account"
#define LABEL_SUBACCOUNT   "SubAccount"
#define LABEL_GL   "GL"
#define LABEL_SEARCH   "Search"
#define GNC_TYPE_PLUGIN_PAGE_REGISTER   (gnc_plugin_page_register_get_type ())
#define GNC_PLUGIN_PAGE_REGISTER(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_PLUGIN_PAGE_REGISTER, GncPluginPageRegister))
#define GNC_PLUGIN_PAGE_REGISTER_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_PAGE_REGISTER, GncPluginPageRegisterClass))
#define GNC_IS_PLUGIN_PAGE_REGISTER(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_PLUGIN_PAGE_REGISTER))
#define GNC_IS_PLUGIN_PAGE_REGISTER_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_PAGE_REGISTER))
#define GNC_PLUGIN_PAGE_REGISTER_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_PAGE_REGISTER, GncPluginPageRegisterClass))
#define GNC_PLUGIN_PAGE_REGISTER_NAME   "GncPluginPageRegister"

Typedefs

typedef struct
GncPluginPageRegisterPrivate 
GncPluginPageRegisterPrivate

Functions

void gnc_plugin_page_register_sort_button_cb (GtkToggleButton *button, GncPluginPageRegister *page)
void gnc_plugin_page_register_sort_response_cb (GtkDialog *dialog, gint response, GncPluginPageRegister *plugin_page)
void gnc_plugin_page_register_sort_order_save_cb (GtkToggleButton *button, GncPluginPageRegister *page)
void gnc_plugin_page_register_set_sort_order (GncPluginPage *plugin_page, const gchar *sort_order)
void gnc_plugin_page_register_filter_select_range_cb (GtkRadioButton *button, GncPluginPageRegister *page)
void gnc_plugin_page_register_filter_start_cb (GtkWidget *radio, GncPluginPageRegister *page)
void gnc_plugin_page_register_filter_end_cb (GtkWidget *radio, GncPluginPageRegister *page)
void gnc_plugin_page_register_filter_response_cb (GtkDialog *dialog, gint response, GncPluginPageRegister *plugin_page)
void gnc_plugin_page_register_filter_status_all_cb (GtkButton *button, GncPluginPageRegister *plugin_page)
void gnc_plugin_page_register_filter_status_one_cb (GtkToggleButton *button, GncPluginPageRegister *page)
void gnc_plugin_page_register_filter_save_cb (GtkToggleButton *button, GncPluginPageRegister *page)
void gnc_plugin_page_register_set_filter (GncPluginPage *plugin_page, const gchar *filter)
GType gnc_plugin_page_register_get_type (void)
GncPluginPagegnc_plugin_page_register_new (Account *account, gboolean subaccounts)
GncPluginPagegnc_plugin_page_register_new_gl (void)
GncPluginPagegnc_plugin_page_register_new_ledger (GNCLedgerDisplay *ledger)
Accountgnc_plugin_page_register_get_account (GncPluginPageRegister *page)
void gnc_plugin_page_register_set_options (GncPluginPage *plugin_page, gint lines_default, gboolean read_only)
GNCSplitReggnc_plugin_page_register_get_gsr (GncPluginPage *plugin_page)

Function Documentation

void gnc_plugin_page_register_filter_end_cb ( GtkWidget *  radio,
GncPluginPageRegister page 
)

This function is called when one of the end date radio buttons is selected. It updates the sensitivity of the date entry widget, then calls a common routine to determine the start/end times and update the register query.

*Note: This function is actually called twice for each new radio button selection. The first time call is to uncheck the old button, and the second time to check the new button. This does make a kind of sense, as radio buttons are nothing more than linked toggle buttons where only one can be active.

Parameters:
radioThe button whose state is changing. This will be the previously selected button the first of the pair of calls to this function, and will be the newly selected button the second time.
pageA pointer to the GncPluginPageRegister that is associated with this filter dialog.

Definition at line 2170 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    const gchar *name;
    gboolean active;

    g_return_if_fail(GTK_IS_RADIO_BUTTON(radio));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER("(radio %s(%p), page %p)", gtk_buildable_get_name(GTK_BUILDABLE(radio)), radio, page);
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
    {
        LEAVE("1st callback of pair. Defer to 2nd callback.");
        return;
    }

    name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
    active = ( g_strcmp0(name, g_strdup("end_date_choose")) == 0 ? 1 : 0 );
    gtk_widget_set_sensitive(priv->fd.end_date, active);
    get_filter_times(page);
    gnc_ppr_update_date_query(page);
    LEAVE(" ");
}
void gnc_plugin_page_register_filter_response_cb ( GtkDialog *  dialog,
gint  response,
GncPluginPageRegister page 
)

This function is called when the "Filter By..." dialog is closed. If the dialog was closed by any method other than clicking the OK button, the original sorting order will be restored.

Parameters:
dialogA pointer to the dialog box.
responseA numerical value indicating why the dialog box was closed.
pageA pointer to the GncPluginPageRegister associated with this dialog box.

Definition at line 2238 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    GncPluginPage *plugin_page;

    g_return_if_fail(GTK_IS_DIALOG(dialog));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER(" ");
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    plugin_page = GNC_PLUGIN_PAGE(page);

    if (response != GTK_RESPONSE_OK)
    {
        /* Remove the old status match */
        priv->fd.cleared_match = priv->fd.original_cleared_match;
        gnc_ppr_update_status_query(page);
        priv->fd.start_time = priv->fd.original_start_time;
        priv->fd.end_time = priv->fd.original_end_time;
        priv->fd.save_filter = priv->fd.original_save_filter;
        gnc_ppr_update_date_query(page);
    }
    else
    {
        priv->fd.original_save_filter = priv->fd.save_filter;

        if (priv->fd.save_filter)
        {
            gchar* filter;
            filter = g_strdup_printf("0x%04x", priv->fd.cleared_match);

            if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->fd.start_date_choose)) && priv->fd.start_time != 0 )
            {
                gchar *timeval = gnc_plugin_page_register_filter_time2dmy(priv->fd.start_time);
                filter = g_strconcat ( filter, ",", timeval, NULL);
                g_free (timeval);
            }
            else
                filter = g_strconcat ( filter, ",0", NULL);

            if ( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->fd.end_date_choose)) && priv->fd.end_time != 0 )
            {
                gchar *timeval = gnc_plugin_page_register_filter_time2dmy(priv->fd.end_time);
                filter = g_strconcat ( filter, ",", timeval, NULL);
                g_free (timeval);
            }
            else
                filter = g_strconcat ( filter, ",0", NULL);

            PINFO("The filter to save is %s", filter);

            gnc_plugin_page_register_set_filter (plugin_page, filter);
            g_free (filter);
        }
    }
    priv->fd.dialog = NULL;
    gtk_widget_destroy(GTK_WIDGET(dialog));
    LEAVE(" ");
}
void gnc_plugin_page_register_filter_save_cb ( GtkToggleButton *  button,
GncPluginPageRegister page 
)

This function is called whenever the save status is checked or unchecked. It will allow saving of the filter if required.

Parameters:
buttonThe toggle button that was changed.
pageA pointer to the GncPluginPageRegister that is associated with this filter dialog.

Definition at line 2206 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;

    g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER("Save toggle button (%p), plugin_page %p", button, page);

    /* Compute the new save filter status */
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    if (gtk_toggle_button_get_active(button))
        priv->fd.save_filter = TRUE;
    else
        priv->fd.save_filter = FALSE;
    LEAVE(" ");
}
void gnc_plugin_page_register_filter_select_range_cb ( GtkRadioButton *  button,
GncPluginPageRegister page 
)

This function is called when the "select range" radio button changes state. Since there are only two choices in this radio group, this one signal can be used to handle all cases. This function is responsible for setting the sensitivity of the table of widgets underneath the "select range" choice, and updating the time limitation on the register query. This is handled by a helper function when the radio button is selected (as potentially all the widgets in the table need to be inspected), and is trivial for the other case.

Parameters:
buttonA pointer to the "select range" radio button.
pageA pointer to the GncPluginPageRegister that is associated with this filter dialog.

Definition at line 2053 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    gboolean active;

    g_return_if_fail(GTK_IS_RADIO_BUTTON(button));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER("(button %p, page %p)", button, page);
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
    gtk_widget_set_sensitive(priv->fd.table, active);
    if (active)
    {
        get_filter_times(page);
    }
    else
    {
        priv->fd.start_time = 0;
        priv->fd.end_time = 0;
    }
    gnc_ppr_update_date_query(page);
    LEAVE(" ");
}
void gnc_plugin_page_register_filter_start_cb ( GtkWidget *  radio,
GncPluginPageRegister page 
)

This function is called when one of the start date radio buttons is selected. It updates the sensitivity of the date entry widget, then calls a common routine to determine the start/end times and update the register query.

*Note: This function is actually called twice for each new radio button selection. The first time call is to uncheck the old button, and the second time to check the new button. This does make a kind of sense, as radio buttons are nothing more than linked toggle buttons where only one can be active.

Parameters:
radioThe button whose state is changing. This will be the previously selected button the first of the pair of calls to this function, and will be the newly selected button the second time.
pageA pointer to the GncPluginPageRegister that is associated with this filter dialog.

Definition at line 2123 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    const gchar *name;
    gboolean active;

    g_return_if_fail(GTK_IS_RADIO_BUTTON(radio));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER("(radio %s(%p), page %p)", gtk_buildable_get_name(GTK_BUILDABLE(radio)), radio, page);
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio)))
    {
        LEAVE("1st callback of pair. Defer to 2nd callback.");
        return;
    }

    name = gtk_buildable_get_name(GTK_BUILDABLE(radio));
    active = ( g_strcmp0(name, g_strdup("start_date_choose")) == 0 ? 1 : 0 );
    gtk_widget_set_sensitive(priv->fd.start_date, active);
    get_filter_times(page);
    gnc_ppr_update_date_query(page);
    LEAVE(" ");
}
void gnc_plugin_page_register_filter_status_all_cb ( GtkButton *  button,
GncPluginPageRegister page 
)

This function is called whenever the "select all" status button is clicked. It updates all of the checkbox widgets, then updates the query on the register.

Parameters:
buttonThe button that was clicked.
pageA pointer to the GncPluginPageRegister that is associated with this filter dialog.

Definition at line 1951 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    GtkWidget *widget;
    gint i;

    g_return_if_fail(GTK_IS_BUTTON(button));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER("(button %p, page %p)", button, page);

    /* Turn on all the check menu items */
    for (i = 0; status_actions[i].action_name; i++)
    {
        widget = status_actions[i].widget;
        g_signal_handlers_block_by_func(widget, gnc_plugin_page_register_filter_status_one_cb, page);
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(widget), TRUE);
        g_signal_handlers_unblock_by_func(widget, gnc_plugin_page_register_filter_status_one_cb, page);
    }

    /* Set the requested status */
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    priv->fd.cleared_match = CLEARED_ALL;
    gnc_ppr_update_status_query(page);
    LEAVE(" ");
}
void gnc_plugin_page_register_filter_status_one_cb ( GtkToggleButton *  button,
GncPluginPageRegister page 
)

This function is called whenever one of the status entries is checked or unchecked. It updates the status value maintained for the filter dialog, and calls another function to do the work of applying the change to the register itself.

Parameters:
buttonThe toggle button that was changed.
pageA pointer to the GncPluginPageRegister that is associated with this filter dialog.

Definition at line 1906 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    const gchar *name;
    gint i, value;

    g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    name = gtk_buildable_get_name(GTK_BUILDABLE(button));
    ENTER("toggle button %s (%p), plugin_page %p", name, button, page);

    /* Determine what status bit to change */
    value = CLEARED_NONE;
    for (i = 0; status_actions[i].action_name; i++)
    {
        if (g_strcmp0(name, status_actions[i].action_name) == 0)
        {
            value = status_actions[i].value;
            break;
        }
    }

    /* Compute the new match status */
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    if (gtk_toggle_button_get_active(button))
        priv->fd.cleared_match |= value;
    else
        priv->fd.cleared_match &= ~value;
    gnc_ppr_update_status_query(page);
    LEAVE(" ");
}
Account * gnc_plugin_page_register_get_account ( GncPluginPageRegister page)

Get the Account associated with this register page.

Parameters:
pageA "register" page.
Returns:
The account if the register contains only a single account, or an account and its sub-accounts. NULL otherwise.

Definition at line 733 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    GNCLedgerDisplayType ledger_type;
    Account *leader;

    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    ledger_type = gnc_ledger_display_type (priv->ledger);
    leader = gnc_ledger_display_leader (priv->ledger);

    if ((ledger_type == LD_SINGLE) || (ledger_type == LD_SUBACCOUNT))
        return leader;
    return NULL;
}
GNCSplitReg * gnc_plugin_page_register_get_gsr ( GncPluginPage plugin_page)

Get the GNCSplitReg data structure associated with this register page.

Parameters:
plugin_pageA "register" page.

Definition at line 3543 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegister *page;
    GncPluginPageRegisterPrivate *priv;

    g_return_val_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page), NULL);

    page = GNC_PLUGIN_PAGE_REGISTER (plugin_page);
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);

    return priv->gsr;
}
GType gnc_plugin_page_register_get_type ( void  )

Retrieve the type number for the plugin page.

Returns:
The type number.

Definition at line 523 of file gnc-plugin-page-register.c.

{
    static GType gnc_plugin_page_register_type = 0;

    if (gnc_plugin_page_register_type == 0)
    {
        static const GTypeInfo our_info =
        {
            sizeof (GncPluginPageRegisterClass),
            NULL,
            NULL,
            (GClassInitFunc) gnc_plugin_page_register_class_init,
            NULL,
            NULL,
            sizeof (GncPluginPageRegister),
            0,
            (GInstanceInitFunc) gnc_plugin_page_register_init
        };

        gnc_plugin_page_register_type = g_type_register_static (GNC_TYPE_PLUGIN_PAGE,
                                        GNC_PLUGIN_PAGE_REGISTER_NAME,
                                        &our_info, 0);
    }

    return gnc_plugin_page_register_type;
}
GncPluginPage * gnc_plugin_page_register_new ( Account account,
gboolean  subaccounts 
)

Create a new "register" plugin page, given a pointer to an account.

Parameters:
accountThe pointer to the account to embed in the register.
subaccountsTRUE if all the sub-accounts of the specified account should be included in the register.
Returns:
The newly created plugin page.

Definition at line 611 of file gnc-plugin-page-register.c.

{
    GNCLedgerDisplay *ledger;
    GncPluginPage *page;
    GncPluginPageRegisterPrivate *priv;

    ENTER("account=%p, subaccounts=%s", account,
          subaccounts ? "TRUE" : "FALSE");

    if (subaccounts)
        ledger = gnc_ledger_display_subaccounts (account);
    else
        ledger = gnc_ledger_display_simple (account);

    page = gnc_plugin_page_register_new_common(ledger);
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    priv->key = *xaccAccountGetGUID(account);

    LEAVE("%p", page);
    return page;
}
GncPluginPage * gnc_plugin_page_register_new_gl ( void  )

Create a new "register" plugin page containing a general ledger.

Returns:
The newly created plugin page.

Definition at line 634 of file gnc-plugin-page-register.c.

{
    GNCLedgerDisplay *ledger;

    ledger = gnc_ledger_display_gl ();
    return gnc_plugin_page_register_new_common(ledger);
}
GncPluginPage * gnc_plugin_page_register_new_ledger ( GNCLedgerDisplay ledger)

Create a new "register" plugin page, given a pointer to an already created ledger. This function should be used when the ledger already exists. (E.G. From the "find transaction" code, or from the scheduled transaction code.)

Parameters:
ledgerThe pointer to the ledger to embed into the register.
Returns:
The newly created plugin page.

Definition at line 643 of file gnc-plugin-page-register.c.

{
    return gnc_plugin_page_register_new_common(ledger);
}
void gnc_plugin_page_register_set_options ( GncPluginPage plugin_page,
gint  lines_default,
gboolean  read_only 
)

Set various register options on a newly created "register" plugin page.

Parameters:
plugin_pageThe "register" page to modify.
lines_defaultUsed to calculate the minimum preferred height of the plugin page.
read_onlyTrue if the register should be read-only.

Definition at line 3527 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegister *page;
    GncPluginPageRegisterPrivate *priv;

    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));

    page = GNC_PLUGIN_PAGE_REGISTER (plugin_page);
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    priv->lines_default     = lines_default;
    priv->read_only         = read_only;
}
void gnc_plugin_page_register_sort_button_cb ( GtkToggleButton *  button,
GncPluginPageRegister page 
)

This function is called when a radio button in the "Sort By..." dialog is clicked.

Parameters:
buttonThe button that was toggled.
pageA pointer to the GncPluginPageRegister associated with this dialog box.

Definition at line 1701 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    const gchar *name;
    SortType type;

    g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    name = gtk_buildable_get_name(GTK_BUILDABLE(button));
    ENTER("button %s(%p), page %p", name, button, page);
    type = SortTypefromString(name);
    gnc_split_reg_set_sort_type(priv->gsr, type);
    LEAVE(" ");
}
void gnc_plugin_page_register_sort_order_save_cb ( GtkToggleButton *  button,
GncPluginPageRegister page 
)

This function is called whenever the save sort order is checked or unchecked which allows saving of the sort order.

Parameters:
buttonThe toggle button that was changed.
pageA pointer to the GncPluginPageRegister that is associated with this sort order dialog.

Definition at line 1729 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;

    g_return_if_fail(GTK_IS_CHECK_BUTTON(button));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER("Save toggle button (%p), plugin_page %p", button, page);

    /* Compute the new save sort order */
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);

    if (gtk_toggle_button_get_active(button))
        priv->sd.save_order = TRUE;
    else
        priv->sd.save_order = FALSE;
    LEAVE(" ");
}
void gnc_plugin_page_register_sort_response_cb ( GtkDialog *  dialog,
gint  response,
GncPluginPageRegister page 
)

This function is called when the "Sort By..." dialog is closed. If the dialog was closed by any method other than clicking the OK button, the original sorting order will be restored.

Parameters:
dialogA pointer to the dialog box.
responseA numerical value indicating why the dialog box was closed.
pageA pointer to the GncPluginPageRegister associated with this dialog box.

Definition at line 1653 of file gnc-plugin-page-register.c.

{
    GncPluginPageRegisterPrivate *priv;
    GncPluginPage *plugin_page;
    SortType type;
    const gchar *order;

    g_return_if_fail(GTK_IS_DIALOG(dialog));
    g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));

    ENTER(" ");
    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
    plugin_page = GNC_PLUGIN_PAGE(page);

    if (response != GTK_RESPONSE_OK)
    {
        /* Restore the original sort order */
        gnc_split_reg_set_sort_type(priv->gsr, priv->sd.original_sort_type);
        priv->sd.save_order = priv->sd.original_save_order;
    }
    else
    {
        priv->sd.original_save_order = priv->sd.save_order;

        if (priv->sd.save_order)
        {
            type = gnc_split_reg_get_sort_type(priv->gsr);
            order = SortTypeasString(type);
            gnc_plugin_page_register_set_sort_order (plugin_page, order);
        }
    }
    priv->sd.dialog = NULL;
    gtk_widget_destroy(GTK_WIDGET(dialog));
    LEAVE(" ");
}
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines