VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfObjectListViewItem.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 
17 #include <vrvUtil/signalslib.h>
23 #include <vrfutil/rwUUID.h>
24 
25 #include <string>
26 
27 #include <vrvCore/DtStateView.h>
28 #include <vrvCore/DtEntityState.h>
30 
31 #include <QtWidgets/QTreeWidget>
32 #include <QtCore/QVariant>
33 
34 #include <boost/function.hpp>
35 
36 namespace makVrv
37 {
38  class DtDe;
39  class DtGlobalIDHierarchyNode;
40 }
41 
42 namespace makVrf
43 {
45  {
46  public:
48 
49  public:
51 
52  virtual ~DtVrfObjectListViewItem();
53 
54  public:
55  virtual bool isMatchingItem(const DtVrfObjectState state) const;
56  virtual bool isDestroyed() const;
57  virtual QVariant data(int iCol, int iRole) const;
58  virtual void clearIcon();
59 
60  virtual void setStateView(DtVrfObjectState);
61 
62  void clearStateView()
63  {
64  myStateView = 0;
65  }
66 
67  bool isStealthObserver() const;
68  bool isInactive() const;
69 
70  void setStealthType(const std::string& s)
71  {
72  myStealthType = s;
73  DtEntityType t(s.c_str());
74  t.setExtra(t.extra() + 256);
75  myObserverStealthType = t.string();
76  t.setExtra(t.extra() + 1);
77  mySpecificStealthType = t.string();
78  }
79 
80  virtual bool sortByNameNumerical(const DtVrfObjectListViewItem&, const DtVrfObjectListViewItem&) const;
81 
82  virtual void setShowObjectConsoleWarningIcon(bool, bool refresh = true);
83  virtual void setHasMessagesAwaiting(bool, bool refresh = true);
84  virtual void setHasQuestionsAwaiting(bool, bool refresh = true);
85  virtual void setSignalOnForceChange(bool);
86 
87  virtual bool parseNumber(const DtVrfObjectListViewItem&, int& number, QString& name) const;
88 
89  const DtUUID& uuid() const
90  {
91  return myUUID;
92  }
93 
94  bool signalOnForceChange() const;
95 
96  DtVrfObjectState stateView() const
97  {
98  return myStateView;
99  }
100 
101  void addSortingFunction(int col, const boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)>& f)
102  {
103  mySortingFunctions[col] = f;
104  }
105 
106  void removeSortingFunction(int col)
107  {
108  DtSortingFunctionMap::iterator iter = mySortingFunctions.find(col);
109 
110  if (iter != mySortingFunctions.end())
111  {
112  mySortingFunctions.erase(iter);
113  }
114  }
115 
116  void addDataFunction(short col, short role, const boost::function<QVariant (const DtVrfObjectListViewItem*)>& func)
117  {
118  myDataFunctionMap[makeKey(col, role)] = func;
119  }
120 
121  void removeDataFunction(short col, short role)
122  {
123  DtDataFunctionMap::iterator iter = myDataFunctionMap.find(makeKey(col, role));
124 
125  if (iter != myDataFunctionMap.end())
126  {
127  myDataFunctionMap.erase(iter);
128  }
129  }
130 
132  virtual void addNameFunction(short col);
133  virtual void removeNameFunction(short col);
134 
135  virtual void addToolTipFunction(short col);
136  virtual void removeToolTipFunction(short col);
137 
138  virtual void addIconFunction(short col);
139  virtual void removeIconFunction(short col);
140 
141  virtual void addIconSizeHintFunction(short col);
142  virtual void removeIconSizeHintFunction(short col);
143 
144  virtual void addIconAndGumballFunction(short col);
145  virtual void removeIconAndGumballFunction(short col);
146 
147  virtual void addIconAndGumballSizeHintFunction(short col);
148  virtual void removeIconAndGumballSizeHintFunction(short col);
149 
150  virtual bool operator<(const QTreeWidgetItem & other ) const;
151 
152  virtual bool hasGumball() const;
153 
154  virtual QString markingText() const;
155 
156  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
157 
158  boost::signal<void (DtVrfObjectListViewItem*)> signal_forceChanged;
159 
160  protected:
161  virtual void slot_onStateViewUpdated(const DtVrfObjectState s);
162  virtual void setLastState(const DtVrfObjectState s);
163  virtual bool statesAreEqual(const DtVrfObjectState s) const;
164  virtual bool objectDataStatesAreEqual(const DtVrfObjectState s) const;
165  virtual std::string iconKeyString() const;
166  virtual std::string gumballKeyString() const;
167 
168  virtual bool needsIconUpdate(std::string* resultKey = 0) const;
169  virtual bool needsGumballUpdate(std::string* resultKey = 0) const;
170 
171  protected:
172  virtual QVariant name(const DtVrfObjectListViewItem*) const;
173 
174  virtual QVariant icon(const DtVrfObjectListViewItem*) const;
175  virtual QVariant iconSizeHint(const DtVrfObjectListViewItem*) const;
176 
177  virtual QVariant gumball(const DtVrfObjectListViewItem*) const;
178  virtual QVariant iconAndGumball(const DtVrfObjectListViewItem*) const;
179  virtual QVariant iconAndGumballSizeHint(const DtVrfObjectListViewItem*) const;
180 
181  int makeKey(short col, short role) const
182  {
183  return (col << 16) | role;
184  }
185 
186  protected:
187  typedef std::map<int, boost::function<QVariant (const DtVrfObjectListViewItem*)> > DtDataFunctionMap;
188  typedef std::map<int, boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)> > DtSortingFunctionMap;
189 
192  std::string myStealthType;
196 
197  union States
198  {
204  };
205 
220 
221  mutable QPixmap myIcon;
222  mutable QPixmap myGumball;
223  mutable QPixmap myPixmap;
224  mutable std::string myIconString;
225  mutable std::string myGumballString;
226  };
227 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)