VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtInstanceEditorWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtInstanceEditorWidget.h,v $ $Revision: 1.14 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #ifndef DtInstanceEditorWidget_H_
14 #define DtInstanceEditorWidget_H_
15 
16 #include <vrvCoreQt/vrvCoreQt.h>
17 #include <QtWidgets/QWidget>
19 #include <boost/unordered_map.hpp>
20 #include <set>
21 
22 class QActionGroup;
23 class QHBoxLayout;
24 class QMenu;
25 class QPushButton;
26 class QTreeWidget;
27 class QTreeWidgetItem;
28 class QToolBox;
29 class QLabel;
30 class QTextEdit;
31 class QComboBox;
32 class QHBoxLayout;
33 
34 namespace makVrv
35 {
36  class DtContextTreeWidget;
37 
40  class DT_DLL_VRVCOREQT DtInstanceEditorWidget : public QWidget,
42  {
43  Q_OBJECT
44  public:
45  DtInstanceEditorWidget(DtDe& de, const QString& widgetEditorType, QWidget* parent = 0, Qt::WindowFlags flags = 0);
46 
47  virtual ~DtInstanceEditorWidget();
48 
50  virtual void setInstanceTypeName(const std::string& name );
51 
53  virtual void addInstance(const std::string& name);
54 
56  virtual void deleteInstance(const std::string& name);
57 
60  virtual void setInstanceFlags(const std::string& name, bool isSaved, bool isOk, bool isEnabled);
61 
63  virtual void clearInstances();
64 
66  virtual void selectInstance(const std::string& name);
67 
69  virtual void clearFilters();
70 
72  virtual void selectFilter(const std::string& name);
73 
76  virtual void addFilterItem(const std::string&, int);
77 
81  virtual void setEnableFilterEditor(bool filters);
82 
84  virtual void setInstancesCopyable(bool copyable);
85 
87  virtual void setInstancesEditable(bool editable);
88 
90  virtual void setInstancesRenamable(bool renamable);
91 
93  virtual void setInstancesRemovable(bool removable);
94 
96  virtual void setFilters(const std::vector<std::pair<std::string,bool> >& filters);
97 
99  virtual void setFilterToolTip(const std::string& text);
100 
102  virtual QPushButton* addButton();
103 
105  virtual void setDeleteButtonText(QString text);
106 
108  virtual void setCopyButtonText(QString text);
109 
111  virtual void setEditButtonText(QString text);
112 
114  virtual void setRenameButtonText(QString text);
115 
117  virtual void sortInstances();
118 
121  virtual void setupInvalidInstances();
122 
124  virtual void renameInstance(const std::string& oldName, const std::string& newName, int selectedInstanceIndex);
125 
127  virtual void setDeleteButtonEnabled(bool);
128 
130  virtual void setDeleteButtonToolTip(const QString&);
131 
134  virtual void setSelectionMode(SelectionMode mode);
135 
136  protected slots:
137 
138  virtual void on_myTreeWidget_itemSelectionChanged();
139  virtual void on_myAddButton_clicked();
140 
141  virtual void on_myDeleteButton_clicked();
142  virtual void on_myCopyButton_clicked();
143  virtual void on_myEditButton_clicked();
144  virtual void on_myRenameButton_clicked();
145  virtual void on_myFilterGroup_triggered(const QString&);
146  virtual void on_myFilterActionGroup_triggered(QAction*);
147 
148  //{
149  //Internal functions used to activate editors
150  void on_myTreeWidget_itemClicked(QTreeWidgetItem * item, int column);
151  void on_myTreeWidget_itemActivated(QTreeWidgetItem * item, int column);
152  void on_myTreeWidget_itemDoubleClicked(QTreeWidgetItem * item, int column);
153  //}
154 
155 
156  virtual std::string selectedInstance() const;
157  virtual std::vector<std::string> selectedInstances() const;
158  virtual std::string selectedInstanceCategory() const;
159  virtual int selectedInstanceCategoryIndex() const;
160 
161  protected:
162 
163  QString askForNewInstanceName(QString initial, const QString& title);
164 
165  void setupGui();
166 
167  // Helper function for checking if we have an item already
168  // Returns the item* if found or null if not
169  QTreeWidgetItem* findItem(const std::string& name);
170 
172  virtual void updateErrorMessage(QTreeWidgetItem* item);
173 
174  protected:
175 
177 
182 
183  // Way faster than searching the myTreeWidget over and over
184  typedef boost::unordered_map<std::string, QTreeWidgetItem*>::iterator ItemItr;
185  boost::unordered_map<std::string, QTreeWidgetItem*> myNameToItemMap;
186  std::set<QTreeWidgetItem*> myInvalidItems;
187 
189  QHBoxLayout* myButtonLayout;
195 
197  QActionGroup* myFilterActionGroup;
198 
199  QTextEdit* myErrorMessages;
200 
201 
204 
207 
208  };
209 }
210 
211 #endif
212 

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)