Hi, I'm interesting in know more about it, but the thread didn't continued.
Regards CdQ On Tue, Jan 26, 2010 at 8:04 AM, Viktor Szakáts <[email protected]>wrote: > Hi Pritpal, > > I see this code in hbxbp: > --- > METHOD HbpQtUI:destroy() > LOCAL a_ > > FOR EACH a_ IN ::aSignals > Qt_Slots_disConnect( ::pSlots, a_[ 1 ], a_[ 2 ] ) > NEXT > > FOR EACH a_ IN ::aEvents > Qt_Events_disConnect( ::pEvents, a_[ 1 ], a_[ 2 ] ) > NEXT > > ... > > RETURN NIL > > METHOD HbpQtUI:event( cWidget, nEvent, bBlock ) > > IF hb_hHasKey( ::qObj, cWidget ) > IF Qt_Events_Connect( ::pEvents, ::qObj[ cWidget ], nEvent, bBlock ) > aadd( ::aEvents, { ::qObj[ cWidget ], nEvent } ) > ENDIF > ENDIF > > RETURN Self > --- > > Which is redundant, because we're keeping track > of events/slots in both ::pSlots/::pEvents, and > also maintaining a .prg level copy of the list in > ::aSlots/::aEvents. It's also prone to leak/GPF, as > it's up to .prg level code to make sure all slots/events > are disconnected. > > By using GC facility, would it be possible to rework > hbqt low-levels, to allow for this code, solving both > problems: > --- > METHOD HbpQtUI:destroy() > LOCAL a_ > > ::pSlots := NIL > ::pEvents := NIL > > ... > > RETURN NIL > > METHOD HbpQtUI:event( cWidget, nEvent, bBlock ) > > IF cWidget $ ::qObj > Qt_Events_Connect( ::pEvents, ::qObj[ cWidget ], nEvent, bBlock ) > ENDIF > > RETURN Self > --- > > What do you think? > > Brgds, > Viktor > > _______________________________________________ > Harbour mailing list (attachment size limit: 40KB) > [email protected] > http://lists.harbour-project.org/mailman/listinfo/harbour >
_______________________________________________ Harbour mailing list (attachment size limit: 40KB) [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour
