VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectListViewItem.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
7 
8 #pragma once
9 
13 
14 #include <vrvUtil/signalslib.h>
22 #include <vrfGuiCore/orbatState.h>
23 #include <vrfutil/rwUUID.h>
25 
26 #include <string>
27 
28 #include <vrvCore/DtStateView.h>
29 #include <vrvCore/DtEntityState.h>
31 
32 #include <QtWidgets/QTreeWidget>
33 #include <QtCore/QVariant>
34 
35 #include <boost/function.hpp>
36 
37 namespace makVrv
38 {
39  class DtDe;
40  class DtGlobalIDHierarchyNode;
41 }
42 
43 namespace makVrf
44 {
46  {
47  public:
49 
51  {
52  FogOfWar = 1,
53  NotInOrbat = 2,
54  NoStateView = 3,
55  NoChildren = 4,
56  TextFilter = 5
57  };
58 
59  public:
60  DtObjectListViewItem(makVrv::DtDe& de, DtVrfObjectState state);
61 
62  virtual ~DtObjectListViewItem();
63 
64  public:
65  virtual bool isMatchingItem(const DtVrfObjectState state) const;
66  virtual bool isDestroyed() const;
67  bool isTDLItem() const
68  {
69  return myIsVrfTDLData;
70  }
71 
72  bool isEnvironmental() const
73  {
74  return myIsEnvironmental;
75  }
76 
77  bool isSpotReport() const
78  {
79  return myIsSpotReport;
80  }
81 
82  bool isLaserDesignator() const
83  {
84  return myIsLaserDesignator;
85  }
86 
87  bool isAggregate() const
88  {
89  return myIsAggregate;
90  }
91 
92  virtual void setGrayIfHidden(bool);
93  bool grayIfHidden() const
94  {
95  return myGrayIfHidden;
96  }
97 
98  virtual QVariant data(int iCol, int iRole) const;
99  virtual void clearIcon();
100 
101  virtual void updateHiddenState(bool iterateChildren = false);
102 
103  virtual void setStateView(DtVrfObjectState);
104 
106  {
107  myStateView = 0;
108  }
109 
110  bool isStealthObserver() const;
111  bool isInactive() const;
112 
113  virtual bool canBeAttachedTo() const;
114 
115  void setStealthType(const std::string& s)
116  {
117  myStealthType = s;
118  DtEntityType t(s.c_str());
119  t.setExtra(t.extra() + 256);
120  myObserverStealthType = t.string();
121  t.setExtra(t.extra() + 1);
122  mySpecificStealthType = t.string();
123  }
124 
125  virtual bool sortByNameNumerical(const DtObjectListViewItem&, const DtObjectListViewItem&) const;
126  virtual bool sortByEchelonId(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
127  virtual bool sortByForce(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
128 
130  virtual bool sortByOrbatOrder(const DtObjectListViewItem& lhs, const DtObjectListViewItem& rhs) const;
131 
132  virtual void setShowObjectConsoleWarningIcon(bool, bool refresh = true);
133  virtual void setHasMessagesAwaiting(bool, bool refresh = true);
134  virtual void setHasQuestionsAwaiting(bool, bool refresh = true);
135  virtual void setSignalOnForceChange(bool);
136  virtual void setSignalOnActivatedStateChanged(bool);
137  virtual void setSignalOnDamageStateChange(bool);
138 
139  virtual void checkTextFilter();
140 
142  virtual void checkTextFilterUpToParent();
143 
144  virtual void setShowGumballs(bool b);
145  bool showGumballs() const
146  {
147  return myShowGumball;
148  }
149 
150  virtual void setTextFilter(const QString&);
151  const QString& textFilter() const
152  {
153  return myTextFilter;
154  }
155 
156  virtual void setHidden(bool, ShowHideFlags);
157  virtual bool isHidden() const;
158  virtual bool isHiddenBy(ShowHideFlags f) const
159  {
160  return (myShowHideFlags.find(f) != myShowHideFlags.end());
161  }
162 
163  virtual bool parseNumber(const DtObjectListViewItem&, int& number, QString& name) const;
164 
165  virtual int force() const;
166 
167  const DtUUID& uuid() const
168  {
169  return myUUID;
170  }
171 
172  virtual void setUUID(const DtUUID&);
173  bool signalOnActivatedStateChanged() const;
174  bool signalOnForceChange() const;
175  bool signalOnDamageStateChange() const;
176 
178  {
179  return myStateViewId;
180  }
181 
183  {
184  return myStateView;
185  }
186 
187  void addSortingFunction(int col, const boost::function<bool (const DtObjectListViewItem& rhs, const DtObjectListViewItem& lhs)>& f)
188  {
189  mySortingFunctions[col] = f;
190  }
191 
192  void removeSortingFunction(int col)
193  {
194  DtSortingFunctionMap::iterator iter = mySortingFunctions.find(col);
195 
196  if (iter != mySortingFunctions.end())
197  {
198  mySortingFunctions.erase(iter);
199  }
200  }
201 
202  void addDataFunction(short col, short role, const boost::function<QVariant (const DtObjectListViewItem*)>& func)
203  {
204  myDataFunctionMap[makeKey(col, role)] = func;
205  }
206 
207  void removeDataFunction(short col, short role)
208  {
209  DtDataFunctionMap::iterator iter = myDataFunctionMap.find(makeKey(col, role));
210 
211  if (iter != myDataFunctionMap.end())
212  {
213  myDataFunctionMap.erase(iter);
214  }
215  }
216 
217  virtual void setBaseIcon(const QPixmap&);
218  const QPixmap& baseIcon() const
219  {
220  return myBaseIcon;
221  }
222 
223  virtual void setPrependToName(const QString&);
224  const QString& prependToName() const
225  {
226  return myPrependToName;
227  }
228 
229  virtual void setPrependPixmap(const QPixmap&);
230  const QPixmap& prependPixmap() const
231  {
232  return myPrependPixmap;
233  }
234 
235  virtual void setAppendToName(const QString&);
236  const QString& appendToName() const
237  {
238  return myAppendToName;
239  }
240 
241  virtual void setAppendPixmap(const QPixmap&);
242  const QPixmap& appendPixmap() const
243  {
244  return myAppendPixmap;
245  }
246 
247  virtual void setCanBeOrganized(bool);
248  bool canBeOrganized() const
249  {
250  return myCanBeOrganized;
251  }
252 
253  virtual void setSignalOnDataUpdates(bool);
254  bool signalOnDataUpdates() const
255  {
256  return mySignalOnDataUpdates;
257  }
258 
260  virtual void addNameFunction(short col);
261  virtual void removeNameFunction(short col);
262 
263  virtual void addTextColorIfHiddenFunction(short col);
264  virtual void removeTextColorIfHiddenFunction(short col);
265 
266  virtual void addToolTipFunction(short col);
267  virtual void removeToolTipFunction(short col);
268 
269  virtual void addIconFunction(short col);
270  virtual void removeIconFunction(short col);
271 
272  virtual void addIconSizeHintFunction(short col);
273  virtual void removeIconSizeHintFunction(short col);
274 
275  virtual void addIconAndGumballFunction(short col);
276  virtual void removeIconAndGumballFunction(short col);
277 
278  virtual void forceUpdate();
279 
280  virtual void addIconAndGumballSizeHintFunction(short col);
281  virtual void removeIconAndGumballSizeHintFunction(short col);
282 
283  virtual bool operator<(const QTreeWidgetItem & other ) const;
284 
285  virtual bool hasGumball() const;
286 
287  virtual QString markingText() const;
288 
289  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
290 
292  virtual void setIsOrbatEnabled(bool);
293  virtual bool isOrbatEnabled() const;
294 
296  virtual void setShowNotInOrbat(bool);
297  virtual bool showNotInOrbat() const;
298 
300  virtual void setOrderByOrbatOrder(bool);
301  virtual bool orderByOrbatOrder() const;
302 
303  virtual void setEditText(const QString& s);
304  virtual const QString& editText() const;
305 
306  virtual void updateOrbatState();
307  virtual bool isOrbatViewOnly() const;
308  virtual bool isCreated() const;
309  virtual bool isInOrbatOnly() const;
310  virtual QVariant iconFunction(const DtObjectListViewItem*) const;
311 
312  virtual void setDisplayType(const DtEntityType&, int force);
313  virtual void clearDisplayType();
314 
316  {
317  return myObjectDataState;
318  }
319 
321  virtual bool isInOrbatView() const;
322 
323  boost::signals2::signal<void (DtObjectListViewItem*, int, int)> signal_forceChanged;
324  boost::signals2::signal<void (DtObjectListViewItem*)> signal_itemUpdated;
325  boost::signals2::signal<void (DtObjectListViewItem*)> signal_destroyed;
326  boost::signals2::signal<void (DtObjectListViewItem*)> signal_markingTextFilterChanged;
327  boost::signals2::signal<void (DtObjectListViewItem*)> signal_extendedDataChanged;
328  boost::signals2::signal<void (DtObjectListViewItem*)> signal_statePropertiesChanged;
329  boost::signals2::signal<void (DtObjectListViewItem*, bool)> signal_damageStateChanged;
330  boost::signals2::signal<void (DtObjectListViewItem*, bool)> signal_activateStateChanged;
331 
332  protected:
333  virtual void slot_onStateViewUpdated(const DtVrfObjectState s);
334  virtual void setLastState(const DtVrfObjectState s);
335  virtual bool statesAreEqual(const DtVrfObjectState s) const;
336  virtual bool objectDataStatesAreEqual(const DtVrfObjectState s) const;
337  virtual std::string iconKeyString() const;
338  virtual std::string gumballKeyString() const;
339 
340  virtual bool needsIconUpdate(std::string* resultKey = 0) const;
341  virtual bool needsGumballUpdate(std::string* resultKey = 0) const;
342  virtual void slot_orbatStateChanged(makVrv::DtUniqueID, bool);
343  virtual int getDesignator(const std::string& echelon) const;
344 
345  protected:
346  virtual QVariant name(const DtObjectListViewItem*) const;
347 
348  virtual QVariant editRole(const DtObjectListViewItem* i) const;
349 
350  virtual QVariant iconSizeHint(const DtObjectListViewItem*) const;
351 
352  virtual QVariant gumball(const DtObjectListViewItem*) const;
353  virtual QVariant iconAndGumball(const DtObjectListViewItem*) const;
354  virtual QVariant iconAndGumballSizeHint(const DtObjectListViewItem*) const;
355 
356  int makeKey(short col, short role) const
357  {
358  return (col << 16) | role;
359  }
360 
361  virtual QVariant textColorForHiddenItem(const DtObjectListViewItem* item) const;
362 
363  virtual QPixmap adjustForHidden(const QPixmap&) const;
364  virtual QImage adjustForHidden(const QImage&) const;
365 
366  protected:
367  typedef std::map<int, boost::function<QVariant (const DtObjectListViewItem*)> > DtDataFunctionMap;
368  typedef std::map<int, boost::function<bool (const DtObjectListViewItem& rhs, const DtObjectListViewItem& lhs)> > DtSortingFunctionMap;
369 
372  std::string myStealthType;
377 
378  union States
379  {
389  };
390 
397  bool myIsOrbat;
412 
421 
422  QString myEditText;
423 
424  mutable QPixmap myIcon;
425  mutable QPixmap myGumball;
426  mutable QPixmap myPixmap;
427  mutable std::string myIconString;
428  mutable std::string myGumballString;
429 
430  std::set<ShowHideFlags> myShowHideFlags;
431 
432  DtEntityType myDisplayType;
436 
437  QString myTextFilter;
440  QString myAppendToName;
441  QPixmap myAppendPixmap;
442  QPixmap myBaseIcon;
443 
444  mutable int myRightMargin;
445 
446  std::map<std::string, std::string> myExtendedData;
450  };
451 
454  {
455  public:
458 
460  virtual ~DtObjectListViewItemCreator();
461 
463 
464  static DtObjectListViewItemCreator& instance(makVrv::DtDe& de);
465  static void registerInstance(makVrv::DtDe& de, DtObjectListViewItemCreator*);
466 
467  protected:
469  };
470 }
const QPixmap & baseIcon() const
Definition: objectListViewItem.h:218
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
makVrv::DtVrlinkSimulatedEntityState * entityState
Definition: objectListViewItem.h:381
DtVrfObjectDataState * objectDataState() const
Definition: objectListViewItem.h:315
Registered creator for this class.
Definition: objectListViewItem.h:453
virtual bool isHiddenBy(ShowHideFlags f) const
Definition: objectListViewItem.h:158
bool myShowGumball
Definition: objectListViewItem.h:405
Virtual base class.
Definition: DtVirtualBaseClass.h:19
bool isAggregate() const
Definition: objectListViewItem.h:87
bool myIsOrbat
Definition: objectListViewItem.h:397
QPixmap myBaseIcon
Definition: objectListViewItem.h:442
boost::signals2::signal< void(DtObjectListViewItem *)> signal_statePropertiesChanged
Definition: objectListViewItem.h:328
bool myUseDisplayType
Definition: objectListViewItem.h:434
DtVrfObjectDataState * myObjectDataState
Definition: objectListViewItem.h:392
DtVrlinkSimulatedAggregateState * aggregateState
Definition: objectListViewItem.h:386
bool myLastActivated
Definition: objectListViewItem.h:406
makVrv::DtUniqueID myStateViewId
Definition: objectListViewItem.h:376
void setStealthType(const std::string &s)
Definition: objectListViewItem.h:115
int myRightMargin
Definition: objectListViewItem.h:444
bool isSpotReport() const
Definition: objectListViewItem.h:77
int makeKey(short col, short role) const
Definition: objectListViewItem.h:356
Contains makVrv::DtStateView class.
DtVrfObjectState stateView() const
Definition: objectListViewItem.h:182
bool mySignalOnDataUpdates
Definition: objectListViewItem.h:449
std::string myIconString
Definition: objectListViewItem.h:427
bool myIsEnvironmental
Definition: objectListViewItem.h:400
boost::signals2::signal< void(DtObjectListViewItem *)> signal_markingTextFilterChanged
Definition: objectListViewItem.h:326
boost::signals2::signal< void(DtObjectListViewItem *, int, int)> signal_forceChanged
Definition: objectListViewItem.h:323
DtVrfTDLMessageDataState * vrfTDLDataState
Definition: objectListViewItem.h:383
const QPixmap & appendPixmap() const
Definition: objectListViewItem.h:242
std::map< int, boost::function< bool(const DtObjectListViewItem &rhs, const DtObjectListViewItem &lhs)> > DtSortingFunctionMap
Definition: objectListViewItem.h:368
bool grayIfHidden() const
Definition: objectListViewItem.h:93
bool myIsInOrbatView
Definition: objectListViewItem.h:418
bool myIsAggregate
Definition: objectListViewItem.h:399
bool mySignalOnDamageStateChanged
Definition: objectListViewItem.h:402
Note that the &quot;protocol&quot; keyword is used by by the TDL manager to allow users to filter out messages ...
Definition: vrfTDLMessageDataState.h:34
boost::signals2::signal< void(DtObjectListViewItem *, bool)> signal_damageStateChanged
Definition: objectListViewItem.h:329
DtVrlinkSimulatedEnvironmentProcess * environmentalState
Definition: objectListViewItem.h:387
std::string myStealthType
Definition: objectListViewItem.h:372
bool myGrayIfHidden
Definition: objectListViewItem.h:435
bool myIsOrbatEnabled
Definition: objectListViewItem.h:416
bool isLaserDesignator() const
Definition: objectListViewItem.h:82
DtSpotReportState * spotReportState
Definition: objectListViewItem.h:382
QPixmap myGumball
Definition: objectListViewItem.h:425
bool myHasQuestionsAwaiting
Definition: objectListViewItem.h:415
DtEntityType myDisplayType
Definition: objectListViewItem.h:432
States myLastState
Definition: objectListViewItem.h:391
QString myTextFilter
Definition: objectListViewItem.h:437
makVrv::DtDe & myDe
Definition: objectListViewItem.h:468
makVrv::DtVrlinkSimulatedBaseState * vrlinkState
Definition: objectListViewItem.h:380
DtDataFunctionMap myDataFunctionMap
Definition: objectListViewItem.h:408
bool canBeOrganized() const
Definition: objectListViewItem.h:248
bool myHasGumball
Definition: objectListViewItem.h:407
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool mySignalOnForceChange
Definition: objectListViewItem.h:401
Contains makVrv::DtEntityState class.
bool myIsDestroyed
Definition: objectListViewItem.h:393
bool myShowObjectConsoleWarningIcon
Definition: objectListViewItem.h:413
bool myIsLaserDesignator
Definition: objectListViewItem.h:398
boost::signals2::signal< void(DtObjectListViewItem *)> signal_destroyed
Definition: objectListViewItem.h:325
std::set< ShowHideFlags > myShowHideFlags
Definition: objectListViewItem.h:430
QPixmap myPixmap
Definition: objectListViewItem.h:426
const DtUUID & uuid() const
Definition: objectListViewItem.h:167
ShowHideFlags
Definition: objectListViewItem.h:50
bool myIsSimpleObjectDataState
Definition: objectListViewItem.h:404
std::map< std::string, std::string > myExtendedData
Definition: objectListViewItem.h:446
const QString & prependToName() const
Definition: objectListViewItem.h:224
QString myPrependToName
Definition: objectListViewItem.h:438
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:22
makVrv::DtSignalConnectionManager myOrbatConnections
Definition: objectListViewItem.h:411
QString myEditText
Definition: objectListViewItem.h:422
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
makVrv::DtDe & myDe
Definition: objectListViewItem.h:370
bool myUpdateForced
Definition: objectListViewItem.h:420
bool isTDLItem() const
Definition: objectListViewItem.h:67
QString myAppendToName
Definition: objectListViewItem.h:440
void addDataFunction(short col, short role, const boost::function< QVariant(const DtObjectListViewItem *)> &func)
Definition: objectListViewItem.h:202
bool myIsSpotReport
Definition: objectListViewItem.h:395
DtVrfObjectState myStateView
Definition: objectListViewItem.h:371
bool myIsEntity
Definition: objectListViewItem.h:394
bool myIsVrfTDLData
Definition: objectListViewItem.h:396
QPixmap myPrependPixmap
Definition: objectListViewItem.h:439
std::string myObserverStealthType
Definition: objectListViewItem.h:373
Base class to provide boost signal/slot management.
Data that is used for folders in the organized object list view.
Definition: simpleObjectDataState.h:18
std::map< int, boost::function< QVariant(const DtObjectListViewItem *)> > DtDataFunctionMap
Definition: objectListViewItem.h:367
bool myHasMessagesAwaiting
Definition: objectListViewItem.h:414
boost::signals2::signal< void(DtObjectListViewItem *)> signal_extendedDataChanged
Definition: objectListViewItem.h:327
bool myShowNotInOrbat
Definition: objectListViewItem.h:417
Definition: spotReportState.h:42
makVrv::DtUniqueID stateViewId() const
Definition: objectListViewItem.h:177
bool myOrderByOrbatOrder
Definition: objectListViewItem.h:419
QPixmap myAppendPixmap
Definition: objectListViewItem.h:441
makVrv::DtSignalConnectionManager myConnections
Definition: objectListViewItem.h:410
void removeDataFunction(short col, short role)
Definition: objectListViewItem.h:207
void clearStateView()
Definition: objectListViewItem.h:105
bool isEnvironmental() const
Definition: objectListViewItem.h:72
Definition: objectListViewItem.h:378
bool signalOnDataUpdates() const
Definition: objectListViewItem.h:254
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
const QString & appendToName() const
Definition: objectListViewItem.h:236
int myDisplayForce
Definition: objectListViewItem.h:433
Definition: orbatState.h:23
DtSimpleObjectDataState * simpleObjectDataState
Definition: objectListViewItem.h:388
std::string mySpecificStealthType
Definition: objectListViewItem.h:374
bool myCanBeOrganized
Definition: objectListViewItem.h:448
Definition: objectListViewItem.h:45
DtLaserDesignatorState * laserDesignatorState
Definition: objectListViewItem.h:385
DtOrbatState * orbatState
Definition: objectListViewItem.h:384
DtSortingFunctionMap mySortingFunctions
Definition: objectListViewItem.h:409
DtUUID myUUID
Definition: objectListViewItem.h:375
Definition: laserDesignatorState.h:26
bool mySignalOnActivatedStateChanged
Definition: objectListViewItem.h:403
boost::signals2::signal< void(DtObjectListViewItem *, bool)> signal_activateStateChanged
Definition: objectListViewItem.h:330
const QPixmap & prependPixmap() const
Definition: objectListViewItem.h:230
makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * DtVrfObjectState
Definition: objectListViewItem.h:48
std::string myGumballString
Definition: objectListViewItem.h:428
bool showGumballs() const
Definition: objectListViewItem.h:145
void addSortingFunction(int col, const boost::function< bool(const DtObjectListViewItem &rhs, const DtObjectListViewItem &lhs)> &f)
Definition: objectListViewItem.h:187
void removeSortingFunction(int col)
Definition: objectListViewItem.h:192
const QString & textFilter() const
Definition: objectListViewItem.h:151
boost::signals2::signal< void(DtObjectListViewItem *)> signal_itemUpdated
Definition: objectListViewItem.h:324
QPixmap myIcon
Definition: objectListViewItem.h:424
Definition: vrfObjectDataState.h:111
double myLastTimeStatePropertiesUpdated
Definition: objectListViewItem.h:447

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)