diff --git a/harbour/ChangeLog b/harbour/ChangeLog index faeb450ea7..4dccf4c6c6 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,19 @@ The license applies to all entries newer than 2009-04-28. */ +2011-03-25 18:33 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/hbqreportsmanager.prg + * contrib/hbide/hbqtoolbar.prg + * contrib/hbide/idedocks.prg + * contrib/hbide/idefunctions.prg + * contrib/hbide/ideharbourhelp.prg + * contrib/hbide/idemain.prg + * contrib/hbide/ideprojmanager.prg + * contrib/hbide/idesaveload.prg + ! Optimized: destructors. Unreleased memory blocks are shortened + in number considerably. + + Project Properties dialog now displays project name in its title-bar. + 2011-03-25 18:24 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + contrib/hbqt/qtsql + contrib/hbqt/qtsql/doc diff --git a/harbour/contrib/hbide/hbqreportsmanager.prg b/harbour/contrib/hbide/hbqreportsmanager.prg index 8d53e4786a..9da1583014 100644 --- a/harbour/contrib/hbide/hbqreportsmanager.prg +++ b/harbour/contrib/hbide/hbqreportsmanager.prg @@ -443,26 +443,33 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 ) ::contextMenuScene( p1 ) CASE p == QEvent_GraphicsSceneDragEnter +HB_TRACE( HB_TR_ALWAYS, QEvent_GraphicsSceneDragEnter, valtype( p1 ), p1 ) p1:acceptProposedAction() CASE p == QEvent_GraphicsSceneDragMove +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDragMove", valtype( p1 ), p1 ) p1:acceptProposedAction() CASE p == QEvent_GraphicsSceneDragLeave CASE p == QEvent_GraphicsSceneDrop +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 0, p1:className() ) qMime := p1:mimeData() +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 1 ) IF qMime:hasFormat( "application/x-qabstractitemmodeldatalist" ) +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 2 ) IF p2[ 1 ] == "DataTree" IF p2[ 2 ] != p2[ 3 ] ::addField( p2[ 2 ], p2[ 3 ], p1:scenePos(), NIL ) ENDIF ENDIF - +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 21 ) ELSEIF qMime:hasFormat( "application/x-toolbaricon" ) +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 3 ) ::addObject( qMime:html(), p1:scenePos(), NIL ) - +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 31 ) ELSEIF qMime:hasFormat( "application/x-menuitem" ) +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 4 ) cType := qMime:html() SWITCH cType CASE "Rectangle" ; EXIT @@ -478,8 +485,10 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 ) CASE "Diagonal Line Left" ; cType := "LineDL" ; EXIT ENDSWITCH ::addObject( cType, p1:scenePos(), NIL ) +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 41 ) ELSEIF qMime:hasUrls() +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 5 ) qList := qMime:hbUrlList() FOR i := 0 TO qList:size() - 1 cFile := ( QUrl( qList:at( i ) ) ):toLocalFile() @@ -499,8 +508,11 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 ) END SEQUENCE ENDIF NEXT +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 51 ) + ENDIF ENDCASE +HB_TRACE( HB_TR_ALWAYS, "QEvent_GraphicsSceneDrop", valtype( p1 ), 1000 ) EXIT diff --git a/harbour/contrib/hbide/hbqtoolbar.prg b/harbour/contrib/hbide/hbqtoolbar.prg index 5060690347..a5ecf3213b 100644 --- a/harbour/contrib/hbide/hbqtoolbar.prg +++ b/harbour/contrib/hbide/hbqtoolbar.prg @@ -153,6 +153,24 @@ METHOD HbqToolbar:onError( ... ) METHOD HbqToolbar:destroy() + ::oWidget := NIL + ::cName := NIL + ::oParent := NIL + ::hItems := NIL + ::allowedAreas := NIL + ::initialArea := NIL + ::orientation := NIL + ::size := NIL + ::moveable := NIL + ::floatable := NIL + ::lPressed := NIL + ::qPos := NIL + ::qDrag := NIL + ::qMime := NIL + ::qDropAction := NIL + ::qPix := NIL + ::qByte := NIL + RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index f6cb7316b1..8656c448e0 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -174,12 +174,13 @@ METHOD IdeDocks:create( oIde ) /*----------------------------------------------------------------------*/ METHOD IdeDocks:destroy() - LOCAL qTBtn + LOCAL qTmp - ::oIde:oProjRoot := NIL - ::oIde:oOpenedSources := NIL + ::oDlg:oWidget : disconnect( QEvent_WindowStateChange ) + ::oDlg:oWidget : disconnect( QEvent_Hide ) -#if 0 + ::oIde:oProjRoot := NIL + ::oIde:oOpenedSources := NIL ::oOutputResult:oWidget : disconnect( "copyAvailable(bool)" ) ::oEnvironDock:oWidget : disconnect( "visibilityChanged(bool)" ) @@ -210,81 +211,64 @@ METHOD IdeDocks:destroy() ::qAct2 : disconnect( "triggered(bool)" ) ENDIF - FOR EACH qTBtn IN ::aPanels - qTBtn:disconnect( "clicked()" ) - qTBtn := NIL + ::oIde:oOutputResult := NIL + ::oIde:oEnvironDock := NIL + ::oIde:oPropertiesDock := NIL + ::oIde:oThemesDock := NIL + ::oIde:oDocViewDock := NIL + ::oIde:oDocWriteDock := NIL + ::oIde:oFindDock := NIL + ::oIde:oFunctionsDock := NIL + ::oIde:oSkeltnDock := NIL + ::oIde:oHelpDock := NIL + ::oIde:oFuncDock := NIL + + ::oIde:oSourceThumbnailDock := NIL + ::oIde:oQScintillaDock := NIL + ::oIde:oReportsManagerDock := NIL + ::oIde:oFormatDock := NIL + + ::oIde:oDockPT := NIL + ::oIde:oDockED := NIL + ::oIde:oDockB2 := NIL + + ::oIde:oSys := NIL + ::qAct1 := NIL + ::qAct2 := NIL + + FOR EACH qTmp IN ::aPanels + qTmp:disconnect( "clicked()" ) + qTmp := NIL NEXT - FOR EACH qTBtn IN ::aMdiBtns - qTBtn:disconnect( "clicked()" ) - qTBtn := NIL + FOR EACH qTmp IN ::aMdiBtns + qTmp:disconnect( "clicked()" ) + qTmp := NIL NEXT - FOR EACH qTBtn IN ::oIde:aMarkTBtns - qTBtn:disconnect( "clicked()" ) + FOR EACH qTmp IN ::oIde:aMarkTBtns + qTmp:disconnect( "clicked()" ) + qTmp := NIL NEXT -#else - #if 0 - ::oOutputResult:oWidget := NIL - ::oEnvironDock:oWidget := NIL - ::oPropertiesDock:oWidget := NIL - ::oThemesDock:oWidget := NIL - ::oDocViewDock:oWidget := NIL - ::oDocWriteDock:oWidget := NIL - ::oFindDock:oWidget := NIL - ::oFunctionsDock:oWidget := NIL - ::oSkeltnDock:oWidget := NIL - ::oHelpDock:oWidget := NIL - ::oFuncDock:oWidget := NIL - - ::oSourceThumbnailDock:oWidget := NIL - ::oQScintillaDock:oWidget := NIL - ::oReportsManagerDock:oWidget := NIL - ::oFormatDock:oWidget := NIL - - ::oDockPT:oWidget := NIL - ::oDockED:oWidget := NIL - ::oDockB2:oWidget := NIL - #endif - - ::oIde:oOutputResult := NIL - ::oIde:oEnvironDock := NIL - ::oIde:oPropertiesDock := NIL - ::oIde:oThemesDock := NIL - ::oIde:oDocViewDock := NIL - ::oIde:oDocWriteDock := NIL - ::oIde:oFindDock := NIL - ::oIde:oFunctionsDock := NIL - ::oIde:oSkeltnDock := NIL - ::oIde:oHelpDock := NIL - ::oIde:oFuncDock := NIL - - ::oIde:oSourceThumbnailDock := NIL - ::oIde:oQScintillaDock := NIL - ::oIde:oReportsManagerDock := NIL - ::oIde:oFormatDock := NIL - - ::oIde:oDockPT := NIL - ::oIde:oDockED := NIL - ::oIde:oDockB2 := NIL - - ::oIde:oSys := NIL - ::qAct1 := NIL - ::qAct2 := NIL - - FOR EACH qTBtn IN ::aPanels - qTBtn := NIL + FOR EACH qTmp IN ::oIde:aMdies + qTmp:disconnect( "windowStateChanged(Qt::WindowStates,Qt::WindowStates)" ) + qTmp := NIL NEXT - ::aPanels := NIL - FOR EACH qTBtn IN ::aMdiBtns - qTBtn := NIL - NEXT - ::aMdiBtns := NIL - FOR EACH qTBtn IN ::oIde:aMarkTBtns - qTBtn := NIL - NEXT - ::oIde:aMarkTBtns := NIL -#endif + + ::nPass := NIL + ::aPanels := NIL + ::aMdiBtns := NIL + ::aBtnLines := NIL + ::aBtnDocks := NIL + ::oBtnTabClose := NIL + ::qMdiToolBar := NIL + ::qMdiToolBarL := NIL + ::aViewsInfo := NIL + ::qTBtnClose := NIL + ::qTimer := NIL + ::nPrevWindowState := NIL + ::qAct1 := NIL + ::qAct2 := NIL RETURN Self @@ -528,78 +512,104 @@ METHOD IdeDocks:execEvent( cEvent, p, p1 ) EXIT CASE "dockQScintilla_visibilityChanged" IF p; ::oBM:show() ; ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockSourceThumbnail_visibilityChanged" IF p; ::oEM:showThumbnail(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockSkltnsTree_visibilityChanged" IF p; ::oSK:showTree(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockHelpDock_visibilityChanged" - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockDocViewer_visibilityChanged" IF p; ::oHL:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockDocWriter_visibilityChanged" IF p; ::oDW:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "oFuncDock_visibilityChanged" - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "docFunctions_visibilityChanged" IF p; ::oFN:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockProperties_visibilityChanged" IF p; ::oPM:fetchProperties(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "docEnvironments_visibilityChanged" IF p; ::oEV:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "docSkeletons_visibilityChanged" IF p; ::oSK:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockThemes_visibilityChanged" IF p; ::oTH:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT CASE "dockFindInFiles_visibilityChanged" IF p; ::oFF:show(); ENDIF - IF ! p .AND. ! p1:isVisible() - p1:raise() + IF !empty( p1 ) + IF ! p .AND. ! p1:isVisible() + p1:raise() + ENDIF ENDIF EXIT /* Miscellaneous */ diff --git a/harbour/contrib/hbide/idefunctions.prg b/harbour/contrib/hbide/idefunctions.prg index 9f8e18ae2d..bece5b529d 100644 --- a/harbour/contrib/hbide/idefunctions.prg +++ b/harbour/contrib/hbide/idefunctions.prg @@ -245,6 +245,17 @@ METHOD IdeFunctions:destroy() ::oUI:destroy() ENDIF + ::isNotSetYet := NIL + ::aHdr := NIL + ::aItems := NIL + ::aTags := NIL + ::aList := NIL + ::inAction := NIL + ::nPNm := NIL + ::nPPr := NIL + ::nPSr := NIL + ::aProjList := NIL + RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/ideharbourhelp.prg b/harbour/contrib/hbide/ideharbourhelp.prg index 69fef8477f..b26de7ee30 100644 --- a/harbour/contrib/hbide/ideharbourhelp.prg +++ b/harbour/contrib/hbide/ideharbourhelp.prg @@ -232,6 +232,7 @@ METHOD IdeHarbourHelp:show() /*----------------------------------------------------------------------*/ METHOD IdeHarbourHelp:destroy() + LOCAL aTmp, oFun IF ! empty( ::oUI ) ::oUI:q_treeDoc:disconnect( "itemSelectionChanged()" ) @@ -240,6 +241,27 @@ METHOD IdeHarbourHelp:destroy() ::oUI:destroy() ENDIF + ::aNodes := NIL + ::aFunctions := NIL + FOR EACH aTmp IN ::aFuncByFile + aTmp[ 1 ] := NIL + FOR EACH oFun IN aTmp[ 2 ] + oFun := NIL + NEXT + aTmp[ 2 ] := NIL + NEXT + + ::aFuncByFile := NIL + ::aHistory := NIL + ::aCategory := NIL + ::nCurTVItem := NIL + ::nCurInHist := NIL + ::qHiliter := NIL + ::hIndex := NIL + ::aProtoTypes := NIL + ::lLoadedProto := NIL + ::aFuncDefs := NIL + RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/idemain.prg b/harbour/contrib/hbide/idemain.prg index 36a5181763..368bbc9272 100644 --- a/harbour/contrib/hbide/idemain.prg +++ b/harbour/contrib/hbide/idemain.prg @@ -103,7 +103,6 @@ REQUEST ADS PROCEDURE Main( ... ) LOCAL oIde - LOCAL oResource #ifdef __HBDYNLOAD__RDDADS__ LOCAL hRDDADS @@ -136,9 +135,7 @@ PROCEDURE Main( ... ) ENDIF #endif - oResource := QResource() - oResource:registerResource_1( hbqtres_HbIde(), ":/resource" ) - //oResource:registerResource( HBQString( hbqtres_HbIde() ), ":/resource" ) + QResource():registerResource_1( hbqtres_HbIde(), ":/resource" ) oIde := HbIde():new( hb_aParams() ):create() oIde:destroy() @@ -368,8 +365,8 @@ CLASS HbIde METHOD HbIde:destroy() /* Very important - destroy resources */ - HB_TRACE( HB_TR_ALWAYS, "======================================================" ) - HB_TRACE( HB_TR_ALWAYS, "Before ::oDlg:destroy()", memory( 1001 ) ) + HB_TRACE( HB_TR_ALWAYS, "------------------------------------------------------" ) + HB_TRACE( HB_TR_ALWAYS, "Before ::oIde:destroy()", memory( 1001 ) ) HB_TRACE( HB_TR_ALWAYS, " " ) ::oSBar := NIL @@ -394,6 +391,7 @@ METHOD HbIde:destroy() ::oEV:destroy() ::oTH:destroy() ::oPM:destroy() + ::oRM:destroy() //::oEM:destroy() /* Almost GPF's */ @@ -403,7 +401,7 @@ METHOD HbIde:destroy() ::oFont := NIL HB_TRACE( HB_TR_ALWAYS, " " ) - HB_TRACE( HB_TR_ALWAYS, "After ::oDlg:destroy()", memory( 1001 ) ) + HB_TRACE( HB_TR_ALWAYS, "After ::oIde:destroy()", memory( 1001 ) ) HB_TRACE( HB_TR_ALWAYS, "======================================================" ) RETURN self diff --git a/harbour/contrib/hbide/ideprojmanager.prg b/harbour/contrib/hbide/ideprojmanager.prg index 6c89fd2da5..1b32d4656e 100644 --- a/harbour/contrib/hbide/ideprojmanager.prg +++ b/harbour/contrib/hbide/ideprojmanager.prg @@ -363,6 +363,8 @@ METHOD IdeProjManager:loadProperties( cProjFileName, lNew, lFetch, lUpdateTree ) cProjFileName := hbide_pathToOSPath( cProjFileName ) + ::oIde:oPropertiesDock:setWindowTitle( cProjFileName ) + nAlready := ascan( ::aProjects, {|e_| hb_FileMatch( e_[ 1 ], hbide_pathNormalized( cProjFileName ) ) } ) IF !empty( cProjFileName ) .AND. hb_fileExists( cProjFileName ) diff --git a/harbour/contrib/hbide/idesaveload.prg b/harbour/contrib/hbide/idesaveload.prg index bcfd81ca3d..15791ee418 100644 --- a/harbour/contrib/hbide/idesaveload.prg +++ b/harbour/contrib/hbide/idesaveload.prg @@ -984,6 +984,16 @@ METHOD IdeSetup:destroy() ::oUI:destroy() ENDIF + ::oINI := NIL + ::qOrgPalette := NIL + ::aItems := NIL + ::aTree := NIL + ::aStyles := NIL + ::aKeyItems := NIL + ::aDictionaries := NIL + ::nCurThemeSlot := NIL + ::aHilighters := NIL + RETURN Self /*----------------------------------------------------------------------*/