VR-Forces 4.10 Class Documentation
 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) 2021 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>
18 
19 #include <QtWidgets/QStyledItemDelegate>
20 #include <QtWidgets/QTreeWidget>
22 
23 
24 
25 
26 class QTreeWidget;
27 class QVBoxLayout;
28 class QHBoxLayout;
29 class QPushButton;
30 class QStyleOption;
31 class QMessageBox;
32 class QIcon;
33 
34 
35 namespace makVrv
36 {
37  class DtItemIconsDelegate;
38 
43  : public QWidget
45  {
46  Q_OBJECT
47 
48  public:
49 
51  DtObserverViewsWidget(DtDe& de, QWidget* parent = 0);
52 
54  virtual ~DtObserverViewsWidget();
55 
57  virtual QIcon icon();
58 
60  virtual QString title();
61 
64  bool getClickedObserverViewInfo(DtUnicode& viewName, DtObserverViewsManager::ViewProjection& projection) const;
65 
68  virtual void showSaveChangesMessage();
69 
70 
73  virtual void showClearWarningMessage();
74 
77  virtual void showAssociateWarningMessage();
78 
81  virtual void showDissociateWarningMessage();
82 
88  virtual void requestSaveFilename();
89 
91  virtual void contextItemRequestSaveFilename();
92 
94  virtual void resizeColumns();
95 
96 
97  protected:
98 
100  virtual void activate();
101 
103  virtual void deactivate();
104 
106  void setupUi(QWidget* p);
107 
109  virtual void insertObserverView(int index, const DtObserverViewInfoViewerData& observerData);
110 
112  virtual void clearObserverViews();
113 
115  virtual void deleteView(const std::string&, DtObserverViewsManager::ViewProjection projection);
116 
118  virtual void renameObserverRecord(const std::string& newName,
119  const std::string& oldName);
120 
122  virtual void setDefaultView(const std::string& viewName, DtObserverViewsManager::ViewProjection projection);
123 
125  virtual void unSetDefaultView(const std::string& viewName, DtObserverViewsManager::ViewProjection projection);
126 
128  virtual bool eventFilter(QObject *obj, QEvent *event) override;
129 
131  virtual void dragEnterEvent(QDragEnterEvent* event) override;
132 
134  virtual void dropEvent(QDropEvent* event) override;
135 
136 
137  protected slots:
138 
140  virtual void onAddObserverView();
141 
145  virtual void onViewSelectionChanged();
146 
150  virtual void onItemPressed();
151 
153  virtual void onClearObserverViews();
154 
157  virtual void onAssociateViewsToTerrain();
158 
161  virtual void onSaveViewsToFile();
162 
165  virtual void onLoadAndMergeViews();
166 
170  virtual void observerViewNameChanged();
171 
173  void onRightClicked(QTreeWidgetItem*, QMouseEvent*, int col, int row);
174 
176  virtual void onDissociateViewsToTerrain();
177 
179  virtual void enableObserverViewsList(bool enabled);
180 
182  virtual void enableAddViewButton(bool enabled);
183 
185  virtual void enableAssociateViewsToTerrainButton(bool enabled);
186 
188  virtual void enableSaveToFileButton(bool enabled);
189 
192  virtual void enableSaveButton(bool enabled);
193 
194 
196  virtual void enableDissociateViewsButton(bool enabled);
197 
199  virtual void enableLoadAndMergeViewsButton(bool enabled);
200 
202  virtual void enableClearViewsButton(bool enabled);
203 
204  // !\brief enables the "Associate Views To Terrain" button
205  virtual void setAssociateViewsToTerrainButtonOnExitMessageVisible(bool visible);
206 
207  // !\brief enables the "Saved Changes Button" button
208  virtual void setSavedChangesButtonOnExitMessageVisible(bool visible);
209 
210  // !\brief return the number of observer views in the widget
211  virtual int viewListSize();
212 
213  virtual void dissociateViewFromTerrain(const std::string& viewName);
214 
215  protected:
216 
217  virtual void createQtTreeItem(QTreeWidgetItem& item, const DtObserverViewInfoViewerData& observerViewData);
218 
219  protected:
220  QVBoxLayout* myMainLayout;
221  QHBoxLayout* myButtonLayout;
240 
241  };
242 
246  {
247  Q_OBJECT
248  public:
249  DtQtreeView(QWidget *parent = 0);
250  protected:
251  virtual void mousePressEvent(QMouseEvent *event);
252  virtual void resizeEvent(QResizeEvent *event);
253  QWidget* myParent;
254  signals:
256  void rightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col, int row);
257 
258  };
259 
263  {
264  Q_OBJECT
265 
266  public:
267  DtItemIconsDelegate(QWidget *parent = 0);
268  virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
269  virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem&, const QModelIndex&) const;
270 // virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index);
271  private:
272  QWidget* myParent;
273  };
274 
275 
277  {
278 
279  public:
280 
281  DtObserverViewQIcon(const std::string& iconPath);
283  virtual ~DtObserverViewQIcon();
284 
285  void setPoint(QPoint p);
286  QPoint point();
287 
288  const QPixmap& pixmap();
289  const std::string& iconFilePath();
290 
291  const QString& toolTiptext() const;
292  void setToolTiptext(const QString& val);
293 
294  void setShowIcon(bool show);
295  bool showIcon() const;
296 
297  protected:
298 
299 
300  private:
301 
302  QString myToolTiptext;
303  QPoint myPosition;
304  QPixmap myPixmap;
305  std::string myIconFilePath;
307  };
308 
309 
311  {
312  public:
313  enum EditMode { Editable, ReadOnly };
314 
315  typedef std::vector<DtObserverViewQIcon*> IconsVector;
316 
319 
321 
322  void paint(QPainter *painter, const QRect &rect, const QPalette &palette, EditMode mode) const;
323  bool toolTipAtIndex(const QPoint& mousePoint, QString& tooltipText) const;
324 
325  void setIcons(const IconsVector& icons);
326  void setIcons(const DtObserverViewInfoViewerData::ObserserIconsInfoVector& icons);
327  const IconsVector& icons();
328 
329  bool isDefault() const;
330  void setIsDefault(bool val);
331  DtObserverViewsManager::ViewProjection viewProjection() const;
332  void setViewProjection(DtObserverViewsManager::ViewProjection projection);
333  bool isAssociated() const;
334  void setIsAssociated(bool val);
335 
336 
337  protected:
338  static const int myPaintingScaleFactor = 15;
340 
341  private:
342 
346 
347  QString emptyString;
348  };
349 
350 
351 
355  {
356  public:
357 
359 
362  static DtObserverViewsWidgetCreator& instance(DtDe& de);
363 
364  static void registerInstance(DtDe& de, DtObserverViewsWidgetCreator* instance);
365 
367  virtual DtObserverViewsWidget* create( QWidget* parent);
368 
369  private:
371  };
372 
373 
374 }
375 
bool myShowIcon
Definition: DtObserverViewsWidget.h:306
Override QTreeWidget to provide additional functionality (mainly right click support) ...
Definition: DtTreeWidget.h:19
QPushButton * myAssociateViewsToTerrainExitMessageButton
Definition: DtObserverViewsWidget.h:237
QPoint myPosition
Definition: DtObserverViewsWidget.h:303
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
bool mySaveEnabled
Definition: DtObserverViewsWidget.h:238
QString myToolTiptext
Definition: DtObserverViewsWidget.h:302
QTreeWidget * myObserverViewsList
Definition: DtObserverViewsWidget.h:222
Contains makVrv::DtPage class.
bool myIsAssociated
Definition: DtObserverViewsWidget.h:345
std::vector< DtObserverViewIcon * > ObserserIconsInfoVector
Definition: DtObserverViewInfoViewerData.h:37
std::vector< DtObserverViewQIcon * > IconsVector
Definition: DtObserverViewsWidget.h:315
QVBoxLayout * myMainLayout
Definition: DtObserverViewsWidget.h:220
Definition: DtObserverViewsWidget.h:276
QMessageBox * myMessageBox
Definition: DtObserverViewsWidget.h:233
Contains makVrv::DtObserverViewInfoViewerData class.
DtDe & myDe
Definition: DtObserverViewsWidget.h:232
EditMode
Definition: DtObserverViewsWidget.h:313
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
std::string myIconFilePath
Definition: DtObserverViewsWidget.h:305
Contains DLL export macros.
QPushButton * myLoadViews
Definition: DtObserverViewsWidget.h:227
DtObserverViewsManager::ViewProjection myViewProjection
Definition: DtObserverViewsWidget.h:344
int myIconColumnSize
Definition: DtObserverViewsWidget.h:239
QWidget * myParent
Definition: DtObserverViewsWidget.h:272
Q_DECLARE_METATYPE(DtArticulatedPartEditDialogShdPtr)
Definition: DtObserverViewsWidget.h:262
Class to implement momousePressEvent and opening the context menu (right click)
Definition: DtObserverViewsWidget.h:245
QPushButton * myAssociateViewsToTerrain
Definition: DtObserverViewsWidget.h:225
QPushButton * myAddView
Definition: DtObserverViewsWidget.h:223
Contains makVrv::DtVirtualBaseClass class.
DtDe & myDe
Definition: DtObserverViewsWidget.h:370
QHBoxLayout * myButtonLayout
Definition: DtObserverViewsWidget.h:221
QPixmap myPixmap
Definition: DtObserverViewsWidget.h:304
Abstract interface for the observer views widget.
Definition: DtObserverViewsWidgetInterface.h:24
The creator class needed to be used to create a DtObserverViewsPanel.
Definition: DtObserverViewsWidget.h:354
DtItemIconsDelegate * myItemIconsDelegate
Definition: DtObserverViewsWidget.h:229
QString emptyString
Definition: DtObserverViewsWidget.h:347
int myItemLeftClickedIndex
Definition: DtObserverViewsWidget.h:231
Definition: DtObserverViewsWidget.h:310
QPushButton * myClearViews
Definition: DtObserverViewsWidget.h:228
double myLastSelectionChangedSimTime
Definition: DtObserverViewsWidget.h:230
A widget class for managing different camera views the currently selected observer can be placed in...
Definition: DtObserverViewsWidget.h:42
QPushButton * mySavedChangesExitMessageButton
Definition: DtObserverViewsWidget.h:234
const char int mode
Definition: ioapi.h:38
Contains makVrv::DtObserverViewsWidgetInterface class.
IconsVector myIcons
Definition: DtObserverViewsWidget.h:339
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.
Definition: DtDe.h:69
QWidget * myParent
Definition: DtObserverViewsWidget.h:253
bool myIsDefault
Definition: DtObserverViewsWidget.h:343
QPushButton * myDissociateViews
Definition: DtObserverViewsWidget.h:224
QPushButton * mySavedAsChangesExitMessageButton
Definition: DtObserverViewsWidget.h:235
QPushButton * mySaveToFile
Definition: DtObserverViewsWidget.h:226
ViewProjection
Definition: DtObserverViewsManager.h:35
QPushButton * myDontSaveChangesExitMessageButton
Definition: DtObserverViewsWidget.h:236

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)