VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 <QtWidgets/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;
132  Qt::SortOrder mySortOrder;
133  };
134 
135 
137  //
141  class DtObjectsList : public QWidget
142  {
143 
144  Q_OBJECT
145 
146  public:
147 
149  DtObjectsList(DtDe& de, QWidget* parent = NULL,
150  const Qt::WindowFlags& flags = 0);
151 
153  virtual ~DtObjectsList();
154 
155  public:
156 
159  virtual bool init();
160 
163  virtual bool eventFilter(QObject* o, QEvent* e);
165 
166  virtual void tick();
167 
168  signals:
169 
170 
172  void doubleClickOnItem( DtUniqueID id );
174  void deleteRequested();
175  void rightClickOnItem( QPoint where );
178 
179  public slots:
180  virtual void showInformation(QTreeWidgetItem*, int);
181  //virtual void selectionModeChanged(DtBaseWindow* window);
184 
185  protected:
186  virtual void keyPressEvent(QKeyEvent *e);
187 
190 
191  private:
192 
194  DtObjectsList(const DtObjectsList& orig);
195 
197  DtObjectsList& operator=(const DtObjectsList& orig);
198 
199  protected:
201  QVBoxLayout* myMasterLayout;
202 
205  };
206 
208  {
209  return myObjectsSelectionList;
210  }
211 
213 
215  {
216  public:
218  myDestroyed(false), myProcessing(false), myDataSource(0)
219  {};
220 
222 
223  bool destroyed() const { return myDestroyed; };
224  void setDestroyed(bool b) { myDestroyed = b; };
225 
226  virtual QVariant data(int iColumn, int role) const;
227 
228  virtual bool operator<(const QTreeWidgetItem&) const;
229 
230  protected:
231  mutable bool myProcessing;
234  };
235 
237  {
238  public:
239  DtObjectListView(DtDe& de, QWidget* parent)
240  : DtFilteredListView(de, parent), myDataSource(0)
241  {};
242 
244 
245  protected:
247  {
249 
251  it->setIcon(0, QPixmap());
252  return it;
253  }
254 
255  protected:
257 
258  };
259 
263  {
264 
265  public:
267  static DtObjectListViewCreator& instance(DtDe& de);
268 
270  static void registerInstance(DtDe& de,DtObjectListViewCreator* anInstance);
271 
273  virtual DtObjectListView* create(DtDe& de, QWidget * parent);
274  };
275 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)