VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtObjectsList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 #include <vrvCoreQt/vrvCoreQt.h>
11 #include <QtGui/QWidget>
13 #include <vrvCoreQt/DtTreeWidget.h>
14 #include <vrvCore/DtUniqueID.h>
16 
17 class QVBoxLayout;
18 class QTreeWidgetItem;
19 
20 namespace makVrv
21 {
22  class DtObjectsSelectionList;
23  class DtObjectListViewItem;
24  class DtElementEntry;
25  class DtDe;
26 
27  const int DtIconColumn = 0;
28  const int DtNameColumn = 1;
29 
31 
34  typedef bool (*DtObjectsListSortFcn)(const QTreeWidgetItem& lhs,
35  const QTreeWidgetItem& rhs,
36  int iDataColumn, const DtObjectsSelectionList*);
37 
42  {
43  public:
44  DtObjectsListDataFunctions() : myDataFunction(NULL), mySortFunction(NULL) {};
46  myDataFunction(d), mySortFunction(s) {};
47 
49  myDataFunction(orig.myDataFunction), mySortFunction(orig.mySortFunction) {};
50 
51  DtObjectsListDataFcn myDataFunction;
53  };
54 
59  {
60  Q_OBJECT
61 
62  public:
63 
65  DtObjectsSelectionList(DtDe& de, QWidget* parent = NULL,
66  const Qt::WindowFlags& flags = 0);
67 
69  virtual ~DtObjectsSelectionList();
70 
71  bool init(int iNumListBoxes = 1);
72 
73  virtual void tick();
74 
75  virtual QVariant data(DtObjectListViewItem* item, int iDataColumn, int iColumn, int iRole) const;
76 
77  virtual bool isDataShown(int data);
78 
79  public slots:
81  virtual int sort(const QTreeWidgetItem& lhs, const QTreeWidgetItem& rhs, int iColumnId) const;
82 
83  protected slots:
84  virtual void filterItemAdded(const DtUniqueID&, QTreeWidgetItem*);
85  virtual void filterItemUpdated(const DtUniqueID&, QTreeWidgetItem*);
86  virtual void filterItemRemoved(const DtUniqueID&, QTreeWidgetItem*);
87  virtual void filterListViewCleared();
88 
89 
92  virtual void showObjectOptions(int);
93 
95  virtual void symbolMapChanged();
96 
97  signals:
98 
100  void doubleClickOnItem( DtUniqueID id );
101  void rightClickOnItem( QPoint where );
102  void filterListItemAdded(const DtUniqueID&, QTreeWidgetItem*);
103  void filterListItemRemoved(const DtUniqueID&, QTreeWidgetItem*);
104  void filteredListViewCreated( DtFilteredListView * );
105  void filteredListViewToBeDestroyed( DtFilteredListView * );
106 
107  protected:
108  virtual DtFilteredListView* createFilteredListView();
109  virtual DtFilteredListView* createFilteredListView(unsigned int iListBox);
110  virtual bool initConnections(DtFilteredListView* window);
111 
116  virtual void initializeColumns();
117  virtual void addColumn(int id, const QString& column, bool initiallyVisible = true,
118  DtObjectsListDataFcn dataFcn = NULL, DtObjectsListSortFcn sortFcn = NULL);
119 
121  virtual void createColumns(DtFilteredListView* window);
122 
125  virtual QPixmap createMenuArrow(DtFilteredListView* window);
126 
127  virtual void keyPressEvent(QKeyEvent *e);
128 
129  protected:
130  QStringList myItems;
131  QHash<int, DtObjectsListDataFunctions> myDataFunctions;
133  Qt::SortOrder mySortOrder;
134  };
135 
136 
138  //
142  class DtObjectsList : public QWidget
143  {
144 
145  Q_OBJECT
146 
147  public:
148 
150  DtObjectsList(DtDe& de, QWidget* parent = NULL,
151  const Qt::WindowFlags& flags = 0);
152 
154  virtual ~DtObjectsList();
155 
156  public:
157 
160  virtual bool init();
161 
164  virtual bool eventFilter(QObject* o, QEvent* e);
166 
167  virtual void tick();
168 
169  signals:
170 
171 
173  void doubleClickOnItem( DtUniqueID id );
175  void deleteRequested();
176  void rightClickOnItem( QPoint where );
179 
180  public slots:
181  virtual void showInformation(QTreeWidgetItem*, int);
182  //virtual void selectionModeChanged(DtBaseWindow* window);
185 
186  protected:
187  virtual void keyPressEvent(QKeyEvent *e);
188 
191 
192  private:
193 
195  DtObjectsList(const DtObjectsList& orig);
196 
198  DtObjectsList& operator=(const DtObjectsList& orig);
199 
200  protected:
202  QVBoxLayout* myMasterLayout;
203 
206  };
207 
209  {
210  return myObjectsSelectionList;
211  }
212 
214 
216  {
217  public:
220 
221  bool destroyed() const { return myDestroyed; };
222  void setDestroyed(bool b) { myDestroyed = b; };
223 
224  virtual QVariant data(int iColumn, int role) const;
225 
226  virtual bool operator<(const QTreeWidgetItem&) const;
227 
228  protected:
229  mutable bool myProcessing;
232  };
233 
235  {
236  public:
238  : DtFilteredListView(de, parent) {};
239 
241 
242  protected:
244  {
246 
248  it->setIcon(0, QPixmap());
249  return it;
250  }
251 
252  protected:
254 
255  };
256 
260  {
261 
262  public:
264  static DtObjectListViewCreator& instance(DtDe& de);
265 
267  static void registerInstance(DtDe& de,DtObjectListViewCreator* anInstance);
268 
270  virtual DtObjectListView* create(DtDe& de, QWidget * parent);
271  };
272 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)