Hi Pritpal
In STATIC FUNCTION Dialogs You are using local oDlg which
is overwriten many times (you should delete QWidgets pointed to by it,
before allocating new ones)
One solution (not going in other leaks) is this:
PROCEDURE Main()
Local oLabel, oBtn, oDA, oTabBar
Local oWnd, oSize
Local oMenuBar, pIcon
Local oMenuA, pAction
LOCAL oPS, oPPrv, oMB, oWZ, oCD, oWP, oSBar, oStyle
**** Add code
PUBLIC oDlg1:=oDlg2:=oDlg3:=oDlg4:=oDlg5:=oDlg6:=Nil
*********
....
STATIC FUNCTION Dialogs( cType, w, l )
local oUrl
DO CASE
CASE cType == "PageSetup"
if oDlg1 ==Nil
oDlg1 := QPageSetupDialog():new()
oDlg1:setWindowTitle( "Harbour-QT čššPageSetup Dialog" )
endif
oDlg1:show()
CASE cType == "Preview"
if oDlg2 ==Nil
oDlg2 := QPrintPreviewDialog():new()
oDlg2:setWindowTitle( "Harbour-QT Preview Dialog" )
endif
oDlg2:show()
CASE cType == "Wizard"
if oDlg3 ==Nil
oDlg3 := QWizard():new()
oDlg3:setWindowTitle( "Harbour-QT Wizard to Show Slides etc." )
endif
oDlg3:show()
CASE cType == "Colors"
if oDlg4 ==Nil
oDlg4 := QColorDialog():new()
oDlg4:setWindowTitle( "Harbour-QT Color Selection Dialog" )
endif
oDlg4:show()
CASE cType == "WebPage"
if oDlg5 ==Nil
oDlg5 := QWebView():new()
oUrl := QUrl():new()
oUrl:setUrl( "http://www.harbour.vouch.info" )
QT_QWebView_SetUrl( QT_PTROF( oDlg5 ), QT_PTROF( oUrl ) )
oDlg5:setWindowTitle( "Harbour-QT Web Page Navigator" )
endif
oDlg5:show()
CASE cType == "Fonts"
if oDlg6 ==Nil
oDlg6 := QFontDialog():new()
oDlg6:setWindowTitle( "Harbour-QT Font Selector" )
endif
oDlg6:show()
ENDCASE
RETURN nil
Qbjects are automaticaly destroyed only if they have parent (
QSomeWidget:New(parent) )
When parent is destroyed, he destroys it's children to.
BRGS
Franček
Pritpal Bedi wrote:
>
> Hi István
>
>
> Bisz István wrote:
>>
>> The demoqt tests with debug_new shows a lot of leaked objects , see
>> attached debug_new.txt. As I see now, the objects allocated by the new
>> operator are not released by a corresponding delete operator.
>>
>
> I am struggling with this aspect since 20 days and
> could not reached to any consclusion why Qt is not releasing the
> objects. To illustrate, just navigate in <Brw> tab in demoxbp and
> also keep an eye over task manager. You will be surprized to
> observe that memory keeps on growing all the time.
> Not only here, just move the mouse in/out of the
> demoxbp window, the same behavior will follow.
> And the worse is, if you play like this for a
> couple of hours, netxt time, demoxbp.exe will fail to
> load. You will need to reboot your computer.
>
> I was wondering why this happens. I rewrote and
> subclassed QMainWindow() and implemented it for
> XbpDialog() class to have finer control over events
> and their execution. However I could not avoid this behavior.
>
> And today you have confirmed that Qt itself is buggy on this front.
>
> Even I downloaded Qt 2009.03 and checked all above against it
> but the result is the same.
>
> Along with above issue, I have one more issue with Qt in
> respect to its paint engine which fails on MT scenario.
> I will post the modified code and will show what is needed to
> control it and what heavy penalty we have to pay.
>
> And thanks for stopping my frustration over the subject.
>
> Regards
> Pritpal Bedi
>
>
--
View this message in context:
http://www.nabble.com/demoqt-tests-with-debug_new---Leaked-objects-tp25434990p25467896.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour