Bug 265200

Summary: crash on removing view after split view
Product: [Applications] calligrastage Reporter: Halla Rempt <halla>
Component: generalAssignee: T Zachmann <t.zachmann>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Halla Rempt 2011-02-02 16:19:15 UTC
Application: kpresenter (2.4 Alpha 1)
KDE Platform Version: 4.6.00 (4.6.0) (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 2.6.34.7-0.7-pae i686
Distribution: "openSUSE 11.3 (i586)"

-- Information about the crash:
I wanted to have both a notes view and a slide view, since I cannot edit the slide in the notes view. So I pressed the split view menu option. I didn't get a new view... Then I got brave and pressed remove split. That resulted in this crash.

-- Backtrace:
Application: Stage (kpresenter), signal: Segmentation fault
[Current thread is 1 (Thread 0xb41f5710 (LWP 12251))]

Thread 3 (Thread 0xaeb6bb70 (LWP 12252)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb538a0b1 in select () from /lib/libc.so.6
#2  0xb573e2b8 in QProcessManager::run (this=0xb589b8b0) at io/qprocess_unix.cpp:245
#3  0xb5660983 in QThreadPrivate::start (arg=0xb589b8b0) at thread/qthread_unix.cpp:320
#4  0xb55e3b25 in start_thread () from /lib/libpthread.so.0
#5  0xb539146e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xabf6db70 (LWP 15600)):
#0  0xb459522b in clock_gettime () from /lib/librt.so.1
#1  0xb56bb835 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb578f4e6 in updateCurrentTime (this=0xabf5a04, tm=...) at kernel/qeventdispatcher_unix.cpp:339
#4  QTimerInfoList::timerWait (this=0xabf5a04, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb578dd1b in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xabf6d11c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb578ddbd in timerSourcePrepare (source=0xabf59d0, timeout=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb471c0c0 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#8  0xb471cf22 in ?? () from /usr/lib/libglib-2.0.so.0
#9  0xb471d60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#10 0xb578e567 in QEventDispatcherGlib::processEvents (this=0xafed180, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0xb575f04d in QEventLoop::processEvents (this=0xabf6d2b0, flags=...) at kernel/qeventloop.cpp:149
#12 0xb575f279 in QEventLoop::exec (this=0xabf6d2b0, flags=...) at kernel/qeventloop.cpp:201
#13 0xb565dcfe in QThread::exec (this=0xac4f838) at thread/qthread.cpp:489
#14 0xb573ea6d in QInotifyFileSystemWatcherEngine::run (this=0xac4f838) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb5660983 in QThreadPrivate::start (arg=0xac4f838) at thread/qthread_unix.cpp:320
#16 0xb55e3b25 in start_thread () from /lib/libpthread.so.0
#17 0xb539146e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb41f5710 (LWP 12251)):
[KCrash Handler]
#7  0xb5d4d4f2 in QWidget::setParent(QWidget*) () from /usr/lib/libQtGui.so.4
#8  0xb7674c3f in KoToolDocker::Private::recreateLayout (this=0x8363e78, optionWidgetMap=...) at /home/boud/kde/src/calligra/libs/main/KoToolDocker.cpp:79
#9  0xb767330a in KoToolDocker::qt_metacall (this=0x80d19e8, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfe769d8) at /home/boud/kde/build/calligra/libs/main/KoToolDocker_p.moc:84
#10 0xb576660d in QMetaObject::metacall (object=0x80d19e8, cl=QMetaObject::InvokeMetaMethod, idx=38, argv=0xbfe769d8) at kernel/qmetaobject.cpp:237
#11 0xb577680c in QMetaObject::activate (sender=0x80d19e8, m=0xb66341b8, local_signal_index=4, argv=0xbfe769d8) at kernel/qobject.cpp:3278
#12 0xb612c6e5 in QDockWidget::dockLocationChanged(Qt::DockWidgetArea) () from /usr/lib/libQtGui.so.4
#13 0xb6138408 in ?? () from /usr/lib/libQtGui.so.4
#14 0xb61389bf in ?? () from /usr/lib/libQtGui.so.4
#15 0xb61627b7 in ?? () from /usr/lib/libQtGui.so.4
#16 0xb6165376 in ?? () from /usr/lib/libQtGui.so.4
#17 0xb615db35 in QMainWindow::restoreState(QByteArray const&, int) () from /usr/lib/libQtGui.so.4
#18 0xb68b08b8 in KMainWindow::applyMainWindowSettings(KConfigGroup const&, bool) () from /usr/lib/libkdeui.so.5
#19 0xb68b0aca in KXmlGuiWindow::applyMainWindowSettings(KConfigGroup const&, bool) () from /usr/lib/libkdeui.so.5
#20 0xb67df6ef in KXmlGuiWindow::finalizeGUI(bool) () from /usr/lib/libkdeui.so.5
#21 0xb67df73e in KXMLGUIBuilder::finalizeGUI(KXMLGUIClient*) () from /usr/lib/libkdeui.so.5
#22 0xb67df776 in KXmlGuiWindow::finalizeGUI(KXMLGUIClient*) () from /usr/lib/libkdeui.so.5
#23 0xb694b4ae in KXMLGUIFactory::addClient(KXMLGUIClient*) () from /usr/lib/libkdeui.so.5
#24 0xb7659d17 in KoMainWindow::slotActivePartChanged (this=0x810fd68, newPart=0x821ef78) at /home/boud/kde/src/calligra/libs/main/KoMainWindow.cpp:1604
#25 0xb7657dad in KoMainWindow::qt_metacall (this=0x810fd68, _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbfe77258) at /home/boud/kde/build/calligra/libs/main/KoMainWindow.moc:174
#26 0xb576660d in QMetaObject::metacall (object=0x810fd68, cl=QMetaObject::InvokeMetaMethod, idx=83, argv=0xbfe77258) at kernel/qmetaobject.cpp:237
#27 0xb577680c in QMetaObject::activate (sender=0x82fa4e0, m=0xb710f440, local_signal_index=2, argv=0xbfe77258) at kernel/qobject.cpp:3278
#28 0xb70e3f95 in KParts::PartManager::activePartChanged(KParts::Part*) () from /usr/lib/libkparts.so.4
#29 0xb70e4e35 in KParts::PartManager::setActivePart(KParts::Part*, QWidget*) () from /usr/lib/libkparts.so.4
#30 0xb76559e5 in KoMainWindow::slotRemoveView (this=0x810fd68) at /home/boud/kde/src/calligra/libs/main/KoMainWindow.cpp:1493
#31 0xb7657ccc in KoMainWindow::qt_metacall (this=0x810fd68, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0xbfe77478) at /home/boud/kde/build/calligra/libs/main/KoMainWindow.moc:164
#32 0xb576660d in QMetaObject::metacall (object=0x810fd68, cl=QMetaObject::InvokeMetaMethod, idx=73, argv=0xbfe77478) at kernel/qmetaobject.cpp:237
#33 0xb577680c in QMetaObject::activate (sender=0x8344ac8, m=0xb662eab8, local_signal_index=1, argv=0xbfe77478) at kernel/qobject.cpp:3278
#34 0xb5ce6f4d in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
#35 0xb5ce71eb in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
#36 0xb61837c5 in ?? () from /usr/lib/libQtGui.so.4
#37 0xb618a3d7 in ?? () from /usr/lib/libQtGui.so.4
#38 0xb618b2a5 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#39 0xb674c87c in KMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libkdeui.so.5
#40 0xb5d495e0 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#41 0xb618b7cc in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4
#42 0xb5cee0a4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#43 0xb5cf79c0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#44 0xb67876c1 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#45 0xb575fd6e in QCoreApplication::notifyInternal (this=0xbfe7852c, receiver=0xa2507e8, event=0xbfe77ce4) at kernel/qcoreapplication.cpp:787
#46 0xb5cef14c in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#47 0xb5d7b8d6 in ?? () from /usr/lib/libQtGui.so.4
#48 0xb5d7a81e in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#49 0xb5da5170 in ?? () from /usr/lib/libQtGui.so.4
#50 0xb471cb49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#51 0xb471d350 in ?? () from /usr/lib/libglib-2.0.so.0
#52 0xb471d60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#53 0xb578e51b in QEventDispatcherGlib::processEvents (this=0x8053480, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#54 0xb5da4d6a in ?? () from /usr/lib/libQtGui.so.4
#55 0xb575f04d in QEventLoop::processEvents (this=0xbfe784b4, flags=...) at kernel/qeventloop.cpp:149
#56 0xb575f279 in QEventLoop::exec (this=0xbfe784b4, flags=...) at kernel/qeventloop.cpp:201
#57 0xb5763d20 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#58 0xb5cebda4 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#59 0xb7702de1 in kdemain (argc=2, argv=0xbfe78634) at /home/boud/kde/src/calligra/kpresenter/part/main.cpp:44
#60 0x080487db in main (argc=2, argv=0xbfe78634) at /home/boud/kde/build/calligra/kpresenter/part/kpresenter_dummy.cpp:3

Reported using DrKonqi
Comment 1 Halla Rempt 2011-10-05 09:24:47 UTC
Git commit e08bce93e67dcf0383001ccd3277693af2385fd8 by Boudewijn Rempt.
Committed on 05/10/2011 at 10:48.
Pushed by rempt into branch 'master'.

Remove split view functionality

The Calligra split view functionality has some serious problems:

* we cannot split and have two documents in one view
* it is buggy
* the action list is loaded twice when splitting the view, which means
  that all shortcuts stop working because they are duplicated

REVIEW:101993

BUG:278000
BUG:265200
BUG:239309

We need to redesign this feature and implement it properly. The age-old
hacks (veryHackyActionList...) cannot be fixed, so remove the current
implementation.

M  +0    -3    flow/part/flow.rc
M  +0    -2    karbon/data/karbon.rc
M  +5    -4    libs/main/KoDocument.cpp
M  +5    -136  libs/main/KoMainWindow.cpp
M  +0    -12   libs/main/KoMainWindow.h
M  +0    -3    stage/part/stage.rc
M  +0    -2    stage/stage.rc
M  +0    -3    tables/tables.rc
M  +0    -3    words/part/words.rc

http://commits.kde.org/calligra/e08bce93e67dcf0383001ccd3277693af2385fd8