[Gnucash-changes] Add toolbar element for saving the current report.

Christian Stimming cstim at cvs.gnucash.org
Wed Jun 30 16:08:17 EDT 2004


Log Message:
-----------
Add toolbar element for saving the current report. 

2004-06-30  Christian Stimming  <stimming at tuhh.de>

	* src/report/report-gnome/window-report.c: Add toolbar element for
	saving the current report.

	* src/report/report-system/report.scm, report-system.scm: Add
	function for saving one particular report to the
	~/.gnucash/saved-reports-1.8 file. Add extra menu only for
	customized reports.

	* src/scm/main-window.scm, src/scm/main.scm: Remove the previous
	function for saving all reports since it is no longer necessary.

Modified Files:
--------------
    gnucash:
        ChangeLog
    gnucash/src/report/report-gnome:
        report-gnome.scm
        window-report.c
    gnucash/src/report/report-system:
        report-system.scm
        report.scm
    gnucash/src/scm:
        main-window.scm
        main.scm

Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1820
retrieving revision 1.1821
diff -LChangeLog -LChangeLog -u -r1.1820 -r1.1821
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,16 @@
+2004-06-30  Christian Stimming  <stimming at tuhh.de>
+
+	* src/report/report-gnome/window-report.c: Add toolbar element for
+	saving the current report.
+
+	* src/report/report-system/report.scm, report-system.scm: Add
+	function for saving one particular report to the
+	~/.gnucash/saved-reports-1.8 file. Add extra menu only for
+	customized reports.
+
+	* src/scm/main-window.scm, src/scm/main.scm: Remove the previous
+	function for saving all reports since it is no longer necessary.
+
 2004-06-26  Derek Atkins  <derek at ihtfp.com>
 
 	* src/gnc-module/gnc-module.scm: create (and export) a re-export macro
Index: window-report.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/report/report-gnome/window-report.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lsrc/report/report-gnome/window-report.c -Lsrc/report/report-gnome/window-report.c -u -r1.20 -r1.21
--- src/report/report-gnome/window-report.c
+++ src/report/report-gnome/window-report.c
@@ -534,6 +534,20 @@
   return TRUE;
 }
 
+static int
+gnc_report_window_save_cb(GtkWidget * w, gpointer data)
+{
+  gnc_report_window * report = data;
+  SCM save_func = gh_eval_str("gnc:report-save-to-savefile");
+
+  if(report->cur_report != SCM_BOOL_F)
+  {
+    gh_call1(save_func, report->cur_report);
+  }
+
+  return TRUE;
+}
+
 /* We got a draw event.  See if we need to reload the report */
 static void
 gnc_report_window_draw_cb(GtkWidget *unused, GdkRectangle *unused1, gpointer data)
@@ -901,6 +915,15 @@
       GNOME_STOCK_PIXMAP_PRINT,
       0, 0, NULL
     },
+    { GNOME_APP_UI_ITEM,
+      _("Save report"),
+      _("Save the current report for later use in ~/.gnucash/saved-reports-1.8 so that they are accessible as menu entries in the report menu. Will go into effect at the next startup of gnucash."),
+      gnc_report_window_save_cb, win,
+      NULL,
+      GNOME_APP_PIXMAP_STOCK,
+      GNOME_STOCK_PIXMAP_SAVE,
+      0, 0, NULL
+    },    
     GNOMEUIINFO_END
   };
   
Index: report-gnome.scm
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/report/report-gnome/report-gnome.scm,v
retrieving revision 1.10
retrieving revision 1.11
diff -Lsrc/report/report-gnome/report-gnome.scm -Lsrc/report/report-gnome/report-gnome.scm -u -r1.10 -r1.11
--- src/report/report-gnome/report-gnome.scm
+++ src/report/report-gnome/report-gnome.scm
@@ -94,18 +94,21 @@
   (define menu (gnc:make-menu gnc:menuname-reports
 			      (list gnc:window-name-main "_Actions")))
   (define menu-namer (gnc:new-menu-namer))
-  (define tax-menu (gnc:make-menu gnc:menuname-taxes
-                                  (list gnc:window-name-main
-					gnc:menuname-reports "")))
-  (define income-expense-menu
-    (gnc:make-menu gnc:menuname-income-expense
-                   (list gnc:window-name-main gnc:menuname-reports "")))
   (define asset-liability-menu
     (gnc:make-menu gnc:menuname-asset-liability
                    (list gnc:window-name-main gnc:menuname-reports "")))
+  (define income-expense-menu
+    (gnc:make-menu gnc:menuname-income-expense
+                   (list gnc:window-name-main gnc:menuname-reports "")))
   (define utility-menu
     (gnc:make-menu gnc:menuname-utility
                    (list gnc:window-name-main gnc:menuname-reports "")))
+  (define custom-menu
+    (gnc:make-menu gnc:menuname-custom
+                   (list gnc:window-name-main gnc:menuname-reports "")))
+  (define tax-menu 
+    (gnc:make-menu gnc:menuname-taxes
+		   (list gnc:window-name-main gnc:menuname-reports "")))
 
   (gnc:add-extension menu)
 
@@ -113,6 +116,7 @@
   (gnc:add-extension income-expense-menu)
   (gnc:add-extension asset-liability-menu)
   (gnc:add-extension utility-menu)
