listbase.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KCAL_LISTBASE_H
00022 #define KCAL_LISTBASE_H
00023
00024 #include <qvaluelist.h>
00025
00026 namespace KCal {
00027
00032 template<class T>
00033 class ListBase : public QValueList<T *>
00034 {
00035 public:
00036 ListBase()
00037 : QValueList<T *>(), mAutoDelete( false )
00038 {
00039 }
00040
00041 ListBase( const ListBase &l )
00042 : QValueList<T *>( l ), mAutoDelete( false )
00043 {
00044 }
00045
00046 ~ListBase()
00047 {
00048 if ( mAutoDelete ) {
00049 QValueListIterator<T *> it;
00050 for( it = QValueList<T*>::begin(); it != QValueList<T*>::end(); ++it ) {
00051 delete *it;
00052 }
00053 }
00054 }
00055
00056 ListBase &operator=( const ListBase &l )
00057 {
00058 if ( this == &l ) return *this;
00059 QValueList<T *>::operator=( l );
00060 return *this;
00061 }
00062
00063 void setAutoDelete( bool autoDelete )
00064 {
00065 mAutoDelete = autoDelete;
00066 }
00067
00068 bool removeRef( T *t )
00069 {
00070 QValueListIterator<T *> it = find( t );
00071 if ( it == QValueList<T*>::end() ) {
00072 return false;
00073 } else {
00074 if ( mAutoDelete ) delete t;
00075 remove( it );
00076 return true;
00077 }
00078 }
00079
00080 private:
00081 bool mAutoDelete;
00082 };
00083
00084 }
00085
00086 #endif
This file is part of the documentation for libkcal Library Version 3.2.2.