[Gnucash-changes] r12212 - gnucash/trunk/src/gnome - Generalize Account Filter By... (step 3)

Chris Shoemaker chris at cvs.gnucash.org
Fri Dec 30 18:44:40 EST 2005


Author: chris
Date: 2005-12-30 18:44:39 -0500 (Fri, 30 Dec 2005)
New Revision: 12212
Trac: http://svn.gnucash.org/trac/changeset/12212

Modified:
   gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c
Log:
Generalize Account Filter By... (step 3)

Narrow all the account filter dialog callbacks to use only the 
AccountFilterDialog struct.  Now they're multi-purpose.



Modified: gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c	2005-12-30 23:34:20 UTC (rev 12211)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c	2005-12-30 23:44:39 UTC (rev 12212)
@@ -119,12 +119,16 @@
 void gppat_set_insensitive_iff_rb_active(GtkToggleButton *b, GtkWidget *widget);
 
 /* "Filter By" dialog callbacks */
-gboolean gnc_plugin_page_account_tree_filter_accounts(Account *account, gpointer user_data);
-void gppat_filter_hide_zero_toggled_cb (GtkToggleButton *togglebutton, GncPluginPageAccountTree *page);
-void gppat_filter_clear_all_cb (GtkWidget *button, GncPluginPageAccountTree *page);
-void gppat_filter_select_all_cb (GtkWidget *button, GncPluginPageAccountTree *page);
-void gppat_filter_select_default_cb (GtkWidget *button, GncPluginPageAccountTree *page);
-void gppat_filter_response_cb (GtkWidget *dialog, gint response, GncPluginPageAccountTree *page);
+gboolean gnc_plugin_page_account_tree_filter_accounts(Account *account, 
+                                                      gpointer user_data);
+void gppat_filter_hide_zero_toggled_cb (GtkToggleButton *togglebutton, 
+                                        AccountFilterDialog *fd);
+void gppat_filter_clear_all_cb (GtkWidget *button, AccountFilterDialog *fd);
+void gppat_filter_select_all_cb (GtkWidget *button, AccountFilterDialog *fd);
+void gppat_filter_select_default_cb (GtkWidget *button, 
+                                     AccountFilterDialog *fd);
+void gppat_filter_response_cb (GtkWidget *dialog, gint response, 
+                               AccountFilterDialog *fd);
 
 
 /* Command callbacks */
@@ -1328,18 +1332,14 @@
  *  @param page A pointer to the account tree page to update. */
 void
 gppat_filter_hide_zero_toggled_cb (GtkToggleButton *button,
-				   GncPluginPageAccountTree *page)
+				   AccountFilterDialog *fd)
 {
-  GncPluginPageAccountTreePrivate *priv;
-
   g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
-  g_return_if_fail(GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE(page));
 
-  ENTER("button %p, page %p", button, page);
-  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
-  priv->fd.hide_zero_total = gtk_toggle_button_get_active(button);
-  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
-  LEAVE("hide_zero %d", priv->fd.hide_zero_total);
+  ENTER("button %p", button);
+  fd->hide_zero_total = gtk_toggle_button_get_active(button);
+  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(fd->tree_view));
+  LEAVE("hide_zero %d", fd->hide_zero_total);
 }
 
 /** The "clear all account types" button in the Filter dialog was
@@ -1351,25 +1351,22 @@
  *  @param page A pointer to the account tree page to update. */
 void
 gppat_filter_clear_all_cb (GtkWidget *button,
-			   GncPluginPageAccountTree *page)
+			   AccountFilterDialog *fd)
 {
-  GncPluginPageAccountTreePrivate *priv;
   GtkTreeSelection *selection;
   GtkTreeView *view;
 
   g_return_if_fail(GTK_IS_BUTTON(button));
-  g_return_if_fail(GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE(page));
 
-  ENTER("button %p, page %p", button, page);
-  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
+  ENTER("button %p", button);
   view = GTK_TREE_VIEW(gnc_glade_lookup_widget(button, FILTER_TREE_VIEW));
   selection = gtk_tree_view_get_selection(view);
-  g_signal_handler_block(selection, priv->fd.selection_changed_cb_id);
-  priv->fd.visible_types = 0;
-  gnc_tree_model_account_types_set_selection(view, priv->fd.visible_types);
-  g_signal_handler_unblock(selection, priv->fd.selection_changed_cb_id);
-  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
-  LEAVE("types 0x%x", priv->fd.visible_types);
+  g_signal_handler_block(selection, fd->selection_changed_cb_id);
+  fd->visible_types = 0;
+  gnc_tree_model_account_types_set_selection(view, fd->visible_types);
+  g_signal_handler_unblock(selection, fd->selection_changed_cb_id);
+  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(fd->tree_view));
+  LEAVE("types 0x%x", fd->visible_types);
 }
 
 /** The "select all account types" button in the Filter dialog was
@@ -1380,25 +1377,22 @@
  *  @param page A pointer to the account tree page to update. */
 void
 gppat_filter_select_all_cb (GtkWidget *button,
-			    GncPluginPageAccountTree *page)
+			    AccountFilterDialog *fd)
 {
-  GncPluginPageAccountTreePrivate *priv;
   GtkTreeSelection *selection;
   GtkTreeView *view;
 
   g_return_if_fail(GTK_IS_BUTTON(button));
-  g_return_if_fail(GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE(page));
 
-  ENTER("button %p, page %p", button, page);
-  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
+  ENTER("button %p", button);
   view = GTK_TREE_VIEW(gnc_glade_lookup_widget(button, FILTER_TREE_VIEW));
   selection = gtk_tree_view_get_selection(view);
-  g_signal_handler_block(selection, priv->fd.selection_changed_cb_id);
-  priv->fd.visible_types = -1;
-  gnc_tree_model_account_types_set_selection(view, priv->fd.visible_types);
-  g_signal_handler_unblock(selection, priv->fd.selection_changed_cb_id);
-  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
-  LEAVE("types 0x%x", priv->fd.visible_types);
+  g_signal_handler_block(selection, fd->selection_changed_cb_id);
+  fd->visible_types = -1;
+  gnc_tree_model_account_types_set_selection(view, fd->visible_types);
+  g_signal_handler_unblock(selection, fd->selection_changed_cb_id);
+  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(fd->tree_view));
+  LEAVE("types 0x%x", fd->visible_types);
 }
 
 /** The "select default account types" button in the Filter dialog was
@@ -1410,10 +1404,10 @@
  *  @param page A pointer to the account tree page to update. */
 void
 gppat_filter_select_default_cb (GtkWidget *button,
-				GncPluginPageAccountTree *page)
+				AccountFilterDialog *fd)
 {
-  ENTER("button %p, page %p", button, page);
-  gppat_filter_select_all_cb(button, page);
+  ENTER("button %p", button);
+  gppat_filter_select_all_cb(button, fd);
   LEAVE(" ");
 }
 
