VR-Forces Development_Version 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 <QtGui/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 
59  virtual void setStateView(DtVrfObjectState);
60 
61  void clearStateView()
62  {
63  myStateView = 0;
64  }
65 
66  bool isStealthObserver() const;
67  bool isInactive() const;
68 
69  void setStealthType(const std::string& s)
70  {
71  myStealthType = s;
72  DtEntityType t(s.c_str());
73  t.setExtra(t.extra() + 256);
74  myObserverStealthType = t.string();
75  t.setExtra(t.extra() + 1);
76  mySpecificStealthType = t.string();
77  }
78 
79  virtual void setShowObjectConsoleWarningIcon(bool, bool refresh = true);
80  virtual void setHasMessagesAwaiting(bool, bool refresh = true);
81  virtual void setHasQuestionsAwaiting(bool, bool refresh = true);
82  virtual void setSignalOnForceChange(bool);
83  const DtUUID& uuid() const
84  {
85  return myUUID;
86  }
87 
88  bool signalOnForceChange() const;
89 
90  DtVrfObjectState stateView() const
91  {
92  return myStateView;
93  }
94 
95  void addSortingFunction(int col, const boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)>& f)
96  {
97  mySortingFunctions[col] = f;
98  }
99 
100  void removeSortingFunction(int col)
101  {
102  DtSortingFunctionMap::iterator iter = mySortingFunctions.find(col);
103 
104  if (iter != mySortingFunctions.end())
105  {
106  mySortingFunctions.erase(iter);
107  }
108  }
109 
110  void addDataFunction(short col, short role, const boost::function<QVariant (const DtVrfObjectListViewItem*)>& func)
111  {
112  myDataFunctionMap[makeKey(col, role)] = func;
113  }
114 
115  void removeDataFunction(short col, short role)
116  {
117  DtDataFunctionMap::iterator iter = myDataFunctionMap.find(makeKey(col, role));
118 
119  if (iter != myDataFunctionMap.end())
120  {
121  myDataFunctionMap.erase(iter);
122  }
123  }
124 
126  virtual void addNameFunction(short col);
127  virtual void removeNameFunction(short col);
128 
129  virtual void addToolTipFunction(short col);
130  virtual void removeToolTipFunction(short col);
131 
132  virtual void addIconFunction(short col);
133  virtual void removeIconFunction(short col);
134 
135  virtual void addIconSizeHintFunction(short col);
136  virtual void removeIconSizeHintFunction(short col);
137 
138  virtual void addIconAndGumballFunction(short col);
139  virtual void removeIconAndGumballFunction(short col);
140 
141  virtual void addIconAndGumballSizeHintFunction(short col);
142  virtual void removeIconAndGumballSizeHintFunction(short col);
143 
144  virtual bool operator<(const QTreeWidgetItem & other ) const;
145 
146  virtual bool hasGumball() const;
147 
148  virtual QString markingText() const;
149 
150  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
151 
152  boost::signal<void (DtVrfObjectListViewItem*)> signal_forceChanged;
153 
154  protected:
155  virtual void slot_onStateViewUpdated(const DtVrfObjectState s);
156  virtual void setLastState(const DtVrfObjectState s);
157  virtual bool statesAreEqual(const DtVrfObjectState s) const;
158  virtual bool objectDataStatesAreEqual(const DtVrfObjectState s) const;
159  virtual std::string iconKeyString() const;
160  virtual std::string gumballKeyString() const;
161 
162  virtual bool needsIconUpdate(std::string* resultKey = 0) const;
163  virtual bool needsGumballUpdate(std::string* resultKey = 0) const;
164 
165  protected:
166  virtual QVariant name(const DtVrfObjectListViewItem*) const;
167 
168  virtual QVariant icon(const DtVrfObjectListViewItem*) const;
169  virtual QVariant iconSizeHint(const DtVrfObjectListViewItem*) const;
170 
171  virtual QVariant gumball(const DtVrfObjectListViewItem*) const;
172  virtual QVariant iconAndGumball(const DtVrfObjectListViewItem*) const;
173  virtual QVariant iconAndGumballSizeHint(const DtVrfObjectListViewItem*) const;
174 
175  int makeKey(short col, short role) const
176  {
177  return (col << 16) | role;
178  }
179 
180  protected:
181  typedef std::map<int, boost::function<QVariant (const DtVrfObjectListViewItem*)> > DtDataFunctionMap;
182  typedef std::map<int, boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)> > DtSortingFunctionMap;
183 
186  std::string myStealthType;
190 
191  union States
192  {
198  };
199 
214 
215  mutable QPixmap myIcon;
216  mutable QPixmap myGumball;
217  mutable QPixmap myPixmap;
218  mutable std::string myIconString;
219  mutable std::string myGumballString;
220  };
221 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)