MAK Data Logger API Documentation for DIS
 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-2024 MAK Technologies, Inc
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( const 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 setDarkModeEnabled(bool enable);
291 
293  virtual void loadStylesheet(bool enabled);
294 
296  virtual void mergeInFile();
297 
299  virtual void appendFile();
300 
302  virtual void prefixFile();
303 
305  virtual void offsetTime();
306 
308 
310  virtual const DtLgrFullInterface* fullInterface() const;
312  virtual DtLgrFullInterface* fullInterface();
314 
316  virtual const DtLgrAppGui* appGui() const;
318  virtual DtLgrAppGui* appGui();
320 
321  virtual const DtLgrEditorInterface* editorInterface() const;
323  virtual DtLgrEditorInterface* editorInterface();
325 
327  virtual const DtLgrPlaybackInterface* playbackInterface() const;
329  virtual DtLgrPlaybackInterface* playbackInterface();
331 
333  virtual const DtLgrRecordInterface* recordInterface() const;
335  virtual DtLgrRecordInterface* recordInterface();
337 
339  virtual const DtLgrSimInterface* simulationInterface() const;
341  virtual DtLgrSimInterface* simulationInterface();
343 
345  virtual const DtLgrSystemInterface* systemInterface() const;
347  virtual DtLgrSystemInterface* systemInterface();
349 
351  virtual const DtLgrTimeInterface* timeInterface() const;
354  virtual DtLgrTimeInterface* timeInterface();
356 
358  virtual void updateInterfaces();
359 
361  virtual void deleteAssistant();
362 
364  virtual void toggleConnection();
365 
368  virtual bool disconnect(QWidget* dialog=0);
369 
371  virtual QObject* eventHandler();
372 
374  virtual DtLgrMainWindow* mainWindow();
375 
377  virtual void crippleGui(bool disableAndMinimize);
378 
380  virtual void openUrl(const QString& urlText);
381 
383  virtual void showHelp(const char* filename = 0);
384 
386  virtual void showUserGuide();
387 
389  virtual void showReleaseNotes();
390 
392  virtual void showClassDocs();
393 
395  virtual void showAboutBox();
396 
398  virtual void launchVersionWebsite();
399 
401  virtual void launchProductWebsite();
402 
405  virtual const DtTimeComponent& displayTime() const;
406 
408  virtual void playbackFileEvent(const QString& filename);
409 
411  virtual void recordFileEvent(const QString& filename);
412 
414  virtual bool isZoomEnabled() const;
415 
417  virtual void setFollowMode(bool enableFollow);
418 
420  virtual void setFollowInterval(double interval);
421 
423  virtual bool isFollowMode() const;
424 
426  virtual void jumpTimeChanged(const DtAbsoluteTime& jumpTime);
427 
429  virtual void mediaPlayInWindowOperationActive(bool isActive, bool onCloseMainWindow = false);
430 
431  virtual void changeGuiComponentVisibilityWithLocking(QString componentName, bool visible, int initialSize = -1, bool lockOtherViewsX = true, bool lockOtherViewsY = true, bool ignoreVisibility = false);
432 
434  virtual void openDroppedFile(DtString& filename);
435 
437  virtual bool protocolIsMatch(DtString& filename, DtString& protocol);
438 
440  virtual bool darkModeEnabled();
441 
444  virtual void replaceAll(std::string& searchText,
445  const std::string& stringToFind,
446  const std::string& stringToReplace) const;
447 
450  virtual std::string resolveVars(const std::string& s);
451 
452  protected:
453 
454  virtual void longOperationChangedCallback(const bool& state);
455  virtual void longOperationMessageChangedCallback(const DtString& message);
456  virtual void longOperationProgressChangedCallback(const int& percent);
457 
458  virtual QString showExportDialog(QString fileFormat,QString filter, QString dialogName);
459  virtual QString browseOpenLoggerFile(QString title, DtLgrMediaPlayPipelineInfo* pipelineInfo=0);
460 
461  protected:
469  QProcess* myHelpAssistant;
471  QDockWidget* myTimeLineDocWidget;
472 
473  typedef std::map<QString,DtLgrGuiComponent*> GuiComponentMap;
476 
477  typedef std::map<QString,ExportDialogCreator> ExportDialogMap;
479 
480  typedef std::set<QString> ExportTypes;
482 
483  QStyle* myNewDockStyle;
484  //Flag used to store if the model is already exiting.
486 
490 
491  DtFilename myRepairedFilename;
492 
493  QString myDataViewName;
494  QString mySizeViewName;
496 
497  QVector<QString> myRecentFiles;
498 
500  std::string myAppPath;
501  std::string myDataPath;
502 
503  };
504 }
505 
506 #endif
QStyle * myNewDockStyle
Definition: lgrGuiModel.h:483
DtFilename myRepairedFilename
Definition: lgrGuiModel.h:491
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
bool myDarkModeEnabled
Definition: lgrGuiModel.h:499
Definition: lgrMediaPlayFileWidget.h:26
DtLgrTimeBarWidget * myTimeBar
Definition: lgrGuiModel.h:466
DtAbsoluteTime myJumpTime
Definition: lgrGuiModel.h:488
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:497
bool myJumpPending
Definition: lgrGuiModel.h:487
bool myResetZoom
Definition: lgrGuiModel.h:489
GuiComponentMap myComponents
Definition: lgrGuiModel.h:474
ExportTypes myExportTypes
Definition: lgrGuiModel.h:481
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
QDockWidget * myTimeLineDocWidget
Definition: lgrGuiModel.h:471
std::set< QString > ExportTypes
Definition: lgrGuiModel.h:480
ExportDialogMap myExportDialogMap
Definition: lgrGuiModel.h:478
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
std::string myDataPath
Definition: lgrGuiModel.h:501
QProcess * myHelpAssistant
Definition: lgrGuiModel.h:469
The main window for the logger application.
Definition: lgrMainWindow.h:29
QObject * myEventHandler
Definition: lgrGuiModel.h:463
DtBoundsSlider * myTimeControl
Definition: lgrGuiModel.h:467
DtLgrMainWindow * myMainWindow
Definition: lgrGuiModel.h:462
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:495
Definition: lgrExportDialog.h:20
QString myDataViewName
Definition: lgrGuiModel.h:493
The specific interface for interacting with the default logger GUI.
Definition: lgrAppGui.h:40
DtTimeComponent * myTimeComponent
Definition: lgrGuiModel.h:470
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:485
class DT_DLL_LGRUTIL DtAbsoluteTime
Definition: absoluteTime.h:22
std::map< QString, DtLgrGuiComponent * > GuiComponentMap
Definition: lgrGuiModel.h:473
DtLgrTimeBarZoomBox * myZoomControl
Definition: lgrGuiModel.h:468
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:475
DtLgrAppGui * myAppGui
Definition: lgrGuiModel.h:465
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:477
QString mySizeViewName
Definition: lgrGuiModel.h:494
std::string myAppPath
Definition: lgrGuiModel.h:500
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:464

Document ID: Generated on Thu Oct 3 15:35:11 EDT 2024 from SVN revision 270037
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)