X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fext-perl.xs;h=5aa56b01df5480491909eb647b4d6ae6b48696b5;hb=613fd4014fa5814bf2adce50574d520df8927ce1;hp=80020473e87e9c00516c8fbc0131e29a4097f02d;hpb=5b7b5519d955cd0c99d094ba140514e0a2b73083;p=chaz%2Fhomebank diff --git a/src/ext-perl.xs b/src/ext-perl.xs index 8002047..5aa56b0 100644 --- a/src/ext-perl.xs +++ b/src/ext-perl.xs @@ -665,13 +665,24 @@ void transactions(const gchar* CLASS) PPCODE: PERL_UNUSED_ARG(CLASS); - GList* list = g_list_first(GLOBALS->ope_list); - for (; list; list = g_list_next(list)) { - GValue val = G_VALUE_INIT; - SV* sv = val_to_sv(EXT_TRANSACTION(&val, list->data)); - mXPUSHs(sv); + + GList* acc_list = g_hash_table_get_values(GLOBALS->h_acc); + GList* acc_link = g_list_first(acc_list); + for (; acc_link; acc_link = g_list_next(acc_link)) { + Account *acc = acc_link->data; + + GList* txn_link = g_queue_peek_head_link(acc->txn_queue); + for (; txn_link; txn_link = g_list_next(txn_link)) { + Transaction* txn = txn_link->data; + + GValue val = G_VALUE_INIT; + SV* sv = val_to_sv(EXT_TRANSACTION(&val, txn)); + mXPUSHs(sv); + } } + g_list_free(acc_list); + void anonymize(void) CODE: @@ -737,14 +748,6 @@ new(void) OUTPUT: RETVAL -Account* -clone(Account* SELF) - CODE: - RETVAL = da_acc_clone(SELF); - RETVAL->key = 0; - OUTPUT: - RETVAL - void DESTROY(Account* SELF) CODE: @@ -896,14 +899,12 @@ remove(Account* SELF) void transactions(Account* SELF) PPCODE: - GList* list = g_list_first(GLOBALS->ope_list); + GList* list = g_queue_peek_head_link(SELF->txn_queue); for (; list; list = g_list_next(list)) { Transaction* txn = list->data; - if (txn->kacc == SELF->key) { - GValue val = G_VALUE_INIT; - SV* sv = val_to_sv(EXT_TRANSACTION(&val, txn)); - mXPUSHs(sv); - } + GValue val = G_VALUE_INIT; + SV* sv = val_to_sv(EXT_TRANSACTION(&val, txn)); + mXPUSHs(sv); } GObject* @@ -1003,7 +1004,7 @@ info(Transaction* SELF, ...) GObject* open(Transaction* SELF) CODE: - RETVAL = G_OBJECT(create_deftransaction_window(NULL, TRANSACTION_EDIT_MODIFY)); + RETVAL = G_OBJECT(create_deftransaction_window(NULL, TRANSACTION_EDIT_MODIFY, FALSE)); deftransaction_set_transaction(GTK_WIDGET(RETVAL), SELF); OUTPUT: RETVAL @@ -1022,7 +1023,7 @@ pair_with(Transaction* SELF, Transaction* other, ...) EXT_P2C_OBJECT("HomeBank::Transaction", sv, ptr, Transaction*); list = g_list_append(list, ptr); } - other = ui_dialog_transaction_xfer_select_child(list); + other = ui_dialog_transaction_xfer_select_child(SELF, list); } if (other) { transaction_xfer_change_to_child(SELF, other);