[Gnucash-changes] r14250 - gnucash/branches/register-rewrite/src/gnome-utils/test - Add test-register to test-drive the transaction tree-view/model.

Chris Shoemaker chris at cvs.gnucash.org
Mon May 29 17:25:42 EDT 2006


Author: chris
Date: 2006-05-29 17:25:41 -0400 (Mon, 29 May 2006)
New Revision: 14250
Trac: http://svn.gnucash.org/trac/changeset/14250

Added:
   gnucash/branches/register-rewrite/src/gnome-utils/test/test-register.c
Modified:
   gnucash/branches/register-rewrite/src/gnome-utils/test/Makefile.am
Log:
   Add test-register to test-drive the transaction tree-view/model.


Modified: gnucash/branches/register-rewrite/src/gnome-utils/test/Makefile.am
===================================================================
--- gnucash/branches/register-rewrite/src/gnome-utils/test/Makefile.am	2006-05-29 21:18:25 UTC (rev 14249)
+++ gnucash/branches/register-rewrite/src/gnome-utils/test/Makefile.am	2006-05-29 21:25:41 UTC (rev 14250)
@@ -8,6 +8,13 @@
 
 ##lib_LTLIBRARIES = libgncgnome.la
 
+AM_CFLAGS = -I${top_srcdir}/src/test-core -I.. \
+  -I${top_srcdir}/src/engine/test-core \
+  -I${top_srcdir}/src/engine \
+  -I${top_srcdir}/src/gnome-utils \
+  -I${top_srcdir}/src/app-utils \
+  ${GLIB_CFLAGS} \
+  ${QOF_FLAGS}
 
 
 GNC_TEST_DEPS := @GNC_TEST_SRFI_LOAD_CMD@ \
@@ -33,7 +40,7 @@
   $(shell ${top_srcdir}/src/gnc-test-env --no-exports ${GNC_TEST_DEPS})
 
 noinst_PROGRAMS = \
-  test-link-module test-gnc-recurrence test-gnc-dialog
+  test-link-module test-gnc-recurrence test-gnc-dialog test-register
 
 INCLUDES= \
   -I${top_srcdir}/src \
@@ -59,6 +66,14 @@
   ${GUILE_LIBS} \
   ${top_builddir}/src/gnc-module/libgncmodule.la 
 
+test_register_SOURCES = test-register.c
+test_register_LDADD = \
+  ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
+  ${top_builddir}/src/engine/test-core/libgncmod-test-engine.la \
+  ${top_builddir}/src/test-core/libgncmod-test.la \
+  ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
+  ${QOF_LIBS}
+
 EXTRA_DIST = \
   test-load-module
 

