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

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)