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