Merge branch 'fixes2' of https://github.com/Bob-IT/gnucash into unstable

This commit is contained in:
Geert Janssens 2018-04-14 17:23:21 +02:00
commit 3a46088ca8
8 changed files with 75 additions and 66 deletions

View File

@ -2046,9 +2046,10 @@ gnc_main_window_set_tab_ellipsize (GtkWidget *label, gint tab_width)
if (tab_width != 0)
{
if (g_utf8_strlen (lab_text, -1) < tab_width)
gint text_length = g_utf8_strlen (lab_text, -1);
if (text_length < tab_width)
{
gtk_label_set_width_chars (GTK_LABEL(label), strlen (lab_text));
gtk_label_set_width_chars (GTK_LABEL(label), text_length);
gtk_label_set_ellipsize (GTK_LABEL(label), PANGO_ELLIPSIZE_NONE);
}
else

View File

@ -46,7 +46,7 @@ typedef struct _GNCQueryViewPriv GNCQueryViewPriv;
struct _GNCQueryViewPriv
{
const QofParam *get_guid;
gint component_id;
gint component_id;
};
#define GNC_QUERY_VIEW_GET_PRIVATE(o) \
@ -82,14 +82,14 @@ gnc_query_view_get_type (void)
{
GTypeInfo type_info =
{
sizeof(GNCQueryViewClass), /* class_size */
NULL, /* base_init */
NULL, /* base_finalize */
sizeof(GNCQueryViewClass), /* class_size */
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc)gnc_query_view_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GNCQueryView), /* */
0, /* n_preallocs */
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GNCQueryView), /* */
0, /* n_preallocs */
(GInstanceInitFunc)gnc_query_view_init,
};
@ -350,6 +350,9 @@ gnc_query_view_init_view (GNCQueryView *qview)
else if (((GNCSearchParam *) param)->justify == GTK_JUSTIFY_RIGHT)
algn = 1.0;
/* Set the column title alignment to that of the column */
gtk_tree_view_column_set_alignment (col, algn);
/* Set column resizable */
if (((GNCSearchParam *) param)->non_resizeable)
{
@ -363,13 +366,13 @@ gnc_query_view_init_view (GNCQueryView *qview)
if (((GNCSearchParam *) param)->passive)
gtk_tree_view_column_set_clickable (col, FALSE);
else
{
{
gtk_tree_view_column_set_clickable (col, TRUE);
/* Add sortable columns */
gtk_tree_view_column_set_sort_column_id (col, i+1);
gtk_tree_sortable_set_sort_func (sortable, i+1, sort_iter_compare_func,
GINT_TO_POINTER (i+1), NULL);
}
}
type = gnc_search_param_get_param_type (((GNCSearchParam *) param));
@ -522,7 +525,7 @@ gnc_query_view_double_click_cb (GtkTreeView *view,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (view));
if (gtk_tree_model_get_iter (model, &iter, path))
if (gtk_tree_model_get_iter (model, &iter, path))
gtk_tree_model_get (model, &iter, 0, &entry, -1);
qview->selected_entry = entry;
@ -554,7 +557,7 @@ gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer,
treepath = gtk_tree_path_new_from_string (path);
if (gtk_tree_model_get_iter(model, &iter, treepath))
if (gtk_tree_model_get_iter(model, &iter, treepath))
{
gtk_tree_model_get (model, &iter, 0, &entry, -1);
indices = gtk_tree_path_get_indices (treepath);
@ -708,7 +711,7 @@ gnc_query_view_refresh (GNCQueryView *qview)
* sets the sorting order of entries in the view *
* *
* Args: qview - view to change the sort order for *
* new_column - is this a new column (so should we set the *
* new_column - is this a new column (so should we set the *
* query sort order or just set the 'increasing' *
* Returns: nothing *
\********************************************************************/
@ -830,7 +833,8 @@ gnc_query_view_fill (GNCQueryView *qview)
if (qview->numeric_abs)
value = gnc_numeric_abs (value);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, i + 1, xaccPrintAmount (value, gnc_default_print_info (FALSE)), -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, i + 1,
xaccPrintAmount (value, gnc_default_print_info (FALSE)), -1);
}
else
{

View File

@ -1,7 +1,7 @@
/********************************************************************\
* reconcile-view.c -- A view of accounts to be reconciled for *
* GnuCash. *
* Copyright (C) 1998,1999 Jeremy Collins *
* Copyright (C) 1998,1999 Jeremy Collins *
* Copyright (C) 1998-2000 Linas Vepstas *
* Copyright (C) 2012 Robert Fewell *
* *
@ -65,7 +65,7 @@ static void gnc_reconcile_view_double_click_entry (GNCQueryView *qview, gpointer
static void gnc_reconcile_view_row_selected (GNCQueryView *qview, gpointer item, gpointer user_data);
static gboolean gnc_reconcile_view_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data);
static gboolean gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y, gboolean keyboard_mode,
GtkTooltip* tooltip, gpointer* user_data);
GtkTooltip* tooltip, gpointer* user_data);
GType
gnc_reconcile_view_get_type (void)
@ -97,7 +97,7 @@ gnc_reconcile_view_get_type (void)
static gboolean
gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
gboolean keyboard_mode, GtkTooltip *tooltip, gpointer *user_data)
gboolean keyboard_mode, GtkTooltip *tooltip, gpointer *user_data)
{
GtkTreeModel* model;
GtkTreeIter iter;
@ -108,7 +108,7 @@ gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
GtkTreeViewColumn *col;
GList *cols;
gint col_pos, col_width;
gchar* desc_text = NULL;
gchar* desc_text = NULL;
/* Are we in keyboard tooltip mode, displays tooltip below/above treeview CTRL+F1 */
if (keyboard_mode == FALSE)
@ -170,7 +170,6 @@ gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
device_manager = gdk_display_get_device_manager (gdk_window_get_display (parent_window));
pointer = gdk_device_manager_get_client_pointer (device_manager);
#endif
gdk_window_get_device_position (parent_window, pointer, &cur_x, &cur_y, NULL);
gdk_window_get_origin (parent_window, &root_x, &root_y);
@ -189,7 +188,7 @@ gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
}
g_list_free (win_list);
gtk_tooltip_set_text (tooltip, desc_text);
gtk_tooltip_set_text (tooltip, desc_text);
if (GTK_IS_WINDOW (tip_win))
{
@ -214,7 +213,6 @@ gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
monitor_num = gdk_screen_get_monitor_at_point (screen, x, y);
gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
#endif
if (x + requisition.width > monitor.x + monitor.width)
x -= x - (monitor.x + monitor.width) + requisition.width;
else if (x < monitor.x)
@ -226,9 +224,9 @@ gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
gtk_window_move (tip_win, x, y);
}
}
gtk_tooltip_set_text (tooltip, desc_text);
gtk_tooltip_set_text (tooltip, desc_text);
g_free (desc_text);
return TRUE;
return TRUE;
}
}
return FALSE;
@ -262,7 +260,7 @@ gnc_reconcile_view_construct (GNCReconcileView *view, Query *query)
gnc_query_view_set_numerics (qview, TRUE, inv_sort);
/* Set the description field to have spare space */
col = gtk_tree_view_get_column (GTK_TREE_VIEW (qview), 2);
col = gtk_tree_view_get_column (GTK_TREE_VIEW (qview), 3);
gtk_tree_view_column_set_expand (col, TRUE);
/* Get the renderer of the description column and set ellipsize value */
@ -310,8 +308,8 @@ gnc_reconcile_view_new (Account *account, GNCReconcileViewType type,
/* Create the list store with 6 columns and add to treeview,
column 0 will be a pointer to the entry */
liststore = gtk_list_store_new (6, G_TYPE_POINTER, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN );
liststore = gtk_list_store_new (6, G_TYPE_POINTER, G_TYPE_BOOLEAN,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING );
gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (liststore));
g_object_unref (liststore);
@ -365,8 +363,8 @@ gnc_reconcile_view_new (Account *account, GNCReconcileViewType type,
g_assert (recn == NREC || recn == CREC);
if (recn == CREC &&
gnc_difftime (trans_date, statement_date_day_end) <= 0)
g_hash_table_insert (view->reconciled, split, split);
gnc_difftime (trans_date, statement_date_day_end) <= 0)
g_hash_table_insert (view->reconciled, split, split);
}
}
@ -389,14 +387,6 @@ gnc_reconcile_view_init (GNCReconcileView *view)
view->account = NULL;
view->sibling = NULL;
param = gnc_search_param_simple_new();
gnc_search_param_set_param_fcn (param, QOF_TYPE_BOOLEAN,
gnc_reconcile_view_is_reconciled, view);
gnc_search_param_set_title ((GNCSearchParam *) param, _("Reconciled:R") + 11);
gnc_search_param_set_justify ((GNCSearchParam *) param, GTK_JUSTIFY_CENTER);
gnc_search_param_set_passive ((GNCSearchParam *) param, TRUE);
gnc_search_param_set_non_resizeable ((GNCSearchParam *) param, TRUE);
columns = g_list_prepend (columns, param);
columns = gnc_search_param_prepend_with_justify (columns, _("Amount"),
GTK_JUSTIFY_RIGHT,
NULL, GNC_ID_SPLIT,
@ -416,6 +406,15 @@ gnc_reconcile_view_init (GNCReconcileView *view)
columns = gnc_search_param_prepend (columns, _("Date"), NULL, GNC_ID_SPLIT,
SPLIT_TRANS, TRANS_DATE_POSTED, NULL);
param = gnc_search_param_simple_new();
gnc_search_param_set_param_fcn (param, QOF_TYPE_BOOLEAN,
gnc_reconcile_view_is_reconciled, view);
gnc_search_param_set_title ((GNCSearchParam *) param, _("Reconciled:R") + 11);
gnc_search_param_set_justify ((GNCSearchParam *) param, GTK_JUSTIFY_CENTER);
gnc_search_param_set_passive ((GNCSearchParam *) param, TRUE);
gnc_search_param_set_non_resizeable ((GNCSearchParam *) param, TRUE);
columns = g_list_prepend (columns, param);
view->column_list = columns;
}
@ -546,8 +545,8 @@ gnc_reconcile_view_toggle_children (Account *account, GNCReconcileView *view, Sp
if(pointer == other_split)
{
gboolean toggled;
gtk_tree_model_get (model, &iter, 5, &toggled, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 5, !toggled, -1);
gtk_tree_model_get (model, &iter, 1, &toggled, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 1, !toggled, -1);
break;
}
@ -661,9 +660,9 @@ gnc_reconcile_view_set_list ( GNCReconcileView *view, gboolean reconcile)
{
/* now iter is a valid row iterator */
gtk_tree_model_get (model, &iter, 0, &entry, -1);
gtk_tree_model_get (model, &iter, 5, &toggled, -1);
gtk_tree_model_get (model, &iter, 1, &toggled, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 5, reconcile, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 1, reconcile, -1);
if(reconcile != toggled)
gnc_reconcile_view_toggle (view, entry);
@ -674,7 +673,7 @@ gnc_reconcile_view_set_list ( GNCReconcileView *view, gboolean reconcile)
}
gint
gint
gnc_reconcile_view_num_selected (GNCReconcileView *view )
{
GNCQueryView *qview = GNC_QUERY_VIEW(view);
@ -710,7 +709,7 @@ gnc_reconcile_view_set_toggle (GNCReconcileView *view)
if(gtk_tree_model_get_iter(model, &iter, node->data))
{
/* now iter is a valid row iterator */
gtk_tree_model_get (model, &iter, 5, &toggled, -1);
gtk_tree_model_get (model, &iter, 1, &toggled, -1);
if(toggled)
num_toggled++;
@ -949,7 +948,7 @@ gnc_reconcile_view_postpone (GNCReconcileView *view)
// Don't change splits past reconciliation date that haven't been
// set to be reconciled
if (gnc_difftime (view->statement_date,
xaccTransGetDate (xaccSplitGetParent (entry))) >= 0 ||
xaccTransGetDate (xaccSplitGetParent (entry))) >= 0 ||
g_hash_table_lookup (view->reconciled, entry))
{
recn = g_hash_table_lookup (view->reconciled, entry) ? CREC : NREC;
@ -993,4 +992,3 @@ gnc_reconcile_view_changed (GNCReconcileView *view)
return g_hash_table_size (view->reconciled) != 0;
}

View File

@ -131,12 +131,12 @@ typedef struct _startRecnWindowData
*/
#define account_type_has_auto_interest_charge(type) (((type) == ACCT_TYPE_CREDIT) || \
((type) == ACCT_TYPE_LIABILITY) ||\
((type) == ACCT_TYPE_PAYABLE))
((type) == ACCT_TYPE_PAYABLE))
#define account_type_has_auto_interest_payment(type) (((type) == ACCT_TYPE_BANK) || \
((type) == ACCT_TYPE_ASSET) || \
((type) == ACCT_TYPE_MUTUAL) || \
((type) == ACCT_TYPE_RECEIVABLE))
((type) == ACCT_TYPE_RECEIVABLE))
#define account_type_has_auto_interest_xfer(type) \
( account_type_has_auto_interest_charge(type) || \
@ -480,7 +480,8 @@ recnInterestXferWindow( startRecnWindowData *data)
{
gchar *title;
if ( !account_type_has_auto_interest_xfer( data->account_type ) ) return;
if ( !account_type_has_auto_interest_xfer( data->account_type ) )
return;
/* get a normal transfer dialog... */
data->xferData = gnc_xfer_dialog( GTK_WIDGET(data->startRecnWindow),
@ -1185,6 +1186,12 @@ gnc_reconcile_window_create_view_box(Account *account,
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
#if GTK_CHECK_VERSION(3,12,0)
gtk_widget_set_margin_end (GTK_WIDGET(hbox), 10);
#else
gtk_widget_set_margin_right (GTK_WIDGET(hbox), 10);
#endif
label = gtk_label_new(_("Total:"));
gnc_label_set_alignment(label, 1.0, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
@ -1656,7 +1663,7 @@ recnWindow (GtkWidget *parent, Account *account)
enable_subaccounts))
return NULL;
return recnWindowWithBalance (parent, account, new_ending, statement_date);
return recnWindowWithBalance (account, new_ending, statement_date);
}
@ -1676,15 +1683,14 @@ recnWindow_add_widget (GtkUIManager *merge,
* Opens up the window to reconcile an account, but with ending
* balance and statement date already given.
*
* Args: parent - The parent widget of the new window
* account - The account to reconcile
* Args: account - The account to reconcile
* new_ending - The amount for ending balance
* statement_date - The date of the statement
* Return: recnData - the instance of this RecnWindow
\********************************************************************/
RecnWindow *
recnWindowWithBalance (GtkWidget *parent, Account *account,
gnc_numeric new_ending, time64 statement_date)
recnWindowWithBalance (Account *account, gnc_numeric new_ending,
time64 statement_date)
{
RecnWindow *recnData;
GtkWidget *statusbar;
@ -1918,8 +1924,6 @@ recnWindowWithBalance (GtkWidget *parent, Account *account,
/* Allow resize */
gtk_window_set_resizable(GTK_WINDOW(recnData->window), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(recnData->window),
GTK_WINDOW (parent));
gtk_widget_show_all(recnData->window);
gnc_reconcile_window_set_titles(recnData);

View File

@ -52,14 +52,12 @@ RecnWindow *recnWindow (GtkWidget *parent, Account *account);
* Opens up the window to reconcile an account, but with ending
* balance and statement date already given.
*
* Args: parent - The parent widget of the new window
* account - The account to reconcile
* Args: account - The account to reconcile
* new_ending - The amount for ending balance
* statement_date - The date of the statement
* Return: recnData - the instance of this RecnWindow
\********************************************************************/
RecnWindow *recnWindowWithBalance (GtkWidget *parent,
Account *account,
RecnWindow *recnWindowWithBalance (Account *account,
gnc_numeric new_ending,
time64 statement_date);

View File

@ -35,7 +35,6 @@
</data>
</object>
<object class="GtkWindow" id="gnc_date_format_window">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Date Format</property>
<property name="resizable">False</property>

View File

@ -1060,7 +1060,7 @@ bal_accountinfo_cb(AB_IMEXPORTER_ACCOUNTINFO *element, gpointer user_data)
/* Show reconciliation window */
if (show_recn_window)
recnWindowWithBalance(data->parent, gnc_acc, value, booked_tt);
recnWindowWithBalance(gnc_acc, value, booked_tt);
return NULL;
}

View File

@ -92,6 +92,8 @@ gnc_entry_ledger_get_account_by_name (GncEntryLedger *ledger, BasicCell * bcell,
/* Find the account */
account = gnc_account_lookup_for_register (gnc_get_current_root_account (), name);
if (!account)
account = gnc_account_lookup_by_code (gnc_get_current_root_account(), name);
if (!account)
{
@ -116,13 +118,16 @@ gnc_entry_ledger_get_account_by_name (GncEntryLedger *ledger, BasicCell * bcell,
if (!account)
return NULL;
*isnew = TRUE;
/* Now have a new account. Update the cell with the name as created. */
account_name = gnc_get_account_name_for_register (account);
}
/* Now have a new account. Update the cell with the name as created. */
account_name = gnc_get_account_name_for_register (account);
if (g_strcmp0(account_name, gnc_basic_cell_get_value(bcell)))
{
gnc_combo_cell_set_value (cell, account_name);
gnc_basic_cell_set_changed (&cell->cell, TRUE);
g_free (account_name);
}
g_free (account_name);
/* See if the account (either old or new) is a placeholder. */
if (xaccAccountGetPlaceholder (account))