VR-Forces 4.6.1 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) 2017 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 
127  virtual bool eventFilter(QObject *obj, QEvent *event);
128 
129 
130 
131 
132  protected slots:
133 
135  virtual void onAddObserverView();
136 
140  virtual void onViewSelectionChanged();
141 
145  virtual void onItemPressed();
146 
148  virtual void onClearObserverViews();
149 
152  virtual void onAssociateViewsToTerrain();
153 
156  virtual void onSaveViewsToFile();
157 
160  virtual void onLoadAndMergeViews();
161 
165  virtual void observerViewNameChanged();
166 
168  void onRightClicked(QTreeWidgetItem*, QMouseEvent*, int col, int row);
169 
171  virtual void onDissociateViewsToTerrain();
172 
174  virtual void enableObserverViewsList(bool enabled);
175 
177  virtual void enableAddViewButton(bool enabled);
178 
180  virtual void enableAssociateViewsToTerrainButton(bool enabled);
181 
183  virtual void enableSaveToFileButton(bool enabled);
184 
187  virtual void enableSaveButton(bool enabled);
188 
189 
191  virtual void enableDissociateViewsButton(bool enabled);
192 
194  virtual void enableLoadAndMergeViewsButton(bool enabled);
195 
197  virtual void enableClearViewsButton(bool enabled);
198 
199  // !\brief enables the "Associate Views To Terrain" button
200  virtual void setAssociateViewsToTerrainButtonOnExitMessageVisible(bool visible);
201 
202  // !\brief enables the "Saved Changes Button" button
203  virtual void setSavedChangesButtonOnExitMessageVisible(bool visible);
204 
205  // !\brief return the number of observer views in the widget
206  virtual int viewListSize();
207 
208  virtual void dissociateViewFromTerrain(const std::string& viewName);
209 
210  protected:
211 
212  virtual void createQtTreeItem(QTreeWidgetItem& item, const DtObserverViewInfoViewerData& observerViewData);
213 
214  protected:
215  QVBoxLayout* myMainLayout;
216  QHBoxLayout* myButtonLayout;
235 
236  };
237 
241  {
242  Q_OBJECT
243  public:
244  DtQtreeView(QWidget *parent = 0);
245  protected:
246  virtual void mousePressEvent(QMouseEvent *event);
247  virtual void resizeEvent(QResizeEvent *event);
248  QWidget* myParent;
249  signals:
251  void rightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col, int row);
252 
253  };
254 
258  {
259  Q_OBJECT
260 
261  public:
262  DtItemIconsDelegate(QWidget *parent = 0);
263  virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
264  virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem&, const QModelIndex&) const;
265 // virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index);
266  private:
267  QWidget* myParent;
268  };
269 
270 
272  {
273 
274  public:
275 
278  virtual ~DtObserverViewQIcon();
279 
280  void setPoint(QPoint p);
281  QPoint point();
282 
283  void setIconFilePath(const std::string&);
284  const std::string& iconFilePath();
285 
286  const QString& toolTiptext() const;
287  void setToolTiptext(const QString& val);
288 
289  protected:
290 
291 
292  private:
293 
294  QString myToolTiptext;
295  QPoint myPosition;
296  std::string myIconFilePath;
297 
298  };
299 
300 
302  {
303  public:
304  enum EditMode { Editable, ReadOnly };
305 
306  typedef std::vector<DtObserverViewQIcon*> IconsVector;
307 
310 
312 
313  void paint(QPainter *painter, const QRect &rect, const QPalette &palette, EditMode mode) const;
314  bool toolTipAtIndex(const QPoint& mousePoint, QString& tooltipText);
315 
316  void setIcons(const IconsVector& icons);
317  void setIcons(const DtObserverViewInfoViewerData::ObserserIconsInfoVector& icons);
318  const IconsVector& icons();
319 
320  bool isDefault() const;
321  void setIsDefault(bool val);
322  DtObserverViewsManager::ViewProjection viewProjection() const;
323  void setViewProjection(DtObserverViewsManager::ViewProjection projection);
324  bool isAssociated() const;
325  void setIsAssociated(bool val);
326 
327 
328  protected:
329  static const int myPaintingScaleFactor = 15;
331 
332  private:
333 
337 
338  QString emptyString;
339  };
340 
341 
342 
346  {
347  public:
348 
350 
353  static DtObserverViewsWidgetCreator& instance(DtDe& de);
354 
355  static void registerInstance(DtDe& de, DtObserverViewsWidgetCreator* instance);
356 
358  virtual DtObserverViewsWidget* create( QWidget* parent);
359 
360  private:
362  };
363 
364 
365 }
366 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)