[kmymoney] [Bug 499255] New: Ledger appear blank (no transactions)
Alexandre
bugzilla_noreply at kde.org
Tue Jan 28 20:29:52 GMT 2025
https://bugs.kde.org/show_bug.cgi?id=499255
Bug ID: 499255
Summary: Ledger appear blank (no transactions)
Classification: Applications
Product: kmymoney
Version: git (master)
Platform: Gentoo Packages
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: reports
Assignee: kmymoney-devel at kde.org
Reporter: alexandref75 at gmail.com
Target Milestone: ---
Created attachment 177778
--> https://bugs.kde.org/attachment.cgi?id=177778&action=edit
kmymoney file
SUMMARY
Ledger appear blank (no transactions). I bisected it to this commit
cbcaed2493329507191b24fb7c8d0fa3a36eed92.
>From cbcaed2493329507191b24fb7c8d0fa3a36eed92 Mon Sep 17 00:00:00 2001
From: Thomas Baumgart <thb at net-bembel.de>
Date: Sat, 18 Jan 2025 11:22:06 +0100
Subject: [PATCH 1/1] Fix tag filtering in tags view
The transaction tab in the tags view did not show transactions that
referenced more than one tag. Only those that had a single tag assigned
were shown.
This change fixes the problem by interpreting the returned data from the
journal model properly as list of ids and checks each single one for a
match.
---
kmymoney/models/ledgerfilterbase.cpp | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/kmymoney/models/ledgerfilterbase.cpp
b/kmymoney/models/ledgerfilterbase.cpp
index eabf7913c..fc69ffeb0 100644
--- a/kmymoney/models/ledgerfilterbase.cpp
+++ b/kmymoney/models/ledgerfilterbase.cpp
@@ -181,8 +181,17 @@ bool LedgerFilterBase::filterAcceptsRow(int source_row,
const QModelIndex& sourc
}
if (LedgerSortProxyModel::filterAcceptsRow(source_row, source_parent)) {
- const auto id = idx.data(filterRole()).toString();
- bool rc = d->filterIds.contains(id);
+ const QVariant dataItem = idx.data(filterRole());
+ bool rc = false;
+ if (dataItem.canConvert<QVariantList>()) {
+ QSequentialIterable vList = dataItem.value<QSequentialIterable>();
+ for (const auto& v : vList) {
+ rc |= d->filterIds.contains(v.toString());
+ }
+ } else {
+ const auto id = idx.data(filterRole()).toString();
+ rc = d->filterIds.contains(id);
+ }
// in case a journal entry has no id, it is the new transaction
placeholder
if (!rc) {
--
2.48.1
STEPS TO REPRODUCE
1. Use the attached test.kmy (created with a single account and two
transactions)
2. Go to ledgers->select account test
3.
OBSERVED RESULT
Ledger appears blank
EXPECTED RESULT
Two transactions being printed
SOFTWARE/OS VERSIONS
Windows:
macOS:
(available in the Info Center app, or by running `kinfo` in a terminal window)
KMyMoney: 5.1.90-13115d9f4
Alkimia: 8.1.92(I18N_ARGUMENT_MISSING) (build against
8.1.92(I18N_ARGUMENT_MISSING))
Gpgme: Unknown(I18N_ARGUMENT_MISSING) (build against
1.24.1(I18N_ARGUMENT_MISSING))
KDiagram: Unknown(I18N_ARGUMENT_MISSING) (build against
(I18N_ARGUMENT_MISSING))
libofx: Unknown(I18N_ARGUMENT_MISSING) (build against
0.10.9(I18N_ARGUMENT_MISSING))
KDE Frameworks: 6.10.0
Qt: Using 6.8.1 and built against 6.8.1
Gentoo Linux (Wayland)
Build ABI: x86_64-little_endian-lp64
Kernel: linux 6.13.0-gentoo-archlinux
ADDITIONAL INFORMATION
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the KMyMoney-devel
mailing list