VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDisplayConfigEditorLogic.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtDisplayConfigEditorLogic_H_
11 #define DtDisplayConfigEditorLogic_H_
12 
13 #include <vrvCoreQt/vrvCoreQt.h>
16 #include <map>
17 #include <QtCore/QString>
18 #include <QtGui/QStandardItem>
20 
21 class QStandardItemModel;
22 class QStandardItem;
23 class QModelIndex;
24 class QPoint;
25 
26 namespace makVrv
27 {
28 
29  class DtDe;
30  class DtDisplayConfigEditorInterface;
31  class DtIgUserInterface;
32 
33  template<int TypeId>
34  class DtConfigItem;
35 
36  const int IG_TYPE = QStandardItem::UserType + 2;
37  const int DISPLAY_ENGINE_TYPE = IG_TYPE + 1;
39  const int CHANNEL_TYPE = WINDOW_TYPE + 1;
40 
45 
46 
57  {
58 
59  public:
60 
64 
67 
69  virtual QStandardItemModel* displayTreeModel();
70 
71  void realizeNewDisplayEngineConfiguration(const std::string& clientName,
72  const DtDisplayConfiguration& dec);
73 
75  void destroyDisplayEngine(const std::string& displayName, bool realized);
76 
78  void modifyDisplayEngine(const std::string& displayName, bool isRealised, const DtDisplayConfiguration& config);
79 
81  void addWindow(const std::string& displayName, const DtWindowConfiguration& config,bool realized);
82 
84  void destroyWindow( const std::string& displayName, const std::string& windowName, bool realized,
85  DtWindowItem* windowItem);
86 
88  void modifyWindow(const std::string& displayName, const std::string& windowName,
89  const DtWindowConfiguration& config, bool isRealized);
90 
92  void addChannel(const std::string& displayName, const std::string& windowName,
93  const DtChannelConfiguration& config, bool isRealized);
94 
96  void destroyChannel(const std::string& displayName, const std::string& windowName,
97  const std::string& channelName, bool realized);
98 
100  void modifyChannel(const std::string& displayName, const std::string& windowName,
101  const std::string& channelName, const DtChannelConfiguration& config, bool realized);
102 
103  //
105  //
106 
107  virtual void slot_activate(DtDe* de);
108 
109  virtual void slot_deactivate(DtDe* de);
110 
111  virtual void slot_activate(DtDeCommunicator* igComm);
112 
113  virtual void slot_deactivate(DtDeCommunicator* igComm);
114 
115  //
117  //
118 
120 
123  virtual void slot_igAdded(const DtDeRecord& igName);
124  virtual void slot_igRemoved(const std::string& igName);
125 
126 
127  virtual void slot_displayConfigurationRealized(const std::string& igName,
128  const std::string& displayConfig);
129 
130  virtual void slot_displayToBeDestroyed(const std::string& displayName);
131 
132  virtual void slot_windowAdded(const std::string& displayName, const DtWindowConfiguration& wc);
133  virtual void slot_windowToBeDestroyed(const std::string& displayName, const std::string& windowName);
134  virtual void slot_windowModified(const std::string& displayName, const std::string& windowName,
135  const DtWindowConfiguration& wc);
136 
137  virtual void slot_channelAdded(const std::string& displayName, const std::string& windowName,
138  const DtChannelConfiguration& wc);
139  virtual void slot_channelToBeDestroyed(const std::string& displayName, const std::string& windowName,
140  const std::string& channelName);
141  virtual void slot_channelModified(const std::string& displayName, const std::string& windowName,
142  const std::string& channelName, const DtChannelConfiguration& cc);
144 
147  virtual void slot_refreshIcons();
148 
150  void onDisplayTreeSelectionChanged(const QModelIndex& index);
151 
153  void onDisplayTreeContextMenu(const QModelIndex& index, const QPoint& pos);
154 
156  void onObserverCreationRequested( const std::string& observerName );
157 
158 
159  //
161  //
162 
164  void onDelete(const QModelIndex& index);
166  void onNewDisplayEngine(const QModelIndex& index);
167  void onNewWindow(const QModelIndex& index);
168  void onNewChannel(const QModelIndex& index);
169  void onDisconnectSlaveIg(const QModelIndex& index);
170  void onSaveDisplayConfig(const QModelIndex& index, const std::string& filename);
171  void onLoadDisplayConfig(const QModelIndex& index, const std::string& filename, QWidget* parent);
173 
175  void onModifyConfiguration(const QModelIndex& index, const DtWindowConfiguration& config);
178  void onModifyConfiguration(const QModelIndex& index, const DtDisplayConfiguration& config);
179  void onModifyConfiguration(const QModelIndex& index, const DtChannelConfiguration& config);
181 
183  void getChannelList(QStringList& channelListOut);
184 
186  void getObserverList(QStringList& observerListOut);
187 
189  void getSensorList(QStringList& sensorListOut);
190 
191  protected:
192 
195 
198  void populateDisplayConfigEditor();
199 
201  DtIgItem* findIgItem( const QModelIndex& index);
202 
204  DtDisplayEngineItem* findDisplayEngineItem( const QModelIndex& index);
205 
207  DtWindowItem* findWindowItem( const QModelIndex& index );
208 
209  void addKeyItemPair( QString newKey, QStandardItem* item );
210 
211  const DtDisplayConfiguration* findDisplayConfiguration( DtDisplayEngineItem* displayEngineItem );
212  const DtDisplayConfiguration* findDisplayConfiguration( const std::string& displayName );
213 
214  QString makeIgKey( const std::string &igName );
215  QString makeDisplayEngineKey( const std::string &displayName);
216  QString makeWindowKey( const std::string &displayName, const std::string &windowName);
217  QString makeChannelKey( const std::string &displayName, const std::string &windowName,
218  const std::string &channelName);
219 
220  QString appendToKey( QString displayKey, const std::string& windowName);
221 
222  DtDisplayConfiguration createNewDisplayEngineConfiguration();
223  DtWindowConfiguration createNewWindowConfigurtion(const DtDisplayConfiguration&);
224  DtChannelConfiguration createNewChannel(const DtWindowConfiguration&);
225 
227  QStandardItem* addIgItem( const std::string& igName, const std::string& displayName );
228 
230  QStandardItem* addDisplayEngineItem(QStandardItem* parent, const QString& parentKey,
231  const DtDisplayConfiguration& dec);
232 
235  QStandardItem* addWindowItem(QStandardItem* parent, const QString& parentKey, const std::string& displayName,
236  const DtWindowConfiguration& wc);
237 
239  QStandardItem* addChannelItem(QStandardItem* parent, const QString& parentKey, const std::string& displayName,
240  const DtChannelConfiguration& cc);
241 
245  void removeItemByKey(const QString& key);
246 
248  void remapChildItems(QStandardItem* item, const QString& oldParentKey, const QString& newParentKey);
249 
251  bool getDisplayEngineConfiguration(const std::string& displayName, bool isRealized,DtDisplayConfiguration& dcOut);
252 
254  bool getWindowConfiguration(const std::string& displayName, const std::string& windowName, bool isRealized,
255  DtWindowConfiguration& vcOut);
256 
258  bool getChannelConfiguration(const std::string& displayName, const std::string& windowName,
259  const std::string& channelName, bool realized,DtChannelConfiguration& ccOut);
260 
262  const std::string& displayEngineOwner(const std::string& displayName);
263 
266  int flagsFromSelection( const QModelIndex& index);
267 
268  protected:
269 
270  typedef std::map<QString, QStandardItem*> ItemMap;
271 
274  QStandardItemModel* myDisplayTreeModel;
275 
278  };
279 }
280 
281 #endif
282 
Contains makVrv::DtSubjectObserver class.
const int CHANNEL_TYPE
Definition: DtDisplayConfigEditorLogic.h:39
DtConfigItem< DISPLAY_ENGINE_TYPE > DtDisplayEngineItem
Definition: DtDisplayConfigEditorLogic.h:42
A Record of an IG instance.
Definition: DtDeRecord.h:24
The DtDisplayConfigEditorLogic is the brains behind the display configuration editor. Causes display configurations to be realized on slaves. Modifies realized display configurations.
Definition: DtDisplayConfigEditorLogic.h:56
const int WINDOW_TYPE
Definition: DtDisplayConfigEditorLogic.h:38
DtConfigItem< CHANNEL_TYPE > DtChannelItem
Definition: DtDisplayConfigEditorLogic.h:44
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:26
Contains DLL export macros.
DtDisplayConfigEditorInterface * myInterface
Definition: DtDisplayConfigEditorLogic.h:273
DtSignalConnectionManager myConnections
Definition: DtDisplayConfigEditorLogic.h:277
DtDe & myDe
Definition: DtDisplayConfigEditorLogic.h:272
std::map< QString, QStandardItem * > ItemMap
Definition: DtDisplayConfigEditorLogic.h:270
const int DISPLAY_ENGINE_TYPE
Definition: DtDisplayConfigEditorLogic.h:37
This owns a list of window configurations.
Definition: DtDisplayConfiguration.h:43
DtConfigItem< WINDOW_TYPE > DtWindowItem
Definition: DtDisplayConfigEditorLogic.h:43
DtConfigItem< IG_TYPE > DtIgItem
Definition: DtDisplayConfigEditorLogic.h:41
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
const int IG_TYPE
Definition: DtDisplayConfigEditorLogic.h:36
Definition: DtDisplayConfigEditorLogic.h:34
Contains makVrv::DtDisplayConfiguration class.
The class responsible for managing communication between multiple DtDe instances typically running in...
Definition: DtDeCommunicator.h:31
Base class to provide boost signal/slot management.
QStandardItemModel * myDisplayTreeModel
Definition: DtDisplayConfigEditorLogic.h:274
Configuration for a single channel Serialized and sent to remote displays as necessary to configure r...
Definition: DtChannelConfiguration.h:24
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
Interface for the makVrv::DtDisplatConfigEditorWidget.
Definition: DtDisplayConfigEditorInterface.h:28
ItemMap myItemMap
Definition: DtDisplayConfigEditorLogic.h:276

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)