pqProgressManager.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-FileCopyrightText: Copyright (c) Sandia Corporation
3 // SPDX-License-Identifier: BSD-3-Clause
4 #ifndef pqProgressManager_h
5 #define pqProgressManager_h
6 
7 #include "pqCoreModule.h"
8 #include <QList>
9 #include <QObject>
10 #include <QPointer>
11 
12 class vtkObject;
13 class pqServer;
21 class PQCORE_EXPORT pqProgressManager : public QObject
22 {
23  Q_OBJECT
24 public:
25  pqProgressManager(QObject* parent = nullptr);
26  ~pqProgressManager() override;
27 
32  void lockProgress(QObject* object);
33 
37  void unlockProgress(QObject* object);
38 
42  bool isLocked() const;
43 
49  void addNonBlockableObject(QObject* o) { this->NonBlockableObjects.push_back(o); }
50  void removeNonBlockableObject(QObject* o) { this->NonBlockableObjects.removeAll(o); }
51 
55  const QList<QPointer<QObject>>& nonBlockableObjects() const { return this->NonBlockableObjects; }
56 
57 protected:
61  bool eventFilter(QObject* obj, QEvent* event) override;
62 
63 public Q_SLOTS:
69  void setProgress(const QString& message, int progress, bool processEvents = false);
70 
74  void setEnableProgress(bool);
75 
79  void beginProgress() { this->setEnableProgress(true); }
80  void endProgress() { this->setEnableProgress(false); }
81 
85  void setEnableAbort(bool);
86 
92  void triggerAbort();
93 
108  bool unblockEvents(bool val);
109 
110 Q_SIGNALS:
111 
112  void progress(const QString& message, int progress);
113 
114  void enableProgress(bool);
115 
116  void enableAbort(bool);
117 
118  void progressStartEvent();
119  void progressEndEvent();
120 
121 protected Q_SLOTS:
125  void onStartProgress();
126  void onEndProgress();
127  void onProgress(vtkObject*);
128  void onServerAdded(pqServer*);
129 
130 protected: // NOLINT(readability-redundant-access-specifiers)
131  QPointer<QObject> Lock;
132  QList<QPointer<QObject>> NonBlockableObjects;
134  bool InUpdate; // used to avoid recursive updates.
135 
139 
140 private:
141  Q_DISABLE_COPY(pqProgressManager)
142 };
143 
144 #endif
void removeNonBlockableObject(QObject *o)
QList< QPointer< QObject > > NonBlockableObjects
pqProgressManager is progress manager.
progress
QPointer< QObject > Lock
void addNonBlockableObject(QObject *o)
When progress is enabled, the manager eats all mouse and key events fired except for those objects wh...
const QList< QPointer< QObject > > & nonBlockableObjects() const
Returns the list of non-blockable objects.
void beginProgress()
Convenience slots that simply call setEnableProgress().
pqServer (should be renamed to pqSession) is a pqServerManagerModelItem subclass that represents a vt...
Definition: pqServer.h:37