VTK  9.3.1
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);
31  ~vtkQtDebugLeaksModel() override;
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);
49  void registerObject(vtkObjectBase* object);
50  void processPendingObjects();
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);
74  ~ReferenceCountModel() override;
75  void addObject(vtkObjectBase* obj);
76  void removeObject(vtkObjectBase* obj);
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:
83  void updateReferenceCounts();
84 };
85 
86 VTK_ABI_NAMESPACE_END
87 #endif
88 // VTK-HeaderTest-Exclude: vtkQtDebugLeaksModel.h
model class that observes the vtkDebugLeaks singleton
void removeObject(vtkObjectBase *obj)
void updateReferenceCounts()
Qt::ItemFlags flags(const QModelIndex &index) const override
QString pointerAsString(void *ptr)
abstract base class for most VTK objects
Definition: vtkObjectBase.h:62
~ReferenceCountModel() override
ReferenceCountModel(QObject *p=nullptr)
void addObject(vtkObjectBase *obj)