src/qt3support/tools/q3ptrcollection.cpp
changeset 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the Qt3Support module of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #include "q3ptrcollection.h"
       
    43 
       
    44 QT_BEGIN_NAMESPACE
       
    45 
       
    46 /*!
       
    47     \class Q3PtrCollection
       
    48     \reentrant
       
    49     \brief The Q3PtrCollection class is the base class of most pointer-based Qt collections.
       
    50 
       
    51     \compat
       
    52 
       
    53     The Q3PtrCollection class is an abstract base class for the Qt
       
    54     collection classes QDict, Q3PtrList,
       
    55     etc.
       
    56 
       
    57     A Q3PtrCollection only knows about the number of objects in the
       
    58     collection and the deletion strategy (see setAutoDelete()).
       
    59 
       
    60     A collection is implemented using the \c Item (generic collection
       
    61     item) type, which is a \c void*. The template classes that create
       
    62     the real collections cast the \c Item to the required type.
       
    63 */
       
    64 
       
    65 
       
    66 /*!
       
    67     \typedef Q3PtrCollection::Item
       
    68 
       
    69     This type is the generic "item" in a Q3PtrCollection.
       
    70 */
       
    71 
       
    72 
       
    73 /*!
       
    74     \fn Q3PtrCollection::Q3PtrCollection()
       
    75 
       
    76     Constructs a collection. The constructor is protected because
       
    77     Q3PtrCollection is an abstract class.
       
    78 */
       
    79 
       
    80 /*!
       
    81     \fn Q3PtrCollection::Q3PtrCollection( const Q3PtrCollection & source )
       
    82 
       
    83     Constructs a copy of \a source with autoDelete() set to false. The
       
    84     constructor is protected because Q3PtrCollection is an abstract
       
    85     class.
       
    86 
       
    87     Note that if \a source has autoDelete turned on, copying it will
       
    88     risk memory leaks, reading freed memory, or both.
       
    89 */
       
    90 
       
    91 /*!
       
    92     \fn Q3PtrCollection::~Q3PtrCollection()
       
    93 
       
    94     Destroys the collection. The destructor is protected because
       
    95     Q3PtrCollection is an abstract class.
       
    96 */
       
    97 
       
    98 
       
    99 /*!
       
   100     \fn bool Q3PtrCollection::autoDelete() const
       
   101 
       
   102     Returns the setting of the auto-delete option. The default is false.
       
   103 
       
   104     \sa setAutoDelete()
       
   105 */
       
   106 
       
   107 /*!
       
   108     \fn void Q3PtrCollection::setAutoDelete( bool enable )
       
   109 
       
   110     Sets the collection to auto-delete its contents if \a enable is
       
   111     true and to never delete them if \a enable is false.
       
   112 
       
   113     If auto-deleting is turned on, all the items in a collection are
       
   114     deleted when the collection itself is deleted. This is convenient
       
   115     if the collection has the only pointer to the items.
       
   116 
       
   117     The default setting is false, for safety. If you turn it on, be
       
   118     careful about copying the collection - you might find yourself
       
   119     with two collections deleting the same items.
       
   120 
       
   121     Note that the auto-delete setting may also affect other functions
       
   122     in subclasses. For example, a subclass that has a remove()
       
   123     function will remove the item from its data structure, and if
       
   124     auto-delete is enabled, will also delete the item.
       
   125 
       
   126     \sa autoDelete()
       
   127 */
       
   128 
       
   129 
       
   130 /*!
       
   131     \fn virtual uint Q3PtrCollection::count() const
       
   132 
       
   133     Returns the number of objects in the collection.
       
   134 */
       
   135 
       
   136 /*!
       
   137     \fn virtual void Q3PtrCollection::clear()
       
   138 
       
   139     Removes all objects from the collection. The objects will be
       
   140     deleted if auto-delete has been enabled.
       
   141 
       
   142     \sa setAutoDelete()
       
   143 */
       
   144 
       
   145 /*!
       
   146     \fn void Q3PtrCollection::deleteItem( Item d )
       
   147 
       
   148     Reimplement this function if you want to be able to delete items.
       
   149 
       
   150     Deletes an item that is about to be removed from the collection.
       
   151 
       
   152     This function has to reimplemented in the collection template
       
   153     classes, and should \e only delete item \a d if auto-delete has
       
   154     been enabled.
       
   155 
       
   156     \warning If you reimplement this function you must also
       
   157     reimplement the destructor and call the virtual function clear()
       
   158     from your destructor. This is due to the way virtual functions and
       
   159     destructors work in C++: Virtual functions in derived classes
       
   160     cannot be called from a destructor. If you do not do this, your
       
   161     deleteItem() function will not be called when the container is
       
   162     destroyed.
       
   163 
       
   164     \sa newItem(), setAutoDelete()
       
   165 */
       
   166 
       
   167 /*!
       
   168     Virtual function that creates a copy of an object that is about to
       
   169     be inserted into the collection.
       
   170 
       
   171     The default implementation returns the \a d pointer, i.e. no copy
       
   172     is made.
       
   173 
       
   174     This function is seldom reimplemented in the collection template
       
   175     classes. It is not common practice to make a copy of something
       
   176     that is being inserted.
       
   177 
       
   178     \sa deleteItem()
       
   179 */
       
   180 
       
   181 Q3PtrCollection::Item Q3PtrCollection::newItem(Item d)
       
   182 {
       
   183     return d;					// just return reference
       
   184 }
       
   185 
       
   186 QT_END_NAMESPACE