Remove deprecated clist.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21146 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Geert Janssens 2011-08-10 21:10:03 +00:00
parent 5a5da3e6de
commit 540a0df4e3
2 changed files with 115 additions and 172 deletions

View File

@ -190,140 +190,11 @@
<property name="vscrollbar_policy">automatic</property>
<property name="shadow_type">in</property>
<child>
<widget class="GtkCList" id="mini clist">
<widget class="GtkTreeView" id="split view">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">A summary of all of the transactions in the selected lot</property>
<property name="n_columns">7</property>
<property name="column_widths">80,80,80,80,80,80,80</property>
<property name="selection_mode">single</property>
<property name="show_titles">True</property>
<property name="shadow_type">in</property>
<child>
<widget class="GtkLabel" id="label22">
<property name="label" translatable="yes">Date</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label23">
<property name="label" translatable="yes">Num</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label24">
<property name="label" translatable="yes">Description</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label25">
<property name="label" translatable="yes">Amount</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label26">
<property name="label" translatable="yes">Value</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label27">
<property name="label" translatable="yes">Gain/Loss</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label28">
<property name="label" translatable="yes">Balance</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
<property name="can_focus">True</property>
<property name="rules_hint">True</property>
<property name="enable_search">False</property>
</widget>
</child>
</widget>

View File