+  (gnc:add-extension custom-menu)
 
   ;; run report-hook danglers
   (gnc:hook-run-danglers gnc:*report-hook*)
Index: report-system.scm
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/report/report-system/report-system.scm,v
retrieving revision 1.23
retrieving revision 1.24
diff -Lsrc/report/report-system/report-system.scm -Lsrc/report/report-system/report-system.scm -u -r1.23 -r1.24
--- src/report/report-system/report-system.scm
+++ src/report/report-system/report-system.scm
@@ -96,6 +96,7 @@
 (export gnc:menuname-income-expense )
 (export gnc:menuname-taxes)
 (export gnc:menuname-utility)
+(export gnc:menuname-custom)
 (export gnc:pagename-general)
 (export gnc:pagename-accounts)
 (export gnc:pagename-display)
@@ -149,6 +150,7 @@
 (export gnc:find-report-template)
 (export gnc:report-generate-restore-forms)
 (export gnc:report-generate-saved-forms)
+(export gnc:report-save-to-savefile)
 (export gnc:report-render-html)
 (export gnc:report-run)
 (export gnc:report-templates-for-each)
Index: report.scm
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/report/report-system/report.scm,v
retrieving revision 1.13
retrieving revision 1.14
diff -Lsrc/report/report-system/report.scm -Lsrc/report/report-system/report.scm -u -r1.13 -r1.14
--- src/report/report-system/report.scm
+++ src/report/report-system/report.scm
@@ -41,6 +41,7 @@
 (define gnc:menuname-income-expense (N_ "_Income & Expense"))
 (define gnc:menuname-taxes (N_ "_Taxes"))
 (define gnc:menuname-utility (N_ "_Sample & Custom"))
+(define gnc:menuname-custom (N_ "_Custom"))
 (define gnc:pagename-general (N_ "General"))
 (define gnc:pagename-accounts (N_ "Accounts"))
 (define gnc:pagename-display (N_ "Display"))
@@ -380,10 +381,17 @@
    (gnc:generate-restore-forms (gnc:report-options report) "options")
    "  options))\n"
    (simple-format 
-    #f " (gnc:define-report \n  'version 1\n  'name ~S\n  'options-generator options-gen\n  'renderer (gnc:report-template-renderer/name ~S)))\n\n"
+    #f " (gnc:define-report \n  'version 1\n  'name ~S\n  'options-generator options-gen\n  'menu-path (list gnc:menuname-custom)\n  'renderer (gnc:report-template-renderer/name ~S)))\n\n"
     (gnc:report-name report)
     (gnc:report-type report))))
 
+(define (gnc:report-save-to-savefile report)
+  (let ((conf-file-name gnc:current-saved-reports))
+    ;;(display conf-file-name)
+    (display (gnc:report-generate-saved-forms report)
+	     (open-file conf-file-name "a"))
+    (force-output)))
+
 (define (gnc:report-render-html report headers?)
   (if (and (not (gnc:report-dirty? report))
            (gnc:report-ctext report))
Index: main.scm
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/scm/main.scm,v
retrieving revision 1.125
retrieving revision 1.126
diff -Lsrc/scm/main.scm -Lsrc/scm/main.scm -u -r1.125 -r1.126
--- src/scm/main.scm
+++ src/scm/main.scm
@@ -79,7 +79,6 @@
 (export gnc:make-new-acct-tree-window)  
 (export gnc:free-acct-tree-window)
 (export gnc:main-window-save-state)
-(export gnc:main-window-save-report)
 
 ;; from printing/print-check.scm
 (export make-print-check-format)
@@ -510,15 +509,6 @@
     (lambda ()
       (gnc:main-window-open-report (gnc:make-welcome-report) #f))))
 
-  ;; The "save current report" entry
-  (gnc:add-extension
-   (gnc:make-menu-item
-    (N_ "_Save all current reports")
-    (N_ "Save all the current report in ~/.gnucash/saved-reports-1.8 so that they are accessible as menu entries in the report menu. Effects are only visible at next startup of gnucash.")
-    (list gnc:window-name-main "_File" "_Export")
-    (lambda ()
-      (gnc:main-window-save-report))))
-
   (gnc:hook-run-danglers gnc:*startup-hook*)
 
   (if (gnc:config-var-value-get gnc:*loglevel*)
Index: main-window.scm
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/scm/main-window.scm,v
retrieving revision 1.27
retrieving revision 1.28
diff -Lsrc/scm/main-window.scm -Lsrc/scm/main-window.scm -u -r1.27 -r1.28
--- src/scm/main-window.scm
+++ src/scm/main-window.scm
@@ -162,18 +162,6 @@
               (force-output)))
           (gnc:mdi-save (gnc:mdi-get-current) book-url)))))
 
-(define (gnc:main-window-save-report)
-  (let ((conf-file-name gnc:current-saved-reports))
-    ;;(display conf-file-name)
-    (with-output-to-port (open-file conf-file-name "a")
-      (lambda ()
-	(hash-fold
-	 (lambda (k v p)
-	   (display
-	    (gnc:report-generate-saved-forms v)))
-	 #t *gnc:_reports_*)
-	(force-output)))))
-
 (define (gnc:main-window-book-close-handler session)
     (gnc:main-window-save-state session)
 


More information about the gnucash-changes mailing list