MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrGuiModel.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef lgrGuiModel_H_
10 #define lgrGuiModel_H_
11 
12 #include <lgrGui/lgrGui.h>
14 #include <lgrUtil/absoluteTime.h>
15 
16 #include <vlutil/vlFilename.h>
17 
18 #include <QString>
19 #include <map>
20 #include <set>
21 #include <QVector>
22 
23 class QAction;
24 class QDialog;
25 class QObject;
26 class QStyle;
27 class QTimer;
28 class QWidget;
29 class QProcess;
30 class QDockWidget;
31 
32 namespace MAKLogger
33 {
34  class DtAbsoluteTime;
35  class DtBoundsSlider;
36  class DtLgrTimeBarWidget;
37  class DtLgrEditorInterface;
38  class DtLgrFullInterface;
39  class DtLgrAppGui;
40  class DtLgrGuiComponent;
41  class DtLgrMainWindow;
42  class DtLgrMainWindow;
43  class DtLgrMenu;
44  class DtLgrPlaybackInterface;
45  class DtLgrRecordInterface;
46  class DtLgrSimInterface;
47  class DtLgrSystemInterface;
48  class DtLgrTimeInterface;
49  class DtLgrToolBar;
50  class DtTimeComponent;
51  class DtLgrExportDialog;
52  class DtLgrTimeBarZoomBox;
53  struct DtLgrMediaPlayPipelineInfo;
54 
57  {
58  public:
59  typedef std::map<QString,bool> DtComponentVisibilityMap;
60 
61  public:
62 
68 
70  virtual ~DtLgrGuiModel();
71 
77  virtual void initialize(DtLgrMainWindow* mainWindow,QObject* eventHandler);
78 
79  virtual void addExportType( QString exportName, int exportType);
80 
82  virtual void addNewMenu( DtLgrMenu* menu, QString previousMenuName = QString() );
83 
85  virtual void addNewToolbar( QWidget* toolBar, QString toolBarName );
86 
91  virtual void addGuiComponent( DtLgrGuiComponent* component, bool addAbove=true, bool floating=false);
92 
94  virtual void removeGuiComponent( QString componentName);
95 
97  virtual DtLgrGuiComponent* guiComponent( QString componentName );
98 
100  virtual void changeGuiComponentVisibility(QString componentName, bool visible);
101 
103  virtual void setGuiComponentInitialVisibility(QString componentName, bool visible);
104 
106  virtual void updateLgrComponent(QString componentName,bool visible);
107 
109  virtual void showLgrComponent( QString componentName );
110 
112  virtual void hideLgrComponent( QString componentName );
113 
115  virtual void getComponentsVisibility(DtComponentVisibilityMap& visibilityMap) const;
116 
118  virtual void addNewStatusWidget( QWidget* widget );
119 
121  virtual void connectMenuItemToAction(QString menuName,QString menuItemName,
122  QAction* action);
123 
124  typedef DtLgrExportDialog* (*ExportDialogCreator)(DtLgrGuiModel*,QWidget* parent);
125 
127  virtual void addExportDialog(QString exportType,ExportDialogCreator creator);
128 
129  //@name Application Operations
131 
135  virtual bool exit();
136 
138  virtual void startLongOperation();
139 
141  virtual void finishLongOperation();
142 
144  virtual void updateLongOperation();
145 
147  virtual void cancelLongOperation();
148 
150 
151  //@name File Operations
153 
155  virtual QString getLoggerFileFilter() const;
156 
158  virtual QString getDefaultLoggerFileDirectory() const;
159 
161  virtual QString getSaveLoggerFileName(QWidget* parentWindow,QString title,
162  QString& description, bool& descriptionChanged, DtString* streamConfiguration=0, int mediaPort=5000, bool activeStream=0);
163 
165  virtual bool openFile();
166 
168  virtual bool openFile( QString &filename, bool checkMediaFile = false );
169 
171  virtual bool needDifferentConnectionSettings( DtString& filename );
172 
174  virtual bool saveFileAs(bool reopenAfterSave = true);
175 
177  virtual void saveFile(bool reopenAfterSave = true);
178 
182  virtual bool fileSaved() const;
183 
185  virtual bool canCloseFile();
186 
188  virtual bool closeFile();
189 
191  virtual void exportSection(const DtString& fileFormat);
192 
194  virtual void exportFile(const DtString& fileFormat);
195 
197  virtual bool openLoggerInformation();
198 
200  virtual QVector<QString> recentFiles();
201 
203  virtual void setRecentFiles(QVector<QString> recentFiles);
204 
206  virtual void addRecentFile(QString filename);
207 
208  //@name Record Operations
210 
213  virtual void recordAs();
214 
217  virtual void recordFile(QString filename, QString description, bool overwrite);
218 
220  virtual void queryToRecordMultipleFiles();
221 
223  virtual void recordToMultipleFiles(QString filename, QString description);
224 
228  virtual bool queryStopRecordingEmptyTape();
229 
231  virtual void saveRecordingData();
232 
235  virtual void setZoom();
236 
238  virtual void setZoom(const DtAbsoluteTime& start,const DtAbsoluteTime& end);
239 
241 
243  virtual QString fileNameForDisplay() const;
244 
246  virtual void upgradeFile();
247 
249  virtual void repairFile(const QString& filename, bool queryRepair);
250 
252  virtual void recoverLastPacket(const QString& filename);
253 
255  virtual void exportCompleted();
256 
258  virtual void revert();
259 
261 
262  //@name Playback Operations
264 
266  virtual void setSpeed();
267 
269  virtual void setStartStopTimes();
270 
272  virtual void setStartStopTimes(const DtAbsoluteTime& start,
273  const DtAbsoluteTime& stop);
274 
276  virtual void stop();
277 
279 
280  //@name Editing Operations
282 
284  virtual void clearSelection();
285 
287  virtual void cutSelection();
288 
290  virtual void mergeInFile();
291 
293  virtual void appendFile();
294 
296  virtual void prefixFile();
297 
299  virtual void offsetTime();
300 
302 
304  virtual const DtLgrFullInterface* fullInterface() const;
306  virtual DtLgrFullInterface* fullInterface();
308 
310  virtual const DtLgrAppGui* appGui() const;
312  virtual DtLgrAppGui* appGui();
314 
315  virtual const DtLgrEditorInterface* editorInterface() const;
317  virtual DtLgrEditorInterface* editorInterface();
319 
321  virtual const DtLgrPlaybackInterface* playbackInterface() const;
323  virtual DtLgrPlaybackInterface* playbackInterface();
325 
327  virtual const DtLgrRecordInterface* recordInterface() const;
329  virtual DtLgrRecordInterface* recordInterface();
331 
333  virtual const DtLgrSimInterface* simulationInterface() const;
335  virtual DtLgrSimInterface* simulationInterface();
337 
339  virtual const DtLgrSystemInterface* systemInterface() const;
341  virtual DtLgrSystemInterface* systemInterface();
343 
345  virtual const DtLgrTimeInterface* timeInterface() const;
348  virtual DtLgrTimeInterface* timeInterface();
350 
352  virtual void updateInterfaces();
353 
355  virtual void deleteAssistant();
356 
358  virtual void toggleConnection();
359 
362  virtual bool disconnect(QWidget* dialog=0);
363 
365  virtual QObject* eventHandler();
366 
368  virtual DtLgrMainWindow* mainWindow();
369 
371  virtual void crippleGui(bool disableAndMinimize);
372 
374  virtual void openUrl(const QString& urlText);
375 
377  virtual void showHelp(const char* filename = 0);
378 
380  virtual void showUserGuide();
381 
383  virtual void showReleaseNotes();
384 
386  virtual void showClassDocs();
387 
389  virtual void showAboutBox();
390 
392  virtual void launchVersionWebsite();
393 
395  virtual void launchProductWebsite();
396 
399  virtual const DtTimeComponent& displayTime() const;
400 
402  virtual void playbackFileEvent(const QString& filename);
403 
405  virtual void recordFileEvent(const QString& filename);
406 
408  virtual bool isZoomEnabled() const;
409 
411  virtual void setFollowMode(bool enableFollow);
412 
414  virtual void setFollowInterval(double interval);
415 
417  virtual bool isFollowMode() const;
418 
420  virtual void jumpTimeChanged(const DtAbsoluteTime& jumpTime);
421 
423  virtual void mediaPlayInWindowOperationActive(bool isActive, bool onCloseMainWindow = false);
424 
425  virtual void changeGuiComponentVisibilityWithLocking(QString componentName, bool visible, int initialSize = -1, bool lockOtherViewsX = true, bool lockOtherViewsY = true, bool ignoreVisibility = false);
426 
427  protected:
428 
429  virtual void longOperationChangedCallback(const bool& state);
430  virtual void longOperationMessageChangedCallback(const DtString& message);
431  virtual void longOperationProgressChangedCallback(const int& percent);
432 
433  virtual QString showExportDialog(QString fileFormat,QString filter, QString dialogName);
434  virtual QString browseOpenLoggerFile(QString title, DtLgrMediaPlayPipelineInfo* pipelineInfo=0);
435 
436  protected:
444  QProcess* myHelpAssistant;
446  QDockWidget* myTimeLineDocWidget;
447 
448  typedef std::map<QString,DtLgrGuiComponent*> GuiComponentMap;
451 
452  typedef std::map<QString,ExportDialogCreator> ExportDialogMap;
454 
455  typedef std::set<QString> ExportTypes;
457 
458  QStyle* myNewDockStyle;
459  //Flag used to store if the model is already exiting.
461 
465 
466  DtFilename myRepairedFilename;
467 
468  QString myDataViewName;
469  QString mySizeViewName;
471 
472  QVector<QString> myRecentFiles;
473  };
474 }
475 
476 #endif
QStyle * myNewDockStyle
Definition: lgrGuiModel.h:458
DtFilename myRepairedFilename
Definition: lgrGuiModel.h:466
The class responsible for interfacing with the simulation in a protocol independent manner...
Definition: lgrSimInterface.h:34
A Widget which contains two slider boxes which define a bounding area.
Definition: boundsSlider.h:27
Definition: lgrMediaPlayFileWidget.h:26
DtLgrTimeBarWidget * myTimeBar
Definition: lgrGuiModel.h:441
DtAbsoluteTime myJumpTime
Definition: lgrGuiModel.h:463
Provides the base interface for Logger Application gui components.
Definition: lgrGuiComponent.h:36
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
QVector< QString > myRecentFiles
Definition: lgrGuiModel.h:472
bool myJumpPending
Definition: lgrGuiModel.h:462
bool myResetZoom
Definition: lgrGuiModel.h:464
GuiComponentMap myComponents
Definition: lgrGuiModel.h:449
ExportTypes myExportTypes
Definition: lgrGuiModel.h:456
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
QDockWidget * myTimeLineDocWidget
Definition: lgrGuiModel.h:446
std::set< QString > ExportTypes
Definition: lgrGuiModel.h:455
ExportDialogMap myExportDialogMap
Definition: lgrGuiModel.h:453
The class responsible for interfacing with the logger playback functionality.
Definition: lgrPlaybackInterface.h:35
The logger GUI&#39;s model.
Definition: lgrGuiModel.h:56
std::map< QString, bool > DtComponentVisibilityMap
Definition: lgrGuiModel.h:59
The class which interfaces with the logger editor functionality.
Definition: lgrEditorInterface.h:31
Utility class which provides access to multiple interfaces.
Definition: lgrFullInterface.h:25
QProcess * myHelpAssistant
Definition: lgrGuiModel.h:444
The main window for the logger application.
Definition: lgrMainWindow.h:30
QObject * myEventHandler
Definition: lgrGuiModel.h:438
DtBoundsSlider * myTimeControl
Definition: lgrGuiModel.h:442
DtLgrMainWindow * myMainWindow
Definition: lgrGuiModel.h:437
A time component represents the current time of the logger.
Definition: timeComponent.h:20
Contains MAKLogger::DtAbsoluteTime and MAKLogger::DtRelativeTime classes.
QString myStreamViewName
Definition: lgrGuiModel.h:470
Definition: lgrExportDialog.h:20
QString myDataViewName
Definition: lgrGuiModel.h:468
The specific interface for interacting with the default logger GUI.
Definition: lgrAppGui.h:40
DtTimeComponent * myTimeComponent
Definition: lgrGuiModel.h:445
The class responsible for interfacing with the low level logger system functions. ...
Definition: lgrSystemInterface.h:31
#define DT_DLL_LGRGUI
Definition: lgrGui.h:19
bool myExitingFlag
Definition: lgrGuiModel.h:460
class DT_DLL_LGRUTIL DtAbsoluteTime
Definition: absoluteTime.h:22
std::map< QString, DtLgrGuiComponent * > GuiComponentMap
Definition: lgrGuiModel.h:448
DtLgrTimeBarZoomBox * myZoomControl
Definition: lgrGuiModel.h:443
The class responsible for interfacing with the logger recording functionality.
Definition: lgrRecordInterface.h:28
Defines INPORT/EXPORT macros for lgrGui library.
DtComponentVisibilityMap myComponentsInitialVisibility
Definition: lgrGuiModel.h:450
DtLgrAppGui * myAppGui
Definition: lgrGuiModel.h:440
The time bar widget.
Definition: lgrTimeBarWidget.h:28
A Zoom widget. Highlights the visible timeline duration on the fulltimeline bar.
Definition: lgrTimeBarZoomBox.h:27
The class for interfacing with the loggers time state.
Definition: lgrTimeInterface.h:21
std::map< QString, ExportDialogCreator > ExportDialogMap
Definition: lgrGuiModel.h:452
QString mySizeViewName
Definition: lgrGuiModel.h:469
Abstract Menu which can be added to the MAKLogger::DtLgrMainWindow.
Definition: lgrMenu.h:26
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
DtLgrFullInterface * myFullInterface
Definition: lgrGuiModel.h:439

Document ID: Generated on Mon Mar 22 15:30:17 EDT 2021 from SVN revision 226440
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)