3.1: Fix crash when dragging Image box
Closed, ResolvedPublic

Description

Fix crash:

  • run KReportExample 3.1
  • insert image box element so it takes entire height of the section:

  • drag it

Infinite recursion around KReportDesignerItemRectBase::itemChange:

1   KReportDesignerItemRectBase::itemChange                                                                                    KReportDesignerItemRectBase.cpp       293 0x7ffff7b3617d 
2   QGraphicsItem::setPos(QPointF const&)                                                                                                                                0x7ffff62baefa 
3   QGraphicsItem::setPos                                                                                                      qgraphicsitem.h                       494 0x7ffff7b3163d 
4   KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       80  0x7ffff7b33cf3 
5   KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       75  0x7ffff7b33cae 
6   KReportDesignerItemRectBase::propertyChanged                                                                               KReportDesignerItemRectBase.cpp       329 0x7ffff7b3660b 
7   KReportDesignerItemImage::slotPropertyChanged                                                                              KReportDesignerItemImage.cpp          142 0x7ffff7b77c10 
8   KReportDesignerItemImage::qt_static_metacall                                                                               moc_KReportDesigne_S62VOTPM37U3VM.cpp 74  0x7ffff7b8701c 
9   QMetaObject::activate(QObject *, int, int, void * *)                                                                                                                 0x7ffff53760d5 
10  KPropertySet::propertyChanged(KPropertySet&, KProperty&)                                                                                                             0x7ffff7109d8d 
11  KProperty::Private::emitPropertyChanged()                                                                                                                            0x7ffff70f61c5 
12  KProperty::Private::setValueInternal(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                0x7ffff70f5a9b 
13  KProperty::setValue(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                                 0x7ffff70f687c 
14  KReportItemBase::setPosition                                                                                               KReportItemBase.cpp                   210 0x7ffff7af75c9 
15  KReportDesignerItemRectBase::itemChange                                                                                    KReportDesignerItemRectBase.cpp       293 0x7ffff7b361f3 
16  QGraphicsItem::setPos(QPointF const&)                                                                                                                                0x7ffff62baefa 
17  QGraphicsItem::setPos                                                                                                      qgraphicsitem.h                       494 0x7ffff7b3163d 
18  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       80  0x7ffff7b33cf3 
19  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       75  0x7ffff7b33cae 
20  KReportDesignerItemRectBase::propertyChanged                                                                               KReportDesignerItemRectBase.cpp       329 0x7ffff7b3660b 
21  KReportDesignerItemImage::slotPropertyChanged                                                                              KReportDesignerItemImage.cpp          142 0x7ffff7b77c10 
22  KReportDesignerItemImage::qt_static_metacall                                                                               moc_KReportDesigne_S62VOTPM37U3VM.cpp 74  0x7ffff7b8701c 
23  QMetaObject::activate(QObject *, int, int, void * *)                                                                                                                 0x7ffff53760d5 
24  KPropertySet::propertyChanged(KPropertySet&, KProperty&)                                                                                                             0x7ffff7109d8d 
25  KProperty::Private::emitPropertyChanged()                                                                                                                            0x7ffff70f61c5 
26  KProperty::Private::setValueInternal(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                0x7ffff70f5a9b 
27  KProperty::setValue(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                                 0x7ffff70f687c 
28  KReportItemBase::setPosition                                                                                               KReportItemBase.cpp                   210 0x7ffff7af75c9 
29  KReportDesignerItemRectBase::itemChange                                                                                    KReportDesignerItemRectBase.cpp       293 0x7ffff7b361f3 
30  QGraphicsItem::setPos(QPointF const&)                                                                                                                                0x7ffff62baefa 
31  QGraphicsItem::setPos                                                                                                      qgraphicsitem.h                       494 0x7ffff7b3163d 
32  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       80  0x7ffff7b33cf3 
33  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       75  0x7ffff7b33cae 
34  KReportDesignerItemRectBase::propertyChanged                                                                               KReportDesignerItemRectBase.cpp       329 0x7ffff7b3660b 
35  KReportDesignerItemImage::slotPropertyChanged                                                                              KReportDesignerItemImage.cpp          142 0x7ffff7b77c10 
36  KReportDesignerItemImage::qt_static_metacall                                                                               moc_KReportDesigne_S62VOTPM37U3VM.cpp 74  0x7ffff7b8701c 
37  QMetaObject::activate(QObject *, int, int, void * *)                                                                                                                 0x7ffff53760d5 
38  KPropertySet::propertyChanged(KPropertySet&, KProperty&)                                                                                                             0x7ffff7109d8d 
39  KProperty::Private::emitPropertyChanged()                                                                                                                            0x7ffff70f61c5 
40  KProperty::Private::setValueInternal(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                0x7ffff70f5a9b 
41  KProperty::setValue(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                                 0x7ffff70f687c 
42  KReportItemBase::setPosition                                                                                               KReportItemBase.cpp                   210 0x7ffff7af75c9 
43  KReportDesignerItemRectBase::itemChange                                                                                    KReportDesignerItemRectBase.cpp       293 0x7ffff7b361f3 
44  QGraphicsItem::setPos(QPointF const&)                                                                                                                                0x7ffff62baefa 
45  QGraphicsItem::setPos                                                                                                      qgraphicsitem.h                       494 0x7ffff7b3163d 
46  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       80  0x7ffff7b33cf3 
47  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       75  0x7ffff7b33cae 
48  KReportDesignerItemRectBase::propertyChanged                                                                               KReportDesignerItemRectBase.cpp       329 0x7ffff7b3660b 
49  KReportDesignerItemImage::slotPropertyChanged                                                                              KReportDesignerItemImage.cpp          142 0x7ffff7b77c10 
50  KReportDesignerItemImage::qt_static_metacall                                                                               moc_KReportDesigne_S62VOTPM37U3VM.cpp 74  0x7ffff7b8701c 
51  QMetaObject::activate(QObject *, int, int, void * *)                                                                                                                 0x7ffff53760d5 
52  KPropertySet::propertyChanged(KPropertySet&, KProperty&)                                                                                                             0x7ffff7109d8d 
53  KProperty::Private::emitPropertyChanged()                                                                                                                            0x7ffff70f61c5 
54  KProperty::Private::setValueInternal(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                0x7ffff70f5a9b 
55  KProperty::setValue(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                                 0x7ffff70f687c 
56  KReportItemBase::setPosition                                                                                               KReportItemBase.cpp                   210 0x7ffff7af75c9 
57  KReportDesignerItemRectBase::itemChange                                                                                    KReportDesignerItemRectBase.cpp       293 0x7ffff7b361f3 
58  QGraphicsItem::setPos(QPointF const&)                                                                                                                                0x7ffff62baefa 
59  QGraphicsItem::setPos                                                                                                      qgraphicsitem.h                       494 0x7ffff7b3163d 
60  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       80  0x7ffff7b33cf3 
61  KReportDesignerItemRectBase::setSceneRect                                                                                  KReportDesignerItemRectBase.cpp       75  0x7ffff7b33cae 
62  KReportDesignerItemRectBase::propertyChanged                                                                               KReportDesignerItemRectBase.cpp       329 0x7ffff7b3660b 
63  KReportDesignerItemImage::slotPropertyChanged                                                                              KReportDesignerItemImage.cpp          142 0x7ffff7b77c10 
64  KReportDesignerItemImage::qt_static_metacall                                                                               moc_KReportDesigne_S62VOTPM37U3VM.cpp 74  0x7ffff7b8701c 
65  QMetaObject::activate(QObject *, int, int, void * *)                                                                                                                 0x7ffff53760d5 
66  KPropertySet::propertyChanged(KPropertySet&, KProperty&)                                                                                                             0x7ffff7109d8d 
67  KProperty::Private::emitPropertyChanged()                                                                                                                            0x7ffff70f61c5 
68  KProperty::Private::setValueInternal(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                0x7ffff70f5a9b 
69  KProperty::setValue(QVariant const&, QFlags<KProperty::ValueOption>)                                                                                                 0x7ffff70f687c 
70  KReportItemBase::setPosition                                                                                               KReportItemBase.cpp                   210 0x7ffff7af75c9 
71  KReportDesignerItemRectBase::itemChange                                                                                    KReportDesignerItemRectBase.cpp       293 0x7ffff7b361f3 
72  QGraphicsItem::setPos(QPointF const&)                                                                                                                                0x7ffff62baefa 
73  QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *) [clone .part.169]                                                                                          0x7ffff62ca466 
74  KReportDesignerItemRectBase::mouseMoveEvent                                                                                KReportDesignerItemRectBase.cpp       160 0x7ffff7b34fab 
75  QGraphicsItem::sceneEvent(QEvent *)                                                                                                                                  0x7ffff62c4b55 
76  QGraphicsScenePrivate::sendMouseEvent(QGraphicsSceneMouseEvent *)                                                                                                    0x7ffff62e9651 
77  QGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *)                                                                                                           0x7ffff62eeab6 
78  QGraphicsScene::event(QEvent *)                                                                                                                                      0x7ffff62f9564 
79  QApplicationPrivate::notify_helper(QObject *, QEvent *)                                                                                                              0x7ffff60011bc 
80  QApplication::notify(QObject *, QEvent *)                                                                                                                            0x7ffff60080f0 
81  QCoreApplication::notifyInternal2(QObject *, QEvent *)                                                                                                               0x7ffff534e245 
82  QGraphicsViewPrivate::mouseMoveEventHandler(QMouseEvent *)                                                                                                           0x7ffff6313e50 
83  QWidget::event(QEvent *)                                                                                                                                             0x7ffff6044c5e 
84  QFrame::event(QEvent *)                                                                                                                                              0x7ffff61253ae 
85  QGraphicsView::viewportEvent(QEvent *)                                                                                                                               0x7ffff63169d3 
86  QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject *, QEvent *)                                                                                          0x7ffff534e111 
87  QApplicationPrivate::notify_helper(QObject *, QEvent *)                                                                                                              0x7ffff6001195 
88  QApplication::notify(QObject *, QEvent *)                                                                                                                            0x7ffff60087d5 
89  QCoreApplication::notifyInternal2(QObject *, QEvent *)                                                                                                               0x7ffff534e245 
90  QApplicationPrivate::sendMouseEvent(QWidget *, QMouseEvent *, QWidget *, QWidget *, QWidget * *, QPointer<QWidget>&, bool)                                           0x7ffff60075eb 
91  QWidgetWindow::handleMouseEvent(QMouseEvent *)                                                                                                                       0x7ffff605e521 
92  QWidgetWindow::event(QEvent *)                                                                                                                                       0x7ffff6060a83 
93  QApplicationPrivate::notify_helper(QObject *, QEvent *)                                                                                                              0x7ffff60011bc 
94  QApplication::notify(QObject *, QEvent *)                                                                                                                            0x7ffff60080f0 
95  QCoreApplication::notifyInternal2(QObject *, QEvent *)                                                                                                               0x7ffff534e245 
96  QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent *)                                                                               0x7ffff589fd1b 
97  QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent *)                                                                 0x7ffff58a1895 
98  QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                0x7ffff58813fb 
99  userEventSourceDispatch(_GSource *, int ( *)(void *), void *)                                                                                                        0x7fffec727da0 
100 g_main_context_dispatch                                                                                                                                              0x7ffff1ac4134 
101 ??                                                                                                                                                                   0x7ffff1ac4388 
102 g_main_context_iteration                                                                                                                                             0x7ffff1ac442c 
103 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                           0x7ffff539c88c 
104 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                                              0x7ffff534c6ab 
105 QCoreApplication::exec()                                                                                                                                             0x7ffff5354344 
106 main                                                                                                                       main.cpp                              39  0x407e02

Note: image boxes that have size smaller than the size of the section don't crash:

staniek created this task.Jul 21 2017, 10:15 PM
piggz claimed this task.Jul 23 2017, 7:11 PM
piggz added a subscriber: piggz.

I have no such crash (3.1)

staniek updated the task description. (Show Details)Jul 23 2017, 11:36 PM
staniek updated the task description. (Show Details)

@piggz Updated description

staniek closed this task as Resolved.Jul 24 2017, 9:01 PM