Bug #420342 - remember register filter and ordering settings

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21421 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Geert Janssens
2011-10-14 17:45:45 +00:00
parent 44169e28c5
commit 7bc5e89950
4 changed files with 342 additions and 169 deletions

View File

@@ -84,6 +84,7 @@ enum
PROP_HIDDEN,
PROP_PLACEHOLDER,
PROP_FILTER,
};
typedef struct AccountPrivate
@@ -435,6 +436,9 @@ gnc_account_get_property (GObject *object,
case PROP_PLACEHOLDER:
g_value_set_boolean(value, xaccAccountGetPlaceholder(account));
break;
case PROP_FILTER:
g_value_set_string(value, xaccAccountGetFilter(account));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -527,6 +531,9 @@ gnc_account_set_property (GObject *object,
case PROP_PLACEHOLDER:
xaccAccountSetPlaceholder(account, g_value_get_boolean(value));
break;
case PROP_FILTER:
xaccAccountSetFilter(account, g_value_get_string(value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -864,6 +871,16 @@ gnc_account_class_init (AccountClass *klass)
"allow transactions to be created, edited or deleted.",
FALSE,
G_PARAM_READWRITE));
g_object_class_install_property
(gobject_class,
PROP_FILTER,
g_param_spec_string ("filter",
"Account Filter",
"The account filter is a value saved to allow "
"filters to be recalled.",
NULL,
G_PARAM_READWRITE));
}
static void
@@ -2199,6 +2216,28 @@ xaccAccountSetColor (Account *acc, const char *str)
xaccAccountCommitEdit(acc);
}
void
xaccAccountSetFilter (Account *acc, const char *str)
{
g_return_if_fail(GNC_IS_ACCOUNT(acc));
xaccAccountBeginEdit(acc);
if (str)
{
gchar *tmp = g_strstrip(g_strdup(str));
kvp_frame_set_slot_nc(acc->inst.kvp_data, "filter",
strlen(tmp) ? kvp_value_new_string(tmp) : NULL);
g_free(tmp);
}
else
{
kvp_frame_set_slot_nc(acc->inst.kvp_data, "filter", NULL);
}
mark_account (acc);
xaccAccountCommitEdit(acc);
}
static void
qofAccountSetParent (Account *acc, QofInstance *parent)
{
@@ -2979,6 +3018,14 @@ xaccAccountGetColor (const Account *acc)
return acc ? kvp_frame_get_string(acc->inst.kvp_data, "color") : NULL;
}
const char *
xaccAccountGetFilter (const Account *acc)
{
g_return_val_if_fail(GNC_IS_ACCOUNT(acc), 0);
return acc ? kvp_frame_get_string(acc->inst.kvp_data, "filter") : NULL;
}
const char *
xaccAccountGetNotes (const Account *acc)
{
@@ -4810,6 +4857,11 @@ gboolean xaccAccountRegister (void)
(QofAccessFunc) xaccAccountGetColor,
(QofSetterFunc) xaccAccountSetColor
},
{
ACCOUNT_FILTER_, QOF_TYPE_STRING,
(QofAccessFunc) xaccAccountGetFilter,
(QofSetterFunc) xaccAccountSetFilter
},
{
ACCOUNT_NOTES_, QOF_TYPE_STRING,
(QofAccessFunc) xaccAccountGetNotes,

View File

@@ -287,6 +287,8 @@ void xaccAccountSetCode (Account *account, const char *code);
void xaccAccountSetDescription (Account *account, const char *desc);
/** Set the account's Color */
void xaccAccountSetColor (Account *account, const char *color);
/** Set the account's Filter */
void xaccAccountSetFilter (Account *account, const char *filter);
/** Set the account's notes */
void xaccAccountSetNotes (Account *account, const char *notes);
/** Set the last num field of an Account */
@@ -384,6 +386,8 @@ const char * xaccAccountGetCode (const Account *account);
const char * xaccAccountGetDescription (const Account *account);
/** Get the account's color */
const char * xaccAccountGetColor (const Account *account);
/** Get the account's filter */
const char * xaccAccountGetFilter (const Account *account);
/** Get the account's notes */
const char * xaccAccountGetNotes (const Account *account);
/** Get the last num field of an Account */
@@ -1435,6 +1439,7 @@ const char * dxaccAccountGetQuoteTZ (const Account *account);
#define ACCOUNT_CODE_ "code"
#define ACCOUNT_DESCRIPTION_ "desc"
#define ACCOUNT_COLOR_ "color"
#define ACCOUNT_FILTER_ "filter"
#define ACCOUNT_NOTES_ "notes"
#define ACCOUNT_BALANCE_ "balance"
#define ACCOUNT_CLEARED_ "cleared"

View File

@@ -112,6 +112,11 @@ void gnc_plugin_page_register_filter_end_cb(GtkWidget *radio, GncPluginPageRegis
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);
static gchar *gnc_plugin_page_register_get_filter (GncPluginPage *plugin_page);
void gnc_plugin_page_register_set_filter (GncPluginPage *plugin_page, const gchar *filter );
static void gnc_ppr_update_status_query (GncPluginPageRegister *page);
/* Command callbacks */
static void gnc_plugin_page_register_cmd_print_check (GtkAction *action, GncPluginPageRegister *plugin_page);
@@ -446,7 +451,7 @@ static struct status_action status_actions[] =
{ NULL, 0, NULL },
};
#define CLEARED_VALUE "cleared_value"
#define DEFAULT_FILTER "0x001f"
/************************************************************/
/* Data Structures */
@@ -488,6 +493,7 @@ typedef struct GncPluginPageRegisterPrivate
time_t original_end_time;
time_t start_time;
time_t end_time;
gboolean save_it;
} fd;
} GncPluginPageRegisterPrivate;
@@ -540,6 +546,7 @@ gnc_plugin_page_register_new_common (GNCLedgerDisplay *ledger)
GList *book_list;
gchar *label;
gchar *label_color;
gchar *filter;
QofQuery *q;
/* Is there an existing page? */
@@ -574,6 +581,10 @@ gnc_plugin_page_register_new_common (GNCLedgerDisplay *ledger)
gnc_plugin_page_set_page_long_name(plugin_page, label);
g_free(label);
filter = gnc_plugin_page_register_get_filter(plugin_page);
priv->fd.cleared_match = (gint)g_ascii_strtoll( filter, NULL, 16 );
g_free(filter);
q = gnc_ledger_display_get_query (ledger);
book_list = qof_query_get_books (q);
for (item = book_list; item; item = g_list_next(item))
@@ -582,6 +593,8 @@ gnc_plugin_page_register_new_common (GNCLedgerDisplay *ledger)
reg = gnc_ledger_display_get_split_register(priv->ledger);
gnc_ppr_update_status_query (register_page);
priv->component_manager_id = 0;
return plugin_page;
}
@@ -806,7 +819,6 @@ gnc_plugin_page_register_ui_initial_state (GncPluginPageRegister *page)
g_signal_handlers_unblock_by_func(action, gnc_plugin_page_register_cmd_style_double_line, page);
}
/* Virtual Functions */
static GtkWidget *
@@ -1328,22 +1340,57 @@ gnc_plugin_page_register_get_tab_color (GncPluginPage *plugin_page)
reg = gnc_ledger_display_get_split_register (ld);
ledger_type = gnc_ledger_display_type (ld);
leader = gnc_ledger_display_leader (ld);
color = NULL;
switch (ledger_type)
{
case LD_SINGLE:
if ((ledger_type == LD_SINGLE) || (ledger_type == LD_SUBACCOUNT))
color = xaccAccountGetColor (leader);
return g_strdup(color ? color : "");
case LD_SUBACCOUNT:
color = xaccAccountGetColor (leader);
return g_strdup_printf("%s+", color ? color : "");
return g_strdup(color ? color : "Not Set");
}
default:
break;
}
static gchar *
gnc_plugin_page_register_get_filter (GncPluginPage *plugin_page)
{
GncPluginPageRegisterPrivate *priv;
GNCLedgerDisplayType ledger_type;
GNCLedgerDisplay *ld;
SplitRegister *reg;
Account *leader;
const char* filter;
return g_strdup("Not Set");
g_return_val_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page), _("unknown"));
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
ld = priv->ledger;
reg = gnc_ledger_display_get_split_register (ld);
ledger_type = gnc_ledger_display_type (ld);
leader = gnc_ledger_display_leader (ld);
filter = NULL;
if ((ledger_type == LD_SINGLE) || (ledger_type == LD_SUBACCOUNT))
filter = xaccAccountGetFilter (leader);
return g_strdup(filter ? filter : DEFAULT_FILTER);
}
void
gnc_plugin_page_register_set_filter (GncPluginPage *plugin_page, const gchar *filter )
{
GncPluginPageRegisterPrivate *priv;
GNCLedgerDisplayType ledger_type;
GNCLedgerDisplay *ld;
SplitRegister *reg;
Account *leader;
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
ld = priv->ledger;
reg = gnc_ledger_display_get_split_register (ld);
ledger_type = gnc_ledger_display_type (ld);
leader = gnc_ledger_display_leader (ld);
xaccAccountSetFilter (leader, filter);
return;
}
static gchar *
@@ -1885,6 +1932,37 @@ gnc_plugin_page_register_filter_end_cb (GtkWidget *radio,
}
/** This function is called whenever the save status is checked
* or unchecked. It will allow saving of the filter if required.
*
* @param button The toggle button that was changed.
*
* @param page A pointer to the GncPluginPageRegister that is
* associated with this filter dialog.
*/
void
gnc_plugin_page_register_filter_save_cb (GtkToggleButton *button,
GncPluginPageRegister *page)
{
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));
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_it = TRUE;
else
priv->fd.save_it = FALSE;
LEAVE(" ");
}
/** 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.
@@ -1902,12 +1980,16 @@ gnc_plugin_page_register_filter_response_cb (GtkDialog *dialog,
GncPluginPageRegister *page)
{
GncPluginPageRegisterPrivate *priv;
GncPluginPage *plugin_page;
const char* filter;
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 */
@@ -1917,6 +1999,14 @@ gnc_plugin_page_register_filter_response_cb (GtkDialog *dialog,
priv->fd.end_time = priv->fd.original_end_time;
gnc_ppr_update_date_query(page);
}
else
{
if(priv->fd.save_it)
{
filter = g_strdup_printf("0x%04x", priv->fd.cleared_match);
gnc_plugin_page_register_set_filter (plugin_page, filter);
}
}
priv->fd.dialog = NULL;
gtk_widget_destroy(GTK_WIDGET(dialog));
LEAVE(" ");
@@ -2534,6 +2624,7 @@ gnc_plugin_page_register_cmd_view_filter_by (GtkAction *action,
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), value);
}
priv->fd.original_cleared_match = priv->fd.cleared_match;
priv->fd.save_it = FALSE;
/* Set the date info */
button = GTK_WIDGET(gtk_builder_get_object (builder, "filter_show_range"));

