From e42d4c93936cdd556a0cf1885b04b3b1de2bf5cf Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Tue, 22 Mar 2011 01:43:33 +0000 Subject: [PATCH] 2011-03-21 18:36 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/idebrowse.prg * contrib/hbide/idedocks.prg * contrib/hbide/ideharbourhelp.prg * contrib/hbide/idemisc.prg * contrib/hbide/idesources.prg ! Connect/disconnect per current implementation. * contrib/hbide/idemain.prg ! Put to more stress test at exit by destroying all objects explictly. --- harbour/ChangeLog | 12 ++++ harbour/contrib/hbide/idebrowse.prg | 2 +- harbour/contrib/hbide/idedocks.prg | 51 ++++++++--------- harbour/contrib/hbide/ideharbourhelp.prg | 8 +-- harbour/contrib/hbide/idemain.prg | 73 ++++++++++++------------ harbour/contrib/hbide/idemisc.prg | 4 +- harbour/contrib/hbide/idesources.prg | 2 + 7 files changed, 84 insertions(+), 68 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 0613fb6237..3e937591d2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,18 @@ The license applies to all entries newer than 2009-04-28. */ +2011-03-21 18:36 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/idebrowse.prg + * contrib/hbide/idedocks.prg + * contrib/hbide/ideharbourhelp.prg + * contrib/hbide/idemisc.prg + * contrib/hbide/idesources.prg + ! Connect/disconnect per current implementation. + + * contrib/hbide/idemain.prg + ! Put to more stress test at exit by destroying all objects + explictly. + 2011-03-21 18:29 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtgui/THbQtUI.prg ! Destructor more rationalized. diff --git a/harbour/contrib/hbide/idebrowse.prg b/harbour/contrib/hbide/idebrowse.prg index b34a07ecd0..20a1a13403 100644 --- a/harbour/contrib/hbide/idebrowse.prg +++ b/harbour/contrib/hbide/idebrowse.prg @@ -1844,7 +1844,7 @@ METHOD IdeBrowse:buildMdiWindow() ::nID := ++nID - ::qMdi := QMdiSubWindow( ::oDlg:oWidget ) + ::qMdi := QMdiSubWindow() // ::qMdi:setWidget( ::oWnd:oWidget ) ::oPanel:qWidget:addSubWindow( ::qMdi ) diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index ed8d7517d0..b94242fdf2 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -179,47 +179,46 @@ METHOD IdeDocks:destroy() ::oIde:oProjRoot := NIL ::oIde:oOpenedSources := NIL - ::disconnect( ::oOutputResult:oWidget , "copyAvailable(bool)" ) + ::oOutputResult:oWidget : disconnect( "copyAvailable(bool)" ) + ::oEnvironDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oPropertiesDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oThemesDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oDocViewDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oDocWriteDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oFindDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oFunctionsDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oSkeltnDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oHelpDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oFuncDock:oWidget : disconnect( "visibilityChanged(bool)" ) - ::disconnect( ::oEnvironDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oPropertiesDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oThemesDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDocViewDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDocWriteDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFindDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFunctionsDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oSkeltnDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oHelpDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFuncDock:oWidget , "visibilityChanged(bool)" ) - - ::disconnect( ::oSourceThumbnailDock:oWidget, "visibilityChanged(bool)" ) - ::disconnect( ::oQScintillaDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oReportsManagerDock:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oFormatDock:oWidget , "visibilityChanged(bool)" ) + ::oSourceThumbnailDock:oWidget: disconnect( "visibilityChanged(bool)" ) + ::oQScintillaDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oReportsManagerDock:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oFormatDock:oWidget : disconnect( "visibilityChanged(bool)" ) #if 0 /* Not Implemented */ - ::disconnect( ::oDockPT:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDockED:oWidget , "visibilityChanged(bool)" ) - ::disconnect( ::oDockB2:oWidget , "visibilityChanged(bool)" ) + ::oDockPT:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oDockED:oWidget : disconnect( "visibilityChanged(bool)" ) + ::oDockB2:oWidget : disconnect( "visibilityChanged(bool)" ) #endif IF !empty( ::oSys ) - ::disconnect( ::oSys , "activated(QSystemTrayIcon::ActivationReason)" ) - ::disconnect( ::qAct1 , "triggered(bool)" ) - ::disconnect( ::qAct2 , "triggered(bool)" ) + ::oSys : disconnect( "activated(QSystemTrayIcon::ActivationReason)" ) + ::qAct1 : disconnect( "triggered(bool)" ) + ::qAct2 : disconnect( "triggered(bool)" ) ENDIF FOR EACH qTBtn IN ::aPanels - ::disconnect( qTBtn, "clicked()" ) + qTBtn:disconnect( "clicked()" ) qTBtn := NIL NEXT FOR EACH qTBtn IN ::aMdiBtns - ::disconnect( qTBtn, "clicked()" ) + qTBtn:disconnect( "clicked()" ) qTBtn := NIL NEXT FOR EACH qTBtn IN ::oIde:aMarkTBtns - ::disconnect( qTBtn, "clicked()" ) + qTBtn:disconnect( "clicked()" ) NEXT RETURN Self @@ -1103,7 +1102,7 @@ METHOD IdeDocks:buildViewWidget( cView ) LOCAL oFrame, qTBtnClose, qDrop, qMdi, n IF ::oIde:lCurEditsMdi - qMdi := QMdiSubWindow( ::oStackedWidget:oWidget ) + qMdi := QMdiSubWindow() qMdi:setWindowTitle( cView ) qMdi:setObjectName( cView ) IF cView == "Stats" diff --git a/harbour/contrib/hbide/ideharbourhelp.prg b/harbour/contrib/hbide/ideharbourhelp.prg index 16b2ec3703..69fef8477f 100644 --- a/harbour/contrib/hbide/ideharbourhelp.prg +++ b/harbour/contrib/hbide/ideharbourhelp.prg @@ -233,12 +233,10 @@ METHOD IdeHarbourHelp:show() METHOD IdeHarbourHelp:destroy() - IF !empty( ::oUI ) - ::disconnect( ::oUI:q_treeDoc , "itemSelectionChanged()" ) - ::disconnect( ::oUI:q_treeCategory, "itemSelectionChanged()" ) - + IF ! empty( ::oUI ) + ::oUI:q_treeDoc:disconnect( "itemSelectionChanged()" ) + ::oUI:q_treeCategory:disconnect( "itemSelectionChanged()" ) ::clear() - ::oUI:destroy() ENDIF diff --git a/harbour/contrib/hbide/idemain.prg b/harbour/contrib/hbide/idemain.prg index 7bb730973a..36a5181763 100644 --- a/harbour/contrib/hbide/idemain.prg +++ b/harbour/contrib/hbide/idemain.prg @@ -138,6 +138,7 @@ PROCEDURE Main( ... ) oResource := QResource() oResource:registerResource_1( hbqtres_HbIde(), ":/resource" ) + //oResource:registerResource( HBQString( hbqtres_HbIde() ), ":/resource" ) oIde := HbIde():new( hb_aParams() ):create() oIde:destroy() @@ -366,10 +367,45 @@ 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, " " ) + ::oSBar := NIL ::oMenu := NIL ::oTBar := NIL + ::oSetup:destroy() + ::oUpdn:destroy() + ::oHL:destroy() + ::oDK:destroy() + ::oHM:destroy() + ::oSK:destroy() + ::oFR:destroy() + ::oFF:destroy() + ::oSearchReplace:destroy() + + ::oFN:destroy() + ::oTM:destroy() + + ::oSC:destroy() + ::oDW:destroy() + ::oEV:destroy() + ::oTH:destroy() + ::oPM:destroy() + + //::oEM:destroy() /* Almost GPF's */ + + ::oAC:destroy() + ::oDlg:destroy() + + ::oFont := NIL + + HB_TRACE( HB_TR_ALWAYS, " " ) + HB_TRACE( HB_TR_ALWAYS, "After ::oDlg:destroy()", memory( 1001 ) ) + HB_TRACE( HB_TR_ALWAYS, "======================================================" ) + RETURN self /*----------------------------------------------------------------------*/ @@ -569,6 +605,8 @@ METHOD HbIde:create( aParams ) ::showApplicationCursor() qSplash:close() + qSplash := NIL + qPixMap := NIL /* Load tags last tagged projects */ ::oFN:loadTags( ::oINI:aTaggedProjects ) @@ -614,41 +652,6 @@ METHOD HbIde:create( aParams ) DbCloseAll() -#if 0 - - /* Very important - destroy resources */ - HB_TRACE( HB_TR_DEBUG, "======================================================" ) - HB_TRACE( HB_TR_DEBUG, "Before ::oDlg:destroy()", memory( 1001 ) ) - HB_TRACE( HB_TR_DEBUG, " " ) - - ::oSetup:destroy() - ::oUpdn:destroy() - ::oTM:destroy() - ::oSK:destroy() - ::oSC:destroy() - ::oDW:destroy() - ::oEV:destroy() - ::oFN:destroy() - ::oHM:destroy() - ::oHL:destroy() - ::oTH:destroy() - ::oFF:destroy() - ::oFR:destroy() - ::oPM:destroy() - ::oEM:destroy() - ::oDK:destroy() - ::oSearchReplace:destroy() - ::oDlg:destroy() - ::oAC:destroy() - - ::oFont := NIL - qSplash := NIL - - HB_TRACE( HB_TR_DEBUG, " " ) - HB_TRACE( HB_TR_DEBUG, "After ::oDlg:destroy()", memory( 1001 ) ) - HB_TRACE( HB_TR_DEBUG, "======================================================" ) -#endif - RETURN self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbide/idemisc.prg b/harbour/contrib/hbide/idemisc.prg index 48c969c2ac..d21fc15916 100644 --- a/harbour/contrib/hbide/idemisc.prg +++ b/harbour/contrib/hbide/idemisc.prg @@ -293,6 +293,7 @@ FUNCTION hbide_fetchAFile( oWnd, cTitle, aFlt, cDftDir, cDftSuffix ) ENDIF cFile := oDlg:open( cDftDir, , .f. ) + oDlg:destroy() RETURN cFile @@ -313,6 +314,7 @@ FUNCTION hbide_saveAFile( oWnd, cTitle, aFlt, cDftFile, cDftSuffix ) ENDIF cFile := oDlg:saveAs( cDftFile, .f., .t. ) + oDlg:destroy() RETURN cFile @@ -333,7 +335,7 @@ FUNCTION hbide_fetchADir( oWnd, cTitle, cDftDir ) oDlg:oWidget:setFileMode( 4 ) cFile := oDlg:open( cDftDir, , .f. ) - + oDlg:destroy() IF hb_isChar( cFile ) //cFile := strtran( cFile, "/", hb_ps() ) RETURN cFile diff --git a/harbour/contrib/hbide/idesources.prg b/harbour/contrib/hbide/idesources.prg index cf2bad2d93..c0715bfcc4 100644 --- a/harbour/contrib/hbide/idesources.prg +++ b/harbour/contrib/hbide/idesources.prg @@ -516,6 +516,8 @@ METHOD IdeSourcesManager:selectSource( cMode, cFile, cTitle, cDftPath ) ENDIF + oDlg:destroy() + RETURN cFile /*----------------------------------------------------------------------*/