VR-Forces 4.10 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtInstanceEditorWidget_H_
11 #define DtInstanceEditorWidget_H_
12 
13 #include <vrvCoreQt/vrvCoreQt.h>
14 #include <QtWidgets/QWidget>
16 #include <boost/unordered_map.hpp>
17 #include <set>
18 
19 class QActionGroup;
20 class QHBoxLayout;
21 class QMenu;
22 class QPushButton;
23 class QTreeWidget;
24 class QTreeWidgetItem;
25 class QToolBox;
26 class QLabel;
27 class QTextEdit;
28 class QComboBox;
29 class QHBoxLayout;
30 class QLineEdit;
31 
32 namespace makVrv
33 {
34  class DtContextTreeWidget;
35 
38  class DT_DLL_VRVCOREQT DtInstanceEditorWidget : public QWidget,
40  {
41  Q_OBJECT
42  public:
43  DtInstanceEditorWidget(DtDe& de, const QString& widgetEditorType, QWidget* parent = 0, Qt::WindowFlags flags = 0);
44 
45  virtual ~DtInstanceEditorWidget();
46 
48  virtual void setInstanceTypeName(const std::string& name );
49 
51  virtual void addInstance(const std::string& name);
52 
54  virtual void setDuplicate(const std::string& name, bool b);
55 
57  virtual void deleteInstance(const std::string& name);
58 
61  virtual void setInstanceFlags(const std::string& name, bool isSaved, bool isOk, bool isEnabled);
62 
64  virtual void clearInstances();
65 
67  virtual void selectInstance(const std::string& name);
68 
70  virtual std::vector<std::string> selectedInstances() const;
71 
73  virtual void clearFilters();
74 
76  virtual void selectFilter(const std::string& name);
77 
80  virtual void addFilterItem(const std::string&, int);
81 
85  virtual void setEnableFilterEditor(bool filters);
86 
88  virtual void setInstancesCopyable(bool copyable);
89 
91  virtual void setInstancesEditable(bool editable);
92 
94  virtual void setInstancesRenamable(bool renamable);
95 
97  virtual void setInstancesRemovable(bool removable);
98 
100  virtual void setFilters(const std::vector<std::pair<std::string,bool> >& filters);
101 
103  virtual void setFilterToolTip(const std::string& text);
104 
106  virtual QPushButton* addButton();
107 
109  virtual void setDeleteButtonText(QString text);
110 
112  virtual void setCopyButtonText(QString text);
113 
115  virtual void setEditButtonText(QString text);
116 
118  virtual void setRenameButtonText(QString text);
119 
121  virtual void sortInstances();
122 
125  virtual void setupInvalidInstances();
126 
128  virtual void renameInstance(const std::string& oldName, const std::string& newName, int selectedInstanceIndex);
129 
131  virtual void setDeleteButtonEnabled(bool);
132 
134  virtual void setDeleteButtonToolTip(const QString&);
135 
138  virtual void setSelectionMode(SelectionMode mode);
139 
141  virtual void resetFilters();
142 
143  protected slots:
144 
145  virtual void on_myTreeWidget_itemSelectionChanged();
146  virtual void on_myAddButton_clicked();
147 
148  virtual void on_myDeleteButton_clicked();
149  virtual void on_myCopyButton_clicked();
150  virtual void on_myEditButton_clicked();
151  virtual void on_myRenameButton_clicked();
152  virtual void on_myFilterGroup_triggered(const QString&);
153  virtual void on_myFilterActionGroup_triggered(QAction*);
154  virtual void on_mySearchLineEdit_textChanged(const QString&);
155  virtual void on_mySearchCleanButton_released();
156 
157  //{
158  //Internal functions used to activate editors
159  void on_myTreeWidget_itemClicked(QTreeWidgetItem * item, int column);
160  void on_myTreeWidget_itemActivated(QTreeWidgetItem * item, int column);
161  void on_myTreeWidget_itemDoubleClicked(QTreeWidgetItem * item, int column);
162  //}
163 
164 
165  virtual std::string selectedInstance() const;
166  virtual std::string selectedInstanceCategory() const;
167  virtual int selectedInstanceCategoryIndex() const;
168 
169  protected:
170 
171  QString askForNewInstanceName(QString initial, const QString& title);
172 
173  void setupGui();
174 
175  // Helper function for checking if we have an item already
176  // Returns the item* if found or null if not
177  QTreeWidgetItem* findItem(const std::string& name);
178 
180  virtual void updateErrorMessage(QTreeWidgetItem* item);
181 
182  protected:
183 
185 
190 
191  // Way faster than searching the myTreeWidget over and over
192  typedef boost::unordered_map<std::string, QTreeWidgetItem*>::iterator ItemItr;
193  boost::unordered_map<std::string, QTreeWidgetItem*> myNameToItemMap;
194  std::set<QTreeWidgetItem*> myInvalidItems;
195 
197  QHBoxLayout* myButtonLayout;
203 
207 
209  QActionGroup* myFilterActionGroup;
210 
211  QTextEdit* myErrorMessages;
212 
213 
216 
219 
220  };
221 }
222 
223 #endif
224 
SelectionMode
Definition: DtInstanceEditorInterface.h:24
QLabel * mySearchLabel
Definition: DtInstanceEditorWidget.h:204
Abstract interface for instance editor widgets.
Definition: DtInstanceEditorInterface.h:21
QPushButton * myRenameButton
Definition: DtInstanceEditorWidget.h:202
bool myShowDeleteDialog
Definition: DtInstanceEditorWidget.h:218
QPushButton * mySearchCleanButton
Definition: DtInstanceEditorWidget.h:206
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QPushButton * myFilterButton
Definition: DtInstanceEditorWidget.h:208
Contains DLL export macros.
DtDe & myDe
Definition: DtInstanceEditorWidget.h:184
QActionGroup * myFilterActionGroup
Definition: DtInstanceEditorWidget.h:209
boost::unordered_map< std::string, QTreeWidgetItem * > myNameToItemMap
Definition: DtInstanceEditorWidget.h:193
QTextEdit * myErrorMessages
Definition: DtInstanceEditorWidget.h:211
DtContextTreeWidget * myTreeWidget
Definition: DtInstanceEditorWidget.h:214
A tree widget that will allow the addition of menu items that will appear on a context menu when the ...
Definition: DtContextTreeWidget.h:29
bool myInstancesRemovable
Definition: DtInstanceEditorWidget.h:189
QLabel * myTitle
Definition: DtInstanceEditorWidget.h:196
std::set< QTreeWidgetItem * > myInvalidItems
Definition: DtInstanceEditorWidget.h:194
bool myInstancesRenamable
Definition: DtInstanceEditorWidget.h:188
QString myWidgetEditorType
Definition: DtInstanceEditorWidget.h:217
bool myInstancesCopyable
Definition: DtInstanceEditorWidget.h:186
boost::unordered_map< std::string, QTreeWidgetItem * >::iterator ItemItr
Definition: DtInstanceEditorWidget.h:192
QHBoxLayout * myButtonLayout
Definition: DtInstanceEditorWidget.h:197
const char int mode
Definition: ioapi.h:38
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QPushButton * myEditButton
Definition: DtInstanceEditorWidget.h:201
QLineEdit * mySearchLineEdit
Definition: DtInstanceEditorWidget.h:205
QPushButton * myCopyButton
Definition: DtInstanceEditorWidget.h:200
QPushButton * myAddButton
Definition: DtInstanceEditorWidget.h:198
QPushButton * myDeleteButton
Definition: DtInstanceEditorWidget.h:199
Contains makVrv::DtInstanceEditorInterface class.
A widget class for editing instances.
Definition: DtInstanceEditorWidget.h:38
bool myInstancesEditable
Definition: DtInstanceEditorWidget.h:187
QString myInstanceTypeLabel
Definition: DtInstanceEditorWidget.h:215

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)