Added: gnucash/branches/register-rewrite/src/gnome-utils/test/test-register.c
===================================================================
--- gnucash/branches/register-rewrite/src/gnome-utils/test/test-register.c	2006-05-29 21:18:25 UTC (rev 14249)
+++ gnucash/branches/register-rewrite/src/gnome-utils/test/test-register.c	2006-05-29 21:25:41 UTC (rev 14250)
@@ -0,0 +1,142 @@
+#include <glib.h>
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <time.h>
+
+#include "test-engine-stuff.h"
+#include "test-stuff.h"
+#include "gnc-date.h"
+#include "gnc-tree-view.h"
+#include "gnc-ui-util.h"
+
+#include "gnc-tree-model-transaction.h"
+#include "gnc-tree-view-transaction.h"
+#include "Group.h"
+#include "Transaction.h"
+#include "qof.h"
+#include "gnc-engine.h"
+#include "gnc-session.h"
+
+static QofSession *session;
+static QofBook *book;
+static GtkWidget *mainwin;
+
+
+static void
+die(void)
+{
+    qof_session_destroy (session);
+    gtk_main_quit();
+}
+
+
+static QofQuery *
+make_query (QofBook *book)
+{
+    QofQuery *q;
+
+    q = qof_query_create_for(GNC_ID_SPLIT);
+    qof_query_set_book (q, book);
+    return q;
+}
+static void
+just_get_one(QofEntity *ent, gpointer data)
+{
+    if (ent)
+        *(gpointer *)data = ent;
+}
+
+int main (int argc, char ** argv)
+{
+    GtkTreeView *tv;
+    GncTreeModelTransaction *tm;
+    QofQuery *q;
+    GtkWidget *scroll;
+    Account *acct1, *acct2;
+    Transaction *trans;
+    Split *split;
+    QofCollection *coll;
+
+    srand(0);
+    g_log_set_always_fatal( G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING );
+
+    gnc_engine_init(argc, argv);
+    gtk_init(&argc, &argv);
+    gnc_log_default();
+    qof_log_set_level(GNC_MOD_GUI, QOF_LOG_DEBUG);
+    qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_DEBUG);
+
+    g_type_init();
+
+    session = get_random_session ();
+    gnc_set_current_session(session);
+    book = qof_session_get_book (session);
+    add_random_transactions_to_book (book, 5);
+    coll = qof_book_get_collection(book, GNC_ID_TRANS);
+    qof_collection_foreach(coll, just_get_one, &trans);
+    split = xaccTransGetSplit(trans, 0);
+    acct1 = xaccSplitGetAccount(split);
+    split = xaccTransGetSplit(trans, 1);
+    acct2 = xaccSplitGetAccount(split);
+
+    q = make_query(book);
+
+    mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    gtk_window_set_title(GTK_WINDOW(mainwin), xaccAccountGetName(acct1));
+    g_signal_connect(mainwin, "delete-event", G_CALLBACK(die), NULL);
+
+    tm = gnc_tree_model_transaction_new_from_account(acct1);
+    if (0) {
+        GtkTreeViewColumn *col;
+        GtkTreeModel *s_model;
+
+        tv = GTK_TREE_VIEW(g_object_new(gnc_tree_view_transaction_get_type(),
+                                        NULL));
+
+        s_model = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(tm));
+        //tv = GTK_TREE_VIEW(gtk_tree_view_new_with_model(s_model));
+        gnc_tree_view_set_model(GNC_TREE_VIEW(tv), GTK_TREE_MODEL(s_model));
+        g_object_unref(G_OBJECT(s_model));
+        col = gnc_tree_view_add_text_column(
+            GNC_TREE_VIEW(tv), "num", "num_pref",
+            NULL, "xxx", GNC_TREE_MODEL_TRANSACTION_COL_NUM,
+            GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS, NULL);
+        col = gnc_tree_view_add_text_column(
+            GNC_TREE_VIEW(tv), "desc", "desc_pref",
+            NULL, "xxx", GNC_TREE_MODEL_TRANSACTION_COL_DESCRIPTION,
+            GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS, NULL);
+        gnc_tree_view_configure_columns(GNC_TREE_VIEW(tv));
+
+    } else {
+        tv = GTK_TREE_VIEW(gnc_tree_view_transaction_new_with_model(tm));
+    }
+    g_object_set(G_OBJECT(tv), "gconf-section",
+                 "gnome-utils/test/register",
+                 "show-column-menu", TRUE, NULL);
+    g_object_unref(tm);
+
+    scroll = gtk_scrolled_window_new(NULL, NULL);
+    gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(tv));
+    gtk_container_add(GTK_CONTAINER(mainwin), scroll);
+    gtk_window_set_default_size(GTK_WINDOW(mainwin), 890, 400);
+    gtk_widget_show_all(mainwin);
+
+    mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    gtk_window_set_title(GTK_WINDOW(mainwin), xaccAccountGetName(acct2));
+    g_signal_connect(mainwin, "delete-event", G_CALLBACK(die), NULL);
+
+    tm = gnc_tree_model_transaction_new_from_account(acct2);
+    tv = GTK_TREE_VIEW(gnc_tree_view_transaction_new_with_model(tm));
+    g_object_unref(tm);
+
+    g_object_set(G_OBJECT(tv), "gconf-section", "gnome-utils/test/register",
+                 "show-column-menu", TRUE, NULL);
+    scroll = gtk_scrolled_window_new(NULL, NULL);
+    gtk_container_add(GTK_CONTAINER(scroll),  GTK_WIDGET(tv));
+    gtk_container_add(GTK_CONTAINER(mainwin), scroll);
+    gtk_window_set_default_size(GTK_WINDOW(mainwin), 890, 400);
+
+    gtk_widget_show_all(mainwin);
+    gtk_main();
+    return 0;
+}



More information about the gnucash-changes mailing list