On Monday 14 May 2012 11:42:33 Thiago Macieira wrote: > On segunda-feira, 14 de maio de 2012 11.36.04, Thiago Macieira wrote: > > On domingo, 6 de maio de 2012 07.47.44, Thiago Macieira wrote: > > > On sábado, 5 de maio de 2012 23.18.18, Giuseppe D'Angelo wrote: > > > > qgraphicsview.cpp-2790- d->useLastMouseEvent = false; > > > > qgraphicsview.cpp-2791- // a hack to pass a viewport pointer to > > > > the scene inside the leave event > > > > qgraphicsview.cpp:2792: Q_ASSERT(event->d == 0); > > > > qgraphicsview.cpp:2793: event->d = > > > > reinterpret_cast<QEventPrivate *>(viewport()); > > > > qgraphicsview.cpp-2794- QApplication::sendEvent(d->scene, > > > > event); > > > > qgraphicsview.cpp-2795- break; > > > > > > Argh! > > > > > > Does anyone have a clean suggestion on how to fix this hack? > > > > Since no one has a suggestion on how to fix the hack, I'll close the task > > and abandon the patch that cleans up QEvent.
I think you should keep the change, just remove the assert. > > I'll add a ### to QEvent saying that the d pointer cannot be used because > > of a hack in graphics view. d pointer can be used if the graphics view hack is taken in account at the time. (example: if there is ever a QEventPrivate, we can change QGraphicsView as this point to use it) > Actually, I have a better idea: I'll just add an extra pointer to QEvent for > the sole reason of letting QGraphicsView use it. > > If someone thinks that adding 4 or 8 bytes to EVERY EVENT is a bad idea, > please help me come up with a better alternative. I think it is a bad idea. My proposed alternative is in the gerrit comments: - Keep your change that adds the appropriate copy contstructor, but take in account the graphicsview hack instead of asserting) - Maybe even void *extra_ptr is a better name than 'd', as long as its usage is internal. -- Olivier Woboq - Qt services and support - http://woboq.com _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
