VR-Forces 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  class DtSearchWidget;
48 
49  #define DtScriptedTaskDragType "text/x-vrlScriptedTaskDragging@Type"
50 
54  {
55  Q_OBJECT
56  public:
57  typedef std::map<QTreeWidgetItem*, DtThemedTreeWidgetItem*> ScriptedTaskItem;
58  typedef std::map<std::string, ScriptedTaskItem> ScriptedTaskItems;
59 
61  DtScriptedTaskTreeWidget(makVrv::DtDe& de, QWidget* parent);
62 
64  virtual ~DtScriptedTaskTreeWidget();
65 
67  virtual bool selectedScriptIsSystemScript() const;
68 
70  virtual bool selectedItemIsFolder() const;
71 
73  virtual bool itemIsFolder(QTreeWidgetItem*) const;
74 
76  virtual bool allSelectedItemsAreScripts() const;
77 
80  virtual QString getFolderName(QTreeWidgetItem*, const QString& current = "");
81 
83  virtual DtThemedTreeWidgetItem* addFolder(QTreeWidgetItem* root, const QString&, bool select = true);
84 
86  virtual bool systemScriptsInFolder(QTreeWidgetItem*) const;
87 
89  virtual bool selectedItemCanEditScript() const;
90 
92  virtual QTreeWidgetItem* findScriptItem(const QString& scriptId);
93 
96  virtual QTreeWidgetItem* findFolder(const QString& path, QTreeWidgetItem* root = 0);
97 
100  virtual void setFolderPaths(QTreeWidgetItem*);
101 
104  virtual std::string folderPathToItem(QTreeWidgetItem*) const;
105 
107  virtual std::string folderPathToSelectedItem() const;
108 
110  virtual std::vector<std::string> scriptIdsInFolder(QTreeWidgetItem*) const;
111 
113  virtual std::set<std::string> selectedScriptIds() const;
114 
116  virtual QSize sizeHint(QTreeWidgetItem*) const;
117 
119  {
120  return myScriptedTaskItems;
121  }
122 
124  virtual void updateFrameRates(DtSimMessage*);
125 
127  virtual QTreeWidgetItem* addScriptedTask(const std::string&, QTreeWidgetItem* root = 0, bool addToFolder = true);
128 
130  virtual bool removeScriptedTask(const std::string&);
131 
133  virtual void scriptModified(const std::string&, bool);
134 
136  virtual void clear();
137 
139  virtual void setEditable(bool b);
140  virtual bool editable() const;
141 
143  virtual void scriptModifiedCleared();
144 
146  virtual void scriptErrorStatusChanged(const std::string&);
147 
150  virtual void filterByScriptEngine(const std::set<std::string>& showEngines);
151  virtual bool filterByScriptEngine(QTreeWidgetItem*, const std::set<std::string>& showEngines);
153 
154  virtual void scriptIdChanged(const std::string& oldId, const std::string& newId);
155  virtual bool changeScriptId(QTreeWidgetItem* item, const std::string& oldId, const std::string& newId) const;
156 
157  protected:
159  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
160 
163  virtual void dragEnterEvent(QDragEnterEvent* event);
164 
166  virtual void dragMoveEvent(QDragMoveEvent* event);
167 
169  virtual void dropItems(const QStringList&, QTreeWidgetItem*);
170 
172  virtual bool dropMimeData(QTreeWidgetItem* parent, int index, const QMimeData* mimeData, Qt::DropAction action);
173 
175  virtual void keyPressEvent(QKeyEvent*);
176 
178  virtual void statusUpdate(QTreeWidgetItem* item, const std::string& scriptId);
179 
180  public:
181  boost::signals2::signal<void ()> signal_deleteRequested;
182 
183  protected:
186  };
187 
191  {
192  Q_OBJECT
193 
194  public:
195  DtScriptedTasksMetaDataDialog(makVrv::DtDe&, QWidget* parent, const Qt::WindowFlags& flags = 0);
197 
199  virtual void onAddNewScript(int);
200 
201  protected:
202  virtual void slot_aboutToClearScriptedTasks();
203  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
204  virtual void slot_scriptedTaskAdded(std::string scriptId, bool updateEntityTypeCombo = true);
205  virtual void slot_receivedScriptedTasks();
206  virtual void updateActions();
207 
208  virtual DtScriptedTaskMetaDataDialog* createScriptedTaskMetaDataDialog();
209 
212  virtual void selectToImport(const std::vector<DtScriptedTaskMetaData>&);
213 
216  virtual void slot_adding(const std::string& id);
217 
219  virtual void slot_scriptErrorChange(std::string scriptId, bool hasError, std::string error);
220 
222  virtual void showAllItems();
223 
226  virtual void filterByScriptEngine();
228 
232  virtual void filterByScriptType();
233  virtual bool filterByScriptType(QTreeWidgetItem*);
235 
236 
240  virtual void filterByScriptAccess();
241  virtual bool filterByScriptAccess(QTreeWidgetItem*);
243 
247  virtual void filterByEntityType();
248  virtual bool filterByEntityType(QTreeWidgetItem*);
250 
254  virtual void filterBySearchString();
255  virtual bool filterBySearchString(QTreeWidgetItem*);
257 
260  virtual void updateEntityTypeCombo();
261 
263  virtual void slot_scriptModified(std::string scriptId, bool modified);
264 
266  virtual void slot_scriptModifiedCleared();
267 
268  virtual void slot_scriptIdChanged(const std::string& oldId, const std::string& newId);
269 
270  protected slots:
271  virtual void systemAvailabilityChanged(QTreeWidgetItem*,int);
272  virtual void onMetaDataSelected();
273  virtual void onEditSelectedMetaData();
274  virtual void onViewSelectedMetaData();
275  virtual void onAddMetaData();
276  virtual void onDuplicateMetaData();
277  virtual void onDeleteMetaData();
278  virtual void onEditScript();
279  virtual void onEditExternalScript();
280  virtual void onShowVrfLuaDocHelp();
281  virtual void onShowLuaDocHelp();
282  virtual void onViewScriptError();
283  virtual void onImportScripts();
284  virtual void onExportScripts();
285  virtual void onMakeSystemScript();
286  virtual void onShowScriptedTaskSettings();
287 
288  virtual void onAddFolder();
289  virtual void onRenameFolder();
290  virtual void onDeleteFolder();
291  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col);
292 
294  virtual void filterItems();
295 
297  virtual void resetFilters();
298 
300  virtual void selectAllToImport();
301 
303  virtual void clearAllToImport();
304 
306  virtual void onRemoveFromFolder();
307 
309  virtual void onMetaDataDialogClosed(QObject* dlg);
310 
311  protected:
313  virtual void onDeleteItem();
314 
315  virtual void receivedScriptsToExport(DtSimMessage* msg, int requestId, QString filenameToExportTo);
316 
318  virtual void receivedFrameRates(DtSimMessage* msg);
319 
322  virtual bool continueWithSystemScriptEdit();
323 
325  virtual void closeEvent(QCloseEvent*);
326 
328  virtual void showEvent(QShowEvent*);
329 
331  virtual void slot_scriptedTaskSettingsChanged();
332 
334  virtual void receivedScriptForMetaDataDuplication(DtSimMessage*);
335 
337  virtual void slot_scriptedTaskTypeAdded(int);
338 
340  virtual void slot_scriptedTaskTypeRemoved(int);
341 
342  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:350
Definition: treeWidget.h:35
QPushButton * myImportScripts
Definition: scriptedTasksMetaDataDialog.h:346
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:349
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:53
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:58
QAction * myRightClickSeparator
Definition: scriptedTasksMetaDataDialog.h:375
QPushButton * myCloseButton
Definition: scriptedTasksMetaDataDialog.h:344
QMenu * myRightClickMenu
Definition: scriptedTasksMetaDataDialog.h:379
const ScriptedTaskItems & scriptedTaskItems() const
Definition: scriptedTasksMetaDataDialog.h:118
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:343
Contains makVrv::DtVirtualBaseClass class.
QMenu * myHelpMenu
Definition: scriptedTasksMetaDataDialog.h:378
makVrv::DtSignalConnectionManager myConnectionManager
Definition: scriptedTasksMetaDataDialog.h:385
bool myEditable
Definition: scriptedTasksMetaDataDialog.h:184
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:57
QPushButton * myNewScript
Definition: scriptedTasksMetaDataDialog.h:345
boost::signals2::signal< void()> signal_deleteRequested
Definition: scriptedTasksMetaDataDialog.h:181
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * myScriptTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:348
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
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
Definition: searchWidget.h:22
QToolButton * myResetButton
Definition: scriptedTasksMetaDataDialog.h:347
QCheckBox * myShowCPPScriptedTasks
Definition: scriptedTasksMetaDataDialog.h:355
QLabel * myEntityTypeFilterLabel
Definition: scriptedTasksMetaDataDialog.h:352
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:72
QAction * myDeleteFolderAction
Definition: scriptedTasksMetaDataDialog.h:369
QAction * myVrfLuaDocHelpAction
Definition: scriptedTasksMetaDataDialog.h:372
QAction * myRenameFolderAction
Definition: scriptedTasksMetaDataDialog.h:370
ScriptedTaskItems myScriptedTaskItems
Definition: scriptedTasksMetaDataDialog.h:185
PendingDuplications myPendingDuplications
Definition: scriptedTasksMetaDataDialog.h:394
std::string myAddingScript
Definition: scriptedTasksMetaDataDialog.h:387
QComboBox * myScriptAccessFilterCombo
Definition: scriptedTasksMetaDataDialog.h:351
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:190
DtSearchWidget * mySearchWidget
Definition: scriptedTasksMetaDataDialog.h:354
QComboBox * myEntityTypeComboBox
Definition: scriptedTasksMetaDataDialog.h:353

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)