![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtInstanceEditorWidget.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtInstanceEditorWidget_H_ 00014 #define DtInstanceEditorWidget_H_ 00015 00016 #include <vrvCoreQt/vrvCoreQt.h> 00017 #include <QtGui/QWidget> 00018 #include <vrvCoreQt/DtInstanceEditorInterface.h> 00019 00020 class QActionGroup; 00021 class QHBoxLayout; 00022 class QMenu; 00023 class QPushButton; 00024 class QTreeWidget; 00025 class QTreeWidgetItem; 00026 class QToolBox; 00027 class QLabel; 00028 class QTextEdit; 00029 class QComboBox; 00030 class QHBoxLayout; 00031 00032 namespace makVrv 00033 { 00034 class DtContextTreeWidget; 00035 00038 class DT_DLL_VRVCOREQT DtInstanceEditorWidget : public QWidget, 00039 public DtInstanceEditorInterface 00040 { 00041 Q_OBJECT 00042 public: 00043 DtInstanceEditorWidget(DtDe& de, const QString& widgetEditorType, QWidget* parent = 0, Qt::WindowFlags flags = 0); 00044 00045 virtual ~DtInstanceEditorWidget(); 00046 00048 virtual void setInstanceTypeName(const std::string& name ); 00049 00051 virtual void addInstance(const std::string& name); 00052 00054 virtual void deleteInstance(const std::string& name); 00055 00058 virtual void setInstanceFlags(const std::string& name, bool isSaved, bool isOk, bool isEnabled); 00059 00061 virtual void clearInstances(); 00062 00064 virtual void selectInstance(const std::string& name); 00065 00067 virtual void clearFilters(); 00068 00070 virtual void selectFilter(const std::string& name); 00071 00074 virtual void addFilterItem(const std::string&, int); 00075 00079 virtual void setEnableFilterEditor(bool filters); 00080 00082 virtual void setInstancesCopyable(bool copyable); 00083 00085 virtual void setInstancesEditable(bool editable); 00086 00088 virtual void setInstancesRenamable(bool renamable); 00089 00091 virtual void setInstancesRemovable(bool removable); 00092 00094 virtual void setFilters(const std::vector<std::pair<std::string,bool> >& filters); 00095 00097 virtual void setFilterToolTip(const std::string& text); 00098 00100 virtual QPushButton* addButton(); 00101 00103 virtual void setDeleteButtonText(QString text); 00104 00106 virtual void setCopyButtonText(QString text); 00107 00109 virtual void setEditButtonText(QString text); 00110 00112 virtual void setRenameButtonText(QString text); 00113 00115 virtual void sortInstances(); 00116 00119 virtual void setupInvalidInstances(); 00120 00122 virtual void renameInstance(const std::string& oldName, const std::string& newName, int selectedInstanceIndex); 00123 00125 virtual void setDeleteButtonEnabled(bool); 00126 00128 virtual void setDeleteButtonToolTip(const QString&); 00129 00130 protected slots: 00131 00132 virtual void on_myTreeWidget_itemSelectionChanged(); 00133 virtual void on_myAddButton_clicked(); 00134 00135 virtual void on_myDeleteButton_clicked(); 00136 virtual void on_myCopyButton_clicked(); 00137 virtual void on_myEditButton_clicked(); 00138 virtual void on_myRenameButton_clicked(); 00139 virtual void on_myFilterGroup_triggered(const QString&); 00140 virtual void on_myFilterActionGroup_triggered(QAction*); 00141 00142 //{ 00143 //Internal functions used to activate editors 00144 void on_myTreeWidget_itemClicked(QTreeWidgetItem * item, int column); 00145 void on_myTreeWidget_itemActivated(QTreeWidgetItem * item, int column); 00146 void on_myTreeWidget_itemDoubleClicked(QTreeWidgetItem * item, int column); 00147 //} 00148 00149 00150 virtual std::string selectedInstance() const; 00151 virtual std::string selectedInstanceCategory() const; 00152 virtual int selectedInstanceCategoryIndex() const; 00153 00154 protected: 00155 00156 QString askForNewInstanceName(QString initial, const QString& title); 00157 00158 void setupGui(); 00159 00160 protected: 00161 00162 DtDe& myDe; 00163 00164 bool myInstancesCopyable; 00165 bool myInstancesEditable; 00166 bool myInstancesRenamable; 00167 bool myInstancesRemovable; 00168 00169 QLabel* myTitle; 00170 QHBoxLayout* myButtonLayout; 00171 QPushButton* myAddButton; 00172 QPushButton* myDeleteButton; 00173 QPushButton* myCopyButton; 00174 QPushButton* myEditButton; 00175 QPushButton* myRenameButton; 00176 00177 QPushButton* myFilterButton; 00178 QActionGroup* myFilterActionGroup; 00179 00180 QTextEdit* myErrorMessages; 00181 00182 00183 DtContextTreeWidget* myTreeWidget; 00184 QString myInstanceTypeLabel; 00185 00186 QString myWidgetEditorType; 00187 }; 00188 } 00189 00190 #endif 00191