2009-10-02 23:35 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbxbp/xbpappevent.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
! Changes to reflect modifications in hbqt.lib where QMainWindow()
is subclassed to catch and fine-tune MT windows and memory management.
This commit had to be along previous one but somehow I skipped.
This commit is contained in:
@@ -17,6 +17,16 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-10-02 23:35 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/hbxbp/xbpappevent.prg
|
||||
* contrib/hbxbp/xbpbrowse.prg
|
||||
* contrib/hbxbp/xbpdialog.prg
|
||||
* contrib/hbxbp/xbpgeneric.prg
|
||||
* contrib/hbxbp/xbpwindow.prg
|
||||
! Changes to reflect modifications in hbqt.lib where QMainWindow()
|
||||
is subclassed to catch and fine-tune MT windows and memory management.
|
||||
This commit had to be along previous one but somehow I skipped.
|
||||
|
||||
2009-10-02 16:53 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/mpkg_src.sh
|
||||
! fixed default root path settings after moving the file from bin
|
||||
|
||||
@@ -178,6 +178,7 @@ FUNCTION XbpQKeyEventToAppEvent( pEvent )
|
||||
key := oKeyEvent:key()
|
||||
kbm := oKeyEvent:modifiers()
|
||||
txt := oKeyEvent:text()
|
||||
oKeyEvent:destroy()
|
||||
|
||||
SWITCH( key )
|
||||
CASE Qt_Key_Escape
|
||||
|
||||
@@ -685,7 +685,7 @@ METHOD XbpBrowse:exeBlock( nEvent, p1, p2, p3 )
|
||||
LOCAL oWheelEvent, oMouseEvent, i, nRow, nRowPos, nCol, nColPos, oPoint
|
||||
|
||||
HB_SYMBOL_UNUSED( p2 )
|
||||
|
||||
//xbp_debug( " exeblock:", nEvent )
|
||||
DO CASE
|
||||
CASE nEvent == 1 /* Keypress Event */
|
||||
SetAppEvent( xbeP_Keyboard, XbpQKeyEventToAppEvent( p1 ), NIL, self )
|
||||
@@ -946,6 +946,7 @@ METHOD handleEvent( nEvent, mp1, mp2 ) CLASS XbpBrowse
|
||||
|
||||
METHOD XbpBrowse:supplyInfo( nMode, nInfo, p2, p3 )
|
||||
|
||||
//xbp_debug( 'supplyInfo:',nMode )
|
||||
DO CASE
|
||||
CASE nMode == 141 /* Main View Header|Data */
|
||||
IF nInfo == HBQT_BRW_COLCOUNT
|
||||
@@ -1183,11 +1184,13 @@ METHOD setHorzOffset() CLASS XbpBrowse
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD setCurrentIndex( lReset ) CLASS XbpBrowse
|
||||
LOCAL pIndex
|
||||
|
||||
DEFAULT lReset TO .t.
|
||||
//
|
||||
IF lReset
|
||||
::oDbfModel:reset() /* Important */
|
||||
//
|
||||
IF hb_isObject( ::oLeftDbfModel )
|
||||
::oLeftDbfModel:reset()
|
||||
ENDIF
|
||||
@@ -1196,9 +1199,9 @@ METHOD setCurrentIndex( lReset ) CLASS XbpBrowse
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
Qt_QModelIndex_destroy( ::pCurIndex )
|
||||
::pCurIndex := ::oDbfModel:index( ::rowPos - 1, ::colPos - 1 )
|
||||
::oTableView:setCurrentIndex( ::pCurIndex )
|
||||
pIndex := ::oDbfModel:index( ::rowPos - 1, ::colPos - 1 )
|
||||
::oTableView:setCurrentIndex( pIndex )
|
||||
Qt_QModelIndex_destroy( pIndex )
|
||||
|
||||
RETURN Self
|
||||
|
||||
@@ -1634,13 +1637,17 @@ METHOD doConfigure() CLASS XbpBrowse
|
||||
|
||||
::setHorzScrollBarRange()
|
||||
|
||||
/* Inform Qt about number of rows and columns browser implements */
|
||||
::oDbfModel:hbSetRowColumns( ::rowCount - 1, ::colCount - 1 )
|
||||
/* Tell Qt to Reload Everything */
|
||||
::oDbfModel:reset()
|
||||
//
|
||||
IF hb_isObject( ::oLeftDbfModel )
|
||||
::oLeftDbfModel:hbSetRowColumns( ::rowCount - 1, ::nLeftFrozen - 1 )
|
||||
::oLeftDbfModel:reset()
|
||||
ENDIF
|
||||
IF hb_isObject( ::oRightDbfModel )
|
||||
::oRightDbfModel:hbSetRowColumns( ::rowCount - 1, ::nRightFrozen - 1 )
|
||||
::oRightDbfModel:reset()
|
||||
ENDIF
|
||||
|
||||
|
||||
@@ -124,8 +124,10 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
|
||||
|
||||
::cargo := ThreadID() /* To Be Removed */
|
||||
|
||||
::oWidget := QMainWindow():new()
|
||||
::oWidget:setAttribute( Qt_WA_DeleteOnClose )
|
||||
//::oWidget := QMainWindow():new()
|
||||
::oWidget := QMainWindow():configure( QT_MyMainWindow( {|n,p| ::grabEvent( n,p ) }, ThreadID() ) )
|
||||
//::oWidget:setAttribute( Qt_WA_DeleteOnClose )
|
||||
//::oWidget:setMouseTracking( .t. )
|
||||
|
||||
IF !empty( ::title )
|
||||
::oWidget:setWindowTitle( ::title )
|
||||
@@ -146,6 +148,12 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
|
||||
|
||||
SetAppWindow( Self )
|
||||
|
||||
QT_MUTEXCREATE() //-------------//
|
||||
|
||||
/* Initialize Qt's event stacks */
|
||||
QT_SetEventSlots()
|
||||
QT_SetEventFilter()
|
||||
|
||||
/* Thread specific event buffer */
|
||||
InitializeEventBuffer()
|
||||
|
||||
@@ -154,13 +162,16 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
|
||||
::oEventLoop := QEventLoop():new( ::pWidget )
|
||||
SetEventLoop( ::oEventLoop )
|
||||
|
||||
#if 0
|
||||
/* Instal Event Filter */
|
||||
::oWidget:installEventFilter( SetEventFilter() )
|
||||
|
||||
::connectWindowEvents()
|
||||
|
||||
::connectEvent( ::pWidget, QEvent_Close , {|o,e| ::exeBlock( QEvent_Close , e, o ) } )
|
||||
::connectEvent( ::pWidget, QEvent_WindowActivate , {|o,e| ::exeBlock( QEvent_WindowActivate , e, o ) } )
|
||||
::connectEvent( ::pWidget, QEvent_WindowDeactivate, {|o,e| ::exeBlock( QEvent_WindowDeactivate, e, o ) } )
|
||||
|
||||
#endif
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -172,7 +183,6 @@ METHOD XbpDialog:exeBlock( nEvent, pEvent )
|
||||
|
||||
DO CASE
|
||||
CASE nEvent == QEvent_WindowActivate
|
||||
SetAppWindow( Self ) /* TO REVIEW */
|
||||
SetAppEvent( xbeP_SetDisplayFocus, NIL, NIL, Self )
|
||||
lRet := .T.
|
||||
|
||||
@@ -206,11 +216,13 @@ METHOD XbpDialog:configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible
|
||||
|
||||
METHOD XbpDialog:destroy()
|
||||
|
||||
SetEventLoop( NIL )
|
||||
::oEventLoop:exit( 0 )
|
||||
::oEventLoop:destroy()
|
||||
|
||||
::xbpWindow:destroy()
|
||||
|
||||
::oWidget:destroy()
|
||||
// ::oWidget:destroy()
|
||||
|
||||
RETURN nil
|
||||
|
||||
@@ -307,8 +319,9 @@ METHOD XbpDrawingArea:create( oParent, oOwner, aPos, aSize, aPresParams, lVisibl
|
||||
::oParent:addChild( SELF )
|
||||
|
||||
/* Connects All Event Handlers */
|
||||
::connectWindowEvents()
|
||||
//::connectWindowEvents()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -92,8 +92,6 @@ THREAD STATIC oDummy
|
||||
|
||||
THREAD STATIC oAppWindow
|
||||
|
||||
//THREAD STATIC sEventFilter
|
||||
STATIC sEventFilter
|
||||
THREAD STATIC oEventLoop
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -121,9 +119,23 @@ FUNCTION InitializeEventBuffer()
|
||||
|
||||
IF empty( ts_events )
|
||||
ts_events := array( EVENT_BUFFER )
|
||||
aeval( ts_events, {|e,i| e := e, ts_events[ i ] := { 0, NIL, NIL, NIL, -9999 } } )
|
||||
aeval( ts_events, {|e,i| e := e, ts_events[ i ] := { 0, NIL, NIL, NIL } } )
|
||||
ENDIF
|
||||
//xbp_debug( len( ts_events ) )
|
||||
|
||||
RETURN nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION SetEventFilter()
|
||||
|
||||
RETURN QT_QEventFilter()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION SetEventLoop( oELoop )
|
||||
|
||||
oEventLoop := oELoop
|
||||
|
||||
RETURN nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -135,22 +147,22 @@ FUNCTION SetAppEvent( nEvent, mp1, mp2, oXbp )
|
||||
IF ++nEventIn > EVENT_BUFFER
|
||||
nEventIn := 1
|
||||
ENDIF
|
||||
|
||||
xbp_debug( "SetAppEvent ... ", threadID(), nEventIn )
|
||||
|
||||
#if 0
|
||||
xbp_debug( 0, "SetAppEvent ... ", threadID(), nEvent, xbeP_Paint )
|
||||
#endif
|
||||
ts_events[ nEventIn,1 ] := nEvent
|
||||
ts_events[ nEventIn,2 ] := mp1
|
||||
ts_events[ nEventIn,3 ] := mp2
|
||||
ts_events[ nEventIn,4 ] := oXbp
|
||||
ts_events[ nEventIn,5 ] := ThreadID()
|
||||
|
||||
//xbp_debug( 1, "SetAppEvent ... ", threadID(), nEvent )
|
||||
RETURN nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION AppEvent( mp1, mp2, oXbp, nTimeout )
|
||||
LOCAL nEvent
|
||||
LOCAL nThreadID := ThreadID()
|
||||
//LOCAL nThreadID := ThreadID()
|
||||
|
||||
//DEFAULT nTimeout TO 0
|
||||
HB_SYMBOL_UNUSED( nTimeOut )
|
||||
@@ -158,24 +170,21 @@ FUNCTION AppEvent( mp1, mp2, oXbp, nTimeout )
|
||||
IF ++nEventOut > EVENT_BUFFER
|
||||
nEventOut := 1
|
||||
ENDIF
|
||||
xbp_debug( " AppEvent ... ", nThreadID, nEventOut )
|
||||
DO WHILE .t.
|
||||
oEventLoop:processEvents( 0 )
|
||||
//xbp_debug( " AppEvent ... ", nThreadID, nEventOut )
|
||||
DO WHILE !empty( oEventLoop ) //.t.
|
||||
oEventLoop:processEvents( QEventLoop_AllEvents )
|
||||
|
||||
IF ts_events[ nEventOut,5 ] == nThreadID
|
||||
IF !empty( ts_events[ nEventOut,4 ] )
|
||||
nEvent := ts_events[ nEventOut,1 ]
|
||||
mp1 := ts_events[ nEventOut,2 ]
|
||||
mp2 := ts_events[ nEventOut,3 ]
|
||||
oXbp := ts_events[ nEventOut,4 ]
|
||||
|
||||
ts_events[ nEventOut,5 ] := -9999 /* an arbirary value never reached by ThreadID() */
|
||||
|
||||
ts_events[ nEventOut,4 ] := NIL
|
||||
EXIT
|
||||
ENDIF
|
||||
|
||||
hb_idleSleep( 0.001 ) /* Releases CPU cycles */
|
||||
hb_idleSleep( 0.01 ) /* Releases CPU cycles */
|
||||
ENDDO
|
||||
xbp_debug( "..........................", threadID() )
|
||||
//xbp_debug( "..........................", threadID() )
|
||||
|
||||
RETURN nEvent
|
||||
|
||||
@@ -184,16 +193,12 @@ xbp_debug( "..........................", threadID() )
|
||||
FUNCTION SetAppWindow( oXbp )
|
||||
LOCAL oldAppWindow
|
||||
|
||||
//hb_outDebug( str( threadId() )+' 0' )
|
||||
|
||||
oldAppWindow := oAppWindow
|
||||
|
||||
IF hb_isObject( oXbp )
|
||||
oAppWindow := oXbp
|
||||
ENDIF
|
||||
|
||||
//hb_outDebug( str( threadId() )+' 1' )
|
||||
|
||||
RETURN oldAppWindow
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -267,20 +272,6 @@ FUNCTION GraMakeRGBColor( aRGB )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION SetEventFilter()
|
||||
|
||||
RETURN QT_QEventFilter()
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION SetEventLoop( oELoop )
|
||||
|
||||
oEventLoop := oELoop
|
||||
|
||||
RETURN nil
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#define CRLF chr( 13 )+chr( 10 )
|
||||
|
||||
FUNCTION Xbp_Debug( ... )
|
||||
|
||||
@@ -390,7 +390,7 @@ METHOD XbpWindow:connectEvent( pWidget, nEvent, bBlock )
|
||||
|
||||
METHOD XbpWindow:connectWindowEvents()
|
||||
|
||||
::oWidget:installEventFilter( SetEventFilter() )
|
||||
//::oWidget:installEventFilter( SetEventFilter() )
|
||||
|
||||
::connectEvent( ::pWidget, QEvent_MouseMove , {|o,e| ::grabEvent( QEvent_MouseMove , e, o ) } )
|
||||
::connectEvent( ::pWidget, QEvent_MouseButtonPress , {|o,e| ::grabEvent( QEvent_MouseButtonPress , e, o ) } )
|
||||
@@ -421,22 +421,19 @@ METHOD XbpWindow:connectWindowEvents()
|
||||
*/
|
||||
METHOD XbpWindow:grabEvent( nEvent, pEvent, oXbp )
|
||||
LOCAL oEvent, nXbpKey, oP0, oP1, oObj_O, oObj_N
|
||||
LOCAL lRet := .F.
|
||||
LOCAL lRet := .t.
|
||||
|
||||
HB_SYMBOL_UNUSED( oXbp )
|
||||
|
||||
SWITCH ( nEvent )
|
||||
|
||||
CASE QEvent_MouseMove // :motion()
|
||||
//hb_outDebug( "QEvent_MouseMove: "+hb_ntos( ThreadID() ) )
|
||||
oEvent := QMouseEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QMouseEvent():configure( pEvent )
|
||||
SetAppEvent( xbeM_Motion, { oEvent:x(), oEvent:y() }, NIL, self )
|
||||
EXIT
|
||||
CASE QEvent_MouseButtonPress // :lbClick() :mbClick() :rbClick()
|
||||
// :lbDown() :mbDown() :rbDown()
|
||||
oEvent := QMouseEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QMouseEvent():configure( pEvent )
|
||||
DO CASE
|
||||
CASE oEvent:button() == Qt_LeftButton
|
||||
SetAppEvent( xbeM_LbDown, { oEvent:x(), oEvent:y() }, NIL, self )
|
||||
@@ -447,8 +444,7 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent, oXbp )
|
||||
ENDCASE
|
||||
EXIT
|
||||
CASE QEvent_MouseButtonRelease // :mbUp() :rbUp() :lbUp()
|
||||
oEvent := QMouseEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QMouseEvent():configure( pEvent )
|
||||
DO CASE
|
||||
CASE oEvent:button() == Qt_LeftButton
|
||||
SetAppEvent( xbeM_LbUp, { oEvent:x(), oEvent:y() }, NIL, self )
|
||||
@@ -459,8 +455,7 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent, oXbp )
|
||||
ENDCASE
|
||||
EXIT
|
||||
CASE QEvent_MouseButtonDblClick // :lbDblClick() :mbDblClick() :rbDblClick()
|
||||
oEvent := QMouseEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QMouseEvent():configure( pEvent )
|
||||
DO CASE
|
||||
CASE oEvent:button() == Qt_LeftButton
|
||||
SetAppEvent( xbeM_LbDblClick, { oEvent:x(), oEvent:y() }, NIL, self )
|
||||
@@ -472,70 +467,66 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent, oXbp )
|
||||
EXIT
|
||||
CASE QEvent_Enter // :enter()
|
||||
IF ( ::lTrack )
|
||||
oEvent := QMouseEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QMouseEvent():configure( pEvent )
|
||||
SetAppEvent( xbeM_Enter, { oEvent:x(), oEvent:y() }, NIL, self )
|
||||
ENDIF
|
||||
lRet := .f.
|
||||
EXIT
|
||||
CASE QEvent_Leave // :leave()
|
||||
IF ( ::lTrack )
|
||||
oEvent := QMouseEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QMouseEvent():configure( pEvent )
|
||||
SetAppEvent( xbeM_Leave, { oEvent:x(), oEvent:y() }, NIL, self )
|
||||
ENDIF
|
||||
lRet := .f.
|
||||
EXIT
|
||||
CASE QEvent_Wheel // :wheel()
|
||||
oEvent := QWheelEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QWheelEvent():configure( pEvent )
|
||||
SetAppEvent( xbeM_Wheel, { oEvent:x(), oEvent:y() }, { oEvent:buttons(), oEvent:delta() }, self )
|
||||
EXIT
|
||||
CASE QEvent_FocusIn // :setInputFocus()
|
||||
SetAppEvent( xbeP_SetInputFocus, NIL, NIL, Self )
|
||||
lRet := .f.
|
||||
EXIT
|
||||
CASE QEvent_FocusOut // :killInputFocus()
|
||||
SetAppEvent( xbeP_KillInputFocus, NIL, NIL, Self )
|
||||
lRet := .f.
|
||||
EXIT
|
||||
CASE QEvent_Paint // :paint()
|
||||
oEvent := QPaintEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oObj_N := QRect()
|
||||
oObj_N:pPtr := oEvent:rect()
|
||||
oEvent := QPaintEvent():configure( pEvent )
|
||||
oObj_N := QRect():configure( oEvent:rect() )
|
||||
SetAppEvent( xbeP_Paint, { oObj_N:left(), oObj_N:top(), oObj_N:right(), oObj_N:bottom() }, NIL, Self )
|
||||
oObj_N:destroy()
|
||||
lRet := .f.
|
||||
EXIT
|
||||
CASE QEvent_Move // :move()
|
||||
oEvent := QMoveEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oP0 := QPoint()
|
||||
oP0:pPtr := oEvent:oldPos()
|
||||
oP1 := QPoint()
|
||||
oP1:pPtr := oEvent:pos()
|
||||
oEvent := QMoveEvent():configure( pEvent )
|
||||
oP0 := QPoint():configure( oEvent:oldPos() )
|
||||
oP1 := QPoint():configure( oEvent:pos() )
|
||||
SetAppEvent( xbeP_Move, { oP0:x(), oP0:y() }, { oP1:x(), oP1:y() }, Self )
|
||||
oP0:destroy()
|
||||
oP1:destroy()
|
||||
EXIT
|
||||
CASE QEvent_Resize // :resize()
|
||||
oEvent := QResizeEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oObj_O := QSize()
|
||||
oObj_O:pPtr := oEvent:oldSize()
|
||||
oObj_N := QSize()
|
||||
oObj_N:pPtr := oEvent:size()
|
||||
oEvent := QResizeEvent():configure( pEvent )
|
||||
oObj_O := QSize():configure( oEvent:oldSize() )
|
||||
oObj_N := QSize():configure( oEvent:size() )
|
||||
SetAppEvent( xbeP_Resize, { oObj_O:width(), oObj_O:height() }, { oObj_N:width(), oObj_N:height() }, Self )
|
||||
oObj_N:destroy()
|
||||
oObj_O:destroy()
|
||||
EXIT
|
||||
CASE QEvent_DragEnter // :dragEnter()
|
||||
oEvent := QDragEnterEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QDragEnterEvent():configure( pEvent )
|
||||
SetAppEvent( xbeP_DragEnter, { oEvent:mouseButtons(), { oEvent:pos():x(), oEvent:pos():y() } }, /* oDragObj */, Self )
|
||||
EXIT
|
||||
CASE QEvent_DragLeave // :dragLeave()
|
||||
SetAppEvent( xbeP_DragLeave, NIL, NIL, Self )
|
||||
EXIT
|
||||
CASE QEvent_DragMove // :dragMotion()
|
||||
oEvent := QDragEnterEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QDragEnterEvent():configure( pEvent )
|
||||
SetAppEvent( xbeP_DragMotion, { oEvent:mouseButtons(), { oEvent:pos():x(), oEvent:pos():y() } }, NIL, Self )
|
||||
EXIT
|
||||
CASE QEvent_Drop // :dragDrop()
|
||||
oEvent := QDragEnterEvent()
|
||||
oEvent:pPtr := pEvent
|
||||
oEvent := QDragEnterEvent():configure( pEvent )
|
||||
SetAppEvent( xbeP_DragDrop, { oEvent:mouseButtons(), { oEvent:pos():x(), oEvent:pos():y() } }, /* oDragObj */, Self )
|
||||
EXIT
|
||||
CASE QEvent_WhatsThis // :helpRequest()
|
||||
@@ -694,13 +685,13 @@ METHOD XbpWindow:configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible
|
||||
|
||||
METHOD XbpWindow:destroy()
|
||||
|
||||
//hb_outDebug( "Destroy: "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ) )
|
||||
|
||||
//xbp_Debug( "Destroy: "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ) )
|
||||
#if 0
|
||||
IF Len( ::aChildren ) > 0
|
||||
aeval( ::aChildren, {|o| o:destroy() } )
|
||||
::aChildren := {}
|
||||
ENDIF
|
||||
|
||||
#endif
|
||||
IF len( ::aConnections ) > 0
|
||||
aeval( ::aConnections, {|e_| Qt_DisConnect_Signal( e_[ 1 ], e_[ 2 ] ) } )
|
||||
::aConnections := {}
|
||||
@@ -708,13 +699,18 @@ METHOD XbpWindow:destroy()
|
||||
|
||||
IF len( ::aEConnections ) > 0
|
||||
aeval( ::aEConnections, {|e_| Qt_DisConnect_Event( e_[ 1 ], e_[ 2 ] ) } )
|
||||
::aConnections := {}
|
||||
::aEConnections := {}
|
||||
::oWidget:removeEventFilter( SetEventFilter() )
|
||||
ENDIF
|
||||
|
||||
IF Len( ::aChildren ) > 0
|
||||
aeval( ::aChildren, {|o| o:destroy() } )
|
||||
::aChildren := {}
|
||||
ENDIF
|
||||
|
||||
::oWidget:close()
|
||||
|
||||
//hb_outDebug( " Destroy: "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ) )
|
||||
//xbp_Debug( " Destroy: "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ) )
|
||||
|
||||
RETURN NIL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user