VR-Forces 4.10 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 #if !defined(Q_MOC_RUN)
14 #include <vrvUtil/signalslib.h>
20 #endif
21 #include <boost/signals2.hpp>
22 
23 #include <QDialog>
24 
25 namespace makVrv
26 {
27  class DtDe;
28 }
29 
30 class DtSimMessage;
31 class QTreeWidgetItem;
32 class QPushButton;
33 class QVBoxLayout;
34 class QAction;
35 class QMenuBar;
36 class QMenu;
37 class QComboBox;
38 class QLineEdit;
39 class QLabel;
40 class QListWidget;
41 class QCheckBox;
42 
43 namespace makVrf
44 {
45  class DtScriptedTaskMetaDataDialog;
46 
47  #define DtScriptedTaskDragType "text/x-vrlScriptedTaskDragging@Type"
48 
52  {
53  Q_OBJECT
54  public:
55  typedef std::map<QTreeWidgetItem*, QTreeWidgetItem*> ScriptedTaskItem;
56  typedef std::map<std::string, ScriptedTaskItem> ScriptedTaskItems;
57 
59  DtScriptedTaskTreeWidget(makVrv::DtDe& de, QWidget* parent);
60 
62  virtual ~DtScriptedTaskTreeWidget();
63 
65  virtual bool selectedScriptIsSystemScript() const;
66 
68  virtual bool selectedItemIsFolder() const;
69 
71  virtual bool itemIsFolder(QTreeWidgetItem*) const;
72 
74  virtual bool allSelectedItemsAreScripts() const;
75 
78  virtual QString getFolderName(QTreeWidgetItem*, const QString& current = "");
79 
81  virtual QTreeWidgetItem* addFolder(QTreeWidgetItem* root, const QString&, bool select = true);
82 
84  virtual bool systemScriptsInFolder(QTreeWidgetItem*) const;
85 
87  virtual bool selectedItemCanEditScript() const;
88 
90  virtual QTreeWidgetItem* findScriptItem(const QString& scriptId);
91 
94  virtual QTreeWidgetItem* findFolder(const QString& path, QTreeWidgetItem* root = 0);
95 
98  virtual void setFolderPaths(QTreeWidgetItem*);
99 
102  virtual std::string folderPathToItem(QTreeWidgetItem*) const;
103 
105  virtual std::string folderPathToSelectedItem() const;
106 
108  virtual std::vector<std::string> scriptIdsInFolder(QTreeWidgetItem*) const;
109 
111  virtual std::set<std::string> selectedScriptIds() const;
112 
114  virtual QSize sizeHint(QTreeWidgetItem*) const;
115 
117  {
118  return myScriptedTaskItems;
119  }
120 
122  virtual void updateFrameRates(DtSimMessage*);
123 
125  virtual QTreeWidgetItem* addScriptedTask(const std::string&, QTreeWidgetItem* root = 0, bool addToFolder = true);
126 
128  virtual bool removeScriptedTask(const std::string&);
129 
131  virtual void scriptModified(const std::string&, bool);
132 
134  virtual void clear();
135 
137  virtual void setEditable(bool b);
138  virtual bool editable() const;
139 
141  virtual void scriptModifiedCleared();
142 
144  virtual void scriptErrorStatusChanged(const std::string&);
145 
148  virtual void filterByScriptEngine(const std::set<std::string>& showEngines);
149  virtual bool filterByScriptEngine(QTreeWidgetItem*, const std::set<std::string>& showEngines);
151 
152  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
153  virtual bool changeScriptId(QTreeWidgetItem* item, const std::string& oldId, const std::string& newId) const;
154 
155  protected:
157  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
158 
161  virtual void dragEnterEvent(QDragEnterEvent* event);
162 
164  virtual void dragMoveEvent(QDragMoveEvent* event);
165 
167  virtual void dropItems(const QStringList&, QTreeWidgetItem*);
168 
170  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
171 
173  virtual void keyPressEvent(QKeyEvent*);
174 
176  virtual void statusUpdate(QTreeWidgetItem* item, const std::string& scriptId);
177 
180  virtual QIcon composeIcon(const DtScriptedTaskMetaData&) const;
181 
182  public:
183  boost::signals2::signal<void ()> signal_deleteRequested;
184 
185  protected:
188  };
189 
193  {
194  Q_OBJECT
195 
196  public:
197  DtScriptedTasksMetaDataDialog(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags& flags = 0);
199 
201  virtual void onAddNewScript(int);
202 
203  protected:
204  virtual void slot_aboutToClearScriptedTasks();
205  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
206  virtual void slot_scriptedTaskAdded(std::string scriptId, bool updateEntityTypeCombo = true);
207  virtual void slot_receivedScriptedTasks();
208  virtual void updateActions();
209 
210  virtual DtScriptedTaskMetaDataDialog* createScriptedTaskMetaDataDialog();
211 
214  virtual void selectToImport(const std::vector<DtScriptedTaskMetaData>&);
215 
218  virtual void slot_adding(const std::string& id);
219 
221  virtual void slot_scriptErrorChange(std::string scriptId, bool hasError, std::string error);
222 
224  virtual void showAllItems();
225 
228  virtual void filterByScriptEngine();
230 
234  virtual void filterByScriptType();
235  virtual bool filterByScriptType(QTreeWidgetItem*);
237 
238 
242  virtual void filterByScriptAccess();
243  virtual bool filterByScriptAccess(QTreeWidgetItem*);
245 
249  virtual void filterByEntityType();
250  virtual bool filterByEntityType(QTreeWidgetItem*);
252 
256  virtual void filterBySearchString();
257  virtual bool filterBySearchString(QTreeWidgetItem*);
259 
262  virtual void updateEntityTypeCombo();
263 
265  virtual void slot_scriptModified(std::string scriptId, bool modified);
266 
268  virtual void slot_scriptModifiedCleared();
269 
270  virtual void slot_scriptIdChanged(const std::string& oldId, const std::string& newId);
271 
272  protected slots:
273  virtual void systemAvailabilityChanged(QTreeWidgetItem*,int);
274  virtual void onMetaDataSelected();
275  virtual void onEditSelectedMetaData();
276  virtual void onViewSelectedMetaData();
277  virtual void onAddMetaData();
278  virtual void onDuplicateMetaData();
279  virtual void onDeleteMetaData();
280  virtual void onEditScript();
281  virtual void onEditExternalScript();
282  virtual void onShowVrfLuaDocHelp();
283  virtual void onShowLuaDocHelp();
284  virtual void onViewScriptError();
285  virtual void onImportScripts();
286  virtual void onExportScripts();
287  virtual void onMakeSystemScript();
288  virtual void onShowScriptedTaskSettings();
289 
290  virtual void onAddFolder();
291  virtual void onRenameFolder();
292  virtual void onDeleteFolder();
293  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
294 
296  virtual void filterItems();
297 
299  virtual void resetFilters();
300 
302  virtual void selectAllToImport();
303 
305  virtual void clearAllToImport();
306 
308  virtual void onRemoveFromFolder();
309 
311  virtual void onMetaDataDialogClosed(QObject* dlg);
312 
313  protected:
315  virtual void onDeleteItem();
316 
317  virtual void receivedScriptsToExport(DtSimMessage* msg, int requestId, QString filenameToExportTo);
318 
320  virtual void receivedFrameRates(DtSimMessage* msg);
321 
324  virtual bool continueWithSystemScriptEdit();
325 
327  virtual void closeEvent(QCloseEvent*);
328 
330  virtual void showEvent(QShowEvent*);
331 
333  virtual void slot_scriptedTaskSettingsChanged();
334 
336  virtual void receivedScriptForMetaDataDuplication(DtSimMessage*);
337 
339  virtual void slot_scriptedTaskTypeAdded(int);
340 
342  virtual void slot_scriptedTaskTypeRemoved(int);
343 
344  public:
359 
377 
383 
384  QMenuBar* myMenuBar;
385 
386  protected:
389 
390  std::string myAddingScript;
391 
392  QListWidget* myImportList;
393 
395 
396  typedef std::map<int, std::string> PendingDuplications;
398 
401  std::map<std::string, DtScriptedTaskMetaDataDialog*> myOpenMetaDataDialogs;
402  };
403 
406  {
407  public:
410 
412  static void registerInstance(makVrv::DtDe&, DtScriptedTasksMetaDataDialogCreator*);
413 
414  virtual DtScriptedTasksMetaDataDialog* create(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags&f = 0);
415  };
416 }
QLabel * myScriptAccessFilterLabel
Definition: scriptedTasksMetaDataDialog.h:352
Definition: treeWidget.h:33
QPushButton * myImportScripts
Definition: scriptedTasksMetaDataDialog.h:348
Virtual base class.
Definition: DtVirtualBaseClass.h:19
QMenu * myFolderMenu
Definition: scriptedTasksMetaDataDialog.h:380
QMenuBar * myMenuBar
Definition: scriptedTasksMetaDataDialog.h:384
QComboBox * myScriptTypeFilterCombo
Definition: scriptedTasksMetaDataDialog.h:351
QAction * myViewScriptErrorAction
Definition: scriptedTasksMetaDataDialog.h:364
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
QAction * myEditScriptAction
Definition: scriptedTasksMetaDataDialog.h:362
QMenu * myScriptMenu
Definition: scriptedTasksMetaDataDialog.h:379
This class manages scripted tasks and allows for drag/drop of task for folder manipulation.
Definition: scriptedTasksMetaDataDialog.h:51
QAction * myAddFolderAction
Definition: scriptedTasksMetaDataDialog.h:371
Dialog that shows currently available scenario scripts and allows the editing of the meta data for th...
Definition: scriptedTaskMetaDataDialog.h:47
QListWidget * myImportList
Definition: scriptedTasksMetaDataDialog.h:392
QAction * myDuplicateAction
Definition: scriptedTasksMetaDataDialog.h:369
std::map< std::string, ScriptedTaskItem > ScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:56
QAction * myRightClickSeparator
Definition: scriptedTasksMetaDataDialog.h:378
QPushButton * myResetButton
Definition: scriptedTasksMetaDataDialog.h:349
QPushButton * myCloseButton
Definition: scriptedTasksMetaDataDialog.h:346
QMenu * myRightClickMenu
Definition: scriptedTasksMetaDataDialog.h:382
const ScriptedTaskItems & scriptedTaskItems() const
Definition: scriptedTasksMetaDataDialog.h:116
std::map< std::string, DtScriptedTaskMetaDataDialog * > myOpenMetaDataDialogs
List of edit dialogs that have been opened, indexed by the script ID at the time of opening the windo...
Definition: scriptedTasksMetaDataDialog.h:401
QAction * myMakeSystemScript
Definition: scriptedTasksMetaDataDialog.h:370
QAction * myExportAction
Definition: scriptedTasksMetaDataDialog.h:368
DtScriptedTaskTreeWidget * myScripts
Definition: scriptedTasksMetaDataDialog.h:345
Contains makVrv::DtVirtualBaseClass class.
QMenu * myHelpMenu
Definition: scriptedTasksMetaDataDialog.h:381
makVrv::DtSignalConnectionManager myConnectionManager
Definition: scriptedTasksMetaDataDialog.h:388
bool myEditable
Definition: scriptedTasksMetaDataDialog.h:186
QAction * myEditExternalScriptAction
Definition: scriptedTasksMetaDataDialog.h:363
File: simMsg.h.
Definition: simMessage.h:35
bool myMonitoringFrameRates
Definition: scriptedTasksMetaDataDialog.h:394
QAction * myImportAction
Definition: scriptedTasksMetaDataDialog.h:367
QPushButton * myNewScript
Definition: scriptedTasksMetaDataDialog.h:347
boost::signals2::signal< void()> signal_deleteRequested
Definition: scriptedTasksMetaDataDialog.h:183
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * myScriptTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:350
QAction * myEditAction
Definition: scriptedTasksMetaDataDialog.h:361
QAction * myAddScriptAction
Definition: scriptedTasksMetaDataDialog.h:360
Definition: asyncJobServer.h:39
Creator class. Register a subclass of this to return your own version of the DtScriptedTasksMetaDataD...
Definition: scriptedTasksMetaDataDialog.h:405
QAction * myRemoveFromFolderAction
Definition: scriptedTasksMetaDataDialog.h:374
QLineEdit * mySearchBar
Definition: scriptedTasksMetaDataDialog.h:357
QAction * myLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:376
Base class to provide boost signal/slot management.
makVrv::DtDe & myDe
Definition: scriptedTasksMetaDataDialog.h:387
QAction * mySettingsAction
Definition: scriptedTasksMetaDataDialog.h:366
QCheckBox * myShowCPPScriptedTasks
Definition: scriptedTasksMetaDataDialog.h:358
QLabel * myEntityTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:354
std::map< int, std::string > PendingDuplications
Definition: scriptedTasksMetaDataDialog.h:396
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QAction * myDeleteFolderAction
Definition: scriptedTasksMetaDataDialog.h:372
std::map< QTreeWidgetItem *, QTreeWidgetItem * > ScriptedTaskItem
Definition: scriptedTasksMetaDataDialog.h:55
QAction * myVrfLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:375
QAction * myRenameFolderAction
Definition: scriptedTasksMetaDataDialog.h:373
ScriptedTaskItems myScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:187
PendingDuplications myPendingDuplications
Definition: scriptedTasksMetaDataDialog.h:397
std::string myAddingScript
Definition: scriptedTasksMetaDataDialog.h:390
QComboBox * myScriptAccessFilterCombo
Definition: scriptedTasksMetaDataDialog.h:353
Definition: scriptedTaskMetaData.h:48
QAction * myDeleteAction
Definition: scriptedTasksMetaDataDialog.h:365
Dialog that shows currently available scenario scripts and allows the editing of the meta data for th...
Definition: scriptedTasksMetaDataDialog.h:192
QLabel * mySearchLabel
Definition: scriptedTasksMetaDataDialog.h:356
QComboBox * myEntityTypeComboBox
Definition: scriptedTasksMetaDataDialog.h:355

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)