Qt 4.8
Public Functions | Private Slots | Properties | List of all members
QObjectCleanupHandler Class Reference

The QObjectCleanupHandler class watches the lifetime of multiple QObjects. More...

#include <qobjectcleanuphandler.h>

Inheritance diagram for QObjectCleanupHandler:
QObject

Public Functions

QObjectadd (QObject *object)
 Adds object to this cleanup handler and returns the pointer to the object. More...
 
void clear ()
 Deletes all objects in this cleanup handler. More...
 
bool isEmpty () const
 Returns true if this cleanup handler is empty or if all objects in this cleanup handler have been destroyed; otherwise return false. More...
 
 QObjectCleanupHandler ()
 Constructs an empty QObjectCleanupHandler. More...
 
void remove (QObject *object)
 Removes the object from this cleanup handler. More...
 
 ~QObjectCleanupHandler ()
 Destroys the cleanup handler. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Private Slots

void objectDestroyed (QObject *)
 

Properties

QObjectList cleanupObjects
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QObjectCleanupHandler class watches the lifetime of multiple QObjects.

A QObjectCleanupHandler is useful whenever you need to know when a number of QObject that are owned by someone else have been deleted. This is important, for example, when referencing memory in an application that has been allocated in a shared library.

To keep track of some QObject, create a QObjectCleanupHandler, and add() the objects you are interested in. If you are no longer interested in tracking a particular object, use remove() to remove it from the cleanup handler. If an object being tracked by the cleanup handler gets deleted by someone else it will automatically be removed from the cleanup handler. You can delete all the objects in the cleanup handler with clear(), or by destroying the cleanup handler. isEmpty() returns true if the QObjectCleanupHandler has no objects to keep track of.

See also
QPointer

Definition at line 53 of file qobjectcleanuphandler.h.

Constructors and Destructors

◆ QObjectCleanupHandler()

QObjectCleanupHandler::QObjectCleanupHandler ( )

Constructs an empty QObjectCleanupHandler.

Definition at line 77 of file qobjectcleanuphandler.cpp.

78 {
79 }

◆ ~QObjectCleanupHandler()

QObjectCleanupHandler::~QObjectCleanupHandler ( )

Destroys the cleanup handler.

All objects in this cleanup handler will be deleted.

See also
clear()

Definition at line 87 of file qobjectcleanuphandler.cpp.

88 {
89  clear();
90 }
void clear()
Deletes all objects in this cleanup handler.

Functions

◆ add()

QObject * QObjectCleanupHandler::add ( QObject object)

Adds object to this cleanup handler and returns the pointer to the object.

See also
remove()

Definition at line 98 of file qobjectcleanuphandler.cpp.

99 {
100  if (!object)
101  return 0;
102 
104  cleanupObjects.insert(0, object);
105  return object;
106 }
#define SLOT(a)
Definition: qobjectdefs.h:226
void insert(int i, const T &t)
Inserts value at index position i in the list.
Definition: qlist.h:575
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
#define SIGNAL(a)
Definition: qobjectdefs.h:227
void destroyed(QObject *=0)
This signal is emitted immediately before the object obj is destroyed, and can not be blocked...
static bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Creates a connection of the given type from the signal in the sender object to the method in the rece...
Definition: qobject.cpp:2580

◆ clear()

void QObjectCleanupHandler::clear ( )

Deletes all objects in this cleanup handler.

The cleanup handler becomes empty.

See also
isEmpty()

Definition at line 140 of file qobjectcleanuphandler.cpp.

Referenced by QWSSignalHandler::clear(), and ~QObjectCleanupHandler().

141 {
142  while (!cleanupObjects.isEmpty())
143  delete cleanupObjects.takeFirst();
144 }
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
T takeFirst()
Removes the first item in the list and returns it.
Definition: qlist.h:489

◆ isEmpty()

bool QObjectCleanupHandler::isEmpty ( ) const

Returns true if this cleanup handler is empty or if all objects in this cleanup handler have been destroyed; otherwise return false.

See also
add() remove() clear()

Definition at line 129 of file qobjectcleanuphandler.cpp.

130 {
131  return cleanupObjects.isEmpty();
132 }
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152

◆ objectDestroyed

void QObjectCleanupHandler::objectDestroyed ( QObject object)
privateslot

Definition at line 146 of file qobjectcleanuphandler.cpp.

Referenced by add(), and remove().

147 {
148  remove(object);
149 }

◆ remove()

void QObjectCleanupHandler::remove ( QObject object)

Removes the object from this cleanup handler.

The object will not be destroyed.

See also
add()

Definition at line 114 of file qobjectcleanuphandler.cpp.

115 {
116  int index;
117  if ((index = cleanupObjects.indexOf(object)) != -1) {
118  cleanupObjects.removeAt(index);
120  }
121 }
#define SLOT(a)
Definition: qobjectdefs.h:226
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
#define SIGNAL(a)
Definition: qobjectdefs.h:227
void destroyed(QObject *=0)
This signal is emitted immediately before the object obj is destroyed, and can not be blocked...
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
Disconnects signal in object sender from method in object receiver.
Definition: qobject.cpp:2895
int indexOf(const T &t, int from=0) const
Returns the index position of the first occurrence of value in the list, searching forward from index...
Definition: qlist.h:847
quint16 index
void removeAt(int i)
Removes the item at index position i.
Definition: qlist.h:480

Properties

◆ cleanupObjects

QObjectList QObjectCleanupHandler::cleanupObjects
private

Definition at line 68 of file qobjectcleanuphandler.h.

Referenced by add(), clear(), isEmpty(), and remove().


The documentation for this class was generated from the following files: