VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
planTreeWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrvUtil/signalslib.h>
16 #include <vrfutil/rwUUID.h>
17 #include <vrvCore/DtUniqueID.h>
18 
19 #include <QtWidgets/QTreeWidget>
20 #include <QtWidgets/QHeaderView>
21 
24 
25 class QMenu;
26 class QAction;
27 class QTreeWidget;
28 class DtPlan;
29 class DtStmtIndex;
30 class DtSimBlock;
31 class DtSimStatement;
32 class DtRwTriggersList;
33 
34 namespace makVrv
35 {
36  class DtDe;
37 }
38 
39 #define planPasteType "text/x-myPlanText@Type"
40 #define planTopLevelPasteType "text/x-myPlanText@TopType"
41 
42 namespace makVrf
43 {
44  class DtPlanListBoxItem;
45 
48  {
49  Q_OBJECT
50 
51  public:
52 
54  DtPlanTreeWidget(makVrv::DtDe&, QWidget* parent = NULL);
55 
57  virtual ~DtPlanTreeWidget();
58 
60  virtual DtPlanListBoxItem* currentItem() const;
61 
63  virtual bool hasItem(const DtPlanListBoxItem*);
64 
66  virtual void print();
67 
69  virtual void setName(const DtUUID&);
70  const DtUUID& name() const;
71 
73  virtual void displayPlan(bool andSelectStatement = true);
74 
77  virtual void setIsGlobalPlan(bool);
78 
80  virtual void clearAllStatements();
81 
83  virtual void copySelectedPlanStatementToClipboard();
84 
86  virtual void copyPlanToClipboard();
87 
90  virtual void addStatementsToPlan(const std::vector<DtSimStatement*>&, bool append, bool redisplay = true);
91 
93  virtual void addStatementAfter(DtSimStatement* stmt,
94  const DtPlanListBoxItem* listItem = 0, bool redisplay = true, bool addAtEndOfParentBlock = false);
95 
97  virtual void replaceStatement(DtSimStatement* stmt, DtPlanListBoxItem* item);
98 
100  virtual bool deleteStatement(const DtPlanListBoxItem*);
101 
102  virtual bool isBeingDragged(QTreeWidgetItem*) const;
103 
105  virtual void setPlan(DtPlan*);
106  virtual DtPlan* plan() { return getOrCreatePlan(); };
107  virtual const DtPlan* plan() const { return myPlan; };
108 
109  virtual DtPlan* getOrCreatePlan();
110 
112  virtual void setCanDropOn(int, bool);
113  virtual bool canDropOn(int) const;
114  virtual bool canDropOn(QTreeWidgetItem*) const;
115  virtual bool canDropOnCurrentItem() const;
116 
117  bool clearing() const { return myClearing; };
118 
120  virtual DtSimStatement* selectStatement(int, bool andMakeCurrent = false);
121 
124  virtual DtPlanListBoxItem* findItemByIndex(int statementIndex, int subBlock = 0);
125 
127  virtual void setIsComplete(bool);
128 
131  virtual void addPlanMimeDataAfter(const QMimeData*, DtPlanListBoxItem*, bool copy = true, bool redisplay = true);
132 
134  virtual DtPlanListBoxItem* findLastItemByIndex(int statementIndex, int subBlock = 0);
135 
136  virtual void setPlanTitle(const QString&);
137  virtual const QString& planTitle() const;
138 
139  virtual bool planIsModified() const;
140  virtual void clearPlanIsModified();
141  virtual void markPlanIsModified();
142 
143  boost::signal<void (bool)> signal_planIsModified;
144  boost::signal<void ()> signal_addedTriggers;
145 
147  virtual DtSimStatement* selectedBlockStatement() const;
148 
150  virtual DtSimStatement* selectedStatement() const;
151 
153  virtual DtSimStatement* displayBlockStatement() const;
154 
155  virtual void setShowRightClickMenu(bool);
156  bool showRightClickMenu() const { return myShowRightClickMenu; };
157 
158  virtual QString planDescriptiveName() const;
159 
161  virtual void removeTrigger(const DtUUID&);
162 
164  virtual void renameTrigger(const DtUUID& uuid, const DtString& newName);
165 
166  virtual void unusedTriggers(DtRwTriggersList&) const;
168  virtual DtPlanListBoxItem* createPlanListBoxItem(DtSimBlock*, const QString& name, int step = -1);
169  virtual DtPlanListBoxItem* createPlanListBoxItem(DtSimBlock*, const DtPlanListBoxItem* parentItem,
170  const DtStmtIndex&, const QString& indent, int step = -1);
171 
172  bool dragDraw() const { return myDragDraw; };
173 
175  virtual void selectLastStatement();
176 
178  virtual int currentCursor();
179 
181  int currentStatementIndex() const { return myCurrentStatementIndex; };
182 
185  virtual void selectCursor(int);
186 
187  protected:
188 
189  virtual void initializeRightClickMenu();
190 
191  virtual void resizeEvent(QResizeEvent*);
192 
193  virtual DtPlanListBoxItem* displayStatement(DtSimBlock* block, const DtStmtIndex& stmt, const DtPlanListBoxItem* parentItem, int& step);
194  virtual void displayBlock(DtSimBlock* block, const DtPlanListBoxItem* parentItem, int& step);
195  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
196  virtual void dragEnterEvent(QDragEnterEvent* event);
197  virtual void dragMoveEvent(QDragMoveEvent* event);
198  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
199  virtual void dropEvent(QDropEvent *event);
200  virtual void dragLeaveEvent(QDragLeaveEvent*);
201 
204  virtual void reissueStatementIds(DtSimStatement* stmt);
205 
207  virtual void removeLastDraggedItems();
208 
209  virtual void startDrag(Qt::DropActions supportedActions);
210  virtual bool eventFilter(QObject* o, QEvent*);
211 
213  virtual void setPlanIsModified(bool);
214 
215  virtual void itemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int col);
216 
217  virtual void addTriggersFromBlock(DtSimBlock*, DtRwTriggersList&, std::set<DtUUID>& visited) const;
218  virtual void addTriggersFromStatement(DtSimStatement*, DtRwTriggersList&, std::set<DtUUID>& visited) const;
219  virtual void unusedTriggers(DtSimBlock*, DtRwTriggersList&, std::set<DtUUID>& visited) const;
220 
221  virtual void uuidChanged(makVrv::DtUniqueID, const DtUUID&, const DtUUID&);
222 
223  signals:
224  void editCurrentlySelectedPlanStatement();
225  void deleteCurrentlySelectedPlanStatement();
226  void copyCurrentlySelectedPlanStatement();
227  void pastePlanStatement();
228  void planRightClickMenuCreated(QMenu*);
229  void rightClickToBeShown();
230  void editCurrentlySelectedTrigger();
231 
232  public:
239 
240  protected:
249 
251  QString myPlanTitle;
252 
256 
258 
260 
261  private:
263  DtPlanTreeWidget(const DtPlanTreeWidget& orig);
264 
266  DtPlanTreeWidget& operator=(const DtPlanTreeWidget& rhs);
267  };
268 
271  {
272  public:
275 
277  virtual ~DtPlanTreeWidgetCreator();
278 
280  static DtPlanTreeWidgetCreator& instance(makVrv::DtDe&);
281 
283  static void registerInstance(makVrv::DtDe&, DtPlanTreeWidgetCreator*);
284 
286  virtual DtPlanTreeWidget* create( QWidget* parent);
287 
288  protected:
290  };
291 }

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)