VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
syncMatrixTreeWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
15 #include <vrfutil/rwUUID.h>
18 #endif
19 
20 #include <QtWidgets/QStyledItemDelegate>
21 #include <QtWidgets/QTreeWidget>
22 #include <QtWidgets/QHeaderView>
23 
24 class QToolButton;
25 class QLabel;
26 
27 namespace makVrf
28 {
30  {
31  Q_OBJECT
32  public:
33  explicit DtSyncMatrixItemDelegate(makVrv::DtDe& de, QObject *parent = Q_NULLPTR);
34 
35  virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
36  virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
37  virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index);
38  virtual bool helpEvent(QHelpEvent *event,
39  QAbstractItemView *view,
40  const QStyleOptionViewItem &option,
41  const QModelIndex &index);
42 
43  signals:
44  void signal_addObject();
45  void signal_removeObject(const QModelIndex &index);
46  void signal_setPlan(const QModelIndex &index);
47 
48  protected:
49 
50  virtual QPoint getAddIconPosition(const QStyleOptionViewItem& option) const;
51  virtual QPoint getRemoveIconPosition(const QStyleOptionViewItem& option) const;
52  virtual void updateIcons();
53 
54  protected:
56  QPixmap myAddIcon;
57  QPixmap myRemoveIcon;
58  static int myIconMargin;
59  static float myDrawTextSize;
61  };
62 
65  {
66  Q_OBJECT
67  public:
68 
71  {
72  PhaseSectionUserRoleActive = Qt::UserRole,
74  };
75 
76  DtSyncMatrixTreeWidgetHeader(makVrv::DtDe& de, Qt::Orientation orientation, QWidget* parent = Q_NULLPTR);
77 
79 
80  virtual int phaseColumnFromName(const QString& phaseName);
81  virtual void moveToPhase(const QString& requestedPhase, const QString& prevPhase, bool prevPhaseCompleted);
82 
83  virtual void resizePhaseSections();
84 
85  protected slots:
86  virtual void slot_sectionMoved(int _logicalIndex, int oldVisualIndex, int newVisualIndex);
87 
88  signals:
89  void signal_addPhase(int phaseIndex);
90  void signal_removePhase(const QString& phaseName);
91  void signal_editPhase(const QString& phaseName);
92  void signal_movePhase(const QString& phaseName, int phaseIndex);
93 
94  protected:
95 
96  virtual void addPhaseEvent(int phaseIndex);
97  virtual void removePhaseEvent(const QString& phaseName);
98  virtual void editPhaseEvent(const QString& phaseName);
99  virtual void movePhaseEvent(const QString& phaseName, int phaseIndex);
100 
101  virtual void mousePressEvent(QMouseEvent* event);
102  virtual void mouseDoubleClickEvent(QMouseEvent* event);
103  virtual void mouseMoveEvent(QMouseEvent* event);
104  virtual void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const;
105  virtual void contextMenuEvent(QContextMenuEvent* event);
106 
107  virtual QPoint getAddIconPosition(const QRect &rect) const;
108  virtual QPoint getEditIconPosition(const QRect &rect) const;
109  virtual QPoint getRemoveIconPosition(const QRect &rect) const;
110 
111  virtual void updateIcons();
112 
113  protected:
115  QPixmap myAddIcon;
116  QPixmap myEditIcon;
117  QPixmap myRemoveIcon;
118  static int myIconMargin;
120  };
121 
124  {
125  Q_OBJECT
126 
127  Q_PROPERTY(QColor PhaseActiveColor MEMBER myPhaseActiveColor USER true)
128  Q_PROPERTY(QColor PhaseCompletedColor MEMBER myPhaseCompletedColor USER true)
129  Q_PROPERTY(QColor PlanCellBackgroundColor MEMBER myPlanCellBackgroundColor USER true)
130  Q_PROPERTY(QColor PlanCellColor MEMBER myPlanCellColor USER true)
131 
132  public:
133 
138  {
139  ItemUserRoleUUID = Qt::UserRole,
142  ItemuserRoleIsHiddenByFOW
143  };
144 
145  //CTOR
146  DtSyncMatrixTreeWidget(makVrv::DtDe& de, QWidget* parent = Q_NULLPTR);
147 
148  //DTOR
149  virtual ~DtSyncMatrixTreeWidget();
150 
151  virtual void resetMatrix(const DtRwSyncMatrixPhaseList& phases);
152  virtual void clearObjects();
153  virtual void clearPlans();
154  virtual void clearAll();
155 
156  const QColor& phaseActiveColor() const
157  {
158  return myPhaseActiveColor;
159  }
160 
161  const QColor& phaseCompletedColor() const
162  {
163  return myPhaseCompletedColor;
164  }
165 
166  const QColor& planCellBackgroundColor() const
167  {
168  return myPlanCellBackgroundColor;
169  }
170 
171  const QColor& planCellColor() const
172  {
173  return myPlanCellColor;
174  }
175 
176  virtual QTreeWidgetItem* topLevelObjectItem(const DtUUID& uuid);
177  virtual QTreeWidgetItem* addTopLevelObject(const DtUUID& uuid, const QString& name);
178  virtual QTreeWidgetItem* addChildObject(QTreeWidgetItem* parent, const DtUUID& uuid, const QString& name);
179  virtual void setPlanStatus(const DtUUID& uuid, const QString& phaseName,
180  const QString& planSummary, bool valid, bool activated);
181  virtual void setPlanStatus(QTreeWidgetItem* item, const QString& phaseName,
182  const QString& planSummary, bool valid, bool activated);
183  virtual void removeObject(const DtUUID& uuid);
184  virtual void renameObject(const DtUUID& uuid, const QString& name);
185 
186  virtual bool phaseNameExists(const QString& phaseName);
187  virtual void moveToPhase(const QString& requestedPhase, const QString& prevPhase, bool prevPhaseCompleted);
188 
189  virtual QString getObjectName(const DtUUID& uuid);
190 
192  virtual void updateDisplay();
193  virtual void updateDisplay(QTreeWidgetItem*);
194 
195  signals:
196  void signal_addPhase(int phaseIndex);
197  void signal_removePhase(const QString& phaseName);
198  void signal_editPhase(const QString& phaseName);
199  void signal_movePhase(const QString& phaseName, int phaseIndex);
200 
201  void signal_addObject();
202  void signal_removeObject(const DtUUID& uuid);
203 
204  void signal_setPlan(const DtUUID& uuid, const QString& phaseName);
205  void signal_removePlan(const DtUUID& uuid, const QString& phaseName);
206  void signal_copyPlan(const DtUUID& uuid, const QString& phaseName);
207  void signal_pastePlan(const DtUUID& uuid, const QString& phaseName);
208  void signal_activatePlan(const DtUUID& uuid, const QString& phaseName, bool activate);
209 
210  protected slots:
211  virtual void slot_addObject();
212  virtual void slot_removeObject(const QModelIndex& index);
213  virtual void slot_setPlan(const QModelIndex& index);
214 
215  protected:
216  virtual void syncMatrixItemCopyPlan(QTreeWidgetItem* item, int column);
217  virtual void syncMatrixItemPastePlan(QTreeWidgetItem* item, int column);
218  virtual void syncMatrixItemRemovePlan(QTreeWidgetItem* item, int column);
219  virtual void syncMatrixItemActivatePlan(QTreeWidgetItem* item, int column, bool activate);
220 
221  virtual QTreeWidgetItem* findObjectItem(const DtUUID& uuid, QTreeWidgetItem* parent);
222  virtual void deactivateChildItems(QTreeWidgetItem* item, int column);
223 
224  virtual void clearItemPlan(QTreeWidgetItem* item);
225 
226  virtual void contextMenuEvent(QContextMenuEvent* event);
227  virtual QTreeWidgetItem* createTreeItem(const DtUUID&, const QString& name) const;
228 
229  protected:
235  };
236 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
static float myDrawTextSize
Definition: syncMatrixTreeWidget.h:59
The header view of the synchronization matrix.
Definition: syncMatrixTreeWidget.h:64
QColor myPhaseCompletedColor
Definition: syncMatrixTreeWidget.h:232
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
Definition: syncMatrixTreeWidget.h:141
const QColor & planCellColor() const
Definition: syncMatrixTreeWidget.h:171
Contains the DtUUID class declaration.
QPixmap myRemoveIcon
Definition: syncMatrixTreeWidget.h:57
QPixmap myAddIcon
Definition: syncMatrixTreeWidget.h:56
A tree widget that represents the synchronization matrix.
Definition: syncMatrixTreeWidget.h:123
makVrv::DtSignalConnectionManager myConnections
Definition: syncMatrixTreeWidget.h:119
QPixmap myRemoveIcon
Definition: syncMatrixTreeWidget.h:117
QPixmap myAddIcon
Definition: syncMatrixTreeWidget.h:115
static int myIconMargin
Definition: syncMatrixTreeWidget.h:58
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QColor myPlanCellColor
Definition: syncMatrixTreeWidget.h:234
Definition: syncMatrixTreeWidget.h:140
Definition: rwSyncMatrixPhaseList.h:17
static int myIconMargin
Definition: syncMatrixTreeWidget.h:118
Base class to provide boost signal/slot management.
PhaseSectionUserRole
enums for user data stored in the tree widget header sections:
Definition: syncMatrixTreeWidget.h:70
QColor myPlanCellBackgroundColor
Definition: syncMatrixTreeWidget.h:233
const QColor & planCellBackgroundColor() const
Definition: syncMatrixTreeWidget.h:166
makVrv::DtDe & myDe
Definition: syncMatrixTreeWidget.h:230
QColor myPhaseActiveColor
Definition: syncMatrixTreeWidget.h:231
const QColor & phaseCompletedColor() const
Definition: syncMatrixTreeWidget.h:161
const QColor & phaseActiveColor() const
Definition: syncMatrixTreeWidget.h:156
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
makVrv::DtDe & myDe
Definition: syncMatrixTreeWidget.h:55
QPixmap myEditIcon
Definition: syncMatrixTreeWidget.h:116
makVrv::DtDe & myDe
Definition: syncMatrixTreeWidget.h:114
Definition: syncMatrixTreeWidget.h:29
makVrv::DtSignalConnectionManager myConnections
Definition: syncMatrixTreeWidget.h:60
ObjectItemUserRole
enums for user data stored in the tree widget: uuid - object&#39;s uuid in the first column has plan...
Definition: syncMatrixTreeWidget.h:137

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)