VR-Forces 4.8 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 class QLineEdit;
34 
35 namespace makVrv
36 {
37  class DtContextTreeWidget;
38 
41  class DT_DLL_VRVCOREQT DtInstanceEditorWidget : public QWidget,
43  {
44  Q_OBJECT
45  public:
46  DtInstanceEditorWidget(DtDe& de, const QString& widgetEditorType, QWidget* parent = 0, Qt::WindowFlags flags = 0);
47 
48  virtual ~DtInstanceEditorWidget();
49 
51  virtual void setInstanceTypeName(const std::string& name );
52 
54  virtual void addInstance(const std::string& name);
55 
57  virtual void setDuplicate(const std::string& name, bool b);
58 
60  virtual void deleteInstance(const std::string& name);
61 
64  virtual void setInstanceFlags(const std::string& name, bool isSaved, bool isOk, bool isEnabled);
65 
67  virtual void clearInstances();
68 
70  virtual void selectInstance(const std::string& name);
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::vector<std::string> selectedInstances() const;
167  virtual std::string selectedInstanceCategory() const;
168  virtual int selectedInstanceCategoryIndex() const;
169 
170  protected:
171 
172  QString askForNewInstanceName(QString initial, const QString& title);
173 
174  void setupGui();
175 
176  // Helper function for checking if we have an item already
177  // Returns the item* if found or null if not
178  QTreeWidgetItem* findItem(const std::string& name);
179 
181  virtual void updateErrorMessage(QTreeWidgetItem* item);
182 
183  protected:
184 
186 
191 
192  // Way faster than searching the myTreeWidget over and over
193  typedef boost::unordered_map<std::string, QTreeWidgetItem*>::iterator ItemItr;
194  boost::unordered_map<std::string, QTreeWidgetItem*> myNameToItemMap;
195  std::set<QTreeWidgetItem*> myInvalidItems;
196 
198  QHBoxLayout* myButtonLayout;
204 
208 
210  QActionGroup* myFilterActionGroup;
211 
212  QTextEdit* myErrorMessages;
213 
214 
217 
220 
221  };
222 }
223 
224 #endif
225 
SelectionMode
Definition: DtInstanceEditorInterface.h:24
QLabel * mySearchLabel
Definition: DtInstanceEditorWidget.h:205
Abstract interface for instance editor widgets.
Definition: DtInstanceEditorInterface.h:21
QPushButton * myRenameButton
Definition: DtInstanceEditorWidget.h:203
bool myShowDeleteDialog
Definition: DtInstanceEditorWidget.h:219
QPushButton * mySearchCleanButton
Definition: DtInstanceEditorWidget.h:207
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QPushButton * myFilterButton
Definition: DtInstanceEditorWidget.h:209
Contains DLL export macros.
DtDe & myDe
Definition: DtInstanceEditorWidget.h:185
QActionGroup * myFilterActionGroup
Definition: DtInstanceEditorWidget.h:210
boost::unordered_map< std::string, QTreeWidgetItem * > myNameToItemMap
Definition: DtInstanceEditorWidget.h:194
QTextEdit * myErrorMessages
Definition: DtInstanceEditorWidget.h:212
DtContextTreeWidget * myTreeWidget
Definition: DtInstanceEditorWidget.h:215
A tree widget that will allow the addition of menu items that will appear on a context menu when the ...
Definition: DtContextTreeWidget.h:32
bool myInstancesRemovable
Definition: DtInstanceEditorWidget.h:190
QLabel * myTitle
Definition: DtInstanceEditorWidget.h:197
std::set< QTreeWidgetItem * > myInvalidItems
Definition: DtInstanceEditorWidget.h:195
bool myInstancesRenamable
Definition: DtInstanceEditorWidget.h:189
QString myWidgetEditorType
Definition: DtInstanceEditorWidget.h:218
bool myInstancesCopyable
Definition: DtInstanceEditorWidget.h:187
boost::unordered_map< std::string, QTreeWidgetItem * >::iterator ItemItr
Definition: DtInstanceEditorWidget.h:193
QHBoxLayout * myButtonLayout
Definition: DtInstanceEditorWidget.h:198
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:202
QLineEdit * mySearchLineEdit
Definition: DtInstanceEditorWidget.h:206
QPushButton * myCopyButton
Definition: DtInstanceEditorWidget.h:201
QPushButton * myAddButton
Definition: DtInstanceEditorWidget.h:199
QPushButton * myDeleteButton
Definition: DtInstanceEditorWidget.h:200
Contains makVrv::DtInstanceEditorInterface class.
A widget class for editing instances.
Definition: DtInstanceEditorWidget.h:41
bool myInstancesEditable
Definition: DtInstanceEditorWidget.h:188
QString myInstanceTypeLabel
Definition: DtInstanceEditorWidget.h:216

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)