@@ -1426,20 +1420,17 @@
  *  @param page A pointer to the account tree page to update. */
 static void
 gppat_filter_selection_changed_cb  (GtkTreeSelection *selection,
-				    GncPluginPageAccountTree *page)
+				    AccountFilterDialog *fd)
 {
-  GncPluginPageAccountTreePrivate *priv;
   GtkTreeView *view;
 
   g_return_if_fail(GTK_IS_TREE_SELECTION(selection));
-  g_return_if_fail(GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE(page));
 
-  ENTER("selection %p, page %p", selection, page);
-  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
+  ENTER("selection %p", selection);
   view = gtk_tree_selection_get_tree_view(selection);
-  priv->fd.visible_types = gnc_tree_model_account_types_get_selection(view);
-  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
-  LEAVE("types 0x%x", priv->fd.visible_types);
+  fd->visible_types = gnc_tree_model_account_types_get_selection(view);
+  gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(fd->tree_view));
+  LEAVE("types 0x%x", fd->visible_types);
 }
 
 /** The Filter dialog was closed.  CHeck to see if this was done via
@@ -1454,35 +1445,31 @@
 void
 gppat_filter_response_cb (GtkWidget *dialog,
 			  gint       response,
-			  GncPluginPageAccountTree *page)
+			  AccountFilterDialog *fd)
 {
-  GncPluginPageAccountTreePrivate *priv;
   GtkWidget *view;
   guint32 types;
 
   g_return_if_fail(GTK_IS_DIALOG(dialog));
-  g_return_if_fail(GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE(page));
 
-  ENTER("dialog %p, response %d, page %p", dialog, response, page);
+  ENTER("dialog %p, response %d", dialog, response);
   view = gnc_glade_lookup_widget(dialog, FILTER_TREE_VIEW);
 
-  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
   if (response != GTK_RESPONSE_OK) {
-    priv->fd.visible_types = priv->fd.original_visible_types;
-    priv->fd.hide_zero_total = priv->fd.original_hide_zero_total;
-    gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
+    fd->visible_types = fd->original_visible_types;
+    fd->hide_zero_total = fd->original_hide_zero_total;
+    gnc_tree_view_account_refilter(GNC_TREE_VIEW_ACCOUNT(fd->tree_view));
   }
   types = gnc_tree_model_account_types_get_selection(GTK_TREE_VIEW(view));
 
   /* Clean up and delete dialog */
-  priv->fd.selection_changed_cb_id = 0;
-  g_atomic_pointer_compare_and_exchange((gpointer *)&priv->fd.dialog,
+  fd->selection_changed_cb_id = 0;
+  g_atomic_pointer_compare_and_exchange((gpointer *)&fd->dialog,
 					dialog, NULL);
   gtk_widget_destroy(dialog);
   LEAVE("types 0x%x", types);
 }
 
-
 static void
 gnc_plugin_page_account_tree_cmd_view_filter_by (GtkAction *action,
 						 GncPluginPageAccountTree *page)
@@ -1537,10 +1524,11 @@
   gnc_tree_model_account_types_set_selection(view, priv->fd.visible_types);
   priv->fd.selection_changed_cb_id =
     g_signal_connect(G_OBJECT(selection), "changed",
-		     G_CALLBACK(gppat_filter_selection_changed_cb), page);
+		     G_CALLBACK(gppat_filter_selection_changed_cb), &priv->fd);
 
   /* Wire up the rest of the callbacks */
-  glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, page);
+  glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, 
+                                    &priv->fd);
 
   /* Show it */
   gtk_widget_show_all(dialog);



More information about the gnucash-changes mailing list