VR-Forces 4.1 Class Documentation
DtVrfObjectListViewItem.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2011 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 
17 #include <vrvUtil/signalslib.h>
21 
22 #include <string>
23 
24 #include <vrvCore/DtStateView.h>
25 #include <vrvCore/DtEntityState.h>
27 
28 #include <QtGui/QTreeWidget>
29 #include <QtCore/QVariant>
30 
31 #include <boost/function.hpp>
32 
33 namespace makVrv
34 {
35  class DtDe;
36  class DtGlobalIDHierarchyNode;
37 }
38 
39 namespace makVrf
40 {
42  {
43  public:
45 
46  public:
48 
49  virtual ~DtVrfObjectListViewItem();
50 
51  public:
52  virtual bool isMatchingItem(const DtVrfObjectState state) const;
53  virtual bool isDestroyed() const;
54  virtual QVariant data(int iCol, int iRole) const;
55 
56  virtual void setStateView(DtVrfObjectState);
57 
58  void clearStateView()
59  {
60  myStateView = 0;
61  }
62 
63  DtVrfObjectState stateView() const
64  {
65  return myStateView;
66  }
67 
68  void addSortingFunction(int col, const boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)>& f)
69  {
70  mySortingFunctions[col] = f;
71  }
72 
73  void removeSortingFunction(int col)
74  {
75  DtSortingFunctionMap::iterator iter = mySortingFunctions.find(col);
76 
77  if (iter != mySortingFunctions.end())
78  {
79  mySortingFunctions.erase(iter);
80  }
81  }
82 
83  void addDataFunction(short col, short role, const boost::function<QVariant (const DtVrfObjectListViewItem*)>& func)
84  {
85  myDataFunctionMap[makeKey(col, role)] = func;
86  }
87 
88  void removeDataFunction(short col, short role)
89  {
90  DtDataFunctionMap::iterator iter = myDataFunctionMap.find(makeKey(col, role));
91 
92  if (iter != myDataFunctionMap.end())
93  {
94  myDataFunctionMap.erase(iter);
95  }
96  }
97 
99  virtual void addNameFunction(short col);
100  virtual void removeNameFunction(short col);
101 
102  virtual void addToolTipFunction(short col);
103  virtual void removeToolTipFunction(short col);
104 
105  virtual void addIconFunction(short col);
106  virtual void removeIconFunction(short col);
107 
108  virtual void addIconSizeHintFunction(short col);
109  virtual void removeIconSizeHintFunction(short col);
110 
111  virtual bool operator<(const QTreeWidgetItem & other ) const;
112 
113  public:
114  virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& s);
115 
116  protected:
117  virtual void slot_onStateViewUpdated(const DtVrfObjectState s);
118  virtual void setLastState(const DtVrfObjectState s);
119  virtual bool statesAreEqual(const DtVrfObjectState s) const;
120  virtual bool objectDataStatesAreEqual(const DtVrfObjectState s) const;
121 
122  protected:
123  virtual QVariant icon(const DtVrfObjectListViewItem*) const;
124  virtual QVariant name(const DtVrfObjectListViewItem*) const;
125  virtual QVariant iconSizeHint(const DtVrfObjectListViewItem*) const;
126 
127  int makeKey(short col, short role) const
128  {
129  return (col << 16) | role;
130  }
131 
132  protected:
133  typedef std::map<int, boost::function<QVariant (const DtVrfObjectListViewItem*)> > DtDataFunctionMap;
134  typedef std::map<int, boost::function<bool (const DtVrfObjectListViewItem& rhs, const DtVrfObjectListViewItem& lhs)> > DtSortingFunctionMap;
135 
138 
139  union States
140  {
144  };
145 
154  };
155 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)