Bug 210640

Summary: assert when ungrouping group
Product: [Unmaintained] kword Reporter: T Zachmann <t.zachmann>
Component: generalAssignee: KOffice Bug Wranglers <koffice-bugs-null>
Status: RESOLVED UNMAINTAINED    
Severity: normal CC: cfeck
Priority: NOR    
Version: git   
Target Milestone: Persona: Berna   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: document to reproduce the problem

Description T Zachmann 2009-10-15 09:04:38 UTC
Version:           svn (using KDE 4.3.2)
OS:                Linux
Installed from:    Compiled From Sources

When a group loaded from odt is ungrouped you get the following bt:

Application: KWord (kword), signal SIGABRT

Thread 1 (Thread 0xb566db60 (LWP 25998)):
[KCrash Handler]
#6  0xb7fa0430 in __kernel_vsyscall ()
#7  0xb62826d0 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb6284098 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb654953f in qt_message_output (msgType=QtFatalMsg, buf=0x98f3840 "ASSERT: \"frame\" in file /home/tz/develop/kde/svn/koffice/kword/part/KWView.cpp, line 1259") at global/qglobal.cpp:2017
#10 0xb65495b6 in qFatal (msg=0xb669f214 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2216
#11 0xb65499f5 in qt_assert (assertion=0xb3f9da6c "frame", file=0xb3f9d948 "/home/tz/develop/kde/svn/koffice/kword/part/KWView.cpp", line=1259) at global/qglobal.cpp:1786
#12 0xb3f3e0e5 in KWView::selectionChanged (this=0xa2e50c0) at /home/tz/develop/kde/svn/koffice/kword/part/KWView.cpp:1259
#13 0xb3f28012 in KWView::qt_metacall (this=0xa2e50c0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbf9bd63c) at /home/ko2/koffice-build/kword/part/moc_KWView.cpp:114
#14 0xb66601a7 in QMetaObject::activate (sender=0xaa9ace0, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3117
#15 0xb6661573 in QMetaObject::activate (sender=0xaa9ace0, m=0xb7dbd284, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3194
#16 0xb7d0d7d7 in KoSelection::selectionChanged (this=0xaa9ace0) at /home/ko2/koffice-build/libs/flake/KoSelection.moc:87
#17 0xb7d0e475 in KoSelectionPrivate::selectionChangedEvent (this=0xaa9ad40) at /home/tz/develop/kde/svn/koffice/libs/flake/KoSelection.cpp:78
#18 0xb7d0e518 in KoSelection::qt_metacall (this=0xaa9ace0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbf9bd76c) at /home/ko2/koffice-build/libs/flake/KoSelection.moc:76
#19 0xb66601a7 in QMetaObject::activate (sender=0xb2c34e8, from_signal_index=4, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3117
#20 0xb6661573 in QMetaObject::activate (sender=0xb2c34e8, m=0xb6704908, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3194
#21 0xb66686a9 in QSingleShotTimer::timeout (this=0xb2c34e8) at .moc/debug-shared/qtimer.moc:76
#22 0xb66687c4 in QSingleShotTimer::timerEvent (this=0xb2c34e8) at kernel/qtimer.cpp:298
#23 0xb665dfa6 in QObject::event (this=0xb2c34e8, e=0xbf9bdcb4) at kernel/qobject.cpp:1082
#24 0xb6b1f8ed in QApplicationPrivate::notify_helper (this=0x95efd10, receiver=0xb2c34e8, e=0xbf9bdcb4) at kernel/qapplication.cpp:4057
#25 0xb6b1fc62 in QApplication::notify (this=0xbf9bdf4c, receiver=0xb2c34e8, e=0xbf9bdcb4) at kernel/qapplication.cpp:3604
#26 0xb75dccbd in KApplication::notify (this=0xbf9bdf4c, receiver=0xb2c34e8, event=0xbf9bdcb4) at /home/tz/develop/kde/svn/kdelibs/kdeui/kernel/kapplication.cpp:307
#27 0xb6649b67 in QCoreApplication::notifyInternal (this=0xbf9bdf4c, receiver=0xb2c34e8, event=0xbf9bdcb4) at kernel/qcoreapplication.cpp:606
#28 0xb6b1c2d5 in QCoreApplication::sendEvent (receiver=0xb2c34e8, event=0xbf9bdcb4) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#29 0xb667be31 in QTimerInfoList::activateTimers (this=0x95f29c4) at kernel/qeventdispatcher_unix.cpp:572
#30 0xb66796e1 in timerSourceDispatch (source=0x95f2990) at kernel/qeventdispatcher_glib.cpp:164
#31 0xb5a74b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#32 0xb5a780eb in ?? () from /usr/lib/libglib-2.0.so.0
#33 0xb5a78268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#34 0xb66789e2 in QEventDispatcherGlib::processEvents (this=0x95dd808, flags={i = -1080304076}) at kernel/qeventdispatcher_glib.cpp:324
#35 0xb6bce688 in QGuiEventDispatcherGlib::processEvents (this=0x95dd808, flags={i = -1080304028}) at kernel/qguieventdispatcher_glib.cpp:202
#36 0xb6646b58 in QEventLoop::processEvents (this=0xbf9bdef0, flags={i = -1080303952}) at kernel/qeventloop.cpp:149
#37 0xb6646db2 in QEventLoop::exec (this=0xbf9bdef0, flags={i = -1080303880}) at kernel/qeventloop.cpp:196
#38 0xb664a33f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#39 0xb6b1f606 in QApplication::exec () at kernel/qapplication.cpp:3526
#40 0xb7f9ae08 in kdemain (argc=1, argv=0xbf9be044) at /home/tz/develop/kde/svn/koffice/kword/part/main.cpp:38
#41 0x08048796 in main (argc=) at /home/ko2/koffice-build/kword/part/kword_dummy.cpp:3
Comment 1 T Zachmann 2009-10-15 09:07:14 UTC
Created attachment 37589 [details]
document to reproduce the problem

