VR-Forces 5.0.2 Developer's Guide
 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 
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 QToolButton;
34 class QVBoxLayout;
35 class QAction;
36 class QMenuBar;
37 class QMenu;
38 class QComboBox;
39 class QLineEdit;
40 class QLabel;
41 class QListWidget;
42 class QCheckBox;
43 
44 namespace makVrf
45 {
46  class DtScriptedTaskMetaDataDialog;
47 
48  #define DtScriptedTaskDragType "text/x-vrlScriptedTaskDragging@Type"
49 
53  {
54  Q_OBJECT
55  public:
56  typedef std::map<QTreeWidgetItem*, DtThemedTreeWidgetItem*> ScriptedTaskItem;
57  typedef std::map<std::string, ScriptedTaskItem> ScriptedTaskItems;
58 
60  DtScriptedTaskTreeWidget(makVrv::DtDe& de, QWidget* parent);
61 
63  virtual ~DtScriptedTaskTreeWidget();
64 
66  virtual bool selectedScriptIsSystemScript() const;
67 
69  virtual bool selectedItemIsFolder() const;
70 
72  virtual bool itemIsFolder(QTreeWidgetItem*) const;
73 
75  virtual bool allSelectedItemsAreScripts() const;
76 
79  virtual QString getFolderName(QTreeWidgetItem*, const QString& current = "");
80 
82  virtual DtThemedTreeWidgetItem* addFolder(QTreeWidgetItem* root, const QString&, bool select = true);
83 
85  virtual bool systemScriptsInFolder(QTreeWidgetItem*) const;
86 
88  virtual bool selectedItemCanEditScript() const;
89 
91  virtual QTreeWidgetItem* findScriptItem(const QString& scriptId);
92 
95  virtual QTreeWidgetItem* findFolder(const QString& path, QTreeWidgetItem* root = 0);
96 
99  virtual void setFolderPaths(QTreeWidgetItem*);
100 
103  virtual std::string folderPathToItem(QTreeWidgetItem*) const;
104 
106  virtual std::string folderPathToSelectedItem() const;
107 
109  virtual std::vector<std::string> scriptIdsInFolder(QTreeWidgetItem*) const;
110 
112  virtual std::set<std::string> selectedScriptIds() const;
113 
115  virtual QSize sizeHint(QTreeWidgetItem*) const;
116 
118  {
119  return myScriptedTaskItems;
120  }
121 
123  virtual void updateFrameRates(DtSimMessage*);
124 
126  virtual QTreeWidgetItem* addScriptedTask(const std::string&, QTreeWidgetItem* root = 0, bool addToFolder = true);
127 
129  virtual bool removeScriptedTask(const std::string&);
130 
132  virtual void scriptModified(const std::string&, bool);
133 
135  virtual void clear();
136 
138  virtual void setEditable(bool b);
139  virtual bool editable() const;
140 
142  virtual void scriptModifiedCleared();
143 
145  virtual void scriptErrorStatusChanged(const std::string&);
146 
149  virtual void filterByScriptEngine(const std::set<std::string>& showEngines);
150  virtual bool filterByScriptEngine(QTreeWidgetItem*, const std::set<std::string>& showEngines);
152 
153  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
154  virtual bool changeScriptId(QTreeWidgetItem* item, const std::string& oldId, const std::string& newId) const;
155 
156  protected:
158  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
159 
162  virtual void dragEnterEvent(QDragEnterEvent* event);
163 
165  virtual void dragMoveEvent(QDragMoveEvent* event);
166 
168  virtual void dropItems(const QStringList&, QTreeWidgetItem*);
169 
171  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
172 
174  virtual void keyPressEvent(QKeyEvent*);
175 
177  virtual void statusUpdate(QTreeWidgetItem* item, const std::string& scriptId);
178 
179  public:
180  boost::signals2::signal<void ()> signal_deleteRequested;
181 
182  protected:
185  };
186 
190  {
191  Q_OBJECT
192 
193  public:
194  DtScriptedTasksMetaDataDialog(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags& flags = 0);
196 
198  virtual void onAddNewScript(int);
199 
200  protected:
201  virtual void slot_aboutToClearScriptedTasks();
202  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
203  virtual void slot_scriptedTaskAdded(std::string scriptId, bool updateEntityTypeCombo = true);
204  virtual void slot_receivedScriptedTasks();
205  virtual void updateActions();
206 
207  virtual DtScriptedTaskMetaDataDialog* createScriptedTaskMetaDataDialog();
208 
211  virtual void selectToImport(const std::vector<DtScriptedTaskMetaData>&);
212 
215  virtual void slot_adding(const std::string& id);
216 
218  virtual void slot_scriptErrorChange(std::string scriptId, bool hasError, std::string error);
219 
221  virtual void showAllItems();
222 
225  virtual void filterByScriptEngine();
227 
231  virtual void filterByScriptType();
232  virtual bool filterByScriptType(QTreeWidgetItem*);
234 
235 
239  virtual void filterByScriptAccess();
240  virtual bool filterByScriptAccess(QTreeWidgetItem*);
242 
246  virtual void filterByEntityType();
247  virtual bool filterByEntityType(QTreeWidgetItem*);
249 
253  virtual void filterBySearchString();
254  virtual bool filterBySearchString(QTreeWidgetItem*);
256 
259  virtual void updateEntityTypeCombo();
260 
262  virtual void slot_scriptModified(std::string scriptId, bool modified);
263 
265  virtual void slot_scriptModifiedCleared();
266 
267  virtual void slot_scriptIdChanged(const std::string& oldId, const std::string& newId);
268 
269  protected slots:
270  virtual void systemAvailabilityChanged(QTreeWidgetItem*,int);
271  virtual void onMetaDataSelected();
272  virtual void onEditSelectedMetaData();
273  virtual void onViewSelectedMetaData();
274  virtual void onAddMetaData();
275  virtual void onDuplicateMetaData();
276  virtual void onDeleteMetaData();
277  virtual void onEditScript();
278  virtual void onEditExternalScript();
279  virtual void onShowVrfLuaDocHelp();
280  virtual void onShowLuaDocHelp();
281  virtual void onViewScriptError();
282  virtual void onImportScripts();
283  virtual void onExportScripts();
284  virtual void onMakeSystemScript();
285  virtual void onShowScriptedTaskSettings();
286 
287  virtual void onAddFolder();
288  virtual void onRenameFolder();
289  virtual void onDeleteFolder();
290  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
291 
293  virtual void filterItems();
294 
296  virtual void resetFilters();
297 
299  virtual void selectAllToImport();
300 
302  virtual void clearAllToImport();
303 
305  virtual void onRemoveFromFolder();
306 
308  virtual void onMetaDataDialogClosed(QObject* dlg);
309 
310  protected:
312  virtual void onDeleteItem();
313 
314  virtual void receivedScriptsToExport(DtSimMessage* msg, int requestId, QString filenameToExportTo);
315 
317  virtual void receivedFrameRates(DtSimMessage* msg);
318 
321  virtual bool continueWithSystemScriptEdit();
322 
324  virtual void closeEvent(QCloseEvent*);
325 
327  virtual void showEvent(QShowEvent*);
328 
330  virtual void slot_scriptedTaskSettingsChanged();
331 
333  virtual void receivedScriptForMetaDataDuplication(DtSimMessage*);
334 
336  virtual void slot_scriptedTaskTypeAdded(int);
337 
339  virtual void slot_scriptedTaskTypeRemoved(int);
340 
341  public:
356 
374 
380 
381  QMenuBar* myMenuBar;
382 
383  protected:
386 
387  std::string myAddingScript;
388 
389  QListWidget* myImportList;
390 
392 
393  typedef std::map<int, std::string> PendingDuplications;
395 
398  std::map<std::string, DtScriptedTaskMetaDataDialog*> myOpenMetaDataDialogs;
399  };
400 
403  {
404  public:
407 
409  static void registerInstance(makVrv::DtDe&, DtScriptedTasksMetaDataDialogCreator*);
410 
411  virtual DtScriptedTasksMetaDataDialog* create(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags&f = 0);
412  };
413 }
QLabel * myScriptAccessFilterLabel
Definition: scriptedTasksMetaDataDialog.h:349
Definition: treeWidget.h:35
QPushButton * myImportScripts
Definition: scriptedTasksMetaDataDialog.h:345
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
QMenu * myFolderMenu
Definition: scriptedTasksMetaDataDialog.h:377
QMenuBar * myMenuBar
Definition: scriptedTasksMetaDataDialog.h:381
QComboBox * myScriptTypeFilterCombo
Definition: scriptedTasksMetaDataDialog.h:348
QAction * myViewScriptErrorAction
Definition: scriptedTasksMetaDataDialog.h:361
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
QAction * myEditScriptAction
Definition: scriptedTasksMetaDataDialog.h:359
QMenu * myScriptMenu
Definition: scriptedTasksMetaDataDialog.h:376
This class manages scripted tasks and allows for drag/drop of task for folder manipulation.
Definition: scriptedTasksMetaDataDialog.h:52
QAction * myAddFolderAction
Definition: scriptedTasksMetaDataDialog.h:368
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:389
QAction * myDuplicateAction
Definition: scriptedTasksMetaDataDialog.h:366
std::map< std::string, ScriptedTaskItem > ScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:57
QAction * myRightClickSeparator
Definition: scriptedTasksMetaDataDialog.h:375
QPushButton * myCloseButton
Definition: scriptedTasksMetaDataDialog.h:343
QMenu * myRightClickMenu
Definition: scriptedTasksMetaDataDialog.h:379
const ScriptedTaskItems & scriptedTaskItems() const
Definition: scriptedTasksMetaDataDialog.h:117
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:398
QAction * myMakeSystemScript
Definition: scriptedTasksMetaDataDialog.h:367
QAction * myExportAction
Definition: scriptedTasksMetaDataDialog.h:365
DtScriptedTaskTreeWidget * myScripts
Definition: scriptedTasksMetaDataDialog.h:342
Contains makVrv::DtVirtualBaseClass class.
QMenu * myHelpMenu
Definition: scriptedTasksMetaDataDialog.h:378
makVrv::DtSignalConnectionManager myConnectionManager
Definition: scriptedTasksMetaDataDialog.h:385
bool myEditable
Definition: scriptedTasksMetaDataDialog.h:183
QAction * myEditExternalScriptAction
Definition: scriptedTasksMetaDataDialog.h:360
File: simMsg.h.
Definition: simMessage.h:35
bool myMonitoringFrameRates
Definition: scriptedTasksMetaDataDialog.h:391
QAction * myImportAction
Definition: scriptedTasksMetaDataDialog.h:364
std::map< QTreeWidgetItem *, DtThemedTreeWidgetItem * > ScriptedTaskItem
Definition: scriptedTasksMetaDataDialog.h:56
QPushButton * myNewScript
Definition: scriptedTasksMetaDataDialog.h:344
boost::signals2::signal< void()> signal_deleteRequested
Definition: scriptedTasksMetaDataDialog.h:180
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * myScriptTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:347
QAction * myEditAction
Definition: scriptedTasksMetaDataDialog.h:358
QAction * myAddScriptAction
Definition: scriptedTasksMetaDataDialog.h:357
Definition: asyncJobServer.h:39
Creator class. Register a subclass of this to return your own version of the DtScriptedTasksMetaDataD...
Definition: scriptedTasksMetaDataDialog.h:402
QAction * myRemoveFromFolderAction
Definition: scriptedTasksMetaDataDialog.h:371
QLineEdit * mySearchBar
Definition: scriptedTasksMetaDataDialog.h:354
Allows for setting of icons that will switch with the theme.
Definition: treeWidget.h:190
QAction * myLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:373
Base class to provide boost signal/slot management.
makVrv::DtDe & myDe
Definition: scriptedTasksMetaDataDialog.h:384
QAction * mySettingsAction
Definition: scriptedTasksMetaDataDialog.h:363
QToolButton * myResetButton
Definition: scriptedTasksMetaDataDialog.h:346
QCheckBox * myShowCPPScriptedTasks
Definition: scriptedTasksMetaDataDialog.h:355
QLabel * myEntityTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:351
std::map< int, std::string > PendingDuplications
Definition: scriptedTasksMetaDataDialog.h:393
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
QAction * myDeleteFolderAction
Definition: scriptedTasksMetaDataDialog.h:369
QAction * myVrfLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:372
QAction * myRenameFolderAction
Definition: scriptedTasksMetaDataDialog.h:370
ScriptedTaskItems myScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:184
PendingDuplications myPendingDuplications
Definition: scriptedTasksMetaDataDialog.h:394
std::string myAddingScript
Definition: scriptedTasksMetaDataDialog.h:387
QComboBox * myScriptAccessFilterCombo
Definition: scriptedTasksMetaDataDialog.h:350
QAction * myDeleteAction
Definition: scriptedTasksMetaDataDialog.h:362
Dialog that shows currently available scenario scripts and allows the editing of the meta data for th...
Definition: scriptedTasksMetaDataDialog.h:189
QLabel * mySearchLabel
Definition: scriptedTasksMetaDataDialog.h:353
QComboBox * myEntityTypeComboBox
Definition: scriptedTasksMetaDataDialog.h:352

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)