| Summary: | Closing window with ctrl-W crashes Quanta -- Backtrace included | ||
|---|---|---|---|
| Product: | [Unmaintained] quanta | Reporter: | tilleyrw |
| Component: | general | Assignee: | András Manţia <amantia> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
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())
|
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