r23363 - gnucash/trunk/src/gnome - Bug 693244 - View Lots window enhancements
Geert Janssens
gjanssens at code.gnucash.org
Thu Oct 31 18:26:06 EDT 2013
Author: gjanssens
Date: 2013-10-31 18:26:00 -0400 (Thu, 31 Oct 2013)
New Revision: 23363
Trac: http://svn.gnucash.org/trac/changeset/23363
Modified:
gnucash/trunk/src/gnome/dialog-lot-viewer.c
Log:
Bug 693244 - View Lots window enhancements
Fix remaining issue: sort on date now works
Modified: gnucash/trunk/src/gnome/dialog-lot-viewer.c
===================================================================
--- gnucash/trunk/src/gnome/dialog-lot-viewer.c 2013-10-31 22:25:03 UTC (rev 23362)
+++ gnucash/trunk/src/gnome/dialog-lot-viewer.c 2013-10-31 22:26:00 UTC (rev 23363)
@@ -48,6 +48,7 @@
#include "gnc-prefs.h"
#include "gnc-ui-util.h"
#include "misc-gnome-utils.h"
+#include "tree-view-utils.h"
#define LOT_VIEWER_CM_CLASS "dialog-lot-viewer"
@@ -349,8 +350,6 @@
for (node = lot_list; node; node = node->next)
{
char type_buff[200];
- char obuff[MAX_DATE_LENGTH];
- char cbuff[MAX_DATE_LENGTH];
char baln_buff[200];
char gain_buff[200];
GNCLot *lot = node->data;
@@ -379,8 +378,7 @@
gtk_list_store_set(store, &iter, LOT_COL_TYPE, type_buff, -1);
/* Opening date */
- qof_print_date_buff (obuff, MAX_DATE_LENGTH, open_date);
- gtk_list_store_set(store, &iter, LOT_COL_OPEN, obuff, -1);
+ gtk_list_store_set(store, &iter, LOT_COL_OPEN, open_date, -1);
/* Closing date */
if (gnc_lot_is_closed (lot))
@@ -389,12 +387,11 @@
Transaction *ftrans = xaccSplitGetParent (fsplit);
time64 close_date = xaccTransGetDate (ftrans);
- qof_print_date_buff (cbuff, MAX_DATE_LENGTH, close_date);
- gtk_list_store_set(store, &iter, LOT_COL_CLOSE, cbuff, -1);
+ gtk_list_store_set(store, &iter, LOT_COL_CLOSE, close_date, -1);
}
else
{
- gtk_list_store_set(store, &iter, LOT_COL_CLOSE, _("Open"), -1);
+ gtk_list_store_set(store, &iter, LOT_COL_CLOSE, 0, -1);
}
/* Title */
@@ -492,7 +489,6 @@
for (node = split_list; node; node = node->next)
{
Split *split = node->data;
- char dbuff[MAX_DATE_LENGTH];
char amtbuff[200];
char valbuff[200];
char gainbuff[200];
@@ -508,8 +504,7 @@
gtk_list_store_append(store, &iter);
/* Date */
- qof_print_date_buff (dbuff, MAX_DATE_LENGTH, date);
- gtk_list_store_set (store, &iter, SPLIT_COL_DATE, dbuff, -1);
+ gtk_list_store_set (store, &iter, SPLIT_COL_DATE, date, -1);
/* Num - retrieve number based on book option */
gtk_list_store_set (store, &iter, SPLIT_COL_NUM,
@@ -779,6 +774,32 @@
/* ======================================================================== */
+static void print_date (GtkTreeViewColumn *tree_column,
+ GtkCellRenderer *cell,
+ GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ GValue value = { 0 };
+ time64 doc_date_time;
+ gchar *doc_date_str = g_strdup (_("Open"));
+ gint col = GPOINTER_TO_INT(data);
+
+ g_return_if_fail (cell && iter && tree_model);
+
+ gtk_tree_model_get_value (tree_model, iter, col, &value);
+ doc_date_time = (time64) g_value_get_int64 (&value);
+ g_value_unset (&value);
+
+ if (doc_date_time) /* assumes 0 represents an invalid date/time */
+ {
+ g_free (doc_date_str);
+ doc_date_str = qof_print_date (doc_date_time);
+ }
+ g_object_set (G_OBJECT (cell), "text", doc_date_str, NULL);
+ g_free (doc_date_str);
+}
+
static void
lv_init_lot_view (GNCLotViewer *lv)
{
@@ -791,8 +812,8 @@
g_return_if_fail(GTK_IS_TREE_VIEW(lv->lot_view));
view = lv->lot_view;
- store = gtk_list_store_new(NUM_LOT_COLS, G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
+ store = gtk_list_store_new(NUM_LOT_COLS, G_TYPE_STRING, G_TYPE_INT64,
+ G_TYPE_INT64, G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_POINTER);
gtk_tree_view_set_model(view, GTK_TREE_MODEL(store));
g_object_unref(store);
@@ -809,12 +830,20 @@
column = gtk_tree_view_column_new_with_attributes(_("Opened"), renderer,
"text", LOT_COL_OPEN, NULL);
gtk_tree_view_column_set_sort_column_id(column, LOT_COL_OPEN);
+ tree_view_column_set_default_width (view, column, "31-12-2013");
+ gtk_tree_view_column_set_cell_data_func (column, renderer,
+ (GtkTreeCellDataFunc) print_date,
+ GINT_TO_POINTER (LOT_COL_OPEN), NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Closed"), renderer,
"text", LOT_COL_CLOSE, NULL);
gtk_tree_view_column_set_sort_column_id(column, LOT_COL_CLOSE);
+ tree_view_column_set_default_width (view, column, "31-12-2013");
+ gtk_tree_view_column_set_cell_data_func (column, renderer,
+ (GtkTreeCellDataFunc) print_date,
+ GINT_TO_POINTER (LOT_COL_CLOSE), NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
@@ -856,7 +885,7 @@
g_return_val_if_fail(GTK_IS_TREE_VIEW(view), NULL);
- store = gtk_list_store_new(NUM_SPLIT_COLS, G_TYPE_STRING, G_TYPE_STRING,
+ store = gtk_list_store_new(NUM_SPLIT_COLS, G_TYPE_INT64, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_POINTER);
@@ -868,6 +897,10 @@
column = gtk_tree_view_column_new_with_attributes(_("Date"), renderer,
"text", SPLIT_COL_DATE, NULL);
gtk_tree_view_column_set_sort_column_id(column, SPLIT_COL_DATE);
+ tree_view_column_set_default_width (view, column, "31-12-2013");
+ gtk_tree_view_column_set_cell_data_func (column, renderer,
+ (GtkTreeCellDataFunc) print_date,
+ GINT_TO_POINTER (SPLIT_COL_DATE), NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
More information about the gnucash-changes
mailing list