VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptedTasksMetaDataDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrvUtil/signalslib.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  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
149  virtual bool changeScriptId(QTreeWidgetItem* item, const std::string& oldId, const std::string& newId) const;
150 
151  protected:
153  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
154 
157  virtual void dragEnterEvent(QDragEnterEvent* event);
158 
160  virtual void dragMoveEvent(QDragMoveEvent* event);
161 
163  virtual void dropItems(const QStringList&, QTreeWidgetItem*);
164 
166  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
167 
169  virtual void keyPressEvent(QKeyEvent*);
170 
172  virtual void statusUpdate(QTreeWidgetItem* item, const std::string& scriptId);
173 
176  virtual QIcon composeIcon(const DtScriptedTaskMetaData&) const;
177 
178  public:
179  boost::signal<void ()> signal_deleteRequested;
180 
181  protected:
184  };
185 
189  {
190  Q_OBJECT
191 
192  public:
193  DtScriptedTasksMetaDataDialog(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags& flags = 0);
195 
197  virtual void onAddNewScript(int);
198 
199  protected:
200  virtual void slot_aboutToClearScriptedTasks();
201  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
202  virtual void slot_scriptedTaskAdded(std::string scriptId, bool updateEntityTypeCombo = true);
203  virtual void slot_receivedScriptedTasks();
204  virtual void updateActions();
205 
206  virtual DtScriptedTaskMetaDataDialog* createScriptedTaskMetaDataDialog();
207 
210  virtual void selectToImport(const std::vector<DtScriptedTaskMetaData>&);
211 
214  virtual void slot_adding(const std::string& id);
215 
217  virtual void slot_scriptErrorChange(std::string scriptId, bool hasError, std::string error);
218 
220  virtual void showAllItems();
221 
224  virtual void filterByScriptEngine();
226 
230  virtual void filterByScriptType();
231  virtual bool filterByScriptType(QTreeWidgetItem*);
233 
234 
238  virtual void filterByScriptAccess();
239  virtual bool filterByScriptAccess(QTreeWidgetItem*);
241 
245  virtual void filterByEntityType();
246  virtual bool filterByEntityType(QTreeWidgetItem*);
248 
252  virtual void filterBySearchString();
253  virtual bool filterBySearchString(QTreeWidgetItem*);
255 
258  virtual void updateEntityTypeCombo();
259 
261  virtual void slot_scriptModified(std::string& scriptId, bool modified);
262 
264  virtual void slot_scriptModifiedCleared();
265 
266  virtual void slot_scriptIdChanged(const std::string& oldId, const std::string& newId);
267 
268  protected slots:
269  virtual void systemAvailabilityChanged(QTreeWidgetItem*,int);
270  virtual void onMetaDataSelected();
271  virtual void onEditSelectedMetaData();
272  virtual void onViewSelectedMetaData();
273  virtual void onAddMetaData();
274  virtual void onDuplicateMetaData();
275  virtual void onDeleteMetaData();
276  virtual void onEditScript();
277  virtual void onEditExternalScript();
278  virtual void onShowVrfLuaDocHelp();
279  virtual void onShowLuaDocHelp();
280  virtual void onViewScriptError();
281  virtual void onImportScripts();
282  virtual void onExportScripts();
283  virtual void onMakeSystemScript();
284 
285  virtual void onAddFolder();
286  virtual void onRenameFolder();
287  virtual void onDeleteFolder();
288  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
289 
291  virtual void filterItems();
292 
294  virtual void resetFilters();
295 
297  virtual void selectAllToImport();
298 
300  virtual void clearAllToImport();
301 
303  virtual void onRemoveFromFolder();
304 
306  virtual void onMetaDataDialogClosed(QObject* dlg);
307 
308  protected:
310  virtual void onDeleteItem();
311 
312  virtual void receivedScriptsToExport(DtSimMessage* msg, int requestId, QString filenameToExportTo);
313 
315  virtual void receivedFrameRates(DtSimMessage* msg);
316 
319  virtual bool continueWithSystemScriptEdit();
320 
322  virtual void closeEvent(QCloseEvent*);
323 
325  virtual void showEvent(QShowEvent*);
326 
328  virtual void slot_scriptedTaskSettingsChanged();
329 
331  virtual void receivedScriptForMetaDataDuplication(DtSimMessage*);
332 
334  virtual void slot_scriptedTaskTypeAdded(int);
335 
337  virtual void slot_scriptedTaskTypeRemoved(int);
338 
339  public:
354 
371 
377 
378  QMenuBar* myMenuBar;
379 
380  protected:
383 
384  std::string myAddingScript;
385 
386  QListWidget* myImportList;
387 
389 
390  typedef std::map<int, std::string> PendingDuplications;
392 
395  std::map<std::string, DtScriptedTaskMetaDataDialog*> myOpenMetaDataDialogs;
396  };
397 
400  {
401  public:
404 
406  static void registerInstance(makVrv::DtDe&, DtScriptedTasksMetaDataDialogCreator*);
407 
408  virtual DtScriptedTasksMetaDataDialog* create(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags&f = 0);
409  };
410 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)