gnucash master: Multiple changes pushed
Robert Fewell
bobit at code.gnucash.org
Wed May 27 09:45:54 EDT 2020
Updated via https://github.com/Gnucash/gnucash/commit/1adbc548 (commit)
via https://github.com/Gnucash/gnucash/commit/5de1c6d7 (commit)
via https://github.com/Gnucash/gnucash/commit/b50acc3b (commit)
via https://github.com/Gnucash/gnucash/commit/85e6396d (commit)
via https://github.com/Gnucash/gnucash/commit/923b25ff (commit)
via https://github.com/Gnucash/gnucash/commit/c0abdb28 (commit)
from https://github.com/Gnucash/gnucash/commit/64198574 (commit)
commit 1adbc5486545d5bf866d2d707cd928077ccf4cd5
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed May 27 14:43:26 2020 +0100
Change the position the register pop up so it aligns better
diff --git a/gnucash/register/register-gnome/gnucash-item-edit.c b/gnucash/register/register-gnome/gnucash-item-edit.c
index a307d1bd7..dcafee2ee 100644
--- a/gnucash/register/register-gnome/gnucash-item-edit.c
+++ b/gnucash/register/register-gnome/gnucash-item-edit.c
@@ -1023,7 +1023,7 @@ gnc_item_edit_show_popup (GncItemEdit *item_edit)
// Adjust the popup_y point based on popping above or below
if (up_height > down_height)
- popup_y = y - popup_h;
+ popup_y = y - popup_h - 1;
else
popup_y = y + h;
commit 5de1c6d711c421380d7618da567fbc5208ab29e5
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed May 27 14:26:44 2020 +0100
Fix the alignment of the Notes label in Transfer dialog
diff --git a/gnucash/gtkbuilder/dialog-transfer.glade b/gnucash/gtkbuilder/dialog-transfer.glade
index 50cd71297..9619f43fe 100644
--- a/gnucash/gtkbuilder/dialog-transfer.glade
+++ b/gnucash/gtkbuilder/dialog-transfer.glade
@@ -238,8 +238,7 @@
<object class="GtkLabel" id="label13">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="margin_left">12</property>
+ <property name="halign">end</property>
<property name="label" translatable="yes">Notes</property>
</object>
<packing>
commit b50acc3ba98393bd99974e33701016eac4fa7519
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed May 27 14:19:26 2020 +0100
Set horizontal paned position in Lot viewer
Set the initial Split horizontal paned position to be half way when the
window is realized.
diff --git a/gnucash/gnome/dialog-lot-viewer.c b/gnucash/gnome/dialog-lot-viewer.c
index 3ef9b9bdd..e07c5e601 100644
--- a/gnucash/gnome/dialog-lot-viewer.c
+++ b/gnucash/gnome/dialog-lot-viewer.c
@@ -112,6 +112,7 @@ struct _GNCLotViewer
GtkListStore * split_in_lot_store;
GtkTreeView * split_free_view;
GtkListStore * split_free_store;
+ GtkWidget * split_hpaned;
GtkButton * add_split_to_lot_button;
GtkButton * remove_split_from_lot_button;
GtkToggleButton * only_show_open_lots_checkbutton;
@@ -1013,6 +1014,16 @@ lv_init_split_buttons (GNCLotViewer *lv)
/* ======================================================================== */
+static void
+window_realize_set_split_paned_position_cb (GtkWidget *widget, gpointer user_data)
+{
+ GNCLotViewer *lv = user_data;
+ gint width;
+
+ gtk_window_get_size (GTK_WINDOW(lv->window), &width, NULL);
+ gtk_paned_set_position (GTK_PANED(lv->split_hpaned), width / 2);
+}
+
static void
lv_create (GNCLotViewer *lv, GtkWindow *parent)
{
@@ -1049,6 +1060,7 @@ lv_create (GNCLotViewer *lv, GtkWindow *parent)
lv->split_in_lot_view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "split_in_lot_view"));
lv->split_free_view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "split_free_view"));
+ lv->split_hpaned = GTK_WIDGET(gtk_builder_get_object (builder, "split_hpaned"));
lv_init_split_views(lv);
lv->add_split_to_lot_button = GTK_BUTTON(gtk_builder_get_object (builder, "add_split_to_lot_button"));
@@ -1077,6 +1089,10 @@ lv_create (GNCLotViewer *lv, GtkWindow *parent)
lv->selected_lot = NULL;
+ /* set the split paned position to be halfway at the start */
+ g_signal_connect (G_OBJECT(lv->window), "realize",
+ G_CALLBACK(window_realize_set_split_paned_position_cb), lv);
+
/* Setup signals */
gtk_builder_connect_signals(builder, lv);
g_object_unref(G_OBJECT(builder));
commit 85e6396dcd0f386ba73e981ccfe7f035c3143aed
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed May 27 14:08:12 2020 +0100
Set the expanding column in the lot viewer
Set the expanding columns in the lot viewer to be the 'Title' and the
'Description'. Also ellipsize the description to help with long
transaction descriptions.
diff --git a/gnucash/gnome/dialog-lot-viewer.c b/gnucash/gnome/dialog-lot-viewer.c
index 48bf842e3..3ef9b9bdd 100644
--- a/gnucash/gnome/dialog-lot-viewer.c
+++ b/gnucash/gnome/dialog-lot-viewer.c
@@ -885,6 +885,7 @@ lv_init_lot_view (GNCLotViewer *lv)
column = gtk_tree_view_column_new_with_attributes(_("Title"), renderer,
"text", LOT_COL_TITLE, NULL);
gtk_tree_view_column_set_sort_column_id(column, LOT_COL_TITLE);
+ gtk_tree_view_column_set_expand (column, TRUE);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
@@ -950,7 +951,15 @@ lv_init_split_view (GNCLotViewer *lv, GtkTreeView *view)
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Description"), renderer,
"text", SPLIT_COL_DESCRIPTION, NULL);
+
+ g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+ /* as this column is the expander column, if ellipsize is set, the column
+ width would be small, so set a minimum width */
+ gtk_tree_view_column_set_min_width (column, 200);
+
gtk_tree_view_column_set_sort_column_id(column, SPLIT_COL_DESCRIPTION);
+ gtk_tree_view_column_set_expand (column, TRUE);
+ gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
commit 923b25ffedd1336e7bda60e7a747c44af66d86d4
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed May 27 14:02:02 2020 +0100
Change the alignment of the numeric values in the lot viewer
Change the alignment of the numeric columns to be right aligned so the
number align up.
diff --git a/gnucash/gnome/dialog-lot-viewer.c b/gnucash/gnome/dialog-lot-viewer.c
index 7488d72c7..48bf842e3 100644
--- a/gnucash/gnome/dialog-lot-viewer.c
+++ b/gnucash/gnome/dialog-lot-viewer.c
@@ -823,6 +823,16 @@ static void print_date (GtkTreeViewColumn *tree_column,
g_free (doc_date_str);
}
+static void
+configure_number_columns (GtkTreeViewColumn *column,
+ GtkCellRenderer *renderer, gint sort_column)
+{
+ gtk_tree_view_column_set_sort_column_id (column, sort_column);
+ gtk_cell_renderer_set_alignment (renderer, 1.0, 0.5); // right align amount column
+ gtk_tree_view_column_set_alignment (column, 1.0);
+ gtk_cell_renderer_set_padding (renderer, 5, 0); // add padding so its not close to edge
+}
+
static void
lv_init_lot_view (GNCLotViewer *lv)
{
@@ -880,13 +890,13 @@ lv_init_lot_view (GNCLotViewer *lv)
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Balance"), renderer,
"text", LOT_COL_BALN, NULL);
- gtk_tree_view_column_set_sort_column_id (column, LOT_COL_BALN_DOUBLE);
+ configure_number_columns (column, renderer, LOT_COL_BALN_DOUBLE);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Gains"), renderer,
"text", LOT_COL_GAINS, NULL);
- gtk_tree_view_column_set_sort_column_id (column, LOT_COL_GAINS_DOUBLE);
+ configure_number_columns (column, renderer, LOT_COL_GAINS_DOUBLE);
gtk_tree_view_append_column(view, column);
/* Set up signals */
@@ -946,25 +956,25 @@ lv_init_split_view (GNCLotViewer *lv, GtkTreeView *view)
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Amount"), renderer,
"text", SPLIT_COL_AMOUNT, NULL);
- gtk_tree_view_column_set_sort_column_id (column, SPLIT_COL_AMOUNT_DOUBLE);
+ configure_number_columns (column, renderer, SPLIT_COL_AMOUNT_DOUBLE);
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_column_set_sort_column_id (column, SPLIT_COL_VALUE_DOUBLE);
+ configure_number_columns (column, renderer, SPLIT_COL_VALUE_DOUBLE);
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_column_set_sort_column_id (column, SPLIT_COL_GAIN_LOSS_DOUBLE);
+ configure_number_columns (column, renderer, SPLIT_COL_GAIN_LOSS_DOUBLE);
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_column_set_sort_column_id (column, SPLIT_COL_BALANCE_DOUBLE);
+ configure_number_columns (column, renderer, SPLIT_COL_BALANCE_DOUBLE);
gtk_tree_view_append_column(view, column);
/* Set up the selection callbacks */
commit c0abdb28d1952a0d5125417820b58c2992d856a4
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed May 27 13:52:27 2020 +0100
Bug 797768 - View Lots sorting numbers not right.
When you try and sort on balance, amount and value the columns are
sorted alphabetically as opposed to numeric value. Fixed by adding
extra double columns to the list store and use them to sort the numeric
columns.
diff --git a/gnucash/gnome/dialog-lot-viewer.c b/gnucash/gnome/dialog-lot-viewer.c
index fda7d288b..7488d72c7 100644
--- a/gnucash/gnome/dialog-lot-viewer.c
+++ b/gnucash/gnome/dialog-lot-viewer.c
@@ -61,7 +61,9 @@ enum lot_cols
LOT_COL_CLOSE,
LOT_COL_TITLE,
LOT_COL_BALN,
+ LOT_COL_BALN_DOUBLE, // used only for sorting
LOT_COL_GAINS,
+ LOT_COL_GAINS_DOUBLE, // used only for sorting
LOT_COL_PNTR,
NUM_LOT_COLS
};
@@ -72,9 +74,13 @@ enum split_cols
SPLIT_COL_NUM,
SPLIT_COL_DESCRIPTION,
SPLIT_COL_AMOUNT,
+ SPLIT_COL_AMOUNT_DOUBLE, // used only for sorting
SPLIT_COL_VALUE,
+ SPLIT_COL_VALUE_DOUBLE, // used only for sorting
SPLIT_COL_GAIN_LOSS,
+ SPLIT_COL_GAIN_LOSS_DOUBLE, // used only for sorting
SPLIT_COL_BALANCE,
+ SPLIT_COL_BALANCE_DOUBLE, // used only for sorting
SPLIT_COL_PNTR,
NUM_SPLIT_COLS
};
@@ -403,11 +409,13 @@ gnc_lot_viewer_fill (GNCLotViewer *lv)
xaccSPrintAmount (baln_buff, amt_baln,
gnc_account_print_info (lv->account, TRUE));
gtk_list_store_set(store, &iter, LOT_COL_BALN, baln_buff, -1);
+ gtk_list_store_set(store, &iter, LOT_COL_BALN_DOUBLE, gnc_numeric_to_double (amt_baln), -1);
/* Capital Gains/Losses Appreciation/Depreciation */
xaccSPrintAmount (gain_buff, gains_baln,
gnc_commodity_print_info (currency, TRUE));
gtk_list_store_set(store, &iter, LOT_COL_GAINS, gain_buff, -1);
+ gtk_list_store_set(store, &iter, LOT_COL_GAINS_DOUBLE, gnc_numeric_to_double (gains_baln), -1);
/* Self-reference */
gtk_list_store_set(store, &iter, LOT_COL_PNTR, lot, -1);
@@ -524,6 +532,7 @@ gnc_split_viewer_fill (GNCLotViewer *lv, GtkListStore *store, SplitList *split_l
xaccSPrintAmount (amtbuff, amnt,
gnc_account_print_info (lv->account, TRUE));
gtk_list_store_set (store, &iter, SPLIT_COL_AMOUNT, amtbuff, -1);
+ gtk_list_store_set (store, &iter, SPLIT_COL_AMOUNT_DOUBLE, gnc_numeric_to_double (amnt), -1);
/* Value.
* For non-business accounts which are part of a lot,
@@ -535,6 +544,7 @@ gnc_split_viewer_fill (GNCLotViewer *lv, GtkListStore *store, SplitList *split_l
xaccSPrintAmount (valbuff, valu,
gnc_commodity_print_info (currency, TRUE));
gtk_list_store_set (store, &iter, SPLIT_COL_VALUE, valbuff, -1);
+ gtk_list_store_set (store, &iter, SPLIT_COL_VALUE_DOUBLE, gnc_numeric_to_double (valu), -1);
/* Gains. Blank if none. */
gains = xaccSplitGetCapGains (split);
@@ -548,6 +558,7 @@ gnc_split_viewer_fill (GNCLotViewer *lv, GtkListStore *store, SplitList *split_l
gnc_commodity_print_info (currency, TRUE));
}
gtk_list_store_set (store, &iter, SPLIT_COL_GAIN_LOSS, gainbuff, -1);
+ gtk_list_store_set (store, &iter, SPLIT_COL_GAIN_LOSS_DOUBLE, gnc_numeric_to_double (gains), -1);
/* Balance of Gains */
baln = gnc_numeric_add_fixed (baln, amnt);
@@ -561,6 +572,7 @@ gnc_split_viewer_fill (GNCLotViewer *lv, GtkListStore *store, SplitList *split_l
gnc_account_print_info (lv->account, TRUE));
}
gtk_list_store_set (store, &iter, SPLIT_COL_BALANCE, balnbuff, -1);
+ gtk_list_store_set (store, &iter, SPLIT_COL_BALANCE_DOUBLE, gnc_numeric_to_double (baln), -1);
/* Self-reference */
gtk_list_store_set(store, &iter, SPLIT_COL_PNTR, split, -1);
@@ -824,8 +836,10 @@ lv_init_lot_view (GNCLotViewer *lv)
view = lv->lot_view;
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);
+ G_TYPE_INT64, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_DOUBLE,
+ G_TYPE_STRING,G_TYPE_DOUBLE,
+ G_TYPE_POINTER);
gtk_tree_view_set_model(view, GTK_TREE_MODEL(store));
g_object_unref(store);
lv->lot_store = store;
@@ -866,13 +880,13 @@ lv_init_lot_view (GNCLotViewer *lv)
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Balance"), renderer,
"text", LOT_COL_BALN, NULL);
- gtk_tree_view_column_set_sort_column_id(column, LOT_COL_BALN);
+ gtk_tree_view_column_set_sort_column_id (column, LOT_COL_BALN_DOUBLE);
gtk_tree_view_append_column(view, column);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Gains"), renderer,
"text", LOT_COL_GAINS, NULL);
- gtk_tree_view_column_set_sort_column_id(column, LOT_COL_GAINS);
+ gtk_tree_view_column_set_sort_column_id (column, LOT_COL_GAINS_DOUBLE);
gtk_tree_view_append_column(view, column);
/* Set up signals */
@@ -896,9 +910,12 @@ lv_init_split_view (GNCLotViewer *lv, GtkTreeView *view)
g_return_val_if_fail(GTK_IS_TREE_VIEW(view), NULL);
- store = gtk_list_store_new(NUM_SPLIT_COLS, G_TYPE_INT64, G_TYPE_STRING,
- G_TYPE_STRING, 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_DOUBLE,
+ G_TYPE_STRING, G_TYPE_DOUBLE,
+ G_TYPE_STRING, G_TYPE_DOUBLE,
+ G_TYPE_STRING, G_TYPE_DOUBLE,
G_TYPE_POINTER);
gtk_tree_view_set_model(view, GTK_TREE_MODEL(store));
g_object_unref(store);
@@ -929,25 +946,25 @@ lv_init_split_view (GNCLotViewer *lv, GtkTreeView *view)
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Amount"), renderer,
"text", SPLIT_COL_AMOUNT, NULL);
- gtk_tree_view_column_set_sort_column_id(column, SPLIT_COL_AMOUNT);
+ gtk_tree_view_column_set_sort_column_id (column, SPLIT_COL_AMOUNT_DOUBLE);
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_column_set_sort_column_id(column, SPLIT_COL_VALUE);
+ gtk_tree_view_column_set_sort_column_id (column, SPLIT_COL_VALUE_DOUBLE);
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_column_set_sort_column_id(column, SPLIT_COL_GAIN_LOSS);
+ gtk_tree_view_column_set_sort_column_id (column, SPLIT_COL_GAIN_LOSS_DOUBLE);
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_column_set_sort_column_id(column, SPLIT_COL_BALANCE);
+ gtk_tree_view_column_set_sort_column_id (column, SPLIT_COL_BALANCE_DOUBLE);
gtk_tree_view_append_column(view, column);
/* Set up the selection callbacks */
Summary of changes:
gnucash/gnome/dialog-lot-viewer.c | 72 +++++++++++++++++++---
gnucash/gtkbuilder/dialog-transfer.glade | 3 +-
.../register/register-gnome/gnucash-item-edit.c | 2 +-
3 files changed, 64 insertions(+), 13 deletions(-)
More information about the gnucash-changes
mailing list