VTK  9.3.20240328
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 
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkObjectBase;
24 
25 class VTKGUISUPPORTQT_EXPORT vtkQtDebugLeaksModel : public QStandardItemModel
26 {
27  Q_OBJECT
28 
29 public:
30  vtkQtDebugLeaksModel(QObject* p = nullptr);
32 
36  QList<vtkObjectBase*> getObjects(const QString& className);
37 
43  QStandardItemModel* referenceCountModel(const QString& className);
44 
45 protected Q_SLOTS:
46 
47  void addObject(vtkObjectBase* object);
48  void removeObject(vtkObjectBase* object);
51  void onAboutToQuit();
52 
53  // Inherited method from QAbstractItemModel
54  Qt::ItemFlags flags(const QModelIndex& index) const override;
55 
56 private:
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 //-----------------------------------------------------------------------------
68 class ReferenceCountModel : public QStandardItemModel
69 {
70  Q_OBJECT
71 
72 public:
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 
82 protected Q_SLOTS:
84 };
85 
86 VTK_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
Definition: vtkObjectBase.h:83
model class that observes the vtkDebugLeaks singleton
void removeObject(vtkObjectBase *object)
QList< vtkObjectBase * > getObjects(const QString &className)
Get the list of objects in the model that have the given class name.
~vtkQtDebugLeaksModel() override
void registerObject(vtkObjectBase *object)
QStandardItemModel * referenceCountModel(const QString &className)
Return an item model that contains only objects with the given class name.
vtkQtDebugLeaksModel(QObject *p=nullptr)
void addObject(vtkObjectBase *object)
Qt::ItemFlags flags(const QModelIndex &index) const override
@ index
Definition: vtkX3D.h:246