Summary: | Ledger appears blank (no transactions) | ||
---|---|---|---|
Product: | [Applications] kmymoney | Reporter: | Alexandre <alexandref75> |
Component: | reports | Assignee: | KMyMoney Devel Mailing List <kmymoney-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alexandref75 |
Priority: | NOR | ||
Version First Reported In: | git (master) | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/office/kmymoney/-/commit/d9db245c0e7125d9236421af5159b926376dad67 | Version Fixed In: | 5.2 |
Sentry Crash Report: | |||
Attachments: | kmymoney file |
Description
Alexandre
2025-01-28 20:29:52 UTC
Reverting the references commit fixes the error. I am unable to duplicate the problem :( Both transactions show up just fine here (latest master). Are you building against Qt5 or Qt6? Against qt6 A little additional debugging. Running with this debug added: const QVariant dataItem = idx.data(filterRole()); bool rc = false; if (dataItem.canConvert<QVariantList>()) { QSequentialIterable vList = dataItem.value<QSequentialIterable>(); for (const auto& v : vList) { qDebug() << "Processing filterRole " << v.toString(); rc |= d->filterIds.contains(v.toString()); qDebug() << "Result filterRole " << rc; } } else { const auto id = idx.data(filterRole()).toString(); qDebug() << "Processing filterRole " << id; rc = d->filterIds.contains(id); qDebug() << "Result filterRole " << rc; } Produces: ----------------------------------------------- Processing filterRole "A" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "1" Result filterRole false Processing filterRole "A" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "1" Result filterRole false Processing filterRole "" Result filterRole false Processing filterRole "" Result filterRole false Processing filterRole "A" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "1" Result filterRole false Processing filterRole "A" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "0" Result filterRole false Processing filterRole "1" Result filterRole false ---------------------------------------------- commenting the lines and running again: const QVariant dataItem = idx.data(filterRole()); bool rc = false; //if (dataItem.canConvert<QVariantList>()) { // QSequentialIterable vList = dataItem.value<QSequentialIterable>(); // for (const auto& v : vList) { // qDebug() << "Processing filterRole " << v.toString(); // rc |= d->filterIds.contains(v.toString()); // qDebug() << "Result filterRole " << rc; // } //} else { const auto id = idx.data(filterRole()).toString(); qDebug() << "Processing filterRole " << id; rc = d->filterIds.contains(id); qDebug() << "Result filterRole " << rc; //} Produces: ----------------------------------------------- Processing filterRole "A000001" Result filterRole true Processing filterRole "A000001" Result filterRole true Processing filterRole "" Result filterRole false Processing filterRole "A000001" Result filterRole true Processing filterRole "A000001" Result filterRole true Processing filterRole "" Result filterRole false ---------------------------------------------- Seems that the problem is the apparently different behavior of QVariant::canConvert<QVariantList>() when used on a QVariant created from a QString between Qt5 (results in false) and Qt6 (results in true). Git commit d9db245c0e7125d9236421af5159b926376dad67 by Thomas Baumgart. Committed on 30/01/2025 at 16:43. Pushed by tbaumgart into branch 'master'. Resolve different behavior of Qt5 vs Qt6 with QVariant FIXED-IN: 5.2 M +3 -9 kmymoney/models/ledgerfilterbase.cpp https://invent.kde.org/office/kmymoney/-/commit/d9db245c0e7125d9236421af5159b926376dad67 |