VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtObserverViewsWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCoreQt/vrvCoreQt.h>
12 #include <vrvCoreQt/DtPage.h>
13 #include <vrvCoreQt/DtTreeWidget.h>
16 
17 #include <vrvUtil/DtUnicode.h>
19 
20 #include <QtWidgets/QStyledItemDelegate>
21 #include <QtWidgets/QTreeWidget>
22 
23 class QTreeWidget;
24 class QVBoxLayout;
25 class QHBoxLayout;
26 class QPushButton;
27 class QStyleOption;
28 class QMessageBox;
29 class QIcon;
30 
31 
32 namespace makVrv
33 {
34  class DtQtreeView;
35  class DtObserverViewsWidgetCreator;
36 
41  : public QWidget
43  {
44  Q_OBJECT
46 
47  public:
48 
50  virtual ~DtObserverViewsWidget();
51 
52  public:
53 
55  virtual QIcon icon();
56 
58  virtual QString title();
59 
62  bool getClickedObserverViewInfo(DtUnicode& viewName, DtObserverViewsManager::ViewProjection& projection) const;
63 
66  virtual void showSaveChangesMessage();
67 
70  virtual void showClearWarningMessage();
71 
74  virtual void showAssociateWarningMessage();
75 
78  virtual void showDissociateWarningMessage();
79 
85  virtual void requestSaveFilename();
86 
88  virtual void contextItemRequestSaveFilename();
89 
91  virtual void resizeColumns();
92 
93  protected:
94 
96  DtObserverViewsWidget(DtDe& de, QWidget* parent = 0);
97 
99  virtual void activate();
100 
102  virtual void deactivate();
103 
105  void setupUi(QWidget* p);
106 
108  virtual void insertObserverView(int index, const DtObserverViewInfoViewerData& observerData);
109 
111  virtual void clearObserverViews();
112 
114  virtual void deleteView(const std::string&, DtObserverViewsManager::ViewProjection projection);
115 
117  virtual void renameObserverRecord(const std::string& newName,
118  const std::string& oldName);
119 
121  virtual void setDefaultView(const std::string& viewName, DtObserverViewsManager::ViewProjection projection);
122 
124  virtual void unSetDefaultView(const std::string& viewName, DtObserverViewsManager::ViewProjection projection);
125 
127  virtual bool eventFilter(QObject *obj, QEvent *event) override;
128 
130  virtual void dragEnterEvent(QDragEnterEvent* event) override;
131 
133  virtual void dropEvent(QDropEvent* event) override;
134 
135  protected slots:
136 
138  virtual void onAddObserverView();
139 
143  virtual void onViewSelectionChanged();
144 
148  virtual void onItemPressed();
149 
151  virtual void onClearObserverViews();
152 
155  virtual void onAssociateViewsToTerrain();
156 
159  virtual void onSaveViewsToFile();
160 
163  virtual void onLoadAndMergeViews();
164 
168  virtual void observerViewNameChanged();
169 
171  void onRightClicked(QTreeWidgetItem*, QMouseEvent*, int col, int row);
172 
174  virtual void onDissociateViewsToTerrain();
175 
177  virtual void enableObserverViewsList(bool enabled);
178 
180  virtual void enableAddViewButton(bool enabled);
181 
183  virtual void enableAssociateViewsToTerrainButton(bool enabled);
184 
186  virtual void enableSaveToFileButton(bool enabled);
187 
190  virtual void enableSaveButton(bool enabled);
191 
193  virtual void enableDissociateViewsButton(bool enabled);
194 
196  virtual void enableLoadAndMergeViewsButton(bool enabled);
197 
199  virtual void enableClearViewsButton(bool enabled);
200 
201  // !\brief enables the "Associate Views To Terrain" button
202  virtual void setAssociateViewsToTerrainButtonOnExitMessageVisible(bool visible);
203 
204  // !\brief enables the "Saved Changes Button" button
205  virtual void setSavedChangesButtonOnExitMessageVisible(bool visible);
206 
207  // !\brief return the number of observer views in the widget
208  virtual int viewListSize();
209 
210  virtual void dissociateViewFromTerrain(const std::string& viewName);
211 
212  protected:
213  QVBoxLayout* myMainLayout;
214  QHBoxLayout* myButtonLayout;
232 
233  };
234 
238  {
239  Q_OBJECT
240  public:
241  DtQtreeView(QWidget *parent = 0);
242  protected:
243  virtual void mousePressEvent(QMouseEvent *event);
244  virtual void resizeEvent(QResizeEvent *event);
245  QWidget* myParent;
246  signals:
248  void rightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col, int row);
249 
250  };
251 
253  {
254  public:
258 
259  public:
260  bool isDefault() const;
261  void setIsDefault(bool val);
262 
263  DtObserverViewsManager::ViewProjection viewProjection() const;
264  void setViewProjection(DtObserverViewsManager::ViewProjection projection);
265 
266  bool isAssociated() const;
267  void setIsAssociated(bool val);
268 
269  protected:
273  };
274 
278  {
279  public:
280 
282 
284  virtual ~DtObserverViewsWidgetCreator();
285 
287  DtObserverViewsWidgetCreator() = delete;
288 
291  const DtObserverViewsWidgetCreator &other) = delete;
292 
294  DtObserverViewsWidgetCreator &operator=(
295  const DtObserverViewsWidgetCreator &other) = delete;
296 
297  public:
298 
301  static DtObserverViewsWidgetCreator& instance(DtDe& de);
302 
303  static void registerInstance(DtDe& de, DtObserverViewsWidgetCreator* instance);
304 
306  virtual DtObserverViewsWidget* create( QWidget* parent);
307 
308  protected:
310  };
311 
312 }
313 
Override QTreeWidget to provide additional functionality (mainly right click support) ...
Definition: DtTreeWidget.h:20
QPushButton * myAssociateViewsToTerrainExitMessageButton
Definition: DtObserverViewsWidget.h:229
DtQtreeView * myObserverViewsList
Definition: DtObserverViewsWidget.h:215
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
bool mySaveEnabled
Definition: DtObserverViewsWidget.h:230
Contains makVrv::DtPage class.
bool myIsAssociated
Definition: DtObserverViewsWidget.h:272
QVBoxLayout * myMainLayout
Definition: DtObserverViewsWidget.h:213
QMessageBox * myMessageBox
Definition: DtObserverViewsWidget.h:225
Contains makVrv::DtObserverViewInfoViewerData class.
DtDe & myDe
Definition: DtObserverViewsWidget.h:224
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
Contains DLL export macros.
QPushButton * myLoadViews
Definition: DtObserverViewsWidget.h:220
DtObserverViewsManager::ViewProjection myViewProjection
Definition: DtObserverViewsWidget.h:271
int myIconColumnSize
Definition: DtObserverViewsWidget.h:231
Q_DECLARE_METATYPE(DtArticulatedPartEditDialogShdPtr)
Class to implement momousePressEvent and opening the context menu (right click)
Definition: DtObserverViewsWidget.h:237
QPushButton * myAssociateViewsToTerrain
Definition: DtObserverViewsWidget.h:218
QPushButton * myAddView
Definition: DtObserverViewsWidget.h:216
Contains makVrv::DtVirtualBaseClass class.
DtDe & myDe
Definition: DtObserverViewsWidget.h:309
QHBoxLayout * myButtonLayout
Definition: DtObserverViewsWidget.h:214
Abstract interface for the observer views widget.
Definition: DtObserverViewsWidgetInterface.h:24
A creator class for creating a DtObserverViewsWidget.
Definition: DtObserverViewsWidget.h:277
int myItemLeftClickedIndex
Definition: DtObserverViewsWidget.h:223
Definition: DtObserverViewsWidget.h:252
QPushButton * myClearViews
Definition: DtObserverViewsWidget.h:221
double myLastSelectionChangedSimTime
Definition: DtObserverViewsWidget.h:222
A widget class for managing different camera views the currently selected observer can be placed in...
Definition: DtObserverViewsWidget.h:40
QPushButton * mySavedChangesExitMessageButton
Definition: DtObserverViewsWidget.h:226
Contains makVrv::DtObserverViewsWidgetInterface class.
helper class to wrap and send the data in the DtObserverViewWidget makVrv::DtObserverViewInfoViewerDa...
Definition: DtObserverViewInfoViewerData.h:32
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
QWidget * myParent
Definition: DtObserverViewsWidget.h:245
bool myIsDefault
Definition: DtObserverViewsWidget.h:270
QPushButton * myDissociateViews
Definition: DtObserverViewsWidget.h:217
QPushButton * mySavedAsChangesExitMessageButton
Definition: DtObserverViewsWidget.h:227
QPushButton * mySaveToFile
Definition: DtObserverViewsWidget.h:219
friend DtObserverViewsWidgetCreator
Definition: DtObserverViewsWidget.h:45
ViewProjection
Definition: DtObserverViewsManager.h:35
QPushButton * myDontSaveChangesExitMessageButton
Definition: DtObserverViewsWidget.h:228

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)