[Development] Help debugging "impossible condition"

Giuseppe D'Angelo dangelog at gmail.com
Mon May 14 11:46:40 CEST 2012


On 14 May 2012 11:42, Thiago Macieira <thiago.macieira at intel.com> 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'll add a ### to QEvent saying that the d pointer cannot be used because of
>> a hack in graphics view.
>
> 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.

A private QEvent subclass carrying that pointer, to be used by QGV?
-- 
Giuseppe D'Angelo



More information about the Development mailing list