VR-Forces 4.8 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 
248  virtual void addNameFunction(short col);
249  virtual void removeNameFunction(short col);
250 
251  virtual void addTextColorIfHiddenFunction(short col);
252  virtual void removeTextColorIfHiddenFunction(short col);
253 
254  virtual void addToolTipFunction(short col);
255  virtual void removeToolTipFunction(short col);
256 
257  virtual void addIconFunction(short col);
258  virtual void removeIconFunction(short col);
259 
260  virtual void addIconSizeHintFunction(short col);
261  virtual void removeIconSizeHintFunction(short col);
262 
263  virtual void addIconAndGumballFunction(short col);
264  virtual void removeIconAndGumballFunction(short col);
265 
266  virtual void forceUpdate();
267 
268  virtual void addIconAndGumballSizeHintFunction(short col);
269  virtual void removeIconAndGumballSizeHintFunction(short col);
270 
271  virtual bool operator<(const QTreeWidgetItem & other ) const;
272 
273  virtual bool hasGumball() const;
274 
275  virtual QString markingText() const;
276 
277  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
278 
280  virtual void setIsOrbatEnabled(bool);
281  virtual bool isOrbatEnabled() const;
282 
284  virtual void setShowNotInOrbat(bool);
285  virtual bool showNotInOrbat() const;
286 
288  virtual void setOrderByOrbatOrder(bool);
289  virtual bool orderByOrbatOrder() const;
290 
291  virtual void setEditText(const QString& s);
292  virtual const QString& editText() const;
293 
294  virtual void updateOrbatState();
295  virtual bool isOrbatViewOnly() const;
296  virtual bool isCreated() const;
297  virtual bool isInOrbatOnly() const;
298  virtual QVariant iconFunction(const DtObjectListViewItem*) const;
299 
300  virtual void setDisplayType(const DtEntityType&, int force);
301  virtual void clearDisplayType();
302 
304  {
305  return myObjectDataState;
306  }
307 
309  virtual bool isInOrbatView() const;
310 
311  boost::signals2::signal<void (DtObjectListViewItem*, int, int)> signal_forceChanged;
312  boost::signals2::signal<void (DtObjectListViewItem*)> signal_itemUpdated;
313  boost::signals2::signal<void (DtObjectListViewItem*)> signal_destroyed;
314  boost::signals2::signal<void (DtObjectListViewItem*)> signal_markingTextFilterChanged;
315  boost::signals2::signal<void (DtObjectListViewItem*, bool)> signal_damageStateChanged;
316  boost::signals2::signal<void (DtObjectListViewItem*, bool)> signal_activateStateChanged;
317 
318  protected:
319  virtual void slot_onStateViewUpdated(const DtVrfObjectState s);
320  virtual void setLastState(const DtVrfObjectState s);
321  virtual bool statesAreEqual(const DtVrfObjectState s) const;
322  virtual bool objectDataStatesAreEqual(const DtVrfObjectState s) const;
323  virtual std::string iconKeyString() const;
324  virtual std::string gumballKeyString() const;
325 
326  virtual bool needsIconUpdate(std::string* resultKey = 0) const;
327  virtual bool needsGumballUpdate(std::string* resultKey = 0) const;
328  virtual void slot_orbatStateChanged(makVrv::DtUniqueID, bool);
329  virtual int getDesignator(const std::string& echelon) const;
330 
331  protected:
332  virtual QVariant name(const DtObjectListViewItem*) const;
333 
334  virtual QVariant editRole(const DtObjectListViewItem* i) const;
335 
336  virtual QVariant iconSizeHint(const DtObjectListViewItem*) const;
337 
338  virtual QVariant gumball(const DtObjectListViewItem*) const;
339  virtual QVariant iconAndGumball(const DtObjectListViewItem*) const;
340  virtual QVariant iconAndGumballSizeHint(const DtObjectListViewItem*) const;
341 
342  int makeKey(short col, short role) const
343  {
344  return (col << 16) | role;
345  }
346 
347  virtual QVariant textColorForHiddenItem(const DtObjectListViewItem* item) const;
348 
349  virtual QPixmap adjustForHidden(const QPixmap&) const;
350  virtual QImage adjustForHidden(const QImage&) const;
351 
352  protected:
353  typedef std::map<int, boost::function<QVariant (const DtObjectListViewItem*)> > DtDataFunctionMap;
354  typedef std::map<int, boost::function<bool (const DtObjectListViewItem& rhs, const DtObjectListViewItem& lhs)> > DtSortingFunctionMap;
355 
358  std::string myStealthType;
363 
364  union States
365  {
375  };
376 
383  bool myIsOrbat;
398 
407 
408  QString myEditText;
409 
410  mutable QPixmap myIcon;
411  mutable QPixmap myGumball;
412  mutable QPixmap myPixmap;
413  mutable std::string myIconString;
414  mutable std::string myGumballString;
415 
416  std::set<ShowHideFlags> myShowHideFlags;
417 
418  DtEntityType myDisplayType;
422 
423  QString myTextFilter;
426  QString myAppendToName;
427  QPixmap myAppendPixmap;
428  QPixmap myBaseIcon;
429 
430  mutable int myRightMargin;
431  };
432 
435  {
436  public:
439 
441  virtual ~DtObjectListViewItemCreator();
442 
444 
445  static DtObjectListViewItemCreator& instance(makVrv::DtDe& de);
446  static void registerInstance(makVrv::DtDe& de, DtObjectListViewItemCreator*);
447 
448  protected:
450  };
451 }
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:367
DtVrfObjectDataState * objectDataState() const
Definition: objectListViewItem.h:303
Registered creator for this class.
Definition: objectListViewItem.h:434
virtual bool isHiddenBy(ShowHideFlags f) const
Definition: objectListViewItem.h:158
bool myShowGumball
Definition: objectListViewItem.h:391
Virtual base class.
Definition: DtVirtualBaseClass.h:22
bool isAggregate() const
Definition: objectListViewItem.h:87
bool myIsOrbat
Definition: objectListViewItem.h:383
QPixmap myBaseIcon
Definition: objectListViewItem.h:428
bool myUseDisplayType
Definition: objectListViewItem.h:420
DtVrfObjectDataState * myObjectDataState
Definition: objectListViewItem.h:378
DtVrlinkSimulatedAggregateState * aggregateState
Definition: objectListViewItem.h:372
bool myLastActivated
Definition: objectListViewItem.h:392
makVrv::DtUniqueID myStateViewId
Definition: objectListViewItem.h:362
void setStealthType(const std::string &s)
Definition: objectListViewItem.h:115
int myRightMargin
Definition: objectListViewItem.h:430
bool isSpotReport() const
Definition: objectListViewItem.h:77
int makeKey(short col, short role) const
Definition: objectListViewItem.h:342
Contains makVrv::DtStateView class.
DtVrfObjectState stateView() const
Definition: objectListViewItem.h:182
std::string myIconString
Definition: objectListViewItem.h:413
bool myIsEnvironmental
Definition: objectListViewItem.h:386
boost::signals2::signal< void(DtObjectListViewItem *)> signal_markingTextFilterChanged
Definition: objectListViewItem.h:314
boost::signals2::signal< void(DtObjectListViewItem *, int, int)> signal_forceChanged
Definition: objectListViewItem.h:311
DtVrfTDLMessageDataState * vrfTDLDataState
Definition: objectListViewItem.h:369
const QPixmap & appendPixmap() const
Definition: objectListViewItem.h:242
std::map< int, boost::function< bool(const DtObjectListViewItem &rhs, const DtObjectListViewItem &lhs)> > DtSortingFunctionMap
Definition: objectListViewItem.h:354
bool grayIfHidden() const
Definition: objectListViewItem.h:93
bool myIsInOrbatView
Definition: objectListViewItem.h:404
bool myIsAggregate
Definition: objectListViewItem.h:385
bool mySignalOnDamageStateChanged
Definition: objectListViewItem.h:388
Note that the &quot;protocol&quot; keyword is used by by the TDL manager to allow users to filter out messages ...
Definition: vrfTDLMessageDataState.h:33
boost::signals2::signal< void(DtObjectListViewItem *, bool)> signal_damageStateChanged
Definition: objectListViewItem.h:315
DtVrlinkSimulatedEnvironmentProcess * environmentalState
Definition: objectListViewItem.h:373
std::string myStealthType
Definition: objectListViewItem.h:358
bool myGrayIfHidden
Definition: objectListViewItem.h:421
bool myIsOrbatEnabled
Definition: objectListViewItem.h:402
bool isLaserDesignator() const
Definition: objectListViewItem.h:82
DtSpotReportState * spotReportState
Definition: objectListViewItem.h:368
QPixmap myGumball
Definition: objectListViewItem.h:411
bool myHasQuestionsAwaiting
Definition: objectListViewItem.h:401
DtEntityType myDisplayType
Definition: objectListViewItem.h:418
States myLastState
Definition: objectListViewItem.h:377
QString myTextFilter
Definition: objectListViewItem.h:423
makVrv::DtDe & myDe
Definition: objectListViewItem.h:449
makVrv::DtVrlinkSimulatedBaseState * vrlinkState
Definition: objectListViewItem.h:366
DtDataFunctionMap myDataFunctionMap
Definition: objectListViewItem.h:394
bool myHasGumball
Definition: objectListViewItem.h:393
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
bool mySignalOnForceChange
Definition: objectListViewItem.h:387
Contains makVrv::DtEntityState class.
bool myIsDestroyed
Definition: objectListViewItem.h:379
bool myShowObjectConsoleWarningIcon
Definition: objectListViewItem.h:399
bool myIsLaserDesignator
Definition: objectListViewItem.h:384
boost::signals2::signal< void(DtObjectListViewItem *)> signal_destroyed
Definition: objectListViewItem.h:313
std::set< ShowHideFlags > myShowHideFlags
Definition: objectListViewItem.h:416
QPixmap myPixmap
Definition: objectListViewItem.h:412
const DtUUID & uuid() const
Definition: objectListViewItem.h:167
ShowHideFlags
Definition: objectListViewItem.h:50
bool myIsSimpleObjectDataState
Definition: objectListViewItem.h:390
const QString & prependToName() const
Definition: objectListViewItem.h:224
QString myPrependToName
Definition: objectListViewItem.h:424
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:22
makVrv::DtSignalConnectionManager myOrbatConnections
Definition: objectListViewItem.h:397
QString myEditText
Definition: objectListViewItem.h:408
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
makVrv::DtDe & myDe
Definition: objectListViewItem.h:356
bool myUpdateForced
Definition: objectListViewItem.h:406
bool isTDLItem() const
Definition: objectListViewItem.h:67
QString myAppendToName
Definition: objectListViewItem.h:426
void addDataFunction(short col, short role, const boost::function< QVariant(const DtObjectListViewItem *)> &func)
Definition: objectListViewItem.h:202
bool myIsSpotReport
Definition: objectListViewItem.h:381
DtVrfObjectState myStateView
Definition: objectListViewItem.h:357
bool myIsEntity
Definition: objectListViewItem.h:380
bool myIsVrfTDLData
Definition: objectListViewItem.h:382
QPixmap myPrependPixmap
Definition: objectListViewItem.h:425
std::string myObserverStealthType
Definition: objectListViewItem.h:359
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:353
bool myHasMessagesAwaiting
Definition: objectListViewItem.h:400
bool myShowNotInOrbat
Definition: objectListViewItem.h:403
Definition: spotReportState.h:41
makVrv::DtUniqueID stateViewId() const
Definition: objectListViewItem.h:177
bool myOrderByOrbatOrder
Definition: objectListViewItem.h:405
QPixmap myAppendPixmap
Definition: objectListViewItem.h:427
makVrv::DtSignalConnectionManager myConnections
Definition: objectListViewItem.h:396
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:364
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:419
Definition: orbatState.h:23
DtSimpleObjectDataState * simpleObjectDataState
Definition: objectListViewItem.h:374
std::string mySpecificStealthType
Definition: objectListViewItem.h:360
Definition: objectListViewItem.h:45
DtLaserDesignatorState * laserDesignatorState
Definition: objectListViewItem.h:371
DtOrbatState * orbatState
Definition: objectListViewItem.h:370
DtSortingFunctionMap mySortingFunctions
Definition: objectListViewItem.h:395
DtUUID myUUID
Definition: objectListViewItem.h:361
Definition: laserDesignatorState.h:26
bool mySignalOnActivatedStateChanged
Definition: objectListViewItem.h:389
boost::signals2::signal< void(DtObjectListViewItem *, bool)> signal_activateStateChanged
Definition: objectListViewItem.h:316
const QPixmap & prependPixmap() const
Definition: objectListViewItem.h:230
makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * DtVrfObjectState
Definition: objectListViewItem.h:48
std::string myGumballString
Definition: objectListViewItem.h:414
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:312
QPixmap myIcon
Definition: objectListViewItem.h:410
Definition: vrfObjectDataState.h:111

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)