mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-25 10:20:18 -06:00
ImportMatcherMultiSelect
Mods to import-main-matcher.c and dialog-import.glade to implement multi-selection of transactions to import and assignment of a single transfer account to the selection Silence Deprecation Warning Added conditional replacement of gtk_menu_popup in import-main-matcher.c and reapplied changes to treeview to current version of dialog-import.glade from maint branch. ImportMatcherMultiSelect #497 Fixes fixed GTK deprecation selection to use GTK_CHECK_VERSION, deleted g-list-free(l..., , added check for a selection before popping ImportMatcherMultiSelect #497 GTKFix Fix to mixup of deprecated and replacement GTK function for popup menu Open ImportMatcherMultiSelect #497 Delet g_list_free..
This commit is contained in:
parent
cc12fcf322
commit
5f51fc5406
@ -1143,8 +1143,11 @@
|
|||||||
<property name="reorderable">True</property>
|
<property name="reorderable">True</property>
|
||||||
<property name="rules_hint">True</property>
|
<property name="rules_hint">True</property>
|
||||||
<property name="enable_search">False</property>
|
<property name="enable_search">False</property>
|
||||||
|
<property name="rubber_banding">True</property>
|
||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
<object class="GtkTreeSelection" id="treeview-selection3"/>
|
<object class="GtkTreeSelection" id="treeview-selection3">
|
||||||
|
<property name="mode">multiple</property>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
@ -64,16 +64,13 @@ struct _main_matcher_info
|
|||||||
GNCTransactionProcessedCB transaction_processed_cb;
|
GNCTransactionProcessedCB transaction_processed_cb;
|
||||||
gpointer user_data;
|
gpointer user_data;
|
||||||
GNCImportPendingMatches *pending_matches;
|
GNCImportPendingMatches *pending_matches;
|
||||||
GtkTreeViewColumn *account_column;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum downloaded_cols
|
enum downloaded_cols
|
||||||
{
|
{
|
||||||
DOWNLOADED_COL_DATE_TXT = 0,
|
DOWNLOADED_COL_DATE = 0,
|
||||||
DOWNLOADED_COL_DATE_INT64,
|
|
||||||
DOWNLOADED_COL_ACCOUNT,
|
DOWNLOADED_COL_ACCOUNT,
|
||||||
DOWNLOADED_COL_AMOUNT,
|
DOWNLOADED_COL_AMOUNT,
|
||||||
DOWNLOADED_COL_AMOUNT_DOUBLE,
|
|
||||||
DOWNLOADED_COL_DESCRIPTION,
|
DOWNLOADED_COL_DESCRIPTION,
|
||||||
DOWNLOADED_COL_MEMO,
|
DOWNLOADED_COL_MEMO,
|
||||||
DOWNLOADED_COL_ACTION_ADD,
|
DOWNLOADED_COL_ACTION_ADD,
|
||||||
@ -98,9 +95,28 @@ void on_matcher_help_clicked (GtkButton *button, gpointer user_data);
|
|||||||
void on_matcher_help_close_clicked (GtkButton *button, gpointer user_data);
|
void on_matcher_help_close_clicked (GtkButton *button, gpointer user_data);
|
||||||
|
|
||||||
/* Local prototypes */
|
/* Local prototypes */
|
||||||
static void
|
static void gnc_gen_trans_assign_transfer_account(
|
||||||
refresh_model_row(GNCImportMainMatcher *gui, GtkTreeModel *model,
|
GtkTreeView *treeview,
|
||||||
|
gboolean *first,
|
||||||
|
gboolean *is_selection,
|
||||||
|
GtkTreePath *path,
|
||||||
|
Account **new_acc,
|
||||||
|
GNCImportMainMatcher *info);
|
||||||
|
static void gnc_gen_trans_assign_transfer_account_to_selection_cb (
|
||||||
|
GtkMenuItem *menuitem,
|
||||||
|
GNCImportMainMatcher *info);
|
||||||
|
static void gnc_gen_trans_view_popup_menu (GtkTreeView *treeview,
|
||||||
|
GdkEvent *event,
|
||||||
|
GNCImportMainMatcher *info);
|
||||||
|
static gboolean gnc_gen_trans_onButtonPressed_cb (GtkTreeView *treeview,
|
||||||
|
GdkEvent *event,
|
||||||
|
GNCImportMainMatcher *info);
|
||||||
|
static gboolean gnc_gen_trans_onPopupMenu_cb (GtkTreeView *treeview,
|
||||||
|
GdkEvent *event,
|
||||||
|
GNCImportMainMatcher *info);
|
||||||
|
static void refresh_model_row(GNCImportMainMatcher *gui, GtkTreeModel *model,
|
||||||
GtkTreeIter *iter, GNCImportTransInfo *info);
|
GtkTreeIter *iter, GNCImportTransInfo *info);
|
||||||
|
/* end local prototypes */
|
||||||
|
|
||||||
void gnc_gen_trans_list_delete (GNCImportMainMatcher *info)
|
void gnc_gen_trans_list_delete (GNCImportMainMatcher *info)
|
||||||
{
|
{
|
||||||
@ -361,18 +377,27 @@ gnc_gen_trans_update_toggled_cb (GtkCellRendererToggle *cell_renderer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gnc_gen_trans_row_activated_cb (GtkTreeView *view,
|
gnc_gen_trans_assign_transfer_account(GtkTreeView *treeview,
|
||||||
|
gboolean *first,
|
||||||
|
gboolean *is_selection,
|
||||||
GtkTreePath *path,
|
GtkTreePath *path,
|
||||||
GtkTreeViewColumn *column,
|
Account **new_acc,
|
||||||
GNCImportMainMatcher *gui)
|
GNCImportMainMatcher *info)
|
||||||
{
|
{
|
||||||
GtkTreeModel *model;
|
GtkTreeModel *model;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GNCImportTransInfo *trans_info;
|
GNCImportTransInfo *trans_info;
|
||||||
|
Account *old_acc;
|
||||||
|
gboolean ok_pressed;
|
||||||
|
|
||||||
model = gtk_tree_view_get_model(gui->view);
|
ENTER("");
|
||||||
if (!gtk_tree_model_get_iter(model, &iter, path))
|
DEBUG("first = %s",*first?"true":"false");
|
||||||
return;
|
DEBUG("is_selection = %s",*is_selection?"true":"false");
|
||||||
|
DEBUG("path = %s", gtk_tree_path_to_string(path));
|
||||||
|
DEBUG("account passed in = %s", gnc_get_account_name_for_register(*new_acc));
|
||||||
|
model = gtk_tree_view_get_model(treeview);
|
||||||
|
if (gtk_tree_model_get_iter(model, &iter, path))
|
||||||
|
{
|
||||||
gtk_tree_model_get(model, &iter, DOWNLOADED_COL_DATA, &trans_info, -1);
|
gtk_tree_model_get(model, &iter, DOWNLOADED_COL_DATA, &trans_info, -1);
|
||||||
|
|
||||||
switch (gnc_import_TransInfo_get_action (trans_info))
|
switch (gnc_import_TransInfo_get_action (trans_info))
|
||||||
@ -380,35 +405,226 @@ gnc_gen_trans_row_activated_cb (GtkTreeView *view,
|
|||||||
case GNCImport_ADD:
|
case GNCImport_ADD:
|
||||||
if (gnc_import_TransInfo_is_balanced(trans_info) == FALSE)
|
if (gnc_import_TransInfo_is_balanced(trans_info) == FALSE)
|
||||||
{
|
{
|
||||||
run_account_picker_dialog (gui, model, &iter, trans_info);
|
ok_pressed = TRUE;
|
||||||
|
old_acc = gnc_import_TransInfo_get_destacc (trans_info);
|
||||||
|
if (*first)
|
||||||
|
{
|
||||||
|
ok_pressed = FALSE;
|
||||||
|
*new_acc = gnc_import_select_account(info->main_widget,
|
||||||
|
NULL,
|
||||||
|
TRUE,
|
||||||
|
_("Destination account for the auto-balance split."),
|
||||||
|
xaccTransGetCurrency(
|
||||||
|
gnc_import_TransInfo_get_trans(trans_info)),
|
||||||
|
ACCT_TYPE_NONE,
|
||||||
|
old_acc,
|
||||||
|
&ok_pressed);
|
||||||
|
*first = FALSE;
|
||||||
|
DEBUG("account selected = %s",
|
||||||
|
gnc_account_get_full_name(*new_acc));
|
||||||
|
}
|
||||||
|
if (ok_pressed)
|
||||||
|
gnc_import_TransInfo_set_destacc (trans_info,
|
||||||
|
*new_acc, TRUE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GNCImport_CLEAR:
|
case GNCImport_CLEAR:
|
||||||
case GNCImport_UPDATE:
|
case GNCImport_UPDATE:
|
||||||
run_match_dialog (gui, trans_info);
|
if (first && !is_selection) run_match_dialog (info, trans_info);
|
||||||
break;
|
break;
|
||||||
case GNCImport_SKIP:
|
case GNCImport_SKIP:
|
||||||
/*The information displayed is only informative, until you select an action*/
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PERR("I don't know what to do! (Yet...)");
|
PERR("InvalidGNCImportValue");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
refresh_model_row(gui, model, &iter, trans_info);
|
refresh_model_row(info, model, &iter, trans_info);
|
||||||
|
}
|
||||||
|
LEAVE("");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gnc_gen_trans_assign_transfer_account_to_selection_cb (GtkMenuItem *menuitem,
|
||||||
|
GNCImportMainMatcher *info)
|
||||||
|
{
|
||||||
|
GtkTreeView *treeview;
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
GNCImportTransInfo *trans_info;
|
||||||
|
Account *assigned_account;
|
||||||
|
GList *selected_rows, *l;
|
||||||
|
gboolean first, is_selection;
|
||||||
|
|
||||||
|
ENTER("");
|
||||||
|
treeview = GTK_TREE_VIEW(info->view);
|
||||||
|
model = gtk_tree_view_get_model(treeview);
|
||||||
|
selection = gtk_tree_view_get_selection(treeview);
|
||||||
|
selected_rows = gtk_tree_selection_get_selected_rows (selection, &model);
|
||||||
|
assigned_account = NULL;
|
||||||
|
first = TRUE;
|
||||||
|
is_selection = TRUE;
|
||||||
|
DEBUG("Rows in selection = %i",
|
||||||
|
gtk_tree_selection_count_selected_rows(selection));
|
||||||
|
DEBUG("Entering loop over selection");
|
||||||
|
|
||||||
|
if (gtk_tree_selection_count_selected_rows(selection) > 0)
|
||||||
|
{
|
||||||
|
for (l = selected_rows; l != NULL; l = l->next)
|
||||||
|
{
|
||||||
|
DEBUG("passing first = %s",
|
||||||
|
first?"true":"false");
|
||||||
|
DEBUG("passing is_selection = %s",
|
||||||
|
is_selection?"true":"false");
|
||||||
|
DEBUG("passing path = %s",
|
||||||
|
gtk_tree_path_to_string(l->data));
|
||||||
|
DEBUG("passing account value = %s",
|
||||||
|
gnc_account_get_full_name(assigned_account));
|
||||||
|
gnc_gen_trans_assign_transfer_account(treeview,
|
||||||
|
&first, &is_selection, l->data, &assigned_account, info);
|
||||||
|
DEBUG("returned value of account = %s",
|
||||||
|
gnc_account_get_full_name(assigned_account));
|
||||||
|
DEBUG("returned value of first = %s",first?"true":"false");
|
||||||
|
if (assigned_account == NULL) break;
|
||||||
|
gtk_tree_selection_unselect_path(selection, l->data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_list_free_full (selected_rows, (GDestroyNotify) gtk_tree_path_free);
|
||||||
|
LEAVE("");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gnc_gen_trans_row_activated_cb (GtkTreeView *treeview,
|
||||||
|
GtkTreePath *path,
|
||||||
|
GtkTreeViewColumn *column,
|
||||||
|
GNCImportMainMatcher *info)
|
||||||
|
{
|
||||||
|
Account *assigned_account;
|
||||||
|
gboolean first, is_selection;
|
||||||
|
|
||||||
|
ENTER("");
|
||||||
|
assigned_account = NULL;
|
||||||
|
first = TRUE;
|
||||||
|
is_selection = FALSE;
|
||||||
|
gnc_gen_trans_assign_transfer_account(treeview,
|
||||||
|
&first, &is_selection, path,
|
||||||
|
&assigned_account, info);
|
||||||
|
DEBUG("account returned = %s", gnc_account_get_full_name(assigned_account));
|
||||||
|
LEAVE("");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gnc_gen_trans_row_changed_cb (GtkTreeSelection *selection,
|
gnc_gen_trans_row_changed_cb (GtkTreeSelection *selection,
|
||||||
GNCImportMainMatcher *gui)
|
GNCImportMainMatcher *info)
|
||||||
{
|
{
|
||||||
GtkTreeModel *model;
|
GtkTreeModel *model;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
GtkSelectionMode mode;
|
||||||
|
|
||||||
if (!gtk_tree_selection_get_selected(selection, &model, &iter))
|
ENTER("");
|
||||||
return;
|
mode = gtk_tree_selection_get_mode(selection);
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case GTK_SELECTION_MULTIPLE:
|
||||||
|
DEBUG("mode = GTK_SELECTION_MULTIPLE, no action");
|
||||||
|
break;
|
||||||
|
case GTK_SELECTION_NONE:
|
||||||
|
DEBUG("mode = GTK_SELECTION_NONE, no action");
|
||||||
|
break;
|
||||||
|
case GTK_SELECTION_BROWSE:
|
||||||
|
DEBUG("mode = GTK_SELECTION_BROWSE->default");
|
||||||
|
case GTK_SELECTION_SINGLE:
|
||||||
|
DEBUG("mode = GTK_SELECTION_SINGLE->default");
|
||||||
|
default:
|
||||||
|
DEBUG("mode = default unselect selected row");
|
||||||
|
if (gtk_tree_selection_get_selected(selection, &model, &iter))
|
||||||
|
{
|
||||||
gtk_tree_selection_unselect_iter(selection, &iter);
|
gtk_tree_selection_unselect_iter(selection, &iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LEAVE("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gnc_gen_trans_view_popup_menu (GtkTreeView *treeview,
|
||||||
|
GdkEvent *event,
|
||||||
|
GNCImportMainMatcher *info)
|
||||||
|
{
|
||||||
|
GtkWidget *menu, *menuitem;
|
||||||
|
GdkEventButton *event_button;
|
||||||
|
|
||||||
|
ENTER ("");
|
||||||
|
menu = gtk_menu_new();
|
||||||
|
menuitem = gtk_menu_item_new_with_label(_("Assign a transfer account."));
|
||||||
|
g_signal_connect(menuitem, "activate",
|
||||||
|
G_CALLBACK(
|
||||||
|
gnc_gen_trans_assign_transfer_account_to_selection_cb),
|
||||||
|
info);
|
||||||
|
DEBUG("Callback to assign destination account to selection connected");
|
||||||
|
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
|
||||||
|
gtk_widget_show_all(menu);
|
||||||
|
event_button = (GdkEventButton *) event;
|
||||||
|
/* Note: event can be NULL here when called from view_onPopupMenu;
|
||||||
|
* gdk_event_get_time() accepts a NULL argument */
|
||||||
|
/* replace deprecated function for GTK versions >=3.22 */
|
||||||
|
#if GTK_CHECK_VERSION(3,22,0)
|
||||||
|
gtk_menu_popup_at_pointer(GTK_MENU(menu),(GdkEvent*)event);
|
||||||
|
#else
|
||||||
|
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
|
||||||
|
(event_button != NULL) ? event_button->button : 0,
|
||||||
|
gdk_event_get_time((GdkEvent*)event));
|
||||||
|
#endif
|
||||||
|
LEAVE ("");
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gnc_gen_trans_onButtonPressed_cb (GtkTreeView *treeview,
|
||||||
|
GdkEvent *event,
|
||||||
|
GNCImportMainMatcher *info)
|
||||||
|
{
|
||||||
|
GdkEventButton *event_button;
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
ENTER("");
|
||||||
|
g_return_val_if_fail (treeview != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (event != NULL, FALSE);
|
||||||
|
/* handle single click with the right mouse button? */
|
||||||
|
if (event->type == GDK_BUTTON_PRESS)
|
||||||
|
{
|
||||||
|
event_button = (GdkEventButton *) event;
|
||||||
|
if (event_button->button == GDK_BUTTON_SECONDARY)
|
||||||
|
{
|
||||||
|
DEBUG("Right mouseClick detected- popup the menu.");
|
||||||
|
selection = gtk_tree_view_get_selection(treeview);
|
||||||
|
if (gtk_tree_selection_count_selected_rows(selection) > 0)
|
||||||
|
{
|
||||||
|
gnc_gen_trans_view_popup_menu(treeview, event, info);
|
||||||
|
}
|
||||||
|
LEAVE("return TRUE");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LEAVE("return FALSE");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gnc_gen_trans_onPopupMenu_cb (GtkTreeView *treeview,
|
||||||
|
GdkEvent *event,
|
||||||
|
GNCImportMainMatcher *info)
|
||||||
|
{
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
ENTER("");
|
||||||
|
/* respond to Shift-F10 popup menu hotkey */
|
||||||
|
selection = gtk_tree_view_get_selection(treeview);
|
||||||
|
if (gtk_tree_selection_count_selected_rows(selection) > 0)
|
||||||
|
{
|
||||||
|
gnc_gen_trans_view_popup_menu(treeview, NULL, info);
|
||||||
|
}
|
||||||
|
LEAVE ("");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static GtkTreeViewColumn *
|
static GtkTreeViewColumn *
|
||||||
add_text_column(GtkTreeView *view, const gchar *title, int col_num)
|
add_text_column(GtkTreeView *view, const gchar *title, int col_num)
|
||||||
{
|
{
|
||||||
@ -421,19 +637,7 @@ add_text_column(GtkTreeView *view, const gchar *title, int col_num)
|
|||||||
"text", col_num,
|
"text", col_num,
|
||||||
"background", DOWNLOADED_COL_COLOR,
|
"background", DOWNLOADED_COL_COLOR,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
// If date column, use the time64 value for the sorting.
|
|
||||||
if (col_num == DOWNLOADED_COL_DATE_TXT)
|
|
||||||
gtk_tree_view_column_set_sort_column_id(column, DOWNLOADED_COL_DATE_INT64);
|
|
||||||
else if (col_num == DOWNLOADED_COL_AMOUNT) // If amount column, use double value
|
|
||||||
{
|
|
||||||
gtk_cell_renderer_set_alignment (renderer, 1.0, 0.5); // right align amount column
|
|
||||||
gtk_cell_renderer_set_padding (renderer, 5, 0); // add padding so its not close to description
|
|
||||||
gtk_tree_view_column_set_sort_column_id(column, DOWNLOADED_COL_AMOUNT_DOUBLE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gtk_tree_view_column_set_sort_column_id(column, col_num);
|
gtk_tree_view_column_set_sort_column_id(column, col_num);
|
||||||
|
|
||||||
g_object_set(G_OBJECT(column),
|
g_object_set(G_OBJECT(column),
|
||||||
"reorderable", TRUE,
|
"reorderable", TRUE,
|
||||||
"resizable", TRUE,
|
"resizable", TRUE,
|
||||||
@ -476,23 +680,20 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info,
|
|||||||
GtkTreeSelection *selection;
|
GtkTreeSelection *selection;
|
||||||
|
|
||||||
view = info->view;
|
view = info->view;
|
||||||
store = gtk_list_store_new(NUM_DOWNLOADED_COLS, G_TYPE_STRING, G_TYPE_INT64,
|
store = gtk_list_store_new(NUM_DOWNLOADED_COLS,
|
||||||
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE,
|
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
|
||||||
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN,
|
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN,
|
||||||
G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING,
|
G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING,
|
||||||
GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_STRING);
|
GDK_TYPE_PIXBUF, G_TYPE_POINTER, G_TYPE_STRING);
|
||||||
gtk_tree_view_set_model(view, GTK_TREE_MODEL(store));
|
gtk_tree_view_set_model(view, GTK_TREE_MODEL(store));
|
||||||
g_object_unref(store);
|
g_object_unref(store);
|
||||||
|
|
||||||
/* prevent the rows being dragged to a different order */
|
|
||||||
gtk_tree_view_set_reorderable (view, FALSE);
|
|
||||||
|
|
||||||
/* Add the columns *
|
/* Add the columns *
|
||||||
* (keep the line break below to avoid a translator comment) */
|
* (keep the line break below to avoid a translator comment) */
|
||||||
add_text_column(view,
|
add_text_column(view,
|
||||||
_("Date"), DOWNLOADED_COL_DATE_TXT);
|
_("Date"), DOWNLOADED_COL_DATE);
|
||||||
info->account_column = add_text_column(view, _("Account"), DOWNLOADED_COL_ACCOUNT);
|
column = add_text_column(view, _("Account"), DOWNLOADED_COL_ACCOUNT);
|
||||||
gtk_tree_view_column_set_visible(info->account_column, show_account);
|
gtk_tree_view_column_set_visible(column, show_account);
|
||||||
add_text_column(view, _("Amount"), DOWNLOADED_COL_AMOUNT);
|
add_text_column(view, _("Amount"), DOWNLOADED_COL_AMOUNT);
|
||||||
add_text_column(view, _("Description"), DOWNLOADED_COL_DESCRIPTION);
|
add_text_column(view, _("Description"), DOWNLOADED_COL_DESCRIPTION);
|
||||||
add_text_column(view, _("Memo"), DOWNLOADED_COL_MEMO);
|
add_text_column(view, _("Memo"), DOWNLOADED_COL_MEMO);
|
||||||
@ -536,15 +737,14 @@ gnc_gen_trans_init_view (GNCImportMainMatcher *info,
|
|||||||
G_CALLBACK(gnc_gen_trans_row_activated_cb), info);
|
G_CALLBACK(gnc_gen_trans_row_activated_cb), info);
|
||||||
g_signal_connect(selection, "changed",
|
g_signal_connect(selection, "changed",
|
||||||
G_CALLBACK(gnc_gen_trans_row_changed_cb), info);
|
G_CALLBACK(gnc_gen_trans_row_changed_cb), info);
|
||||||
|
|
||||||
|
g_signal_connect(view, "button-press-event",
|
||||||
|
G_CALLBACK(gnc_gen_trans_onButtonPressed_cb), info);
|
||||||
|
g_signal_connect(view, "popup-menu",
|
||||||
|
G_CALLBACK(gnc_gen_trans_onPopupMenu_cb), info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
show_account_column_toggled_cb (GtkToggleButton *togglebutton,
|
|
||||||
GNCImportMainMatcher *info)
|
|
||||||
{
|
|
||||||
gtk_tree_view_column_set_visible (info->account_column,
|
|
||||||
gtk_toggle_button_get_active (togglebutton));
|
|
||||||
}
|
|
||||||
|
|
||||||
GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
|
GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
|
||||||
const gchar* heading,
|
const gchar* heading,
|
||||||
@ -558,7 +758,6 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
|
|||||||
gboolean show_update;
|
gboolean show_update;
|
||||||
GtkStyleContext *stylectxt;
|
GtkStyleContext *stylectxt;
|
||||||
GdkRGBA color;
|
GdkRGBA color;
|
||||||
GtkWidget *button;
|
|
||||||
|
|
||||||
info = g_new0 (GNCImportMainMatcher, 1);
|
info = g_new0 (GNCImportMainMatcher, 1);
|
||||||
info->pending_matches = gnc_import_PendingMatches_new();
|
info->pending_matches = gnc_import_PendingMatches_new();
|
||||||
@ -587,11 +786,6 @@ GNCImportMainMatcher *gnc_gen_trans_list_new (GtkWidget *parent,
|
|||||||
info->view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "downloaded_view"));
|
info->view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "downloaded_view"));
|
||||||
g_assert (info->view != NULL);
|
g_assert (info->view != NULL);
|
||||||
|
|
||||||
button = GTK_WIDGET(gtk_builder_get_object (builder, "show_source_account_button"));
|
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), all_from_same_account);
|
|
||||||
g_signal_connect(G_OBJECT(button), "toggled",
|
|
||||||
G_CALLBACK(show_account_column_toggled_cb), info);
|
|
||||||
|
|
||||||
show_update = gnc_import_Settings_get_action_update_enabled(info->user_settings);
|
show_update = gnc_import_Settings_get_action_update_enabled(info->user_settings);
|
||||||
gnc_gen_trans_init_view(info, all_from_same_account, show_update);
|
gnc_gen_trans_init_view(info, all_from_same_account, show_update);
|
||||||
heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
|
heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
|
||||||
@ -631,7 +825,6 @@ GNCImportMainMatcher * gnc_gen_trans_assist_new (GtkWidget *parent,
|
|||||||
gboolean show_update;
|
gboolean show_update;
|
||||||
GtkStyleContext *stylectxt;
|
GtkStyleContext *stylectxt;
|
||||||
GdkRGBA color;
|
GdkRGBA color;
|
||||||
GtkWidget *button;
|
|
||||||
|
|
||||||
info = g_new0 (GNCImportMainMatcher, 1);
|
info = g_new0 (GNCImportMainMatcher, 1);
|
||||||
info->pending_matches = gnc_import_PendingMatches_new();
|
info->pending_matches = gnc_import_PendingMatches_new();
|
||||||
@ -660,11 +853,6 @@ GNCImportMainMatcher * gnc_gen_trans_assist_new (GtkWidget *parent,
|
|||||||
info->view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "downloaded_view"));
|
info->view = GTK_TREE_VIEW(gtk_builder_get_object (builder, "downloaded_view"));
|
||||||
g_assert (info->view != NULL);
|
g_assert (info->view != NULL);
|
||||||
|
|
||||||
button = GTK_WIDGET(gtk_builder_get_object (builder, "show_source_account_button"));
|
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), all_from_same_account);
|
|
||||||
g_signal_connect(G_OBJECT(button), "toggled",
|
|
||||||
G_CALLBACK(show_account_column_toggled_cb), info);
|
|
||||||
|
|
||||||
show_update = gnc_import_Settings_get_action_update_enabled(info->user_settings);
|
show_update = gnc_import_Settings_get_action_update_enabled(info->user_settings);
|
||||||
gnc_gen_trans_init_view(info, all_from_same_account, show_update);
|
gnc_gen_trans_init_view(info, all_from_same_account, show_update);
|
||||||
heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
|
heading_label = GTK_WIDGET(gtk_builder_get_object (builder, "heading_label"));
|
||||||
@ -738,8 +926,6 @@ refresh_model_row (GNCImportMainMatcher *gui,
|
|||||||
gchar *int_required_class, *int_prob_required_class, *int_not_required_class;
|
gchar *int_required_class, *int_prob_required_class, *int_not_required_class;
|
||||||
gchar *class_extension = NULL;
|
gchar *class_extension = NULL;
|
||||||
Split *split;
|
Split *split;
|
||||||
time64 date;
|
|
||||||
gnc_numeric amount;
|
|
||||||
g_assert (gui);
|
g_assert (gui);
|
||||||
g_assert (model);
|
g_assert (model);
|
||||||
g_assert (info);
|
g_assert (info);
|
||||||
@ -762,17 +948,16 @@ refresh_model_row (GNCImportMainMatcher *gui,
|
|||||||
gtk_list_store_set(store, iter, DOWNLOADED_COL_ACCOUNT, ro_text, -1);
|
gtk_list_store_set(store, iter, DOWNLOADED_COL_ACCOUNT, ro_text, -1);
|
||||||
|
|
||||||
/*Date*/
|
/*Date*/
|
||||||
date = xaccTransGetDate (gnc_import_TransInfo_get_trans(info));
|
text = qof_print_date ( xaccTransGetDate( gnc_import_TransInfo_get_trans(info) ) );
|
||||||
text = qof_print_date (date);
|
gtk_list_store_set(store, iter, DOWNLOADED_COL_DATE, text, -1);
|
||||||
gtk_list_store_set(store, iter, DOWNLOADED_COL_DATE_TXT, text, -1);
|
|
||||||
gtk_list_store_set(store, iter, DOWNLOADED_COL_DATE_INT64, date, -1);
|
|
||||||
g_free(text);
|
g_free(text);
|
||||||
|
|
||||||
/*Amount*/
|
/*Amount*/
|
||||||
amount = xaccSplitGetAmount (split);
|
ro_text = xaccPrintAmount
|
||||||
ro_text = xaccPrintAmount (amount, gnc_split_amount_print_info(split, TRUE));
|
(xaccSplitGetAmount (split),
|
||||||
|
gnc_split_amount_print_info(split, TRUE)
|
||||||
|
);
|
||||||
gtk_list_store_set(store, iter, DOWNLOADED_COL_AMOUNT, ro_text, -1);
|
gtk_list_store_set(store, iter, DOWNLOADED_COL_AMOUNT, ro_text, -1);
|
||||||
gtk_list_store_set(store, iter, DOWNLOADED_COL_AMOUNT_DOUBLE, gnc_numeric_to_double (amount), -1);
|
|
||||||
|
|
||||||
/*Description*/
|
/*Description*/
|
||||||
ro_text = xaccTransGetDescription(gnc_import_TransInfo_get_trans(info) );
|
ro_text = xaccTransGetDescription(gnc_import_TransInfo_get_trans(info) );
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
# This is a list of files which contain translatable strings.
|
# This is a list of files which contain translatable strings.
|
||||||
# This file was autogenerated by cmake.
|
# This file was autogenerated by cmake.
|
||||||
bindings/python/gnucash_core.c
|
|
||||||
borrowed/goffice/go-charmap-sel.c
|
borrowed/goffice/go-charmap-sel.c
|
||||||
borrowed/goffice/go-glib-extras.c
|
borrowed/goffice/go-glib-extras.c
|
||||||
borrowed/goffice/go-optionmenu.c
|
borrowed/goffice/go-optionmenu.c
|
||||||
@ -194,7 +193,6 @@ gnucash/gnome-utils/search-param.c
|
|||||||
gnucash/gnome-utils/tree-view-utils.c
|
gnucash/gnome-utils/tree-view-utils.c
|
||||||
gnucash/gnome-utils/window-main-summarybar.c
|
gnucash/gnome-utils/window-main-summarybar.c
|
||||||
gnucash/gnucash-bin.c
|
gnucash/gnucash-bin.c
|
||||||
gnucash/gnucash-gresources.c
|
|
||||||
gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in
|
gnucash/gschemas/org.gnucash.dialogs.business.gschema.xml.in
|
||||||
gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in
|
gnucash/gschemas/org.gnucash.dialogs.checkprinting.gschema.xml.in
|
||||||
gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in
|
gnucash/gschemas/org.gnucash.dialogs.commodities.gschema.xml.in
|
||||||
|
Loading…
Reference in New Issue
Block a user