View File

@@ -178,7 +178,7 @@
<property name="resizable">False</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<signal name="response" handler="gnc_plugin_page_register_filter_response_cb"/>
<signal name="response" handler="gnc_plugin_page_register_filter_response_cb" swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox19">
<property name="visible">True</property>
@@ -277,7 +277,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">filter_show_all</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_select_range_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_filter_select_range_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -314,7 +314,7 @@
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_start_cb"/>
<signal name="clicked" handler="gnc_plugin_page_register_filter_start_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -332,7 +332,7 @@
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_end_cb"/>
<signal name="clicked" handler="gnc_plugin_page_register_filter_end_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -353,7 +353,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">end_date_choose</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_end_cb"/>
<signal name="clicked" handler="gnc_plugin_page_register_filter_end_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -374,7 +374,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">end_date_choose</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_end_cb"/>
<signal name="clicked" handler="gnc_plugin_page_register_filter_end_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -423,7 +423,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">start_date_earliest</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_start_cb"/>
<signal name="clicked" handler="gnc_plugin_page_register_filter_start_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -444,7 +444,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">start_date_earliest</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_start_cb"/>
<signal name="clicked" handler="gnc_plugin_page_register_filter_start_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -536,159 +536,184 @@
</packing>
</child>
<child>
<object class="GtkTable" id="table1">
<object class="GtkVBox" id="vbox104">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">12</property>
<property name="n_rows">7</property>
<property name="n_columns">3</property>
<child>
<object class="GtkLabel" id="label847688">
<object class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="border_width">12</property>
<property name="n_rows">7</property>
<property name="n_columns">3</property>
<child>
<object class="GtkCheckButton" id="filter_status_unreconciled">
<property name="label" translatable="yes">_Unreconciled</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb" swapped="no"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_reconciled">
<property name="label" translatable="yes">_Reconciled</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb" swapped="no"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_cleared">
<property name="label" translatable="yes">C_leared</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb" swapped="no"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_voided">
<property name="label" translatable="yes">_Voided</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb" swapped="no"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_frozen">
<property name="label" translatable="yes">_Frozen</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb" swapped="no"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkButton" id="button84">
<property name="label" translatable="yes">Select _All</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_status_all_cb" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkHSeparator" id="hseparator1">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="y_options">GTK_EXPAND</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="y_options"></property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label847686">
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<child>
<object class="GtkCheckButton" id="filter_save">
<property name="label" translatable="yes">_Save Filter Status</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">1</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_save_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">6</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="y_options">GTK_EXPAND</property>
<property name="expand">True</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_unreconciled">
<property name="label" translatable="yes">_Unreconciled</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_reconciled">
<property name="label" translatable="yes">_Reconciled</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_cleared">
<property name="label" translatable="yes">C_leared</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_voided">
<property name="label" translatable="yes">_Voided</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filter_status_frozen">
<property name="label" translatable="yes">_Frozen</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_filter_status_one_cb"/>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkButton" id="button84">
<property name="label" translatable="yes">Select _All</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="gnc_plugin_page_register_filter_status_all_cb"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="position">1</property>
@@ -728,7 +753,7 @@
<property name="resizable">False</property>
<property name="window_position">center-on-parent</property>
<property name="type_hint">dialog</property>
<signal name="response" handler="gnc_plugin_page_register_sort_response_cb"/>
<signal name="response" handler="gnc_plugin_page_register_sort_response_cb" swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox17">
<property name="visible">True</property>
@@ -795,7 +820,7 @@
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -825,7 +850,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -844,7 +869,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -863,7 +888,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -882,7 +907,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -901,7 +926,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -920,7 +945,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -939,7 +964,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -958,7 +983,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -977,7 +1002,7 @@
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">BY_STANDARD</property>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb"/>
<signal name="toggled" handler="gnc_plugin_page_register_sort_button_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>