VR-Forces 4.8 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  public:
54  typedef std::map<QTreeWidgetItem*, QTreeWidgetItem*> ScriptedTaskItem;
55  typedef std::map<std::string, ScriptedTaskItem> ScriptedTaskItems;
56 
58  DtScriptedTaskTreeWidget(makVrv::DtDe& de, QWidget* parent);
59 
61  virtual ~DtScriptedTaskTreeWidget();
62 
64  virtual bool selectedScriptIsSystemScript() const;
65 
67  virtual bool selectedItemIsFolder() const;
68 
70  virtual bool itemIsFolder(QTreeWidgetItem*) const;
71 
73  virtual bool allSelectedItemsAreScripts() const;
74 
77  virtual QString getFolderName(QTreeWidgetItem*, const QString& current = "");
78 
80  virtual QTreeWidgetItem* addFolder(QTreeWidgetItem* root, const QString&, bool select = true);
81 
83  virtual bool systemScriptsInFolder(QTreeWidgetItem*) const;
84 
86  virtual bool selectedItemCanEditScript() const;
87 
89  virtual QTreeWidgetItem* findScriptItem(const QString& scriptId);
90 
93  virtual QTreeWidgetItem* findFolder(const QString& path, QTreeWidgetItem* root = 0);
94 
97  virtual void setFolderPaths(QTreeWidgetItem*);
98 
101  virtual std::string folderPathToItem(QTreeWidgetItem*) const;
102 
104  virtual std::string folderPathToSelectedItem() const;
105 
107  virtual std::vector<std::string> scriptIdsInFolder(QTreeWidgetItem*) const;
108 
110  virtual std::set<std::string> selectedScriptIds() const;
111 
113  virtual QSize sizeHint(QTreeWidgetItem*) const;
114 
116  {
117  return myScriptedTaskItems;
118  }
119 
121  virtual void updateFrameRates(DtSimMessage*);
122 
124  virtual QTreeWidgetItem* addScriptedTask(const std::string&, QTreeWidgetItem* root = 0, bool addToFolder = true);
125 
127  virtual bool removeScriptedTask(const std::string&);
128 
130  virtual void scriptModified(const std::string&, bool);
131 
133  virtual void clear();
134 
136  virtual void setEditable(bool b);
137  virtual bool editable() const;
138 
140  virtual void scriptModifiedCleared();
141 
143  virtual void scriptErrorStatusChanged(const std::string&);
144 
147  virtual void filterByScriptEngine(const std::set<std::string>& showEngines);
148  virtual bool filterByScriptEngine(QTreeWidgetItem*, const std::set<std::string>& showEngines);
150 
151  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
152  virtual bool changeScriptId(QTreeWidgetItem* item, const std::string& oldId, const std::string& newId) const;
153 
154  protected:
156  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
157 
160  virtual void dragEnterEvent(QDragEnterEvent* event);
161 
163  virtual void dragMoveEvent(QDragMoveEvent* event);
164 
166  virtual void dropItems(const QStringList&, QTreeWidgetItem*);
167 
169  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
170 
172  virtual void keyPressEvent(QKeyEvent*);
173 
175  virtual void statusUpdate(QTreeWidgetItem* item, const std::string& scriptId);
176 
179  virtual QIcon composeIcon(const DtScriptedTaskMetaData&) const;
180 
181  public:
182  boost::signals2::signal<void ()> signal_deleteRequested;
183 
184  protected:
187  };
188 
192  {
193  Q_OBJECT
194 
195  public:
196  DtScriptedTasksMetaDataDialog(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags& flags = 0);
198 
200  virtual void onAddNewScript(int);
201 
202  protected:
203  virtual void slot_aboutToClearScriptedTasks();
204  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
205  virtual void slot_scriptedTaskAdded(std::string scriptId, bool updateEntityTypeCombo = true);
206  virtual void slot_receivedScriptedTasks();
207  virtual void updateActions();
208 
209  virtual DtScriptedTaskMetaDataDialog* createScriptedTaskMetaDataDialog();
210 
213  virtual void selectToImport(const std::vector<DtScriptedTaskMetaData>&);
214 
217  virtual void slot_adding(const std::string& id);
218 
220  virtual void slot_scriptErrorChange(std::string scriptId, bool hasError, std::string error);
221 
223  virtual void showAllItems();
224 
227  virtual void filterByScriptEngine();
229 
233  virtual void filterByScriptType();
234  virtual bool filterByScriptType(QTreeWidgetItem*);
236 
237 
241  virtual void filterByScriptAccess();
242  virtual bool filterByScriptAccess(QTreeWidgetItem*);
244 
248  virtual void filterByEntityType();
249  virtual bool filterByEntityType(QTreeWidgetItem*);
251 
255  virtual void filterBySearchString();
256  virtual bool filterBySearchString(QTreeWidgetItem*);
258 
261  virtual void updateEntityTypeCombo();
262 
264  virtual void slot_scriptModified(std::string scriptId, bool modified);
265 
267  virtual void slot_scriptModifiedCleared();
268 
269  virtual void slot_scriptIdChanged(const std::string& oldId, const std::string& newId);
270 
271  protected slots:
272  virtual void systemAvailabilityChanged(QTreeWidgetItem*,int);
273  virtual void onMetaDataSelected();
274  virtual void onEditSelectedMetaData();
275  virtual void onViewSelectedMetaData();
276  virtual void onAddMetaData();
277  virtual void onDuplicateMetaData();
278  virtual void onDeleteMetaData();
279  virtual void onEditScript();
280  virtual void onEditExternalScript();
281  virtual void onShowVrfLuaDocHelp();
282  virtual void onShowLuaDocHelp();
283  virtual void onViewScriptError();
284  virtual void onImportScripts();
285  virtual void onExportScripts();
286  virtual void onMakeSystemScript();
287  virtual void onShowScriptedTaskSettings();
288 
289  virtual void onAddFolder();
290  virtual void onRenameFolder();
291  virtual void onDeleteFolder();
292  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
293 
295  virtual void filterItems();
296 
298  virtual void resetFilters();
299 
301  virtual void selectAllToImport();
302 
304  virtual void clearAllToImport();
305 
307  virtual void onRemoveFromFolder();
308 
310  virtual void onMetaDataDialogClosed(QObject* dlg);
311 
312  protected:
314  virtual void onDeleteItem();
315 
316  virtual void receivedScriptsToExport(DtSimMessage* msg, int requestId, QString filenameToExportTo);
317 
319  virtual void receivedFrameRates(DtSimMessage* msg);
320 
323  virtual bool continueWithSystemScriptEdit();
324 
326  virtual void closeEvent(QCloseEvent*);
327 
329  virtual void showEvent(QShowEvent*);
330 
332  virtual void slot_scriptedTaskSettingsChanged();
333 
335  virtual void receivedScriptForMetaDataDuplication(DtSimMessage*);
336 
338  virtual void slot_scriptedTaskTypeAdded(int);
339 
341  virtual void slot_scriptedTaskTypeRemoved(int);
342 
343  public:
358 
376 
382 
383  QMenuBar* myMenuBar;
384 
385  protected:
388 
389  std::string myAddingScript;
390 
391  QListWidget* myImportList;
392 
394 
395  typedef std::map<int, std::string> PendingDuplications;
397 
400  std::map<std::string, DtScriptedTaskMetaDataDialog*> myOpenMetaDataDialogs;
401  };
402 
405  {
406  public:
409 
411  static void registerInstance(makVrv::DtDe&, DtScriptedTasksMetaDataDialogCreator*);
412 
413  virtual DtScriptedTasksMetaDataDialog* create(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags&f = 0);
414  };
415 }
QLabel * myScriptAccessFilterLabel
Definition: scriptedTasksMetaDataDialog.h:351
Definition: treeWidget.h:33
QPushButton * myImportScripts
Definition: scriptedTasksMetaDataDialog.h:347
Virtual base class.
Definition: DtVirtualBaseClass.h:22
QMenu * myFolderMenu
Definition: scriptedTasksMetaDataDialog.h:379
QMenuBar * myMenuBar
Definition: scriptedTasksMetaDataDialog.h:383
QComboBox * myScriptTypeFilterCombo
Definition: scriptedTasksMetaDataDialog.h:350
QAction * myViewScriptErrorAction
Definition: scriptedTasksMetaDataDialog.h:363
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
QAction * myEditScriptAction
Definition: scriptedTasksMetaDataDialog.h:361
QMenu * myScriptMenu
Definition: scriptedTasksMetaDataDialog.h:378
This class manages scripted tasks and allows for drag/drop of task for folder manipulation.
Definition: scriptedTasksMetaDataDialog.h:51
QAction * myAddFolderAction
Definition: scriptedTasksMetaDataDialog.h:370
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:391
QAction * myDuplicateAction
Definition: scriptedTasksMetaDataDialog.h:368
std::map< std::string, ScriptedTaskItem > ScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:55
QAction * myRightClickSeparator
Definition: scriptedTasksMetaDataDialog.h:377
QPushButton * myResetButton
Definition: scriptedTasksMetaDataDialog.h:348
QPushButton * myCloseButton
Definition: scriptedTasksMetaDataDialog.h:345
QMenu * myRightClickMenu
Definition: scriptedTasksMetaDataDialog.h:381
const ScriptedTaskItems & scriptedTaskItems() const
Definition: scriptedTasksMetaDataDialog.h:115
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:400
QAction * myMakeSystemScript
Definition: scriptedTasksMetaDataDialog.h:369
QAction * myExportAction
Definition: scriptedTasksMetaDataDialog.h:367
DtScriptedTaskTreeWidget * myScripts
Definition: scriptedTasksMetaDataDialog.h:344
Contains makVrv::DtVirtualBaseClass class.
QMenu * myHelpMenu
Definition: scriptedTasksMetaDataDialog.h:380
makVrv::DtSignalConnectionManager myConnectionManager
Definition: scriptedTasksMetaDataDialog.h:387
bool myEditable
Definition: scriptedTasksMetaDataDialog.h:185
QAction * myEditExternalScriptAction
Definition: scriptedTasksMetaDataDialog.h:362
File: simMsg.h.
Definition: simMessage.h:35
bool myMonitoringFrameRates
Definition: scriptedTasksMetaDataDialog.h:393
QAction * myImportAction
Definition: scriptedTasksMetaDataDialog.h:366
QPushButton * myNewScript
Definition: scriptedTasksMetaDataDialog.h:346
boost::signals2::signal< void()> signal_deleteRequested
Definition: scriptedTasksMetaDataDialog.h:182
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
QLabel * myScriptTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:349
QAction * myEditAction
Definition: scriptedTasksMetaDataDialog.h:360
QAction * myAddScriptAction
Definition: scriptedTasksMetaDataDialog.h:359
Definition: asyncJobServer.h:39
Creator class. Register a subclass of this to return your own version of the DtScriptedTasksMetaDataD...
Definition: scriptedTasksMetaDataDialog.h:404
QAction * myRemoveFromFolderAction
Definition: scriptedTasksMetaDataDialog.h:373
QLineEdit * mySearchBar
Definition: scriptedTasksMetaDataDialog.h:356
QAction * myLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:375
Base class to provide boost signal/slot management.
makVrv::DtDe & myDe
Definition: scriptedTasksMetaDataDialog.h:386
QAction * mySettingsAction
Definition: scriptedTasksMetaDataDialog.h:365
QCheckBox * myShowCPPScriptedTasks
Definition: scriptedTasksMetaDataDialog.h:357
QLabel * myEntityTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:353
std::map< int, std::string > PendingDuplications
Definition: scriptedTasksMetaDataDialog.h:395
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QAction * myDeleteFolderAction
Definition: scriptedTasksMetaDataDialog.h:371
std::map< QTreeWidgetItem *, QTreeWidgetItem * > ScriptedTaskItem
Definition: scriptedTasksMetaDataDialog.h:54
QAction * myVrfLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:374
QAction * myRenameFolderAction
Definition: scriptedTasksMetaDataDialog.h:372
ScriptedTaskItems myScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:186
PendingDuplications myPendingDuplications
Definition: scriptedTasksMetaDataDialog.h:396
std::string myAddingScript
Definition: scriptedTasksMetaDataDialog.h:389
QComboBox * myScriptAccessFilterCombo
Definition: scriptedTasksMetaDataDialog.h:352
Definition: scriptedTaskMetaData.h:48
QAction * myDeleteAction
Definition: scriptedTasksMetaDataDialog.h:364
Dialog that shows currently available scenario scripts and allows the editing of the meta data for th...
Definition: scriptedTasksMetaDataDialog.h:191
QLabel * mySearchLabel
Definition: scriptedTasksMetaDataDialog.h:355
QComboBox * myEntityTypeComboBox
Definition: scriptedTasksMetaDataDialog.h:354

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)