r16911 - gnucash/branches/gda-dev2/src/backend/gda - 1) Count the number of accounts and transactions and use that as a basis

Phil Longstaff plongstaff at cvs.gnucash.org
Sat Feb 2 17:43:42 EST 2008


Author: plongstaff
Date: 2008-02-02 17:43:41 -0500 (Sat, 02 Feb 2008)
New Revision: 16911
Trac: http://svn.gnucash.org/trac/changeset/16911

Modified:
   gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.h
   gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.h
   gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c
Log:
1) Count the number of accounts and transactions and use that as a basis
for the percentage saved when saving to a new db.  So far, I've only
seen the progress bar show up when the original XML file needed to be
saved.
2) Use "gnc.backend.gda" as the logging module name
3) Change default username/password from "" to NULL (suggested by Mark
Johnson)



Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-account-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -43,7 +43,7 @@
 #include "gnc-slots-gda.h"
 #include "gnc-transaction-gda.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define TABLE_NAME "accounts"
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -65,6 +65,7 @@
 static void add_table_column( GdaServerProvider* server, GdaConnection* cnn,
             xmlNodePtr array_data, const gchar* arg, const gchar* dbms_type,
             gint size, gint flags );
+static void update_save_progress( GncGdaBackend* be );
 
 typedef struct {
     QofIdType searchObj;
@@ -81,7 +82,7 @@
     gnc_gda_query_info* pQueryInfo;
 } gda_backend;
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define SQLITE_PROVIDER_NAME "SQLite"
 
@@ -111,8 +112,8 @@
     GError* error = NULL;
     gchar* book_info;
     gchar* dsn;
-    gchar* username = "";
-    gchar* password = "";
+    gchar* username = NULL;
+    gchar* password = NULL;
 
 	g_return_if_fail( be_start != NULL );
 	g_return_if_fail( session != NULL );
@@ -431,6 +432,7 @@
     descendants = gnc_account_get_descendants( root );
     for( node = descendants; node != NULL; node = g_list_next(node) ) {
         gnc_gda_save_account( QOF_INSTANCE(GNC_ACCOUNT(node->data)), be );
+		update_save_progress( be );
     }
     g_list_free( descendants );
 }
@@ -452,6 +454,7 @@
 	g_return_val_if_fail( data != NULL, 0 );
 
     gnc_gda_save_transaction( QOF_INSTANCE(tx), be );
+	update_save_progress( be );
 
     return 0;
 }
@@ -511,6 +514,21 @@
 }
 
 static void