@ -24,8 +24,6 @@
/* XXX todo: The button "view lot in register" is not implemented.
* it needs to open register window showing only the splits in the
* given lot ...
*
* XXX clist should be probably be removed and replaced by the gnc_query_list
*/
#include "config.h"
@ -61,6 +59,19 @@ enum lot_cols
NUM_LOT_COLS
};
enum split_cols
{
SPLIT_COL_DATE = 0,
SPLIT_COL_NUM,
SPLIT_COL_DESCRIPTION,
SPLIT_COL_AMOUNT,
SPLIT_COL_VALUE,
SPLIT_COL_GAIN_LOSS,
SPLIT_COL_BALANCE,
SPLIT_COL_PNTR,
NUM_SPLIT_COLS
};
#define RESPONSE_VIEW 1
#define RESPONSE_DELETE 2
#define RESPONSE_SCRUB_LOT 3
@ -86,7 +97,8 @@ struct _GNCLotViewer
GtkListStore * lot_store;
GtkTextView * lot_notes;
GtkEntry * title_entry;
GtkCList * mini_clist;
GtkTreeView * split_view;
GtkListStore * split_store;
Account * account;
GNCLot * selected_lot;
@ -105,16 +117,7 @@ void lv_paned_notify_cb (GObject *gobject,
gpointer user_data);
/* ======================================================================== */
/* Put the splits into the split clist */
#define MINI_DATE_COL 0
#define MINI_NUM_COL 1
#define MINI_DESC_COL 2
#define MINI_AMNT_COL 3
#define MINI_VALU_COL 4
#define MINI_GAIN_COL 5
#define MINI_BALN_COL 6
#define MINI_NUM_COLS 7
/* Put the splits into the split list */
static void
lv_show_splits (GNCLotViewer *lv)
@ -122,12 +125,14 @@ lv_show_splits (GNCLotViewer *lv)
GNCLot *lot = lv->selected_lot;
SplitList *split_list, *node;
gnc_numeric baln = gnc_numeric_zero();
GtkListStore *store;
GtkTreeModel *model;
GtkTreeIter iter;
GtkTreeSelection *selection;
if (NULL == lot) return;
/* qof_event_suspend(); XXX remove when xaccSplitGetCapGains() fixed */
gtk_clist_freeze (lv->mini_clist);
gtk_clist_clear (lv->mini_clist);
gtk_list_store_clear (lv->split_store);
split_list = gnc_lot_get_split_list (lot);
for (node = split_list; node; node = node->next)
{
@ -141,24 +146,29 @@ lv_show_splits (GNCLotViewer *lv)
Transaction *trans = xaccSplitGetParent (split);
time_t date = xaccTransGetDate (trans);
gnc_numeric amnt, valu, gains;
const char *row_vals[MINI_NUM_COLS];
int row;
/* Do not show gains splits */
if (gnc_numeric_zero_p (xaccSplitGetAmount(split))) continue;
/* Opening date */
qof_print_date_buff (dbuff, MAX_DATE_LENGTH, date);
row_vals[MINI_DATE_COL] = dbuff;
store = lv->split_store;
gtk_list_store_append(store, &iter);
row_vals[MINI_NUM_COL] = xaccTransGetNum (trans);
row_vals[MINI_DESC_COL] = xaccTransGetDescription (trans);
/* Date */
qof_print_date_buff (dbuff, MAX_DATE_LENGTH, date);
gtk_list_store_set (store, &iter, SPLIT_COL_DATE, dbuff, -1);
/* Num */
gtk_list_store_set (store, &iter, SPLIT_COL_NUM, xaccTransGetNum (trans), -1);
/* Description */
gtk_list_store_set (store, &iter, SPLIT_COL_DESCRIPTION, xaccTransGetDescription (trans), -1);
/* Amount */
amnt = xaccSplitGetAmount (split);
xaccSPrintAmount (amtbuff, amnt,
gnc_account_print_info (lv->account, TRUE));
row_vals[MINI_AMNT_COL] = amtbuff;
gtk_list_store_set (store, &iter, SPLIT_COL_AMOUNT, amtbuff, -1);
/* Value. Invert the sign on the first, opening entry. */
currency = xaccTransGetCurrency (trans);
@ -169,7 +179,7 @@ lv_show_splits (GNCLotViewer *lv)
}
xaccSPrintAmount (valbuff, valu,
gnc_commodity_print_info (currency, TRUE));
row_vals[MINI_VALU_COL] = valbuff;
gtk_list_store_set (store, &iter, SPLIT_COL_VALUE, valbuff, -1);
/* Gains. Blank if none. */
gains = xaccSplitGetCapGains (split);
@ -182,7 +192,7 @@ lv_show_splits (GNCLotViewer *lv)
xaccSPrintAmount (gainbuff, gains,
gnc_commodity_print_info (currency, TRUE));
}
row_vals[MINI_GAIN_COL] = gainbuff;
gtk_list_store_set (store, &iter, SPLIT_COL_GAIN_LOSS, gainbuff, -1);
/* Balance of Gains */
baln = gnc_numeric_add_fixed (baln, amnt);
@ -195,24 +205,24 @@ lv_show_splits (GNCLotViewer *lv)
xaccSPrintAmount (balnbuff, baln,
gnc_account_print_info (lv->account, TRUE));
}
row_vals[MINI_BALN_COL] = balnbuff;
gtk_list_store_set (store, &iter, SPLIT_COL_BALANCE, balnbuff, -1);
/* Self-reference */
row = gtk_clist_append (lv->mini_clist, (char **)row_vals);
gtk_clist_set_selectable (lv->mini_clist, row, FALSE);
gtk_list_store_set(store, &iter, SPLIT_COL_PNTR, split, -1);
}
gtk_clist_thaw (lv->mini_clist);
/* qof_event_resume(); XXX remove when xaccSplitGetCapGains() fixed */
}
/* ======================================================================== */
/* Remove all splits from the split list */
static void
lv_clear_splits (GNCLotViewer *lv)
{
gtk_clist_clear (lv->mini_clist);
gtk_list_store_clear (lv->split_store);
}
/* ======================================================================== */
/* Save potential changes to the currently selected lot */
static void
lv_save_current_row (GNCLotViewer *lv)
{
@ -238,7 +248,7 @@ lv_save_current_row (GNCLotViewer *lv)
}
/* ======================================================================== */
/* Callback for selecting a row the the list-of-list clist */
/* Select a row in the lot list */
static void
lv_select_row (GNCLotViewer *lv,
@ -297,16 +307,18 @@ lv_unset_lot (GNCLotViewer *lv)
}
/* ======================================================================== */
/* Callback for un-selecting a row the the list-of-list clist */
/* De-select a row the the lot list */
static void
lv_unselect_row (GNCLotViewer *lv)
{
lv_save_current_row (lv);
lv_unset_lot (lv);
}
/* ======================================================================== */
/* Callback triggered when the user changes the selected line in the lot list */
static void
lv_selection_changed_cb (GtkTreeSelection *selection,
GNCLotViewer *lv)
@ -328,7 +340,7 @@ lv_selection_changed_cb (GtkTreeSelection *selection,
/* ======================================================================== */
/* Callback when user types a new lot title into the entry widget */
/* Callback triggered when user types a new lot title into the entry widget */
void
lv_title_entry_changed_cb (GtkEntry *ent, gpointer user_data)
@ -348,7 +360,7 @@ lv_title_entry_changed_cb (GtkEntry *ent, gpointer user_data)
}
/* ======================================================================== */
/* Get the realized gains for this lot. This routine or a varient of it
/* Get the realized gains for this lot. This routine or a variant of it
* should probably be moved to gnc-lot.c.
* The conceptual difficulty here is that this works only if all of the
* realized gains in the lot are of the
@ -572,7 +584,7 @@ lv_response_cb (GtkDialog *dialog, gint response, gpointer data)
case RESPONSE_VIEW:
if (NULL == lot)
return;
printf ("duude UNIMPLEMENTED: need to disply register showing only this one lot \n");
printf ("UNIMPLEMENTED: need to display register showing only this one lot \n");
break;
case RESPONSE_DELETE:
@ -610,6 +622,65 @@ lv_response_cb (GtkDialog *dialog, gint response, gpointer data)
/* ======================================================================== */
static void
lv_init_split_view (GNCLotViewer *lv)
{
GtkTreeView *view;
GtkListStore *store;
GtkTreeViewColumn *column;
GtkTreeSelection *selection;
GtkCellRenderer *renderer;
g_return_if_fail(GTK_IS_TREE_VIEW(lv->split_view));
view = lv->split_view;
store = gtk_list_store_new(NUM_SPLIT_COLS, G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING, 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);
lv->split_store = store;
/* Set up the columns */
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Date"), renderer,
"text", SPLIT_COL_DATE, NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Num"), renderer,
"text", SPLIT_COL_NUM, NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Description"), renderer,
"text", SPLIT_COL_DESCRIPTION, NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Amount"), renderer,
"text", SPLIT_COL_AMOUNT, NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Value"), renderer,
"text", SPLIT_COL_VALUE, NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Gain/Loss"), renderer,
"text", SPLIT_COL_GAIN_LOSS, NULL);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Balance"), renderer,
"text", SPLIT_COL_BALANCE, NULL);
gtk_tree_view_append_column(view, column);
}
/* ======================================================================== */
static void
lv_init_lot_view (GNCLotViewer *lv)
{
@ -689,6 +760,9 @@ lv_create (GNCLotViewer *lv)
lv->lot_notes = GTK_TEXT_VIEW(glade_xml_get_widget (xml, "lot notes text"));
lv->title_entry = GTK_ENTRY (glade_xml_get_widget (xml, "lot title entry"));
lv->split_view = GTK_TREE_VIEW(glade_xml_get_widget (xml, "split view"));
lv_init_split_view(lv);
lv->lot_vpaned = GTK_PANED (glade_xml_get_widget (xml, "lot vpaned"));
position = gnc_gconf_get_int(GCONF_SECTION, GCONF_KEY_VPOSITION, NULL);
if (position)
@ -699,8 +773,6 @@ lv_create (GNCLotViewer *lv)
if (position)
gtk_paned_set_position (lv->lot_hpaned, position);
lv->mini_clist = GTK_CLIST(glade_xml_get_widget (xml, "mini clist"));
lv->selected_lot = NULL;
/* Setup signals */