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 
91  void triggerAbort();
92 
107  bool unblockEvents(bool val);
108 
109 Q_SIGNALS:
110 
111  void progress(const QString& message, int progress);
112 
113  void enableProgress(bool);
114 
115  void enableAbort(bool);
116 
117  void progressStartEvent();
118  void progressEndEvent();
119 
120 protected Q_SLOTS:
124  void onStartProgress();
125  void onEndProgress();
126  void onProgress(vtkObject*);
127  void onServerAdded(pqServer*);
128 
129 protected: // NOLINT(readability-redundant-access-specifiers)
130  QPointer<QObject> Lock;
131  QList<QPointer<QObject>> NonBlockableObjects;
133  bool InUpdate; // used to avoid recursive updates.
134 
138 
139 private:
140  Q_DISABLE_COPY(pqProgressManager)
141 
142  QList<QWidget*> EnabledWidgetsForAbort;
143  bool AbortEnabled = false;
144 };
145 
146 #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