pqCoreUtilities.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 pqCoreUtilities_h
5 #define pqCoreUtilities_h
6 
7 #include "pqCoreModule.h"
8 #include "pqEventDispatcher.h"
9 
10 #include <QDir>
11 #include <QEventLoop>
12 #include <QFile>
13 #include <QFileInfo>
14 #include <QMessageBox>
15 #include <QPointer>
16 #include <QString>
17 #include <QStringList>
18 #include <QWidget>
19 
20 class QPalette;
21 class vtkObject;
22 
27 class PQCORE_EXPORT pqCoreUtilitiesEventHelper : public QObject
28 {
29  Q_OBJECT;
30  typedef QObject Superclass;
31 
32 public:
33  pqCoreUtilitiesEventHelper(QObject* parent);
34  ~pqCoreUtilitiesEventHelper() override;
35 
36 Q_SIGNALS:
37  void eventInvoked(vtkObject*, unsigned long, void*);
38 
39 private:
40  Q_DISABLE_COPY(pqCoreUtilitiesEventHelper)
41 
42  void executeEvent(vtkObject*, unsigned long, void*);
43  class pqInternal;
44  pqInternal* Interal;
45  friend class pqCoreUtilities;
46 };
47 
52 class PQCORE_EXPORT pqCoreUtilities : public QObject
53 {
54  Q_OBJECT
55 public:
62  static void setMainWidget(QWidget* widget) { pqCoreUtilities::MainWidget = widget; }
63  static QWidget* mainWidget()
64  {
65  if (!pqCoreUtilities::MainWidget)
66  {
67  pqCoreUtilities::MainWidget = pqCoreUtilities::findMainWindow();
68  }
69  return pqCoreUtilities::MainWidget;
70  }
71 
75  static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents)
76  {
77  pqEventDispatcher::processEvents(flags);
78  }
79 
83  static QString getParaViewUserDirectory();
84 
88  static QString getParaViewApplicationDirectory();
89 
94  static QStringList findParaviewPaths(
95  QString directoryOrFileName, bool lookupInAppDir, bool lookupInUserDir);
96  static QString getNoneExistingFileName(QString expectedFilePath);
97 
107  static unsigned long connect(vtkObject* vtk_object, int vtk_event_id, QObject* qobject,
108  const char* signal_or_slot, Qt::ConnectionType type = Qt::AutoConnection);
109 
128  static bool promptUser(const QString& settingsKey, QMessageBox::Icon icon, const QString& title,
129  const QString& message, QMessageBox::StandardButtons buttons, QWidget* parentWdg = nullptr);
130 
137  static QMessageBox::Button promptUserGeneric(const QString& title, const QString& message,
138  QMessageBox::Icon icon, QMessageBox::StandardButtons buttons, QWidget* parentWidget);
139 
149  static QString number(double value, int lowExponent = -6, int highExponent = 20);
150 
155  static QString formatFullNumber(double value);
156 
158 
161  // Format with given precision and notation and shortAccurate flag
162  static QString formatDouble(double value, int notation, bool shortAccurate, int precision,
163  int fullLowExponent = -6, int fullHighExponent = 20);
164 
165  // Format with RealNumberDisplayed settings
166  static QString formatNumber(double value);
167 
168  // Format with AnimationTime settings
169  static QString formatTime(double value);
171 
177  static QString formatMemoryFromKiBValue(double memoryInKB, int precision = 2);
178 
184  static void initializeClickMeButton(QAbstractButton* button);
185 
190  static void setPaletteHighlightToOk(QPalette& palette);
191 
196  static void setPaletteHighlightToWarning(QPalette& palette);
197 
202  static void setPaletteHighlightToCritical(QPalette& palette);
203 
208  static void removeRecursively(QDir dir);
209 
214  static void remove(const QString& filePath);
215 
216 private:
217  static QWidget* findMainWindow();
218  static QPointer<QWidget> MainWidget;
219 };
220 
221 #endif
pqCoreUtilities
pqCoreUtilities is a collection of arbitrary utility functions that can be used by the application.
Definition: pqCoreUtilities.h:52
connect
connect
pqCoreUtilitiesEventHelper
INTERNAL CLASS (DO NOT USE).
Definition: pqCoreUtilities.h:27
vtkObject
pqCoreUtilities::setMainWidget
static void setMainWidget(QWidget *widget)
When popping up dialogs, it's generally better if we set the parent widget for those dialogs to be th...
Definition: pqCoreUtilities.h:62
pqCoreUtilities::processEvents
static void processEvents(QEventLoop::ProcessEventsFlags flags=QEventLoop::AllEvents)
Call QApplication::processEvents plus make sure the testing framework is.
Definition: pqCoreUtilities.h:75
pqCoreUtilities::mainWidget
static QWidget * mainWidget()
Definition: pqCoreUtilities.h:63