-rw-r--r-- | examples/applet/simpleimpl.cpp | 17 | ||||
-rw-r--r-- | examples/applet/simpleimpl.h | 5 |
2 files changed, 20 insertions, 2 deletions
diff --git a/examples/applet/simpleimpl.cpp b/examples/applet/simpleimpl.cpp index 981e0ab..82fc6e5 100644 --- a/examples/applet/simpleimpl.cpp +++ b/examples/applet/simpleimpl.cpp @@ -76,16 +76,29 @@ void SimpleApplet::paintEvent( QPaintEvent* ) { SimpleAppletImpl::SimpleAppletImpl() { } /* needed cause until it is only pure virtual */ SimpleAppletImpl::~SimpleAppletImpl() { + /* + * we will delete our applets as well + * setAUtoDelete makes the QList free + * the objects behind the pointers + */ + m_applets.setAutoDelete( true ); + m_applets.clear(); } /* * For the taskbar interface return a Widget */ QWidget* SimpleAppletImpl::applet( QWidget* parent ) { - /* ownership has the parent */ - return new SimpleApplet( parent ); + /* + * There are problems with ownership. So we add + * our ownlist and clear this; + */ + SimpleApplet* ap = new SimpleApplet( parent ); + m_applets.append( ap ); + + return ap; } /* * A small hint where the Applet Should be displayed diff --git a/examples/applet/simpleimpl.h b/examples/applet/simpleimpl.h index 8459c96..f58e2af 100644 --- a/examples/applet/simpleimpl.h +++ b/examples/applet/simpleimpl.h @@ -28,8 +28,10 @@ * luckiy there is a macro for the reference counting * We provide an Implementation of the interface. */ #include <qwidget.h> +#include <qlist.h> + #include <qpe/taskbarappletinterface.h> /* @@ -65,8 +67,11 @@ public: * if reference drops to zero * delete this is called */ Q_REFCOUNT + +private: + QList<SimpleApplet> m_applets; }; #endif |