r21421 - gnucash/trunk/src - Bug #420342 - remember register filter and ordering settings

Geert Janssens gjanssens at code.gnucash.org
Fri Oct 14 13:45:45 EDT 2011


Author: gjanssens
Date: 2011-10-14 13:45:45 -0400 (Fri, 14 Oct 2011)
New Revision: 21421
Trac: http://svn.gnucash.org/trac/changeset/21421

Modified:
   gnucash/trunk/src/engine/Account.c
   gnucash/trunk/src/engine/Account.h
   gnucash/trunk/src/gnome/gnc-plugin-page-register.c
   gnucash/trunk/src/gnome/gtkbuilder/gnc-plugin-page-register.glade
Log:
Bug #420342 - remember register filter and ordering settings

Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c	2011-10-14 16:15:03 UTC (rev 21420)
+++ gnucash/trunk/src/engine/Account.c	2011-10-14 17:45:45 UTC (rev 21421)
@@ -84,6 +84,7 @@
 
     PROP_HIDDEN,
     PROP_PLACEHOLDER,
+    PROP_FILTER,
 };
 
 typedef struct AccountPrivate
@@ -435,6 +436,9 @@
     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 @@
     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 @@
                            "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 @@
     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)
 {
@@ -2980,6 +3019,14 @@
 }
 
 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)
 {
     g_return_val_if_fail(GNC_IS_ACCOUNT(acc), NULL);
@@ -4811,6 +4858,11 @@
             (QofSetterFunc) xaccAccountSetColor
         },
         {
+            ACCOUNT_FILTER_, QOF_TYPE_STRING,
+            (QofAccessFunc) xaccAccountGetFilter,
+            (QofSetterFunc) xaccAccountSetFilter
+        },
+        {
             ACCOUNT_NOTES_, QOF_TYPE_STRING,
             (QofAccessFunc) xaccAccountGetNotes,
             (QofSetterFunc) xaccAccountSetNotes

Modified: gnucash/trunk/src/engine/Account.h
===================================================================
--- gnucash/trunk/src/engine/Account.h	2011-10-14 16:15:03 UTC (rev 21420)
+++ gnucash/trunk/src/engine/Account.h	2011-10-14 17:45:45 UTC (rev 21421)
@@ -287,6 +287,8 @@
 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 * 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 @@
 #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"

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-register.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-register.c	2011-10-14 16:15:03 UTC (rev 21420)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-register.c	2011-10-14 17:45:45 UTC (rev 21421)
@@ -112,7 +112,12 @@
 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);
 static void gnc_plugin_page_register_cmd_cut (GtkAction *action, GncPluginPageRegister *plugin_page);
@@ -446,8 +451,8 @@
     { NULL, 0, NULL },
 };
 #define CLEARED_VALUE "cleared_value"
+#define DEFAULT_FILTER "0x001f"
 
-
 /************************************************************/
 /*                      Data Structures                     */
 /************************************************************/
@@ -488,6 +493,7 @@
         time_t original_end_time;
         time_t start_time;
         time_t end_time;
+        gboolean save_it;
     } fd;
 } GncPluginPageRegisterPrivate;
 
@@ -540,6 +546,7 @@
     GList *book_list;
     gchar *label;
     gchar *label_color;
+    gchar *filter;
     QofQuery *q;
 
     /* Is there an existing page? */
@@ -574,6 +581,10 @@
     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 @@
 
     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 @@
     g_signal_handlers_unblock_by_func(action, gnc_plugin_page_register_cmd_style_double_line, page);
 }
 
-
 /* Virtual Functions */
 
 static GtkWidget *
@@ -1328,24 +1340,59 @@
     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 *
 gnc_plugin_page_register_get_long_name (GncPluginPage *plugin_page)
 {
@@ -1885,6 +1932,37 @@
 }
 
 
+/** 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 @@
         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 @@
         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 @@
         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"));

Modified: gnucash/trunk/src/gnome/gtkbuilder/gnc-plugin-page-register.glade
===================================================================
--- gnucash/trunk/src/gnome/gtkbuilder/gnc-plugin-page-register.glade	2011-10-14 16:15:03 UTC (rev 21420)
+++ gnucash/trunk/src/gnome/gtkbuilder/gnc-plugin-page-register.glade	2011-10-14 17:45:45 UTC (rev 21421)
@@ -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>



More information about the gnucash-changes mailing list