+update_save_progress( GncGdaBackend* be )
+{
+	if( be->be.percentage != NULL ) {
+		gint percent_done;
+
+		be->operations_done++;
+		percent_done = be->operations_done * 100 / be->obj_total;
+		if( percent_done > 100 ) {
+			percent_done = 100;
+		}
+		(be->be.percentage)( NULL, percent_done );
+	}
+}
+
+static void
 gnc_gda_sync_all( QofBackend* fbe, QofBook *book )
 {
     GncGdaBackend* be = (GncGdaBackend*)fbe;
@@ -522,7 +540,7 @@
 	g_return_if_fail( be != NULL );
 	g_return_if_fail( book != NULL );
 
-    ENTER ("book=%p, primary=%p", book, be->primary_book);
+    ENTER( "book=%p, primary=%p", book, be->primary_book );
 
     /* Destroy the current contents of the database */
     tables = gda_connection_get_schema( be->pConnection,
@@ -565,6 +583,10 @@
 
     /* Save all contents */
 	be->primary_book = book;
+	be->obj_total = 0;
+    be->obj_total += 1 + gnc_account_n_descendants( gnc_book_get_root_account( book ) );
+	be->obj_total += gnc_book_count_transactions( book );
+	be->operations_done = 0;
     //write_commodities( be, book );
 	gnc_gda_save_book( QOF_INSTANCE(book), be );
     write_accounts( be );
@@ -573,7 +595,7 @@
     write_schedXactions( be );
     qof_object_foreach_backend( GNC_GDA_BACKEND, write_cb, be );
 
-    LEAVE ("book=%p", book);
+    LEAVE( "book=%p", book );
 }
 
 /* ================================================================= */

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.h
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.h	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.h	2008-02-02 22:43:41 UTC (rev 16911)
@@ -29,52 +29,8 @@
 #ifndef GNC_BACKEND_GDA_H_
 #define GNC_BACKEND_GDA_H_
 
-#include "qof.h"
 #include <gmodule.h>
 
-#if 0
-#include "qofbackend-p.h"
-struct GncGdaBackend_struct
-{
-  QofBackend be;
-
-  GdaClient* pClient;
-  GdaConnection* pConnection;
-  GdaDict* pDict;
-
-  QofBook *primary_book;	/* The primary, main open book */
-  gboolean	loading;		/* We are performing an initial load */
-  gboolean  in_query;
-};
-typedef struct GncGdaBackend_struct GncGdaBackend;
-
-/**
- * Struct used to pass in a new data type for GDA storage.  This contains
- * the set of callbacks to read and write GDA for new data objects..  New
- * types should register an instance of this object with the engine.
- *
- * commit()			- commit an object to the db
- * initial_load()	- load stuff when new db opened
- */
-#define GNC_GDA_BACKEND	"gnc:gda:1"
-#define GNC_GDA_BACKEND_VERSION	1
-typedef struct
-{
-  int		version;	/* backend version number */
-  const gchar *	type_name;	/* The XML tag for this type */
-
-  void		(*commit)( GncGdaBackend* pBackend, QofInstance* inst );
-  void		(*initial_load)( GncGdaBackend* pBackend );
-  void		(*create_tables)( GncGdaBackend* pBackend );
-  gpointer	(*compile_query)( GncGdaBackend* pBackend, QofQuery* pQuery );
-  void		(*run_query)( GncGdaBackend* pBackend, gpointer pQuery );
-  void		(*free_query)( GncGdaBackend* pBackend, gpointer pQuery );
-} GncGdaDataType_t;
-#endif
-
-// This is now a static inside the module
-//QofBackend * libgncmod_backend_gda_LTX_gnc_backend_new(void);
-
 G_MODULE_EXPORT void
 qof_backend_module_init(void);
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -41,7 +41,7 @@
 #include "gnc-backend-util-gda.h"
 #include "gnc-gconf-utils.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 typedef struct {
     QofIdType searchObj;

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.h
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.h	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-util-gda.h	2008-02-02 22:43:41 UTC (rev 16911)
@@ -45,6 +45,9 @@
   gboolean	loading;		/* We are performing an initial load */
   gboolean  in_query;
   gboolean  supports_transactions;
+
+  gint obj_total;			// Total # of objects (for percentage calculation)
+  gint operations_done;		// Number of operations (save/load) done
 };
 typedef struct GncGdaBackend_struct GncGdaBackend;
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-book-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -45,7 +45,7 @@
 
 #define BOOK_TABLE "books"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 static gpointer get_root_account_guid( gpointer pObject, const QofParam* );
 static void set_root_account_guid( gpointer pObject, gpointer pValue );

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-budget-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -45,7 +45,7 @@
 
 #define BUDGET_TABLE "budgets"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define BUDGET_MAX_NAME_LEN 50
 #define BUDGET_MAX_DESCRIPTION_LEN 500

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-commodity-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -42,7 +42,7 @@
 #include "gnc-commodity-gda.h"
 #include "gnc-slots-gda.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 static gpointer get_quote_source_name( gpointer pObject, const QofParam* );
 static void set_quote_source_name( gpointer pObject, gpointer pValue );

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-lots-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -39,7 +39,7 @@
 
 #include "gnc-lots-gda.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define TABLE_NAME "lots"
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-price-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -39,7 +39,7 @@
 #include "gnc-commodity-gda.h"
 #include "gnc-price-gda.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define TABLE_NAME "prices"
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-recurrence-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -39,7 +39,7 @@
 
 #include "gnc-recurrence-gda.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define TABLE_NAME "recurrences"
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-schedxaction-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -46,7 +46,7 @@
 
 #define SCHEDXACTION_TABLE "schedxactions"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define SX_MAX_NAME_LEN 50
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-slots-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -38,7 +38,7 @@
 
 #include "gnc-slots-gda.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define TABLE_NAME "slots"
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c	2008-02-01 00:48:07 UTC (rev 16910)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-transaction-gda.c	2008-02-02 22:43:41 UTC (rev 16911)
@@ -47,7 +47,7 @@
 
 #include "gnc-engine.h"
 
-static QofLogModule log_module = GNC_MOD_BACKEND;
+static QofLogModule log_module = G_LOG_DOMAIN;
 
 #define TRANSACTION_TABLE "transactions"
 #define SPLIT_TABLE "splits"



More information about the gnucash-changes mailing list