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);
70 
74  void setEnableProgress(bool);
75 
79  void beginProgress() { this->setEnableProgress(true); }
80  void endProgress() { this->setEnableProgress(false); }
81 
85  void setEnableAbort(bool);
86 
90  void triggerAbort();
91 
106  bool unblockEvents(bool val);
107 
108 Q_SIGNALS:
112  void abort();
113 
114  void progress(const QString& message, int progress);
115 
116  void enableProgress(bool);
117 
118  void enableAbort(bool);
119 
120  void progressStartEvent();
121  void progressEndEvent();
122 
123 protected Q_SLOTS:
127  void onStartProgress();
128  void onEndProgress();
129  void onProgress(vtkObject*);
130  void onServerAdded(pqServer*);
131 
132 protected: // NOLINT(readability-redundant-access-specifiers)
133  QPointer<QObject> Lock;
134  QList<QPointer<QObject>> NonBlockableObjects;
136  bool InUpdate; // used to avoid recursive updates.
137 
141 
142 private:
143  Q_DISABLE_COPY(pqProgressManager)
144 };
145 
146 #endif
void removeNonBlockableObject(QObject *o)
QList< QPointer< QObject > > NonBlockableObjects
pqProgressManager is progress manager.
progress
#define PQCORE_EXPORT
Definition: pqCoreModule.h:15
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:35