VTK  9.4.20250210
vtkQtDebugLeaksModel.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
16#ifndef vtkQtDebugLeaksModel_h
17#define vtkQtDebugLeaksModel_h
18
19#include "vtkGUISupportQtModule.h" // For export macro
20#include <QStandardItemModel>
21
22VTK_ABI_NAMESPACE_BEGIN
23class vtkObjectBase;
24
25class VTKGUISUPPORTQT_EXPORT vtkQtDebugLeaksModel : public QStandardItemModel
26{
27 Q_OBJECT
28
29public:
30 vtkQtDebugLeaksModel(QObject* p = nullptr);
32
36 QList<vtkObjectBase*> getObjects(const QString& className);
37
43 QStandardItemModel* referenceCountModel(const QString& className);
44
45protected Q_SLOTS:
46
47 void addObject(vtkObjectBase* object);
52
53 // Inherited method from QAbstractItemModel
54 Qt::ItemFlags flags(const QModelIndex& index) const override;
55
56private:
57 class qInternal;
58 qInternal* Internal;
59
60 class qObserver;
61 qObserver* Observer;
62
63 Q_DISABLE_COPY(vtkQtDebugLeaksModel);
64};
65
66// TODO - move to private
67//-----------------------------------------------------------------------------
68class ReferenceCountModel : public QStandardItemModel
69{
70 Q_OBJECT
71
72public:
73 ReferenceCountModel(QObject* p = nullptr);
77 QString pointerAsString(void* ptr);
78
79 // Inherited method from QAbstractItemModel
80 Qt::ItemFlags flags(const QModelIndex& index) const override;
81
82protected Q_SLOTS:
84};
85
86VTK_ABI_NAMESPACE_END
87#endif
88// VTK-HeaderTest-Exclude: vtkQtDebugLeaksModel.h
void updateReferenceCounts()
Qt::ItemFlags flags(const QModelIndex &index) const override
void removeObject(vtkObjectBase *obj)
~ReferenceCountModel() override
QString pointerAsString(void *ptr)
void addObject(vtkObjectBase *obj)
ReferenceCountModel(QObject *p=nullptr)
abstract base class for most VTK objects
model class that observes the vtkDebugLeaks singleton
void removeObject(vtkObjectBase *object)
QStandardItemModel * referenceCountModel(const QString &className)
Return an item model that contains only objects with the given class name.
~vtkQtDebugLeaksModel() override
QList< vtkObjectBase * > getObjects(const QString &className)
Get the list of objects in the model that have the given class name.
void registerObject(vtkObjectBase *object)
vtkQtDebugLeaksModel(QObject *p=nullptr)
void addObject(vtkObjectBase *object)
Qt::ItemFlags flags(const QModelIndex &index) const override