VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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>
15 #include <vrfutil/rwUUID.h>
16 
17 #include <QtWidgets/QTreeWidget>
18 #include <QtWidgets/QHeaderView>
19 
22 
23 class QMenu;
24 class QAction;
25 class QTreeWidget;
26 class DtPlan;
27 class DtStmtIndex;
28 class DtSimBlock;
29 class DtSimStatement;
30 class DtRwTriggersList;
31 
32 namespace makVrv
33 {
34  class DtDe;
35 }
36 
37 #define planPasteType "text/x-myPlanText@Type"
38 #define planTopLevelPasteType "text/x-myPlanText@TopType"
39 
40 namespace makVrf
41 {
42  class DtPlanListBoxItem;
43 
46  {
47  Q_OBJECT
48 
49  public:
50 
52  DtPlanTreeWidget(makVrv::DtDe&, QWidget* parent = NULL);
53 
55  virtual ~DtPlanTreeWidget();
56 
58  virtual DtPlanListBoxItem* currentItem() const;
59 
61  virtual bool hasItem(const DtPlanListBoxItem*);
62 
64  virtual void print();
65 
67  virtual void setName(const DtUUID&);
68  const DtUUID& name() const;
69 
71  virtual void displayPlan(bool andSelectStatement = true);
72 
75  virtual void setIsGlobalPlan(bool);
76 
78  virtual void clearAllStatements();
79 
81  virtual void copySelectedPlanStatementToClipboard();
82 
84  virtual void copyPlanToClipboard();
85 
88  virtual void addStatementsToPlan(const std::vector<DtSimStatement*>&, bool append, bool redisplay = true);
89 
91  virtual void addStatementAfter(DtSimStatement* stmt,
92  const DtPlanListBoxItem* listItem = 0, bool redisplay = true);
93 
95  virtual void replaceStatement(DtSimStatement* stmt, DtPlanListBoxItem* item);
96 
98  virtual bool deleteStatement(const DtPlanListBoxItem*);
99 
100  virtual bool isBeingDragged(QTreeWidgetItem*) const;
101 
103  virtual void setPlan(DtPlan*);
104  virtual DtPlan* plan() { return getOrCreatePlan(); };
105  virtual const DtPlan* plan() const { return myPlan; };
106 
107  virtual DtPlan* getOrCreatePlan();
108 
110  virtual void setCanDropOn(int, bool);
111  virtual bool canDropOn(int) const;
112  virtual bool canDropOn(QTreeWidgetItem*) const;
113  virtual bool canDropOnCurrentItem() const;
114 
115  bool clearing() const { return myClearing; };
116 
118  virtual DtSimStatement* selectStatement(int, bool andMakeCurrent = false);
119 
122  virtual DtPlanListBoxItem* findItemByIndex(int statementIndex, int subBlock = 0);
123 
125  virtual void setIsComplete(bool);
126 
129  virtual void addPlanMimeDataAfter(const QMimeData*, DtPlanListBoxItem*, bool redisplay = true);
130 
132  virtual DtPlanListBoxItem* findLastItemByIndex(int statementIndex, int subBlock = 0);
133 
134  virtual void setPlanTitle(const QString&);
135  virtual const QString& planTitle() const;
136 
137  virtual bool planIsModified() const;
138  virtual void clearPlanIsModified();
139  virtual void markPlanIsModified();
140 
141  boost::signal<void (bool)> signal_planIsModified;
142  boost::signal<void ()> signal_addedTriggers;
143 
145  virtual DtSimStatement* selectedBlockStatement() const;
146 
148  virtual DtSimStatement* selectedStatement() const;
149 
151  virtual DtSimStatement* displayBlockStatement() const;
152 
153  virtual void setShowRightClickMenu(bool);
154  bool showRightClickMenu() const { return myShowRightClickMenu; };
155 
156  virtual QString planDescriptiveName() const;
157 
159  virtual void removeTrigger(const DtUUID&);
160 
162  virtual void renameTrigger(const DtUUID& uuid, const DtString& newName);
163 
164  virtual void unusedTriggers(DtRwTriggersList&) const;
166  virtual DtPlanListBoxItem* createPlanListBoxItem(DtSimBlock*, const QString& name, int step = -1);
167  virtual DtPlanListBoxItem* createPlanListBoxItem(DtSimBlock*, const DtPlanListBoxItem* parentItem,
168  const DtStmtIndex&, const QString& indent, int step = -1);
169 
170  bool dragDraw() const { return myDragDraw; };
171 
173  virtual void selectLastStatement();
174 
176  virtual int currentCursor();
177 
179  int currentStatementIndex() const { return myCurrentStatementIndex; };
180 
183  virtual void selectCursor(int);
184 
185  protected:
186 
187  virtual void initializeRightClickMenu();
188 
189  virtual void resizeEvent(QResizeEvent*);
190 
191  virtual DtPlanListBoxItem* displayStatement(DtSimBlock* block, const DtStmtIndex& stmt, const DtPlanListBoxItem* parentItem, int& step);
192  virtual void displayBlock(DtSimBlock* block, const DtPlanListBoxItem* parentItem, int& step);
193  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
194  virtual void dragEnterEvent(QDragEnterEvent* event);
195  virtual void dragMoveEvent(QDragMoveEvent* event);
196  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
197  virtual void dropEvent(QDropEvent *event);
198  virtual void dragLeaveEvent(QDragLeaveEvent*);
199 
202  virtual void reissueStatementIds(DtSimStatement* stmt);
203 
205  virtual void removeLastDraggedItems();
206 
207  virtual void startDrag(Qt::DropActions supportedActions);
208  virtual bool eventFilter(QObject* o, QEvent*);
209 
211  virtual void setPlanIsModified(bool);
212 
213  virtual void itemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int col);
214 
215  virtual void addTriggersFromBlock(DtSimBlock*, DtRwTriggersList&, std::set<DtUUID>& visited) const;
216  virtual void addTriggersFromStatement(DtSimStatement*, DtRwTriggersList&, std::set<DtUUID>& visited) const;
217  virtual void unusedTriggers(DtSimBlock*, DtRwTriggersList&, std::set<DtUUID>& visited) const;
218 
219  signals:
220  void editCurrentlySelectedPlanStatement();
221  void deleteCurrentlySelectedPlanStatement();
222  void copyCurrentlySelectedPlanStatement();
223  void pastePlanStatement();
224  void planRightClickMenuCreated(QMenu*);
225  void rightClickToBeShown();
226  void editCurrentlySelectedTrigger();
227 
228  public:
235 
236  protected:
245 
247  QString myPlanTitle;
248 
252 
253  private:
255  DtPlanTreeWidget(const DtPlanTreeWidget& orig);
256 
258  DtPlanTreeWidget& operator=(const DtPlanTreeWidget& rhs);
259  };
260 
263  {
264  public:
267 
269  virtual ~DtPlanTreeWidgetCreator();
270 
272  static DtPlanTreeWidgetCreator& instance(makVrv::DtDe&);
273 
275  static void registerInstance(makVrv::DtDe&, DtPlanTreeWidgetCreator*);
276 
278  virtual DtPlanTreeWidget* create( QWidget* parent);
279 
280  protected:
282  };
283 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)