VR-Forces 4.3 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) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 
17 #include <vrvUtil/signalslib.h>
23 
24 #include <string>
25 
26 #include <vrvCore/DtStateView.h>
27 #include <vrvCore/DtEntityState.h>
29 
30 #include <QtGui/QTreeWidget>
31 #include <QtCore/QVariant>
32 
33 #include <boost/function.hpp>
34 
35 namespace makVrv
36 {
37  class DtDe;
38  class DtGlobalIDHierarchyNode;
39 }
40 
41 namespace makVrf
42 {
44  {
45  public:
47 
48  public:
50 
51  virtual ~DtVrfObjectListViewItem();
52 
53  public:
54  virtual bool isMatchingItem(const DtVrfObjectState state) const;
55  virtual bool isDestroyed() const;
56  virtual QVariant data(int iCol, int iRole) const;
57 
58  virtual void setStateView(DtVrfObjectState);
59 
60  void clearStateView()
61  {
62  myStateView = 0;
63  }
64 
65  bool isStealthObserver() const;
66 
67  void setStealthType(const std::string& s)
68  {
69  myStealthType = s;
70  DtEntityType t(s.c_str());
71  t.setExtra(t.extra() + 256);
72  myObserverStealthType = t.string();
73  t.setExtra(t.extra() + 1);
74  mySpecificStealthType = t.string();
75  }
76 
77  virtual void setShowObjectConsoleWarningIcon(bool, bool refresh = true);
78  virtual void setHasMessagesAwaiting(bool, bool refresh = true);
79  virtual void setHasQuestionsAwaiting(bool, bool refresh = true);
80  virtual void setSignalOnForceChange(bool);
81  bool signalOnForceChange() const;
82 
83  DtVrfObjectState stateView() const
84  {
85  return myStateView;
86  }
87 
88  void addSortingFunction(int col, const boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)>& f)
89  {
90  mySortingFunctions[col] = f;
91  }
92 
93  void removeSortingFunction(int col)
94  {
95  DtSortingFunctionMap::iterator iter = mySortingFunctions.find(col);
96 
97  if (iter != mySortingFunctions.end())
98  {
99  mySortingFunctions.erase(iter);
100  }
101  }
102 
103  void addDataFunction(short col, short role, const boost::function<QVariant (const DtVrfObjectListViewItem*)>& func)
104  {
105  myDataFunctionMap[makeKey(col, role)] = func;
106  }
107 
108  void removeDataFunction(short col, short role)
109  {
110  DtDataFunctionMap::iterator iter = myDataFunctionMap.find(makeKey(col, role));
111 
112  if (iter != myDataFunctionMap.end())
113  {
114  myDataFunctionMap.erase(iter);
115  }
116  }
117 
119  virtual void addNameFunction(short col);
120  virtual void removeNameFunction(short col);
121 
122  virtual void addToolTipFunction(short col);
123  virtual void removeToolTipFunction(short col);
124 
125  virtual void addIconFunction(short col);
126  virtual void removeIconFunction(short col);
127 
128  virtual void addIconSizeHintFunction(short col);
129  virtual void removeIconSizeHintFunction(short col);
130 
131  virtual void addIconAndGumballFunction(short col);
132  virtual void removeIconAndGumballFunction(short col);
133 
134  virtual void addIconAndGumballSizeHintFunction(short col);
135  virtual void removeIconAndGumballSizeHintFunction(short col);
136 
137  virtual bool operator<(const QTreeWidgetItem & other ) const;
138 
139  virtual bool hasGumball() const;
140 
141  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
142 
143  boost::signal<void (DtVrfObjectListViewItem*)> signal_forceChanged;
144 
145  protected:
146  virtual void slot_onStateViewUpdated(const DtVrfObjectState s);
147  virtual void setLastState(const DtVrfObjectState s);
148  virtual bool statesAreEqual(const DtVrfObjectState s) const;
149  virtual bool objectDataStatesAreEqual(const DtVrfObjectState s) const;
150  virtual std::string iconKeyString() const;
151  virtual std::string gumballKeyString() const;
152 
153  virtual bool needsIconUpdate(std::string* resultKey = 0) const;
154  virtual bool needsGumballUpdate(std::string* resultKey = 0) const;
155 
156  protected:
157  virtual QVariant name(const DtVrfObjectListViewItem*) const;
158 
159  virtual QVariant icon(const DtVrfObjectListViewItem*) const;
160  virtual QVariant iconSizeHint(const DtVrfObjectListViewItem*) const;
161 
162  virtual QVariant gumball(const DtVrfObjectListViewItem*) const;
163  virtual QVariant iconAndGumball(const DtVrfObjectListViewItem*) const;
164  virtual QVariant iconAndGumballSizeHint(const DtVrfObjectListViewItem*) const;
165 
166  int makeKey(short col, short role) const
167  {
168  return (col << 16) | role;
169  }
170 
171  protected:
172  typedef std::map<int, boost::function<QVariant (const DtVrfObjectListViewItem*)> > DtDataFunctionMap;
173  typedef std::map<int, boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)> > DtSortingFunctionMap;
174 
177  std::string myStealthType;
180 
181  union States
182  {
188  };
189 
204 
205  mutable QPixmap myIcon;
206  mutable QPixmap myGumball;
207  mutable QPixmap myPixmap;
208  mutable std::string myIconString;
209  mutable std::string myGumballString;
210  };
211 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)