VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptEditor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
14 
18 #include <vlutil/vlFilename.h>
20 #endif
21 #include <boost/signals2.hpp>
22 
23 #include <QObject>
24 #include <QDateTime>
25 #include <QtCore/QProcess>
26 
27 namespace makVrv
28 {
29  class DtDe;
30 }
31 
32 class DtSimMessage;
33 class QProcess;
35 
36 namespace makVrf
37 {
42  {
43  Q_OBJECT
44 
45  public:
47  DtScriptEditor(makVrv::DtDe&, const std::string& tmpDir = "scripts");
48 
50  virtual ~DtScriptEditor();
51 
53  static DtScriptEditor& instance(makVrv::DtDe& de);
54  static void registerInstance(makVrv::DtDe&, DtScriptEditor*);
55 
57  virtual void edit(const std::string&, int scriptType, const std::string& commentBlock = "");
58 
61  virtual void editNew(const std::string& id, int sType, const std::string& script, const std::string& scriptEngine,
62  const std::string& commentBlock = "");
63 
65  virtual void view(const std::string&);
66 
68  virtual void closeEditorFor(const std::string&);
69 
71  virtual bool alreadyEditing(const std::string& id) const;
72 
75  virtual void editExternalScript(const std::string& filename);
76 
78  virtual bool hasScriptFor(const std::string&) const;
79 
81  boost::signals2::signal<void (const std::string&, const std::string&)> signal_scriptModified;
82 
83  boost::signals2::signal<void (const std::string&)> signal_editingComplete;
84 
85  protected:
86  virtual void slot_scriptSaveError(std::string scriptId);
87 
89  virtual void receivedScript(DtSimMessage*);
90 
92  virtual void slot_aboutToClearScriptedTasks();
93  virtual void slot_scriptedTaskAboutToBeRemoved(std::string scriptId);
94 
96  virtual void editScript(const std::string& id, int sType, const std::string& script,
97  const std::string& scriptEngine = "lua", bool readOnly = false,
98  bool localOnly = false, bool scriptIsFilename = false,
99  const std::string& commentBlock = "");
100 
102  virtual void tick();
103 
106  virtual void checkNeedsUpdate(const std::string& filename);
107 
109  virtual void scriptBeingRemoved();
110 
112  virtual void slot_scriptedTaskAdded(std::string);
113 
115  virtual void editingComplete(QProcess*);
116 
120  virtual bool checkForScriptErrors(const DtScriptedTaskMetaData&) const;
121 
123  virtual std::string cleanUpError(const std::string&) const;
124 
125  virtual void exitingApplication();
126 
127  protected slots:
128  virtual void editingComplete(int, QProcess::ExitStatus);
129  virtual void startupError(QProcess::ProcessError);
130 
131  protected:
133 
135  {
137  bool viewOnly;
138  bool localOnly;
140  std::string commentBlock;
142  std::string userData;
143  };
144 
145  std::map<DtU32, PendingRequest> myPendingRequests;
146 
147  struct FileInfo
148  {
149  QProcess* editingProcess;
150  QDateTime lastModified;
152  bool readOnly;
153  bool localOnly;
156  std::string scriptEditor;
157  int retries;
159  };
160 
161  typedef std::map<std::string, FileInfo> FileInfoMap;
163 
165 
166  DtFilename myTempDirectory;
167 
168  std::set<std::string> myHasScriptFor;
169  };
170 }
QDateTime lastModified
Definition: scriptEditor.h:150
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::string commentBlock
Definition: scriptEditor.h:140
bool viewOnly
Definition: scriptEditor.h:137
std::string userData
Definition: scriptEditor.h:142
std::string scriptEditor
Definition: scriptEditor.h:156
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
int scriptType
Definition: scriptEditor.h:141
bool editingFile
Definition: scriptEditor.h:139
bool isSystemScript
Definition: scriptEditor.h:158
DtFilename myTempDirectory
Definition: scriptEditor.h:166
Definition: scriptEditor.h:134
std::map< DtU32, PendingRequest > myPendingRequests
Definition: scriptEditor.h:145
Contains makVrv::DtVirtualBaseClass class.
DtGenericMessageType scriptId
Definition: scriptEditor.h:151
bool localOnly
Definition: scriptEditor.h:153
File: simMsg.h.
Definition: simMessage.h:35
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool alreadyRunning
Definition: scriptEditor.h:154
std::set< std::string > myHasScriptFor
Definition: scriptEditor.h:168
boost::signals2::signal< void(const std::string &, const std::string &)> signal_scriptModified
Signals sent when scripts are changed or an editor closed.
Definition: scriptEditor.h:81
Base class to provide boost signal/slot management.
Class that will request and spawn an editor that will allow the editing of the given scripted task...
Definition: scriptEditor.h:41
QProcess * editingProcess
Definition: scriptEditor.h:149
makVrv::DtDe & myDe
Definition: scriptEditor.h:132
FileInfoMap myFileInfoMap
Definition: scriptEditor.h:162
bool localOnly
Definition: scriptEditor.h:138
bool readOnly
Definition: scriptEditor.h:152
bool editingFile
Definition: scriptEditor.h:155
makVrv::DtSignalConnectionManager myConnections
Definition: scriptEditor.h:164
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
Definition: scriptEditor.h:147
boost::signals2::signal< void(const std::string &)> signal_editingComplete
Definition: scriptEditor.h:83
DtGenericMessageType scriptid
Definition: scriptEditor.h:136
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:56
int retries
Definition: scriptEditor.h:157
std::map< std::string, FileInfo > FileInfoMap
Definition: scriptEditor.h:161

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)