pqMultiViewWidget.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 pqMultiViewWidget_h
5 #define pqMultiViewWidget_h
6 
7 #include "pqComponentsModule.h"
8 #include <QWidget>
9 
10 class pqProxy;
11 class pqView;
12 class pqViewFrame;
13 class vtkImageData;
14 class vtkObject;
15 class vtkSMProxy;
17 class vtkSMViewProxy;
18 
28 class PQCOMPONENTS_EXPORT pqMultiViewWidget : public QWidget
29 {
30  Q_OBJECT;
31  typedef QWidget Superclass;
32  Q_PROPERTY(bool decorationsVisibility READ decorationsVisibility WRITE setDecorationsVisibility
33  NOTIFY decorationsVisibilityChanged);
34 
35 public:
36  pqMultiViewWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags{});
37  ~pqMultiViewWidget() override;
38 
43  void setLayoutManager(vtkSMViewLayoutProxy*);
44  vtkSMViewLayoutProxy* layoutManager() const;
45 
49  bool decorationsVisibility() const;
50 
54  QList<vtkSMViewProxy*> viewProxies() const;
55 
59  bool isViewAssigned(pqView*) const;
60 
67  bool togglePopout();
68 
87  QSize preview(const QSize& previewSize = QSize());
88 
92  int activeFrameLocation() const;
93 
94 Q_SIGNALS:
98  void frameActivated();
99 
104  void decorationsVisibilityChanged(bool visible);
105 
106 public Q_SLOTS:
112  void reload();
113 
119  void makeFrameActive();
120 
122 
125  void setDecorationsVisibility(bool);
126  void showDecorations() { this->setDecorationsVisibility(true); }
127  void hideDecorations() { this->setDecorationsVisibility(false); }
129 
134  void lockViewSize(const QSize&);
135 
139  void reset();
140 
146  void destroyAllViews();
147 
148 protected Q_SLOTS:
154  void standardButtonPressed(int);
155 
160  void makeActive(pqViewFrame* frame);
161 
166  void markActive(pqView* view);
167  void markActive(pqViewFrame* frame);
168 
172  void swapPositions(const QString&);
173 
178  void proxyRemoved(pqProxy*);
179 
184  void viewAdded(pqView*);
185 
187 
192  void resizeEvent(QResizeEvent* evt) override;
194 
195 protected: // NOLINT(readability-redundant-access-specifiers)
202  virtual pqViewFrame* newFrame(vtkSMProxy* view);
203 
208  bool eventFilter(QObject* caller, QEvent* evt) override;
209 
210 private:
211  void layoutPropertyModified(vtkObject*, unsigned long, void*);
212 
213  Q_DISABLE_COPY(pqMultiViewWidget)
214 
215  class pqInternals;
216  pqInternals* Internals;
217  friend class pqInternals;
218 };
219 
220 #endif
pqView
This is a PQ abstraction of a generic view module.
Definition: pqView.h:26
vtkObject
vtkSMProxy
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:140
vtkImageData
pqMultiViewWidget
pqMultiViewWidget is a widget that manages layout of multiple views.
Definition: pqMultiViewWidget.h:28
pqMultiViewWidget::hideDecorations
void hideDecorations()
Set the visibility for frame decorations and splitter handles.
Definition: pqMultiViewWidget.h:127
vtkSMViewProxy
Superclass for all view proxies.
Definition: vtkSMViewProxy.h:42
pqViewFrame
pqViewFrame is used to represent a frame for any ParaView view shown in the pqMultiViewWidget.
Definition: pqViewFrame.h:31
pqMultiViewWidget::showDecorations
void showDecorations()
Set the visibility for frame decorations and splitter handles.
Definition: pqMultiViewWidget.h:126
pqProxy
This class represents any registered Server Manager proxy.
Definition: pqProxy.h:28
vtkSMViewLayoutProxy
vtkSMViewLayoutProxy is used by ParaView to layout multiple views in a 2D KD-Tree layout.
Definition: vtkSMViewLayoutProxy.h:39