Version: 3.5.2 (using KDE 3.5.2, Gentoo) Compiler: gcc version 3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0, pie-8.7.8) OS: Linux (i686) release 2.6.12-gentoo-r4 I open a brand new project, set XHTML-Strict and UTF-8 as project defaults. Click the "standard" area, then click "close all" from the tab at the bottom. Here's the backtra(no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (no debugging symbols found) `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 11771)] [KCrash handler] #6 0xb78feeae in KHTMLPart::view () from /usr/kde/3.5/lib/libkhtml.so.4 #7 0x0833f36b in KafkaDocument::staticMetaObject () #8 0x0834e1db in KafkaDocument::staticMetaObject () #9 0x080a253d in QDict<KFileItem>::deleteItem () #10 0x08188e81 in QMapPrivate<QString, bool>::clear () #11 0x080d1450 in QString::~QString () #12 0x08102409 in QMapIterator<QString, bool>::dec () #13 0x08104b5d in QMapIterator<QString, bool>::dec () #14 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #15 0xb7ebaf90 in KMdiMainFrm::viewActivated () from /usr/kde/3.5/lib/libkmdi.so.1 #16 0xb7ebbc0e in KMdiMainFrm::qt_emit () from /usr/kde/3.5/lib/libkmdi.so.1 #17 0x080eeca1 in QString::~QString () #18 0xb687a671 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #19 0xb7eabb3e in KMdiChildView::activated () from /usr/kde/3.5/lib/libkmdi.so.1 #20 0xb7eadbfb in KMdiChildView::activate () from /usr/kde/3.5/lib/libkmdi.so.1 #21 0x08101ec6 in QMapIterator<QString, bool>::dec () #22 0x08103b91 in QMapIterator<QString, bool>::dec () #23 0x08104bdb in QMapIterator<QString, bool>::dec () #24 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #25 0xb6b9acfd in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3 #26 0xb689333d in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3 #27 0xb6977bd2 in QPopupMenu::mouseReleaseEvent () from /usr/qt/3/lib/libqt-mt.so.3 #28 0xb7110257 in KPopupMenu::mouseReleaseEvent () from /usr/kde/3.5/lib/libkdeui.so.4 #29 0xb68ae211 in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3 #30 0xb682273c in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 #31 0xb6821c03 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 #32 0xb6e39566 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4 #33 0xb67bba09 in QETWidget::translateMouseEvent () from /usr/qt/3/lib/libqt-mt.so.3 #34 0xb67b9a21 in QApplication::x11ProcessEvent () from /usr/qt/3/lib/libqt-mt.so.3 #35 0xb67d05b5 in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3 #36 0xb6833df0 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3 #37 0xb682299f in QApplication::enter_loop () from /usr/qt/3/lib/libqt-mt.so.3 #38 0xb697a955 in QPopupMenu::exec () from /usr/qt/3/lib/libqt-mt.so.3 #39 0x081040f2 in QMapIterator<QString, bool>::dec () #40 0x08104c0a in QMapIterator<QString, bool>::dec () #41 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #42 0xb7274833 in KTabWidget::contextMenu () from /usr/kde/3.5/lib/libkdeui.so.4 #43 0xb7273908 in KTabWidget::contextMenu () from /usr/kde/3.5/lib/libkdeui.so.4 #44 0xb7274d17 in KTabWidget::qt_invoke () from /usr/kde/3.5/lib/libkdeui.so.4 #45 0xb7ecd805 in KMdiDocumentViewTabWidget::qt_invoke () from /usr/kde/3.5/lib/libkmdi.so.1 #46 0xb687a639 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #47 0xb7270fe8 in KTabBar::contextMenu () from /usr/kde/3.5/lib/libkdeui.so.4 #48 0xb726fcd5 in KTabBar::mousePressEvent () from /usr/kde/3.5/lib/libkdeui.so.4 #49 0xb68ae200 in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3 #50 0xb6997b52 in QTabBar::event () from /usr/qt/3/lib/libqt-mt.so.3 #51 0xb682273c in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 #52 0xb6821c03 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 #53 0xb6e39566 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4 #54 0xb67bbe0a in QETWidget::translateMouseEvent () from /usr/qt/3/lib/libqt-mt.so.3 #55 0xb67b9a21 in QApplication::x11ProcessEvent () from /usr/qt/3/lib/libqt-mt.so.3 #56 0xb67d05b5 in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3 #57 0xb6833df0 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3 #58 0xb6833cb2 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3 #59 0xb6822947 in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3 #60 0x080a80d9 in QPtrList<char>::deleteItem () #61 0xb612a51d in __libc_start_main () from /lib/libc.so.6 #62 0x0808f021 in ?? () ce:
> open a brand new project, set XHTML-Strict and UTF-8 as project > defaults. Click the "standard" area, then click "close all" from the > tab at the bottom. What is that "standard" area? Did you switch to VPL? I did the following and couldn't reproduce: - create new project, use XHTML Strcit and UTF-* for the project - right click on the Untitled1 tab and select Close All
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())