VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
manualDistributionWidget.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2023 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
13 #include <QtWidgets/QDialog>
16 #include <vrvCore/DtForceManager.h>
17 #include <QtGui/QPixmap>
18 #include <vrfutil/rwUUID.h>
19 #endif
20 
21 #include <set>
22 #include <vrvCore/DtUniqueID.h>
23 #include <vlpi/simulationAddress.h>
24 
25 class DtAddressMap;
26 class DtList;
27 class DtVrfFileParser;
28 class QTreeWidget;
29 class QPushButton;
30 class QHBoxLayout;
32 class QComboBox;
33 class QTreeWidgetItem;
34 class QLabel;
35 class QCheckBox;
36 
37 namespace makVrv
38 {
39  class DtDe;
40 }
41 
42 namespace makVrf
43 {
44  class DtGuiLocalObject;
45  class DtVrfBackendState;
46  class DtObjectListViewItem;
47  class DtLoadBalancingExtensionWidget;
48  class DtLoadBalancerSelectionWidget;
49  class DtSearchWidget;
50 
54  {
55 
56  Q_OBJECT
57  Q_PROPERTY(QColor backendColor1 MEMBER myBackendColor1 USER true)
58  Q_PROPERTY(QColor backendColor2 MEMBER myBackendColor2 USER true)
59  Q_PROPERTY(QColor backendColor3 MEMBER myBackendColor3 USER true)
60  Q_PROPERTY(QColor backendColor4 MEMBER myBackendColor4 USER true)
61  Q_PROPERTY(QColor backendColor5 MEMBER myBackendColor5 USER true)
62  Q_PROPERTY(QColor backendColor6 MEMBER myBackendColor6 USER true)
63  Q_PROPERTY(QColor backendColor7 MEMBER myBackendColor7 USER true)
64  Q_PROPERTY(QColor backendColor8 MEMBER myBackendColor8 USER true)
65  Q_PROPERTY(QColor backendColor9 MEMBER myBackendColor9 USER true)
66 
67  public:
68 
70  DtManualDistributionWidget(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = Qt::Tool);
71 
73  virtual ~DtManualDistributionWidget() override;
74 
75  virtual bool init(DtAddressMap* map, const DtVrfFileParser* parser, const DtList* backends);
76 
77  virtual void setBackendColors(const QVariantList&);
78  virtual QVariantList getBackendColors() const;
79 
80  protected slots:
81  virtual void applyLoadBalance();
82  virtual void chooseBackend(QTreeWidgetItem*, QMouseEvent*, int);
83  virtual void revertBackends();
84  virtual void executeTextFilter();
85  virtual void changeObjectView();
86 
87  protected:
88  virtual std::shared_ptr<DtGuiLocalObject> stateFromBindings(const DtRwVariableBindings&) const;
89  virtual void loadBalancingValidityChanged();
90  virtual bool itemHasSubordinates(QTreeWidgetItem*) const;
91 
92  virtual void initConnections();
93  virtual void initObjectsList(DtAddressMap* map, const DtVrfFileParser* parser);
94 
95  virtual void slot_backendDiscovered(const DtVrfBackendState&);
96  virtual void slot_backendRemoved(const DtVrfBackendState&);
97  virtual void slot_backendUpdated(const DtVrfBackendState&, int changedFlags);
98  virtual QVariant entityType(const DtObjectListViewItem*) const;
99  virtual bool sortByEntityType(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
100  virtual bool sortByForceType(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
101  virtual bool simulationAddressSort(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
102  virtual QVariant parentName(const DtObjectListViewItem*) const;
103  virtual void setItemToAddress(DtObjectListViewItem* item, const QString& address);
104  virtual void setAllChildrenToAddress(DtObjectListViewItem* item, const QString& address);
105 
106  virtual void accept() override;
107  virtual void reject() override;
108 
109  virtual void initBackendLoads();
110  virtual void updateBackendLoads();
111  virtual void setBackendForSubordinatesOf(const DtUUID&, const QString& address);
112  virtual void initControls();
113  virtual void initTrees();
114  virtual const QPixmap& colorPixmapForAddress(const DtSimulationAddress&);
115  virtual void initTreeAsFlatList();
116  virtual void initTreeAsHierarchy();
117  virtual void clearForceNodes();
118  virtual DtObjectListViewItem* createForceNode(int force);
119 
120  virtual void reworkForceManager(const DtVrfFileParser*);
121  virtual void restoreForceManager();
122  virtual void processForceHostilityFile(const DtFilename&);
123 
124  public:
125  QTreeWidget* myObjects;
126  QHBoxLayout* myButtonLayout;
127  QPushButton* myOKButton;
128  QPushButton* myCancelButton;
129 
130  QTreeWidget* myBackendLoad;
131  QLabel* myBackendLoadLabel;
132 
133  DtLoadBalancerSelectionWidget* myLoadBalancerSelectionWidget;
134  QHBoxLayout* myLoadBalancingLayout;
135  QPushButton* myApplyLoadBalancingOption;
136  QPushButton* myRevertLoadBalancingOption;
137  DtSearchWidget* mySearchWidget;
138  QCheckBox* myShowAsHierarchy = nullptr;
139  QHBoxLayout* mySearchLayout = nullptr;
140 
141  protected:
142  makVrv::DtDe& myDe;
143  makVrv::DtSignalConnectionManager myConnectionManager;
144  int myObjectViewId = 0;
145  const DtVrfFileParser* myParser = nullptr;
146  DtAddressMap* myObjectMap = nullptr;
147  QString myRightClickChosenBackend;
148  std::set<std::string> myInitialMappedBackends;
149  QColor myBackendColor1;
150  QColor myBackendColor2;
151  QColor myBackendColor3;
152  QColor myBackendColor4;
153  QColor myBackendColor5;
154  QColor myBackendColor6;
155  QColor myBackendColor7;
156  QColor myBackendColor8;
157  QColor myBackendColor9;
158 
160  {
161  std::shared_ptr<DtGuiLocalObject> view;
163  DtObjectListViewItem* item = nullptr;
164  };
165 
166  typedef std::map<makVrv::DtUniqueID, ObjectStateData> ObjectStateDataMap;
168 
169  typedef std::map<DtUUID, ObjectStateData> ObjectStateDataMapByUUID;
171 
172  typedef std::map<DtSimulationAddress, QPixmap> ColorByAddress;
174 
175  QVariantList myBackendColors;
176 
177  struct ForceInfo
178  {
179  std::string myForceName;
183  };
184 
185  typedef std::map<int, ForceInfo> ForceInfoMap;
187  };
188 
190  {
191  public:
193 
194  virtual DtManualDistributionWidget* create(QWidget* parent = 0, const Qt::WindowFlags& flags = Qt::Tool);
195 
196  protected:
198  };
199 }
Definition: manualDistributionWidget.h:177
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: vrfBackendState.h:65
Widget for allowing the user to select which entities are placed onto which back-end.
Definition: manualDistributionWidget.h:53
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
Widget to select load balancing schemes give the selection mode.
Definition: loadBalancerSelectionWidget.h:36
Definition: manualDistributionWidget.h:159
makVrv::DtForceManager::RGBAColor myForcePrimaryColor
Definition: manualDistributionWidget.h:181
Definition: DtForceManager.h:44
Definition: manualDistributionWidget.h:189
Contains the DtUUID class declaration.
bool myIncludeInDialogs
Definition: manualDistributionWidget.h:182
ForceInfoMap myForceInfoMap
Definition: manualDistributionWidget.h:186
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
std::map< DtSimulationAddress, QPixmap > ColorByAddress
Definition: manualDistributionWidget.h:172
Definition: addressMap.h:24
std::shared_ptr< DtGuiLocalObject > view
Definition: manualDistributionWidget.h:161
std::string myForceName
Definition: manualDistributionWidget.h:179
ObjectStateDataMapByUUID myObjectStateDataByUUID
Definition: manualDistributionWidget.h:170
QVariantList myBackendColors
Definition: manualDistributionWidget.h:175
ColorByAddress myColorByAddress
Definition: manualDistributionWidget.h:173
makVrv::DtDe & myDe
Definition: manualDistributionWidget.h:197
Definition: guiLocalObject.h:18
Contains makVrv::DtForceManager class.
std::map< makVrv::DtUniqueID, ObjectStateData > ObjectStateDataMap
Definition: manualDistributionWidget.h:166
std::map< DtUUID, ObjectStateData > ObjectStateDataMapByUUID
Definition: manualDistributionWidget.h:169
ObjectStateDataMap myForceNodes
Definition: manualDistributionWidget.h:167
Base class to provide boost signal/slot management.
Definition: searchWidget.h:22
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtSimObjectReference reference
Definition: manualDistributionWidget.h:162
Contains makVrv::DtUniqueID type.
std::map< int, ForceInfo > ForceInfoMap
Definition: manualDistributionWidget.h:185
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:76
Definition: vrfFileParser.h:30
This tree widget item can be used in any tree that wants to display an icon next to the name of an ob...
Definition: objectListViewItem.h:45
makVrv::DtForceManager::RGBAColor myForceColor
Definition: manualDistributionWidget.h:180

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)