Summary: | Zanshin crashing when adding items, promoting to project, adding subitem | ||
---|---|---|---|
Product: | [I don't know] kde | Reporter: | Georg Greve <greve> |
Component: | general | Assignee: | Kevin Ottens <ervin> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | greve |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Georg Greve
2011-09-30 07:16:20 UTC
Created attachment 64094 [details]
New crash information added by DrKonqi
zanshin (0.2) on KDE Platform 4.7.1 (4.7.1) using Qt 4.8.0
Reproduced with standalone Zanshin just to make sure it wasn't something else interfering:
* Right click on Task resource "Add new project"
* Added project
* Right click on project that was just added, select "Add new project"
* Enter project, confirm
* Watch crash.
Backtrace seems identical, so I guess it's not some interaction with Kontact.
-- Backtrace (Reduced):
#6 QModelIndex (other=..., this=) at /usr/include/QtCore/qabstractitemmodel.h:65
#7 KDescendantsProxyModel::mapFromSource (this=0x19c0120, sourceIndex=...) at /usr/src/debug/kdelibs-4.7.1/kdeui/itemviews/kdescendantsproxymodel.cpp:462
#8 0x0000003791c12ddc in KDescendantsProxyModelPrivate::sourceDataChanged (this=<optimized out>, topLeft=..., bottomRight=...) at /usr/src/debug/kdelibs-4.7.1/kdeui/itemviews/kdescendantsproxymodel.cpp:963
[...]
#10 0x000000378d9d5b87 in QAbstractItemModel::dataChanged (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at .moc/release-shared/moc_qabstractitemmodel.cpp:164
#11 0x0000003790d68233 in QSortFilterProxyModelPrivate::_q_sourceDataChanged (this=0x19c3b10, source_top_left=..., source_bottom_right=...) at itemviews/qsortfilterproxymodel.cpp:1193
Git commit 3a220f833481047c21dffb910d930a25f8bbc391 by Kevin Ottens. Committed on 02/10/2011 at 03:38. Pushed by ervin into branch 'master'. Workaround Qt 4.8 behavior change of QAbstractProxyModel OK, that one was tough! Turns out that in Qt 4.8 the behavior of QAbstractProxyModel changed because it now provides a reimplementation of hasChildren() not based on rowCount() & columnCount(), but by forwarding the request to the source model (which in my opinion doesn't really make sense...). Because of that, all the proxies or views on top of subclasses of TodoProxyModelBase were getting totally confused because of contradictions between hasChildren() and rowCount() results. That explains the random crashes, or empty views experienced by users running with Qt 4.8 beta. Pfew! I'm glad I finally noticed those reports were mentionning Qt 4.8. BUG: 283066 BUG: 283067 M +5 -0 src/todoproxymodelbase.cpp M +1 -0 src/todoproxymodelbase.h http://commits.kde.org/zanshin/3a220f833481047c21dffb910d930a25f8bbc391 |