[Gnucash-changes] Make the summarybar for the register work again.

David Hampton hampton at cvs.gnucash.org
Tue Jun 7 16:00:00 EDT 2005


Log Message:
-----------
Make the summarybar for the register work again.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash:
        ChangeLog
    gnucash/src/gnome:
        gnc-plugin-page-register.c
        gnc-split-reg.c
        gnc-split-reg.h

Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.218
retrieving revision 1.1487.2.219
diff -LChangeLog -LChangeLog -u -r1.1487.2.218 -r1.1487.2.219
--- ChangeLog
+++ ChangeLog
@@ -1,5 +1,9 @@
 2005-06-07  David Hampton  <hampton at employees.org>
 
+	* src/gnome/gnc-plugin-page-register.c:
+	* src/gnome/gnc-split-reg.[ch]: Make the summarybar for the
+	register work again.
+
 	* src/core-utils/gnc-hooks.[ch]: Implement C side hook lists.  Will
 	allow hooks to be easily installed from either Scheme or C code.
 
Index: gnc-plugin-page-register.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/Attic/gnc-plugin-page-register.c,v
retrieving revision 1.1.2.23
retrieving revision 1.1.2.24
diff -Lsrc/gnome/gnc-plugin-page-register.c -Lsrc/gnome/gnc-plugin-page-register.c -u -r1.1.2.23 -r1.1.2.24
--- src/gnome/gnc-plugin-page-register.c
+++ src/gnome/gnc-plugin-page-register.c
@@ -609,6 +609,10 @@
 
 	gnc_plugin_page_register_update_menus (page);
 
+	plugin_page->summarybar = gsr_create_summary_bar(priv->gsr);
+	if (plugin_page->summarybar)
+	  gtk_widget_show_all(plugin_page->summarybar);
+
 	/* DRH - Probably lots of other stuff from regWindowLedger should end up here. */
 	return priv->widget;
 }
Index: gnc-split-reg.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/gnc-split-reg.h,v
retrieving revision 1.7.4.2
retrieving revision 1.7.4.3
diff -Lsrc/gnome/gnc-split-reg.h -Lsrc/gnome/gnc-split-reg.h -u -r1.7.4.2 -r1.7.4.3
--- src/gnome/gnc-split-reg.h
+++ src/gnome/gnc-split-reg.h
@@ -108,6 +108,7 @@
   GtkWidget *split_menu_check;
   GtkWidget *split_popup_check;
 
+  /* Summary Bar Labels */
   GtkWidget *balance_label;
   GtkWidget *cleared_label;
   GtkWidget *reconciled_label;
@@ -238,6 +239,11 @@
 GnucashRegister *gnc_split_reg_get_register( GNCSplitReg *gsr );
 
 /**
+ * Create and returns a summarybar for this GNCSplitReg.
+ **/
+GtkWidget *gsr_create_summary_bar( GNCSplitReg *gsr );
+
+/**
  * Gets/sets the sort-type of the GNCSplitReg.
  **/
 SortType gnc_split_reg_get_sort_type( GNCSplitReg *gsr );
Index: gnc-split-reg.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/gnc-split-reg.c,v
retrieving revision 1.19.4.19
retrieving revision 1.19.4.20
diff -Lsrc/gnome/gnc-split-reg.c -Lsrc/gnome/gnc-split-reg.c -u -r1.19.4.19 -r1.19.4.20
--- src/gnome/gnc-split-reg.c
+++ src/gnome/gnc-split-reg.c
@@ -101,7 +101,6 @@
 static void gsr_create_menus( GNCSplitReg *gsr );
 static void gsr_setup_menu_widgets( GNCSplitReg *gsr, GladeXML *xml );
 static void gsr_create_toolbar( GNCSplitReg *gsr );
-static void gsr_create_summary_bar( GNCSplitReg *gsr );
 static void gsr_create_table( GNCSplitReg *gsr );
 static void gsr_setup_table( GNCSplitReg *gsr );
 static void gsr_setup_status_widgets( GNCSplitReg *gsr );
@@ -703,7 +702,7 @@
   gboolean reverse;
   gboolean euro;
 
-  if ( gsr->window == NULL )
+  if ( gsr->summarybar == NULL )
     return;
 
   leader = gnc_ledger_display_leader( gsr->ledger );
@@ -723,9 +722,6 @@
   print_info = gnc_account_print_info( leader, TRUE );
   reverse = gnc_reverse_balance( leader );
 
-  /* Handle the summary bar */
-  if ( gsr->createFlags & CREATE_SUMMARYBAR ) 
-  {
     gsr_update_summary_label( gsr->balance_label,
                               xaccAccountGetPresentBalance,
                               leader, print_info, commodity, reverse, euro );
@@ -841,49 +837,6 @@
             gnc_price_unref (price);
           }
       }
-  }
-
-  {
-    gboolean expand;
-    gboolean sensitive;
-    SplitRegister *reg;
-
-    reg = gnc_ledger_display_get_split_register( gsr->ledger );
-    expand = gnc_split_register_current_trans_expanded (reg);
-    sensitive = (reg->style == REG_STYLE_LEDGER);
-
-#if 0
-    if ( gsr->createFlags & CREATE_TOOLBAR ) {
-      gtk_signal_handler_block_by_data
-        (GTK_OBJECT(gsr->split_button), gsr);
-      gtk_toggle_button_set_active
-        (GTK_TOGGLE_BUTTON (gsr->split_button), expand);
-      gtk_signal_handler_unblock_by_data
-        (GTK_OBJECT (gsr->split_button), gsr);
-      gtk_widget_set_sensitive( gsr->split_button, sensitive );
-    }
-#endif
-
-    if ( gsr->createFlags & CREATE_MENUS ) {
-      gtk_signal_handler_block_by_data
-        (GTK_OBJECT (gsr->split_menu_check), gsr);
-      gtk_check_menu_item_set_active
-        (GTK_CHECK_MENU_ITEM (gsr->split_menu_check), expand);
-      gtk_signal_handler_unblock_by_data
-        (GTK_OBJECT (gsr->split_menu_check), gsr);
-      gtk_widget_set_sensitive( gsr->split_menu_check, sensitive );
-    }
-
-    if ( gsr->createFlags & CREATE_POPUP ) {
-      gtk_signal_handler_block_by_data
-        (GTK_OBJECT (gsr->split_popup_check), gsr);
-      gtk_check_menu_item_set_active
-        (GTK_CHECK_MENU_ITEM (gsr->split_popup_check), expand);
-      gtk_signal_handler_unblock_by_data
-        (GTK_OBJECT (gsr->split_popup_check), gsr);
-      gtk_widget_set_sensitive( gsr->split_popup_check, sensitive );
-    }
-  }
 }
 
 static void
@@ -1955,8 +1908,7 @@
   return label;
 }
 
-static
-void
+GtkWidget *
 gsr_create_summary_bar( GNCSplitReg *gsr )
 {
   gboolean has_shares;
@@ -1972,6 +1924,7 @@
 
   if ( gnc_ledger_display_type(gsr->ledger) >= LD_SUBACCOUNT ) {
     gsr->summarybar = NULL;
+    return NULL;
   }
 
   {
@@ -2012,6 +1965,10 @@
   }
 
   gsr->summarybar = summarybar;
+
+  /* Force the first update */
+  gsr_redraw_all_cb(NULL, gsr);
+  return gsr->summarybar;
 }
 
 static


More information about the gnucash-changes mailing list