Summary: | Amarok: playlist: crash when selecting song using enter after searching [@ QSortFilterProxyModelPrivate::proxy_to_source] | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Wizzleby |
Component: | Playlist | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | brzionline, hein, infamune, krzysztof.dzida, langstr, nhn, peter.llorens, teo |
Priority: | VHI | ||
Version: | 2.3-GIT | ||
Target Milestone: | 2.3.0 | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Wizzleby
2010-03-03 12:29:40 UTC
Just reproduce with today's git master. Better bt: [KCrash Handler] #5 QSortFilterProxyModelPrivate::proxy_to_source (this=0x2395060, proxy_index=...) at itemviews/qsortfilterproxymodel.cpp:332 #6 0x00007fb8f869d62d in QSortFilterProxyModel::mapToSource (this=<value optimized out>, proxyIndex=...) at itemviews/qsortfilterproxymodel.cpp:2454 #7 0x00007fb8f869b859 in QSortFilterProxyModel::buddy (this=0x0, index=...) at itemviews/qsortfilterproxymodel.cpp:1957 #8 0x00007fb8f86187c1 in QAbstractItemViewPrivate::sendDelegateEvent (this=0x2615430, index=..., event=0x0) at itemviews/qabstractitemview.cpp:4013 #9 0x00007fb8f8618b66 in QAbstractItemView::edit (this=0x2615380, index=..., trigger=QAbstractItemView::CurrentChanged, event=0x0) at itemviews/qabstractitemview.cpp:2483 #10 0x00007fb8f8612364 in QAbstractItemView::currentChanged (this=0x2615380, current=..., previous=<value optimized out>) at itemviews/qabstractitemview.cpp:3349 #11 0x00007fb8f8618553 in QAbstractItemView::qt_metacall (this=0x2615380, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4c5dced0) at .moc/debug-shared/moc_qabstractitemview.cpp:238 #12 0x00007fb8f87a3c97 in QListView::qt_metacall (this=0x7fff4c5dca40, _c=QMetaObject::InvokeMetaMethod, _id=50412192, _a=0x0) at .moc/debug-shared/moc_qlistview.cpp:111 #13 0x00007fb8f97a1a47 in Playlist::PrettyListView::qt_metacall (this=0x2615380, _c=QMetaObject::InvokeMetaMethod, _id=51, _a=0x7fff4c5dced0) at /home/mikko/amarok/build/src/PrettyListView.moc:113 #14 0x00007fb8f8d1e9a1 in QMetaObject::activate (sender=0x261b010, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3285 #15 0x00007fb8f8666a0a in QItemSelectionModel::currentChanged (this=0x7fff4c5dca40, _t1=<value optimized out>, _t2=<value optimized out>) at .moc/debug-shared/moc_qitemselectionmodel.cpp:159 #16 0x00007fb8f8666ba0 in QItemSelectionModel::setCurrentIndex (this=0x261b010, index=<value optimized out>, command=) at itemviews/qitemselectionmodel.cpp:1167 #17 0x00007fb8f979d494 in Playlist::PrettyListView::trackActivated (this=0x2615380, idx=...) at /home/mikko/amarok/src/playlist/view/listview/PrettyListView.cpp:259 #18 0x00007fb8f979c976 in Playlist::PrettyListView::playFirstSelected (this=0x2615380) at /home/mikko/amarok/src/playlist/view/listview/PrettyListView.cpp:157 #19 0x00007fb8f97a1ad0 in Playlist::PrettyListView::qt_metacall (this=0x2615380, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fff4c5dd150) at /home/mikko/amarok/build/src/PrettyListView.moc:121 #20 0x00007fb8f8d1e9a1 in QMetaObject::activate (sender=0x260c080, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3285 #21 0x00007fb8f9735857 in Playlist::ProgressiveSearchWidget::activateFilterResult (this=0x260c080) at /home/mikko/amarok/build/src/ProgressiveSearchWidget.moc:175 #22 0x00007fb8f97354d2 in Playlist::ProgressiveSearchWidget::qt_metacall (this=0x260c080, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fff4c5dd2e0) at /home/mikko/amarok/build/src/ProgressiveSearchWidget.moc:114 #23 0x00007fb8f8d1e9a1 in QMetaObject::activate (sender=0x25f84a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3285 #24 0x00007fb8fa361c45 in KLineEdit::returnPressed (this=0x7fff4c5dca40, _t1=<value optimized out>) at /var/tmp/paludis/kde-base-kdelibs-9999/work/kdelibs-9999_build/kdeui/klineedit.moc:226 #25 0x00007fb8fa36360c in KLineEdit::event (this=0x25f84a0, ev=0x7fff4c5dd950) at /var/tmp/paludis/kde-base-kdelibs-9999/work/kdelibs-9999/kdeui/widgets/klineedit.cpp:1308 #26 0x00007fb8f8110b5c in QApplicationPrivate::notify_helper (this=0x1cd5440, receiver=0x25f84a0, e=0x7fff4c5dd950) at kernel/qapplication.cpp:4300 #27 0x00007fb8f811a5fb in QApplication::notify (this=<value optimized out>, receiver=0x25f84a0, e=0x7fff4c5dd950) at kernel/qapplication.cpp:3763 #28 0x00007fb8f9a7493e in App::notify (this=0x7fff4c5de720, receiver=0x25f84a0, event=0x7fff4c5dd950) at /home/mikko/amarok/src/App.cpp:917 #29 0x00007fb8f8d08dcb in QCoreApplication::notifyInternal (this=0x7fff4c5de720, receiver=0x25f84a0, event=0x7fff4c5dd950) at kernel/qcoreapplication.cpp:704 #30 0x00007fb8f81b4cd7 in QKeyMapper::sendKeyEvent (keyWidget=0x25f84a0, grab=<value optimized out>, type=<value optimized out>, code=16777220, modifiers=<value optimized out>, text=..., autorepeat=false, count=1, nativeScanCode=36, nativeVirtualKey=65293, nativeModifiers=0) at kernel/qkeymapper_x11.cpp:1861 #31 0x00007fb8f81b7a91 in QKeyMapperPrivate::translateKeyEvent (this=0x1d13150, keyWidget=0x25f84a0, event=<value optimized out>, grab=false) at kernel/qkeymapper_x11.cpp:1831 #32 0x00007fb8f8191738 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff4c5de530) at kernel/qapplication_x11.cpp:3394 #33 0x00007fb8f81b99aa in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventdispatcher_x11.cpp:132 #34 0x00007fb8f8d075b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #35 0x00007fb8f8d0797d in QEventLoop::exec (this=0x7fff4c5de6c0, flags=) at kernel/qeventloop.cpp:201 #36 0x00007fb8f8d09edb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981 #37 0x000000000040b002 in main (argc=1, argv=0x7fff4c5e0688) at /home/mikko/amarok/src/main.cpp:237 I created the following patch which fixes the problem for me. However, it might be a workaround rather than a fix: 'selectedIndexes()' appears to return a QModelIndex that 'setCurrentIndex()' / 'QItemSelectionModel' chokes on. That shouldn't happen in an ideal world. I suspect that it might possibly be a bug / unintented interaction in Qt: it might be that 'setCurrentIndex()' removes internal state from under the QModelIndex still being passed around. If that wild guess is correct, this 'idxCopy' would be slightly more proper to do in 'playFirstSelected()'. But I don't know any of this code well, and don't intend to pursue it further. Cheers, Nanno Playlist::PrettyListView::trackActivated( const QModelIndex& idx ) { DEBUG_BLOCK m_skipAutoScroll = true; // we don't want to do crazy view changes when selecting an item in the view Actions::instance()->play( idx ); //make sure that the track we just activated is also set as the current index or //the selected index will get moved to the first row, making keyboard navigation difficult (BUG 225791) - selectionModel()->setCurrentIndex( idx, QItemSelectionModel::ClearAndSelect ); + QModelIndex idxCopy = model()->index( idx.row(), idx.column() ); + selectionModel()->setCurrentIndex( idxCopy, QItemSelectionModel::ClearAndSelect ); - } I cannot reproduce this with 2.3. Anyone else have more luck? Mark Kretschmann merged my Merge Request 145 containing the fix/workaround, on 2010-03-07. Ah! In that case... *** Bug 234662 has been marked as a duplicate of this bug. *** *** Bug 231133 has been marked as a duplicate of this bug. *** *** Bug 235290 has been marked as a duplicate of this bug. *** *** Bug 238604 has been marked as a duplicate of this bug. *** Created attachment 43897 [details]
New crash information added by DrKonqi
moving the mouse on the playlist (with no clicking) when crash happened.
i noticed that if i rightclick>add song or folders (from the file manager or the collection) amarok play, but then if i click on the playlist it crashes.
Sven Krohlas has marked 4 other bug reports as "Duplicate" of this bug report. However, the crash path of these 4 other bugs is somewhat different: it does not contain the 'setCurrentIndex()' call involved in this bug. The 4 other bug reports have 1 thing in common: they all use Qt 4.7, which is not (yet) a released version of Qt. Given the observations, I think that there's a significant chance of a bug in Qt 4.7 beta. It could be a bug in Amarok, but I think that's less likely. Reporters, I recommend that you tell Nokia/Trolltech about your crashes. |