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.3.0.