pqParaViewBehaviors.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 pqParaViewBehaviors_h
5 #define pqParaViewBehaviors_h
6 
7 #include "pqApplicationComponentsModule.h"
8 
9 #include "vtkParaViewDeprecation.h" // for PARAVIEW_DEPRECATED_IN_5_13_0
10 #include "vtkSetGet.h" // for VTK_LEGACY.
11 
12 #include <QFlags>
13 #include <QObject>
14 
15 class QMainWindow;
16 
41 #define PQ_BEHAVIOR_DEFINE_METHODS(_name) \
42  static void setEnable##_name(bool val) \
43  { \
44  pqParaViewBehaviors::_name = val; \
45  } \
46  static bool enable##_name() \
47  { \
48  return pqParaViewBehaviors::_name; \
49  }
50 
51 #define PQ_BEHAVIOR_DEFINE_METHODS_LEGACY(_name) \
52  VTK_LEGACY(static void setEnable##_name(bool val) { pqParaViewBehaviors::_name = val; }); \
53  VTK_LEGACY(static bool enable##_name() { return pqParaViewBehaviors::_name; });
54 
55 #define PQ_BEHAVIOR_DECLARE_FLAG(_name) static bool _name;
56 
57 class PQAPPLICATIONCOMPONENTS_EXPORT pqParaViewBehaviors : public QObject
58 {
59  Q_OBJECT
60  typedef QObject Superclass;
61 
62 public:
63  PQ_BEHAVIOR_DEFINE_METHODS(StandardPropertyWidgets);
64  PQ_BEHAVIOR_DEFINE_METHODS(StandardViewFrameActions);
65  PQ_BEHAVIOR_DEFINE_METHODS(StandardRecentlyUsedResourceLoader);
66  PQ_BEHAVIOR_DEFINE_METHODS(DataTimeStepBehavior);
67  PQ_BEHAVIOR_DEFINE_METHODS(SpreadSheetVisibilityBehavior);
68  PQ_BEHAVIOR_DEFINE_METHODS(PipelineContextMenuBehavior);
69  PQ_BEHAVIOR_DEFINE_METHODS(BlockContentMenu);
70  PQ_BEHAVIOR_DEFINE_METHODS(ObjectPickingBehavior);
71  PQ_BEHAVIOR_DEFINE_METHODS(DefaultViewBehavior);
72  PQ_BEHAVIOR_DEFINE_METHODS(UndoRedoBehavior);
73  PQ_BEHAVIOR_DEFINE_METHODS(AlwaysConnectedBehavior);
74  PQ_BEHAVIOR_DEFINE_METHODS(CrashRecoveryBehavior);
75  PQ_BEHAVIOR_DEFINE_METHODS(AutoSaveBehavior);
76  PQ_BEHAVIOR_DEFINE_METHODS(AutoLoadPluginXMLBehavior);
77  PQ_BEHAVIOR_DEFINE_METHODS(PluginDockWidgetsBehavior);
78  PQ_BEHAVIOR_DEFINE_METHODS(VerifyRequiredPluginBehavior);
79  PQ_BEHAVIOR_DEFINE_METHODS(PluginActionGroupBehavior);
80  PQ_BEHAVIOR_DEFINE_METHODS(PluginToolBarBehavior);
81  PQ_BEHAVIOR_DEFINE_METHODS(CommandLineOptionsBehavior);
82  PQ_BEHAVIOR_DEFINE_METHODS(PersistentMainWindowStateBehavior);
83  PQ_BEHAVIOR_DEFINE_METHODS(CollaborationBehavior);
84  PQ_BEHAVIOR_DEFINE_METHODS(ViewStreamingBehavior);
85  PQ_BEHAVIOR_DEFINE_METHODS(PluginSettingsBehavior);
87  PQ_BEHAVIOR_DEFINE_METHODS(QuickLaunchShortcuts);
88  PQ_BEHAVIOR_DEFINE_METHODS(LockPanelsBehavior);
89  PQ_BEHAVIOR_DEFINE_METHODS(PythonShellResetBehavior);
90  PQ_BEHAVIOR_DEFINE_METHODS(CustomShortcutBehavior);
91  PQ_BEHAVIOR_DEFINE_METHODS(MainWindowEventBehavior);
92  PQ_BEHAVIOR_DEFINE_METHODS(PropertyPanelVisibilitiesBehavior);
93 
95 
100  PQ_BEHAVIOR_DEFINE_METHODS(UsageLoggingBehavior);
102 
104 
108  PQ_BEHAVIOR_DEFINE_METHODS(LiveSourceBehavior);
110 
112 
120  PQ_BEHAVIOR_DEFINE_METHODS(WheelNeedsFocusBehavior);
122 
123  pqParaViewBehaviors(QMainWindow* window, QObject* parent = nullptr);
124  ~pqParaViewBehaviors() override;
125 
126 private:
127  Q_DISABLE_COPY(pqParaViewBehaviors)
128 
129  PQ_BEHAVIOR_DECLARE_FLAG(StandardPropertyWidgets);
130  PQ_BEHAVIOR_DECLARE_FLAG(StandardViewFrameActions);
131  PQ_BEHAVIOR_DECLARE_FLAG(StandardRecentlyUsedResourceLoader);
132  PQ_BEHAVIOR_DECLARE_FLAG(DataTimeStepBehavior);
133  PQ_BEHAVIOR_DECLARE_FLAG(SpreadSheetVisibilityBehavior);
134  PQ_BEHAVIOR_DECLARE_FLAG(PipelineContextMenuBehavior);
135  PQ_BEHAVIOR_DECLARE_FLAG(BlockContentMenu);
136  PQ_BEHAVIOR_DECLARE_FLAG(ObjectPickingBehavior);
137  PQ_BEHAVIOR_DECLARE_FLAG(DefaultViewBehavior);
138  PQ_BEHAVIOR_DECLARE_FLAG(UndoRedoBehavior);
139  PQ_BEHAVIOR_DECLARE_FLAG(AlwaysConnectedBehavior);
140  PQ_BEHAVIOR_DECLARE_FLAG(CrashRecoveryBehavior);
141  PQ_BEHAVIOR_DECLARE_FLAG(AutoSaveBehavior);
142  PQ_BEHAVIOR_DECLARE_FLAG(AutoLoadPluginXMLBehavior);
143  PQ_BEHAVIOR_DECLARE_FLAG(PluginDockWidgetsBehavior);
144  PQ_BEHAVIOR_DECLARE_FLAG(VerifyRequiredPluginBehavior);
145  PQ_BEHAVIOR_DECLARE_FLAG(PluginActionGroupBehavior);
146  PQ_BEHAVIOR_DECLARE_FLAG(PluginToolBarBehavior);
147  PQ_BEHAVIOR_DECLARE_FLAG(CommandLineOptionsBehavior);
148  PQ_BEHAVIOR_DECLARE_FLAG(PersistentMainWindowStateBehavior);
149  PQ_BEHAVIOR_DECLARE_FLAG(CollaborationBehavior);
150  PQ_BEHAVIOR_DECLARE_FLAG(ViewStreamingBehavior);
151  PQ_BEHAVIOR_DECLARE_FLAG(PluginSettingsBehavior);
152  PQ_BEHAVIOR_DECLARE_FLAG(ApplyBehavior);
153  PQ_BEHAVIOR_DECLARE_FLAG(QuickLaunchShortcuts);
154  PQ_BEHAVIOR_DECLARE_FLAG(LockPanelsBehavior);
155  PQ_BEHAVIOR_DECLARE_FLAG(PythonShellResetBehavior);
156  PQ_BEHAVIOR_DECLARE_FLAG(WheelNeedsFocusBehavior);
157  PQ_BEHAVIOR_DECLARE_FLAG(LiveSourceBehavior);
158  PQ_BEHAVIOR_DECLARE_FLAG(CustomShortcutBehavior);
159  PQ_BEHAVIOR_DECLARE_FLAG(MainWindowEventBehavior);
160  PQ_BEHAVIOR_DECLARE_FLAG(UsageLoggingBehavior);
161  PQ_BEHAVIOR_DECLARE_FLAG(PropertyPanelVisibilitiesBehavior);
162 };
163 
164 #undef PQ_BEHAVIOR_DECLARE_FLAG
165 #undef PQ_BEHAVIOR_DEFINE_METHODS
166 
167 #endif
#define PQ_BEHAVIOR_DEFINE_METHODS(_name)
creates all standard ParaView behaviourspqParaViewBehaviors creates all the behaviors used by ParaVie...
#define PQ_BEHAVIOR_DECLARE_FLAG(_name)