Ungroup the 2 orange rectangles to reproduce the problem
Comment 2 Thomas Zander 2009-10-15 11:05:21 UTC
Quick guess, the group was a frame, now ungrouping means each of the shapes has to be a frame (which decorates a shape). If thats missing then the assert comes.
Comment 3 Thomas Zander 2010-04-16 17:08:12 UTC
I just noticed that grouping two frames leads to there being 3 frames, which is also incorrect.
Comment 4 T Zachmann 2010-04-17 06:26:41 UTC
I think moving to normal is wrong as it will crash when the assert is not in, so crash as severity is right.
Comment 5 Thomas Zander 2010-04-17 11:04:05 UTC
When you are right, you are right. Setting to 'crash' severity.
Comment 6 Sven Langkamp 2010-07-16 03:10:45 UTC
Crashes in all KOffice applications, though with a different backtrace.
Comment 7 Sven Langkamp 2010-07-16 15:03:48 UTC
I notice that the d->oldInheritTransform isn't correctly initialized as the constructor call by the ungroup command doesn't call init()

I tried this change, but that causes the ungrouped shapes to disappear from the document:
Index: commands/KoShapeGroupCommand.cpp
===================================================================
--- commands/KoShapeGroupCommand.cpp    (Revision 1145886)
+++ commands/KoShapeGroupCommand.cpp    (Arbeitskopie)
@@ -78,6 +78,7 @@
     : QUndoCommand(parent),
     d(&dd)
 {
+    d->init(this);
 }
 
 void KoShapeGroupCommandPrivate::init(QUndoCommand *q)
Comment 8 Thomas Zander 2010-07-17 18:12:27 UTC
SVN commit 1151057 by zander:

Also store the inherit-transform here

Spotted by Sven, thanks.

CCBUG:210640

 M  +1 -0      KoShapeUngroupCommand.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1151057
Comment 9 Christoph Feck 2015-02-06 13:05:44 UTC
Thank you for your bug report or feature suggestion.

The "KOffice" application suite is no longer maintained, and all tickets are now closed.

We recommend to switch to the "Calligra" application suite, which has replacements for all unmaintained KOffice applications:

- KWord was replaced with Calligra Words
- KPlato was replaced with Calligra Plan

For more information, see http://en.wikipedia.org/wiki/Calligra_Suite

(This is an automatic message from the KDE bug triaging team)