VR-Forces 4.2 Class Documentation
DtScriptedTasksMetaDataDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrvUtil/signalslib.h>
16 #include <vrvUtil/DtSignalConnectionManager.h>
17 #include <vrvUtil/DtVirtualBaseClass.h>
19 
20 #include <QDialog>
21 
22 namespace makVrv
23 {
24  class DtDe;
25 }
26 
27 class DtSimMessage;
28 class QTreeWidgetItem;
29 class QPushButton;
30 class QVBoxLayout;
31 class QAction;
32 class QMenuBar;
33 class QMenu;
34 class QComboBox;
35 class QLineEdit;
36 class QLabel;
37 class QListWidget;
38 class QCheckBox;
39 
40 namespace makVrf
41 {
42  class DtScriptedTaskMetaDataDialog;
43 
44  #define DtScriptedTaskDragType "text/x-vrlScriptedTaskDragging@Type"
45 
49  {
50  public:
51  typedef std::map<QTreeWidgetItem*, QTreeWidgetItem*> ScriptedTaskItem;
52  typedef std::map<std::string, ScriptedTaskItem> ScriptedTaskItems;
53 
55  DtScriptedTaskTreeWidget(makVrv::DtDe& de, QWidget* parent);
56 
58  virtual ~DtScriptedTaskTreeWidget();
59 
61  virtual bool selectedScriptIsSystemScript() const;
62 
64  virtual bool selectedItemIsFolder() const;
65 
67  virtual bool itemIsFolder(QTreeWidgetItem*) const;
68 
70  virtual bool allSelectedItemsAreScripts() const;
71 
74  virtual QString getFolderName(QTreeWidgetItem*, const QString& current = "");
75 
77  virtual QTreeWidgetItem* addFolder(QTreeWidgetItem* root, const QString&, bool select = true);
78 
80  virtual bool systemScriptsInFolder(QTreeWidgetItem*) const;
81 
83  virtual bool selectedItemCanEditScript() const;
84 
86  virtual QTreeWidgetItem* findScriptItem(const QString& scriptId);
87 
90  virtual QTreeWidgetItem* findFolder(const QString& path, QTreeWidgetItem* root = 0);
91 
94  virtual void setFolderPaths(QTreeWidgetItem*);
95 
98  virtual std::string folderPathToItem(QTreeWidgetItem*) const;
99 
101  virtual std::string folderPathToSelectedItem() const;
102 
104  virtual std::vector<std::string> scriptIdsInFolder(QTreeWidgetItem*) const;
105 
107  virtual std::set<std::string> selectedScriptIds() const;
108 
110  virtual QSize sizeHint(QTreeWidgetItem*) const;
111 
112  const ScriptedTaskItems& scriptedTaskItems() const
113  {
114  return myScriptedTaskItems;
115  }
116 
118  virtual void updateFrameRates(DtSimMessage*);
119 
121  virtual QTreeWidgetItem* addScriptedTask(const std::string&, QTreeWidgetItem* root = 0, bool addToFolder = true);
122 
124  virtual bool removeScriptedTask(const std::string&);
125 
127  virtual void scriptModified(const std::string&, bool);
128 
130  virtual void clear();
131 
133  virtual void setEditable(bool b);
134  virtual bool editable() const;
135 
137  virtual void scriptModifiedCleared();
138 
140  virtual void scriptErrorStatusChanged(const std::string&);
141 
144  virtual void filterByScriptEngine(const std::set<std::string>& showEngines);
145  virtual bool filterByScriptEngine(QTreeWidgetItem*, const std::set<std::string>& showEngines);
147 
148  protected:
150  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
151 
154  virtual void dragEnterEvent(QDragEnterEvent* event);
155 
157  virtual void dragMoveEvent(QDragMoveEvent* event);
158 
160  virtual void dropItems(const QStringList&, QTreeWidgetItem*);
161 
163  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
164 
166  virtual void keyPressEvent(QKeyEvent*);
167 
169  virtual void statusUpdate(QTreeWidgetItem* item, const std::string& scriptId);
170 
173  virtual QIcon composeIcon(const DtScriptedTaskMetaData&) const;
174 
175  public:
176  boost::signal<void ()> signal_deleteRequested;
177 
178  protected:
179  makVrv::DtDe& myDe;
182  };
183 
187  {
188  Q_OBJECT
189 
190  public:
191  DtScriptedTasksMetaDataDialog(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags& flags = 0);
193 
195  virtual void onAddNewScript(int);
196 
197  protected:
198  virtual void slot_aboutToClearScriptedTasks();
199  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
200  virtual void slot_scriptedTaskAdded(std::string scriptId, bool updateEntityTypeCombo = true);
201  virtual void slot_receivedScriptedTasks();
202  virtual void updateActions();
203 
204  virtual DtScriptedTaskMetaDataDialog* createScriptedTaskMetaDataDialog();
205 
208  virtual void selectToImport(const std::vector<DtScriptedTaskMetaData>&);
209 
212  virtual void slot_adding(const std::string& id);
213 
215  virtual void slot_scriptErrorChange(std::string scriptId, bool hasError, std::string error);
216 
218  virtual void showAllItems();
219 
222  virtual void filterByScriptEngine();
224 
228  virtual void filterByScriptType();
229  virtual bool filterByScriptType(QTreeWidgetItem*);
231 
232 
236  virtual void filterByScriptAccess();
237  virtual bool filterByScriptAccess(QTreeWidgetItem*);
239 
243  virtual void filterByEntityType();
244  virtual bool filterByEntityType(QTreeWidgetItem*);
246 
250  virtual void filterBySearchString();
251  virtual bool filterBySearchString(QTreeWidgetItem*);
253 
256  virtual void updateEntityTypeCombo();
257 
259  virtual void slot_scriptModified(std::string& scriptId, bool modified);
260 
262  virtual void slot_scriptModifiedCleared();
263 
264  protected slots:
265  virtual void systemAvailabilityChanged(QTreeWidgetItem*,int);
266  virtual void onMetaDataSelected();
267  virtual void onEditSelectedMetaData();
268  virtual void onViewSelectedMetaData();
269  virtual void onAddMetaData();
270  virtual void onAddReactiveMetaData();
271  virtual void onDuplicateMetaData();
272  virtual void onDeleteMetaData();
273  virtual void onEditScript();
274  virtual void onEditExternalScript();
275  virtual void onShowVrfLuaDocHelp();
276  virtual void onShowLuaDocHelp();
277  virtual void onViewScriptError();
278  virtual void onImportScripts();
279  virtual void onExportScripts();
280  virtual void onMakeSystemScript();
281 
282  virtual void onAddFolder();
283  virtual void onRenameFolder();
284  virtual void onDeleteFolder();
285  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
286 
288  virtual void filterItems();
289 
291  virtual void resetFilters();
292 
294  virtual void selectAllToImport();
295 
297  virtual void clearAllToImport();
298 
300  virtual void onRemoveFromFolder();
301 
303  virtual void onMetaDataDialogClosed(QObject* dlg);
304 
305  protected:
307  virtual void onDeleteItem();
308 
309  virtual void receivedScriptsToExport(DtSimMessage* msg, int requestId, QString filenameToExportTo);
310 
312  virtual void receivedFrameRates(DtSimMessage* msg);
313 
316  virtual bool continueWithSystemScriptEdit();
317 
319  virtual void closeEvent(QCloseEvent*);
320 
322  virtual void showEvent(QShowEvent*);
323 
325  virtual void slot_scriptedTaskSettingsChanged();
326 
328  virtual void receivedScriptForMetaDataDuplication(DtSimMessage*);
329 
331  virtual void slot_scriptedTaskTypeAdded(int);
332 
334  virtual void slot_scriptedTaskTypeRemoved(int);
335 
336  public:
348  QLabel* mySearchLabel;
351 
368 
374 
376 
377  protected:
378  makVrv::DtDe& myDe;
379  makVrv::DtSignalConnectionManager myConnectionManager;
380 
381  std::string myAddingScript;
382 
383  QListWidget* myImportList;
384 
386 
387  typedef std::map<int, std::string> PendingDuplications;
389 
392  std::map<std::string, DtScriptedTaskMetaDataDialog*> myOpenMetaDataDialogs;
393  };
394 
396  class DT_DLL_VRFGUICOREQT DtScriptedTasksMetaDataDialogCreator : public makVrv::DtVirtualBaseClass
397  {
398  public:
401 
402  static DtScriptedTasksMetaDataDialogCreator& instance(makVrv::DtDe&);
403  static void registerInstance(makVrv::DtDe&, DtScriptedTasksMetaDataDialogCreator*);
404 
405  virtual DtScriptedTasksMetaDataDialog* create(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags&f = 0);
406  };
407 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)