Version: (using KDE KDE 3.5.4) Installed from: Ubuntu Packages After pressing ctrl-W to close a tab, Quanta crashed with the following backtrace: Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1242576160 (LWP 9665)] [KCrash handler] #6 0xb630ed96 in KHTMLPart::view (this=0x0) at qguardedptr.h:117 #7 0x08345352 in KafkaDocument::reloadDocument (this=0x857f368) at wkafkapart.cpp:281 #8 0x08345599 in undoRedo::reloadKafkaEditor (this=0x97ff078, force=true, selection=0x0) at undoredo.cpp:903 #9 0x0808c355 in QuantaView::reloadVPLView (this=0x8f739c8, force=true) at quantaview.cpp:638 #10 0x08188e08 in Parser::parse (this=0x851d2b0, w=0x97ca860, force=true) at parser.cpp:561 #11 0x080ad8ba in QuantaApp::reparse (this=0x84a1968, force=true) at quanta.cpp:1609 #12 0x080e377c in ViewManager::slotViewActivated (this=0x8564ed8, view=0x984cae8) at viewmanager.cpp:225 #13 0x080f20a6 in ViewManager::qt_invoke (this=0x8564ed8, _id=2, _o=0xbfd0aa84) at viewmanager.moc:234 #14 0xb6e0eeb9 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #15 0xb6821523 in KMdiMainFrm::viewActivated (this=0x84a1968, t0=0x0) at kmdimainfrm.moc:494 #16 0xb68216e1 in KMdiMainFrm::qt_emit (this=0x84a1968, _id=13, _o=0xbfd0ab74) at kmdimainfrm.moc:626 #17 0x0809c970 in QuantaApp::qt_emit (this=0x84a1968, _id=13, _o=0xbfd0ab74) at quanta.moc:863 #18 0xb6e0ee8d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #19 0xb6820ee5 in KMdiChildView::activated (this=0x984cae8, t0=0x0) at kmdichildview.moc:270 #20 0xb6832d66 in KMdiChildView::activate (this=0x984cae8) at kmdichildview.cpp:442 #21 0xb68330d1 in KMdiChildView::eventFilter (this=0x984cae8, obj=0x97fb4f8, e=0xbfd0b054) at kmdichildview.cpp:560 #22 0xb6e0c002 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3 #23 0xb6e0c080 in QObject::event () from /usr/lib/libqt-mt.so.3 #24 0xb6e495aa in QWidget::event () from /usr/lib/libqt-mt.so.3 #25 0xb6da4e56 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #26 0xb6da5bd6 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #27 0xb753a7ab in KApplication::notify (this=0x83d8650, receiver=0x97fb4f8, event=0xbfd0b054) at kapplication.cpp:550 #28 0xb6d36157 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3 #29 0xb6e489db in QWidget::setFocus () from /usr/lib/libqt-mt.so.3 #30 0xb6f79670 in QWidgetStack::raiseWidget () from /usr/lib/libqt-mt.so.3 #31 0xb6f798e1 in QWidgetStack::raiseWidget () from /usr/lib/libqt-mt.so.3 #32 0xb6f5ecbf in QTabWidget::showTab () from /usr/lib/libqt-mt.so.3 #33 0xb71c442a in QTabWidget::qt_invoke () from /usr/lib/libqt-mt.so.3 #34 0xb78076e7 in KTabWidget::qt_invoke (this=0x84e7e50, _id=49, _o=0xbfd0b2a8) at ktabwidget.moc:388 #35 0xb6830c81 in KMdiDocumentViewTabWidget::qt_invoke (this=0x84e7e50, _id=49, _o=0xbfd0b2a8) at kmdidocumentviewtabwidget.moc:136 #36 0xb6e0eeb9 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #37 0xb6e0f7c8 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #38 0xb71c3a59 in QTabBar::selected () from /usr/lib/libqt-mt.so.3 #39 0xb777d790 in KTabBar::setTabEnabled (this=0x84ea110, id=17, enabled=false) at ktabbar.cpp:80 #40 0xb6f5fd2a in QTabWidget::removePage () from /usr/lib/libqt-mt.so.3 #41 0xb7804e00 in KTabWidget::removePage (this=0x84e7e50, w=0x9886b98) at ktabwidget.cpp:446 #42 0xb681c16f in KMdiDocumentViewTabWidget::removePage (this=0x84e7e50, w=0x0) at kmdidocumentviewtabwidget.cpp:78 #43 0xb6f61145 in QTabWidget::eventFilter () from /usr/lib/libqt-mt.so.3 #44 0xb6e0c002 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3 #45 0xb6e0c080 in QObject::event () from /usr/lib/libqt-mt.so.3 #46 0xb6e495aa in QWidget::event () from /usr/lib/libqt-mt.so.3 #47 0xb6da4e56 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #48 0xb6da5bd6 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #49 0xb753a7ab in KApplication::notify (this=0x83d8650, receiver=0x84e8560, event=0xbfd0b824) at kapplication.cpp:550 #50 0xb6d36157 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3 #51 0xb6e0c789 in QObject::removeChild () from /usr/lib/libqt-mt.so.3 #52 0xb6d73b94 in QWidget::reparentSys () from /usr/lib/libqt-mt.so.3 #53 0xb6e44ff3 in QWidget::reparent () from /usr/lib/libqt-mt.so.3 #54 0xb6e4510e in QWidget::reparent () from /usr/lib/libqt-mt.so.3 #55 0xb683a4cd in KMdiMainFrm::closeWindow (this=0x84a1968, pWnd=0x9886b98, layoutTaskBar=true) at kmdimainfrm.cpp:848 #56 0x080f13fd in ViewManager::removeView (this=0x8564ed8, view=0x9886b98, force=false, createNew=true) at viewmanager.cpp:183 #57 0x080f201f in QuantaApp::closeActiveView (this=0x84a1968) at viewmanager.h:85 #58 0xb684e744 in KMdiMainFrm::qt_invoke (this=0x84a1968, _id=105, _o=0xbfd0bc4c) at kmdimainfrm.moc:566 #59 0x080f2253 in QuantaApp::qt_invoke (this=0x84a1968, _id=105, _o=0xbfd0bc4c) at quanta.moc:848 #60 0xb6e0eeb9 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #61 0xb6e0f954 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #62 0xb77553e7 in KAction::activated (this=0x0) at kaction.moc:176 #63 0xb77884d2 in KAction::slotActivated (this=0x84df0d0) at kaction.cpp:1102 #64 0xb7837683 in KAction::qt_invoke (this=0x84df0d0, _id=15, _o=0xbfd0bd5c) at kaction.moc:218 #65 0xb6e0eeb9 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #66 0xb6e0f954 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #67 0xb746fe8b in KAccelPrivate::menuItemActivated (this=0x0) at kaccelprivate.moc:110 #68 0xb74a2224 in KAccelPrivate::emitActivatedSignal (this=0x84b5c48, pAction=0x84df8a8) at kaccel.cpp:403 #69 0xb75352a3 in KAccelPrivate::eventFilter (this=0x84b5c48, pEvent=0xbfd0c2ac) at kaccel.cpp:373 #70 0xb6e0c002 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3 #71 0xb6e0c080 in QObject::event () from /usr/lib/libqt-mt.so.3 #72 0xb6e495aa in QWidget::event () from /usr/lib/libqt-mt.so.3 #73 0xb6f1b762 in QMainWindow::event () from /usr/lib/libqt-mt.so.3 #74 0xb6824200 in KMdiMainFrm::event (this=0x84a1968, e=0xbfd0c2ac) at kmdimainfrm.cpp:1162 #75 0xb6da4e56 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #76 0xb6da51ee in QApplication::notify () from /usr/lib/libqt-mt.so.3 #77 0xb753a7ab in KApplication::notify (this=0x83d8650, receiver=0x988a3b0, event=0xbfd0c2ac) at kapplication.cpp:550 #78 0xb7529387 in KAccelEventHandler::x11Event (this=0x84b5df8, pEvent=0xbfd0c5e8) at qapplication.h:520 #79 0xb753d9da in KApplication::x11EventFilter (this=0x83d8650, _event=0xbfd0c5e8) at kapplication.cpp:1659 #80 0xb6d22457 in qt_set_x11_event_filter () from /usr/lib/libqt-mt.so.3 #81 0xb6d2f74c in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3 #82 0xb6d494db in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #83 0xb6dbd947 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #84 0xb6dbd86a in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #85 0xb6da3965 in QApplication::exec () from /usr/lib/libqt-mt.so.3 #86 0x080f890a in main (argc=1, argv=0xbfd0c974) at main.cpp:216 #87 0xb601bea2 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 #88 0x0808bc11 in _start () at ../sysdeps/i386/elf/start.S:119 Hope this helps, Bob
SVN commit 579903 by amantia: Don't crash when closing a document in VPL mode. Should fix the following bugs: BUGS: 133082, 126585, 125153 M +1 -0 ChangeLog M +7 -9 src/quantaview.cpp M +8 -8 src/viewmanager.cpp --- branches/KDE/3.5/kdewebdev/quanta/ChangeLog #579902:579903 @@ -7,6 +7,7 @@ - fix Save As problems, possibly #131728 - add some more special characters to the list [#130513, #124628] - crash fix in CSS editor [#131849] + - don't crash when closing a document in VPL mode [#133082, #126585, #125153] Version 3.5.4 (Release date: 02-08-2006; Started 24-06-2005): - bugfixes: --- branches/KDE/3.5/kdewebdev/quanta/src/quantaview.cpp #579902:579903 @@ -136,6 +136,7 @@ m_customWidget->reparent(0L, 0, QPoint(), false); if (!saveModified()) return false; + slotSetSourceLayout(); if (static_cast<QuantaView *>(quantaApp->activeWindow()) == this) { parser->setSAParserEnabled(false); @@ -143,8 +144,6 @@ delete baseNode; baseNode = 0L; kdDebug(24000) << "Node objects after delete :" << NN << " baseNode= " << baseNode << endl; - if (m_kafkaDocument && m_kafkaDocument->getKafkaWidget() && m_kafkaDocument->getKafkaWidget()->view()) - m_kafkaDocument->getKafkaWidget()->view()->reparent(0, 0, QPoint(), false); } if (m_document) { @@ -152,8 +151,6 @@ Project::ref()->saveBookmarks(url, dynamic_cast<KTextEditor::MarkInterface*>(m_document->doc())); emit eventHappened("before_close", url.url(), QString::null); m_currentViewsLayout = -1; - //slotSetSourceLayout(); //set the layout to source only, otherwise it crashes... - // m_kafkaDocument->getKafkaWidget()->view()->reparent(0, 0, QPoint(), false); // m_document->closeTempFile(); if (!m_document->isUntitled() && url.isLocalFile()) { @@ -161,7 +158,7 @@ // kdDebug(24000) << "removeFile[mayRemove]: " << url.path() << endl; } Project::ref()->saveCursorPosition(url, dynamic_cast<KTextEditor::ViewCursorInterface*>(m_document->view())); - + quantaApp->menuBar()->activateItemAt(-1); quantaApp->guiFactory()->removeClient(m_document->view()); emit eventHappened("after_close", url.url(), QString::null); @@ -372,6 +369,7 @@ //show the document if full size m_splitter->hide(); + m_kafkaDocument->getKafkaWidget()->view()->reparent(0, 0, QPoint(), false); m_document->view()->reparent(m_documentArea, 0, QPoint(), true); m_document->view()->resize(m_documentArea->size()); m_viewLayout->addWidget(m_documentArea, 1, 0); @@ -751,20 +749,20 @@ { if (m_document) { - if (m_currentFocus == QuantaView::VPLFocus || + if (m_currentFocus == QuantaView::VPLFocus || (m_currentFocus == QuantaView::SourceFocus && qConfig.smartTagInsertion)) insertOutputInTheNodeTree("", "", quantaApp->showTagDialogAndReturnNode(tag, attr)); else { QString selection; - if (m_document->selectionIf) + if (m_document->selectionIf) selection = m_document->selectionIf->selection(); TagDialog *dlg = new TagDialog(QuantaCommon::tagFromDTD(m_document->getDTDIdentifier(), tag), selection, attr, baseURL()); if (dlg->exec()) { dlg->insertTag(m_document, insertInLine); } - + delete dlg; } } @@ -996,7 +994,7 @@ resize(width(), height()); } else { -/* +/* kdDebug(24000) << "m_documentArea->height(): " << m_documentArea->height() << endl; kdDebug(24000) << "ToolbarTabWidget::ref()->height(): " << ToolbarTabWidget::ref()->height() << " hidden: " << ToolbarTabWidget::ref()->isHidden() << " visible: " << ToolbarTabWidget::ref()->isVisible() << endl; kdDebug(24000) <<"sum: " << m_documentArea->height() + ToolbarTabWidget::ref()->height() << endl; --- branches/KDE/3.5/kdewebdev/quanta/src/viewmanager.cpp #579902:579903 @@ -235,7 +235,7 @@ if (w && !w->isUntitled()) { emit viewActivated(w->url()); - + bool flag = TagActionManager::canIndentDTD(w->defaultDTD()->name); quantaApp->actionCollection()->action("apply_source_indentation")->setEnabled(flag); } @@ -304,7 +304,7 @@ return; //save aborted } } - + for (childIt = children.begin(); childIt != children.end(); ++childIt) { view = *childIt; @@ -477,7 +477,7 @@ disconnect(quantaApp, SIGNAL(viewActivated (KMdiChildView *)), this, SLOT(slotViewActivated(KMdiChildView*))); disconnect(quantaApp, SIGNAL(lastChildViewClosed()), this, SLOT(slotLastViewClosed())); ToolbarTabWidget::ref()->reparent(0L, 0, QPoint(), false); - + for (childIt = children.begin(); childIt != children.end(); ++childIt) { view = dynamic_cast<QuantaView*>(*childIt); @@ -525,7 +525,7 @@ quantaApp->slotNewStatus(); } emit filesClosed(true); - return true; + return true; } bool ViewManager::isOneModified() @@ -587,10 +587,10 @@ if (m_separatorVisible) m_tabPopup->removeItemAt(SEPARATOR_INDEX); m_separatorVisible = false; - m_contextView = dynamic_cast<QuantaView*>(widget); + m_contextView = dynamic_cast<QuantaView*>(widget); Document *w = 0L; if (m_contextView) - w = m_contextView->document(); + w = m_contextView->document(); if (w) { if (!w->isUntitled()) @@ -620,7 +620,7 @@ bool bookmarksFound = false; if (w && w->markIf) { - m_bookmarks->setDocument(w); + m_bookmarks->setDocument(w); QPtrList<KTextEditor::Mark> m = w->markIf->marks(); QPtrListIterator<KTextEditor::Mark> it(m); for(; *it; ++it) @@ -631,7 +631,7 @@ break; } } - } + } m_tabPopup->setItemVisible(m_bookmarksMenuId, bookmarksFound); #ifdef ENABLE_CVSSERVICE if (w && w->url().isLocalFile() && !w->isUntitled() && CVSService::ref()->exists())