Summary: | Crash in Plasma::Webview/QGV when adding info applet. | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Leo Franchi <lfranchi> |
Component: | general | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | paulo.miguel.dias |
Priority: | NOR | ||
Version: | 2.3-GIT | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Unspecified | ||
Latest Commit: | Version Fixed In: | 2.3.1 |
Description
Leo Franchi
2010-03-07 03:34:16 UTC
additional backtrace with qgraphics scene item index mode set to NoIndex: Thread 1 (Thread 0x7f64eb5577a0 (LWP 8282)): [KCrash Handler] #5 0x00007f64e914b860 in QGraphicsItemPrivate::invalidateParentGraphicsEffectsRecursively (this=0x31002500220000) at graphicsview/qgraphicsitem.cpp:5120 #6 0x00007f64e914c3c6 in QGraphicsItem::update (this=0x2022b20, rect=...) at graphicsview/qgraphicsitem.cpp:5390 #7 0x00007f64e267b41a in QGraphicsWebViewPrivate::update(QRect const&) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #8 0x00007f64e2663ebb in WebCore::ChromeClientQt::repaint(WebCore::IntRect const&, bool, bool, bool) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #9 0x00007f64e2434fe5 in WebCore::Chrome::repaint(WebCore::IntRect const&, bool, bool, bool) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #10 0x00007f64e24d6c7a in WebCore::ScrollView::repaintContentRectangle(WebCore::IntRect const&, bool) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #11 0x00007f64e246970e in WebCore::FrameView::doDeferredRepaints() () from /usr/qt/4.6/lib/libQtWebKit.so.4 #12 0x00007f64e246959e in WebCore::FrameView::endDeferredRepaints() () from /usr/qt/4.6/lib/libQtWebKit.so.4 #13 0x00007f64e24681cb in WebCore::FrameView::layout(bool) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #14 0x00007f64e2469411 in WebCore::FrameView::visibleContentsResized() () from /usr/qt/4.6/lib/libQtWebKit.so.4 #15 0x00007f64e24d5312 in WebCore::ScrollView::updateScrollbars(WebCore::IntSize const&) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #16 0x00007f64e24d48bc in WebCore::ScrollView::setContentsSize(WebCore::IntSize const&) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #17 0x00007f64e2467629 in WebCore::FrameView::setContentsSize(WebCore::IntSize const&) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #18 0x00007f64e2467748 in WebCore::FrameView::adjustViewSize() () from /usr/qt/4.6/lib/libQtWebKit.so.4 #19 0x00007f64e2468181 in WebCore::FrameView::layout(bool) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #20 0x00007f64e2469411 in WebCore::FrameView::visibleContentsResized() () from /usr/qt/4.6/lib/libQtWebKit.so.4 #21 0x00007f64e24d5312 in WebCore::ScrollView::updateScrollbars(WebCore::IntSize const&) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #22 0x00007f64e24d69db in WebCore::ScrollView::setFrameRect(WebCore::IntRect const&) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #23 0x00007f64e2685faf in QWebPage::setViewportSize(QSize const&) const () from /usr/qt/4.6/lib/libQtWebKit.so.4 #24 0x00007f64e268466e in QWebPage::setView(QWidget*) () from /usr/qt/4.6/lib/libQtWebKit.so.4 #25 0x00007f64e480f03b in Plasma::WebView::itemChange (this=0x2436ab0, change=QGraphicsItem::ItemSceneHasChanged, value=...) at /home/leo/kde/kdelibs/plasma/widgets/webview.cpp:266 #26 0x00007f64e9181dfe in QGraphicsScene::addItem (this=0x1f70c60, item=0x2436ac0) at graphicsview/qgraphicsscene.cpp:2622 #27 0x00007f64e9181cca in QGraphicsScene::addItem (this=0x1f70c60, item=0x2401590) at graphicsview/qgraphicsscene.cpp:2609 #28 0x00007f64e913eda5 in QGraphicsItemPrivate::setParentItemHelper (this=0x2401610, newParent=0x2399280, newParentVariant=0x7fff2c57b3b0, thisPointerVariant=0x7fff2c57b3a0) at graphicsview/qgraphicsitem.cpp:1136 #29 0x00007f64e91411f3 in QGraphicsItem::setParentItem (this=0x2401590, newParent=0x2399280) at graphicsview/qgraphicsitem.cpp:1608 #30 0x00007f64e46f399b in Plasma::Containment::addApplet (this=0x2399270, applet=0x2401580, pos=..., delayInit=false) at /home/leo/kde/kdelibs/plasma/containment.cpp:921 #31 0x00007f64e46fc6be in Plasma::ContainmentPrivate::addApplet (this=0x2025a60, name=..., args=..., appletGeometry=..., id=0, delayInit=false) at /home/leo/kde/kdelibs/plasma/containment.cpp:2254 #32 0x00007f64e46f34ae in Plasma::Containment::addApplet (this=0x2399270, name=..., args=..., appletGeometry=...) at /home/leo/kde/kdelibs/plasma/containment.cpp:873 #33 0x00007f64bac3fe7a in Context::VerticalToolbarContainment::addApplet (this=0x2399270, pluginName=..., loc=-1) at /home/leo/kde/amarok/src/context/containments/verticallayout/VerticalToolbarContainment.cpp:144 #34 0x00007f64bac3fc30 in Context::VerticalToolbarContainment::loadConfig (this=0x2399270, conf=...) at /home/leo/kde/amarok/src/context/containments/verticallayout/VerticalToolbarContainment.cpp:110 #35 0x00007f64ea3a244a in Context::ContextView::loadConfig (this=0x2022b10) at /home/leo/kde/amarok/src/context/ContextView.cpp:224 #36 0x00007f64ea3a218b in Context::ContextView::showHome (this=0x2022b10) at /home/leo/kde/amarok/src/context/ContextView.cpp:205 #37 0x00007f64ea7959f4 in MainWindow::createContextView (this=0x1bb7410, containment=0x2399270) at /home/leo/kde/amarok/src/MainWindow.cpp:408 #38 0x00007f64ea79faf4 in MainWindow::qt_metacall (this=0x1bb7410, _c=QMetaObject::InvokeMetaMethod, _id=31, _a=0x7fff2c57bb60) at /home/leo/kde/amarok/build/src/MainWindow.moc:156 #39 0x00007f64e9944465 in QMetaObject::metacall (object=0x1bb7410, cl=QMetaObject::InvokeMetaMethod, idx=72, argv=0x7fff2c57bb60) at kernel/qmetaobject.cpp:237 #40 0x00007f64e995a8e0 in QMetaObject::activate (sender=0x1f70c60, m=0x7f64e4b58540, local_signal_index=0, argv=0x7fff2c57bb60) at kernel/qobject.cpp:3287 #41 0x00007f64e470bf93 in Plasma::Corona::containmentAdded (this=0x1f70c60, _t1=0x2399270) at /home/leo/kde/kdelibs-build/plasma/corona.moc:149 #42 0x00007f64e470d342 in Plasma::CoronaPrivate::addContainment (this=0x1f713e0, name=..., args=..., id=0, delayedInit=false) at /home/leo/kde/kdelibs/plasma/corona.cpp:248 #43 0x00007f64e4709e37 in Plasma::Corona::addContainment (this=0x1f70c60, name=..., args=...) at /home/leo/kde/kdelibs/plasma/corona.cpp:547 #44 0x00007f64ea39f589 in Context::ContextScene::loadDefaultSetup (this=0x1f70c60) at /home/leo/kde/amarok/src/context/ContextScene.cpp:46 #45 0x00007f64ea7941a6 in MainWindow::init (this=0x1bb7410) at /home/leo/kde/amarok/src/MainWindow.cpp:303 #46 0x00007f64ea7911db in MainWindow (this=0x1bb7410) at /home/leo/kde/amarok/src/MainWindow.cpp:182 #47 0x00007f64ea76f44c in App::continueInit (this=0x7fff2c57c9a0) at /home/leo/kde/amarok/src/App.cpp:664 #48 0x00007f64ea76abde in App (this=0x7fff2c57c9a0) at /home/leo/kde/amarok/src/App.cpp:211 #49 0x000000000040af52 in main (argc=2, argv=0x7fff2c57e908) at /home/leo/kde/amarok/src/main.cpp:235 Isn't this a Qt bug, and a duplicate of bug 227639? It might be a duplicate but amarok crashes on startup in bug 227639 most probably because the info applet is already active, remove it and amarok will start. it might be a good idea not to ship info applet in 2.3.0 if this bug cant be fixed in amarok, cause thie minute the users activate it and restart amarok they wont be able to start it. very annoying :( still there in 2.3.0 final AND 2.3.1 git from today (btw coberbling is awesome) :), any idea when this will be fixed? best regards commit a62fed8c667a076daa21fdf8360708813f1bf9e0 Author: Nikolaj Hald Nielsen <nhn@kde.org> Date: Mon Mar 22 09:46:32 2010 +0100 Work around crash in the Info applet caused by a bug in certain versions of Qt. BUG: 229756 BUG: 227639 diff --git a/src/context/applets/info/InfoApplet.cpp b/src/context/applets/info/InfoApplet.cpp index 166da4c..e415e98 100644 --- a/src/context/applets/info/InfoApplet.cpp +++ b/src/context/applets/info/InfoApplet.cpp @@ -40,18 +40,30 @@ QString InfoApplet::s_defaultHtml = "<html>" InfoApplet::InfoApplet( QObject* parent, const QVariantList& args ) : Context::Applet( parent, args ) + , m_webView( 0 ) , m_initialized( false ) , m_currentPlaylist( 0 ) + { setHasConfigurationInterface( false ); setBackgroundHints( Plasma::Applet::NoBackground ); +} + +InfoApplet::~InfoApplet() +{ + delete m_webView; +} + + +void InfoApplet::init() +{ dataEngine( "amarok-info" )->connectSource( "info", this ); m_webView = new AmarokWebView( this ); resize( 500, -1 ); - + QPalette p = m_webView->palette(); p.setColor( QPalette::Dark, QColor( 255, 255, 255, 0) ); p.setColor( QPalette::Window, QColor( 255, 255, 255, 0) ); @@ -62,11 +74,6 @@ InfoApplet::InfoApplet( QObject* parent, const QVariantList& args ) constraintsEvent(); } -InfoApplet::~InfoApplet() -{ - delete m_webView; -} - void InfoApplet::constraintsEvent( Plasma::Constraints constraints ) { Q_UNUSED( constraints ) diff --git a/src/context/applets/info/InfoApplet.h b/src/context/applets/info/InfoApplet.h index 4be28fc..775ea7c 100644 --- a/src/context/applets/info/InfoApplet.h +++ b/src/context/applets/info/InfoApplet.h @@ -48,6 +48,8 @@ public: InfoApplet( QObject* parent, const QVariantList& args ); virtual ~InfoApplet(); + void init(); + void paintInterface( QPainter *painter, const QStyleOptionGraphicsItem *option, const QRect &contentsRect ); void constraintsEvent( Plasma::Constraints constraints = Plasma::AllConstraints ); |