pqViewFrame.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 pqViewFrame_h
5 #define pqViewFrame_h
6 
7 #include "pqComponentsModule.h"
8 #include <QMap>
9 #include <QPointer>
10 #include <QScopedPointer>
11 #include <QUuid>
12 #include <QWidget>
13 
14 class QDragEnterEvent;
15 class QDragMoveEvent;
16 class QDropEvent;
17 class QFrame;
18 class QLabel;
19 class QMenu;
20 class QToolBar;
21 class QToolButton;
23 class pqView;
24 
31 class PQCOMPONENTS_EXPORT pqViewFrame : public QWidget
32 {
33  Q_OBJECT
34  typedef QWidget Superclass;
35 
36 public:
37  pqViewFrame(QWidget* parent = nullptr);
38  ~pqViewFrame() override;
39 
44  void setTitle(const QString& text);
45  QString title() const;
46 
53  void setCentralWidget(QWidget* widget, pqView* view = nullptr);
54  QWidget* centralWidget() const;
55 
60  void setBorderColor(const QColor& clr);
61  const QColor& borderColor() const { return this->BorderColor; }
62 
66  bool isBorderVisible() const { return this->BorderVisible; }
67 
71  bool isTitleBarVisible() const { return this->TitleBarVisible; }
72 
74  {
75  NoButton = 0x0000,
76  SplitHorizontal = 0x0001,
77  SplitVertical = 0x0002,
78  Maximize = 0x0004,
79  Restore = 0x0008,
80  Close = 0x0010
81  };
82 
83  Q_DECLARE_FLAGS(StandardButtons, StandardButton);
84 
89  void setStandardButtons(StandardButtons buttons);
90  StandardButtons standardButtons() const { return this->Buttons; }
91 
95  void addTitleBarAction(QAction* action);
96  QAction* addTitleBarAction(const QString& title);
97  QAction* addTitleBarAction(const QIcon& icon, const QString& title);
98 
102  QAction* addTitleBarSeparator();
103 
107  void removeTitleBarActions();
108 
112  QMenu* contextMenu() const;
113 
117  QUuid uniqueID() const { return this->UniqueID; }
118 
119 Q_SIGNALS:
123  void buttonPressed(int button);
124 
128  void actionTriggered(QAction* action);
129 
133  void swapPositions(const QString& other);
134 
139  void finishDrag(pqViewFrame* source);
140 
141 public Q_SLOTS:
145  void setBorderVisibility(bool val)
146  {
147  this->BorderVisible = val;
148  this->updateComponentVisibilities();
149  }
150 
154  void setTitleBarVisibility(bool val)
155  {
156  this->TitleBarVisible = val;
157  this->updateComponentVisibilities();
158  }
159 
161  {
162  this->DecorationsVisible = val;
163  this->updateComponentVisibilities();
164  }
165 
166  void onViewNameChanged(pqServerManagerModelItem*);
167 
171  bool eventFilter(QObject*, QEvent*) override;
172 
173 protected:
178  virtual void updateComponentVisibilities();
179 
183  void drag();
184  void dragEnter(QDragEnterEvent*);
185  void drop(QDropEvent*);
186 
187 protected Q_SLOTS: // NOLINT(readability-redundant-access-specifiers)
188  void buttonClicked();
189  void contextMenuRequested(const QPoint&);
190 
191 protected: // NOLINT(readability-redundant-access-specifiers)
195  QColor BorderColor;
196  StandardButtons Buttons;
197  QPointer<QToolBar> ToolBar;
198  QPointer<QWidget> CentralWidget;
199  QPointer<QMenu> ContextMenu;
200  QUuid UniqueID;
202  typedef QMap<StandardButton, QPointer<QToolButton>> StandardToolButtonsMap;
203  StandardToolButtonsMap StandardToolButtons;
206  QString PlainTitle;
207 
208 private:
209  Q_DISABLE_COPY(pqViewFrame)
210 
211 
214  QToolButton* createButton(QAction* action);
215 
216  class pqInternals;
217  const QScopedPointer<pqInternals> Internals;
218 private Q_SLOTS: // NOLINT(readability-redundant-access-specifiers)
219  void finishedDrag(pqViewFrame* source);
220 };
221 
222 Q_DECLARE_OPERATORS_FOR_FLAGS(pqViewFrame::StandardButtons);
223 
224 #endif
QPalette PaletteWithoutBorder
Definition: pqViewFrame.h:205
QUuid uniqueID() const
provides access to the unique id assigned to the frame.
Definition: pqViewFrame.h:117
#define PQCOMPONENTS_EXPORT
QString PlainTitle
Definition: pqViewFrame.h:206
bool TitleBarVisible
Definition: pqViewFrame.h:193
pqViewFrame is used to represent a frame for any ParaView view shown in the pqMultiViewWidget.
Definition: pqViewFrame.h:31
StandardToolButtonsMap StandardToolButtons
Definition: pqViewFrame.h:203
bool BorderVisible
Definition: pqViewFrame.h:194
void setDecorationsVisibility(bool val)
Definition: pqViewFrame.h:160
pqServerManagerModelItem is a element maintained by pqServerManagerModel.
This is a PQ abstraction of a generic view module.
Definition: pqView.h:26
void setBorderVisibility(bool val)
set whether the border is visible.
Definition: pqViewFrame.h:145
QPointer< QToolBar > ToolBar
Definition: pqViewFrame.h:197
QPointer< QWidget > CentralWidget
Definition: pqViewFrame.h:198
const QColor & borderColor() const
Definition: pqViewFrame.h:61
bool isTitleBarVisible() const
Get whether the title-bar is shown.
Definition: pqViewFrame.h:71
source
QPalette PaletteWithBorder
Definition: pqViewFrame.h:204
void setTitleBarVisibility(bool val)
set whether the title-bar is visible.
Definition: pqViewFrame.h:154
QPoint DragStartPosition
Definition: pqViewFrame.h:201
QUuid UniqueID
Definition: pqViewFrame.h:200
StandardButtons Buttons
Definition: pqViewFrame.h:196
QColor BorderColor
Definition: pqViewFrame.h:195
bool isBorderVisible() const
Get/Set the border visibility.
Definition: pqViewFrame.h:66
Q_DECLARE_OPERATORS_FOR_FLAGS(pqViewFrame::StandardButtons)
QMap< StandardButton, QPointer< QToolButton > > StandardToolButtonsMap
Definition: pqViewFrame.h:202
StandardButtons standardButtons() const
Definition: pqViewFrame.h:90
QPointer< QMenu > ContextMenu
Definition: pqViewFrame.h:199
bool DecorationsVisible
Definition: pqViewFrame.h:192
title