KJanusWidget problem (also with noatun/kopete): showstopper?

Martijn Klingens klingens at kde.org
Fri Nov 8 16:54:34 GMT 2002


On Friday 08 November 2002 17:10, Ravikiran Rajagopal wrote:
>----- #include <kapplication.h>
> #include <kjanuswidget.h>
> #include <qhbox.h>
> #include <qstringlist.h>
> #include <qtextedit.h>
>
> int main( int argc, char **argv )
> {
>   KApplication app( argc, argv, "Testing" );
>
>   KJanusWidget wid(0,0,KJanusWidget::TreeList);

What happens if you make this

KJanusWidget *wid = new KJanusWidget(0,0,KJanusWidget::TreeList);

and change '&wid' into 'wid' resp. 'wid.' into 'wid->' accordingly?

>   app.setMainWidget( &wid );
>
>   QStringList list1, list2;
>   list1 << "level1" << "page";
>   list2 << "level2" << "page";
>   QHBox *box1, *box2;
>   box1 = wid.addHBoxPage(list1);
>   new QTextEdit(box1);
>   box2 = wid.addHBoxPage(list2);
>   new QTextEdit(box2);
>
>   wid.show();
>   delete box1;
>
>   return app.exec();
> }
> ---------------------------------------------------------------------------

Also, what does valgrind output?

My suspicion is that the main widget is deleted twice here, although looking 
at my (rather old) qt-copy checkout I can't see this confirmed.

Another option is that deleting wid on shutdown goes wrong for objects on the 
stack. If you make wid a pointer and delete it, does that make a difference 
with 'leaking' the object by not deleting?

If you make the KApp a pointer instead, does it make a difference if you 
delete the app before or after the widget? In your example I wonder in what 
order both on-stack objects are deleted by the compiler. FIFO or LIFO ?
-- 
Martijn



More information about the kde-multimedia mailing list