![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: entityEditorList.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtEntityEditorList_H_ 00013 #define DtEntityEditorList_H_ 00014 00015 #include "tmqt/dtTreeWidget.h" 00016 #include <QtCore/QHash> 00017 #include <QtGui/QImage> 00018 #include <QtCore/QMap> 00019 #include <QtCore/QString> 00020 #include <QtCore/QVariant> 00021 #include "symbolMapper/modelDataDict.h" 00022 #include <vrfExtProtocol/objType.h> 00023 #include "vrfutil/rwForces.h" 00024 00025 class DtFilename; 00026 class DtList; 00027 class QComboBox; 00028 class DtEntityPaletteFilter; 00029 class DtEntityMapperKey; 00030 class DtEntityEditorHistory; 00031 class DtVrfObjectParameters; 00032 class DtReaderWriterRegistry; 00033 class DtRwNLengthStringVector; 00034 class DtModelSetEntry; 00035 class MyMtlParameterDbEntry; 00036 class QLabel; 00037 class DtUiElementEvent; 00038 00039 #include "entityEditorImpl/entityEditorImplDefines.h" 00040 00041 const int DtModifiedRole = Qt::UserRole; 00042 const int DtParameterRole = Qt::UserRole + 1; 00043 const int DtDeletedRole = Qt::UserRole + 2; 00044 const int DtCreatedRole = Qt::UserRole + 3; 00045 const int DtModelRole = Qt::UserRole + 4; 00046 const int DtGlobalForcesRole = Qt::UserRole + 5; 00047 00048 class DT_DLL_entityeditorimpl DtEntityPaletteFilter 00049 { 00050 public: 00051 DtEntityPaletteFilter(); 00052 DtEntityPaletteFilter(const DtEntityPaletteFilter&); 00053 virtual bool isValid(const DtModelSetEntry*); 00054 00055 void setCategory(const QString&); 00056 void setFilterOnForces(const DtRwForces&); 00057 00058 virtual DtEntityPaletteFilter* clone() const { return new DtEntityPaletteFilter(*this); }; 00059 00060 protected: 00061 QString myCategory; 00062 DtRwForces myFilterOnForces; 00063 }; 00064 00065 class DT_DLL_entityeditorimpl DtEntityPaletteItem : public QTreeWidgetItem 00066 { 00067 public: 00068 DtEntityPaletteItem() : QTreeWidgetItem() {}; 00069 bool operator<(const QTreeWidgetItem & other ) const; 00070 virtual QVariant data(int column, int role) const; 00071 00072 virtual DtModelSetEntry* proxyModel() const; 00073 virtual QList<QVariant> proxyForces() const; 00074 00075 protected: 00076 virtual QPixmap getPixmap(const DtObjectType& o, int force) const; 00077 }; 00078 00079 class DT_DLL_entityeditorimpl DtEntityEditorList : public QWidget 00080 { 00081 Q_OBJECT 00082 00083 protected: 00084 static const QMap<QString, QVariant> theEmptyStringVariantMap; 00085 00086 public: 00087 00089 DtEntityEditorList(QWidget*); 00090 00092 virtual ~DtEntityEditorList(); 00093 00095 virtual void init(); 00096 00097 bool hasSelection() const; 00098 virtual void getSelectedInformation(DtEntityMapperKey& key) const; 00099 virtual void getSelectedInformation(DtObjectType& key) const; 00100 virtual void getInformation(QTreeWidgetItem*, DtEntityMapperKey& key) const; 00101 virtual void getInformation(QTreeWidgetItem*, DtObjectType& key) const; 00102 virtual void setEntryModified(DtVrfObjectParameters*); 00103 virtual void setModelModified(DtModelSetEntry*); 00104 00105 virtual bool canRevertExisting() const; 00106 virtual bool canDeleteExisting() const; 00107 00108 virtual void getCategorySelections(DtRwForces&, DtRwNLengthStringVector&); 00109 00110 virtual DtObjectType selectedObjectType() const; 00111 virtual QTreeWidgetItem* selectedItem(); 00112 virtual DtModelSetEntry* selectedModel(); 00113 virtual void setSelected(const QString&); 00114 virtual void setSelected(DtModelSetEntry*); 00115 virtual void setSelected(DtModelSetEntry*, const QMap<QString, QVariant>& state); 00116 virtual DtModelSetEntry* modelFor(QTreeWidgetItem*) const; 00117 00118 virtual QMap<QString, QVariant> currentUiState() const; 00119 00120 virtual void selectUncategorized(); 00121 virtual void selectCategory(const QString&); 00122 00123 QTreeWidget* entityList(); 00124 virtual void setParameterChanged(const DtVrfObjectParameters* newP, const DtObjectType& oldType, const DtObjectType& newType); 00125 00126 static DtEntityEditorList* create(QWidget* parent = NULL); 00127 void setRightClickEnabled(bool b); 00128 bool rightClickEnabled() const; 00129 00132 virtual void setFilterOnForces(const DtRwForces& forces); 00133 const DtRwForces& filterOnForces() const; 00134 00135 virtual bool selectModel(DtModelSetEntry* m, const QMap<QString, QVariant>& state = theEmptyStringVariantMap); 00136 virtual QString categoryFor(DtModelSetEntry* m) const; 00137 00138 virtual QString selectedCategory() const; 00139 00140 virtual DtTreeWidget* createEntitiesList(QWidget* p); 00141 virtual DtEntityEditorHistory* createHistoryBar(QWidget* p); 00142 00144 virtual void setShowHistory(bool); 00145 bool showingHistory() const; 00146 00148 virtual void updateUiSaveState(const DtUiElementEvent& e); 00149 00150 const QList<QVariant>& allForces() const; 00151 00152 public slots: 00153 virtual void fillInList(); 00154 virtual void deleteExisting(); 00155 virtual void revertExisting(); 00156 virtual void redisplayListIcons(); 00157 virtual void opdEntryAdded(DtVrfObjectParameters*, DtModelSetEntry*); 00158 00159 protected slots: 00160 virtual void executeFilter(); 00161 virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*); 00162 virtual void selectionChanged(); 00163 00164 protected: 00165 virtual void updateStatus(QTreeWidgetItem* item); 00166 virtual void revertChanged(DtReaderWriterRegistry*); 00167 virtual void revertChanged(DtModelSetEntry*); 00168 virtual void addModelEntry(DtModelSetEntry*); 00169 virtual DtEntityPaletteFilter* createFilter(); 00170 virtual DtEntityPaletteItem* createPaletteItem(); 00171 virtual DtEntityPaletteItem* createPaletteItem(DtModelSetEntry*, MyMtlParameterDbEntry*); 00172 virtual void createForcesList(); 00173 virtual void updateHistory(); 00174 00175 signals: 00176 void itemSelectionChanged(); 00177 void itemStatusChanged(); 00178 00179 protected: 00180 DtTreeWidget* myEntities; 00181 QComboBox* myCategories; 00182 QLabel* myCategoriesLabel; 00183 DtEntityPaletteFilter* myFilter; 00184 QList<QVariant> myForces; 00185 DtRwForces myFilterOnForces; 00186 bool myRightClickEnabled; 00187 DtEntityEditorHistory* myHistoryBar; 00188 }; 00189 00190 inline void DtEntityEditorList::setRightClickEnabled(bool b) 00191 { 00192 myRightClickEnabled = b; 00193 } 00194 00195 inline bool DtEntityEditorList::rightClickEnabled() const 00196 { 00197 return myRightClickEnabled; 00198 } 00199 00200 inline bool DtEntityEditorList::hasSelection() const 00201 { 00202 return (myEntities && (myEntities->selectedItems().count() != 0)); 00203 } 00204 00205 inline QTreeWidget* DtEntityEditorList::entityList() 00206 { 00207 return myEntities; 00208 } 00209 00210 inline const DtRwForces& DtEntityEditorList::filterOnForces() const 00211 { 00212 return myFilterOnForces; 00213 } 00214 00215 inline const QList<QVariant>& DtEntityEditorList::allForces() const 00216 { 00217 return myForces; 00218 } 00219 00220 #endif //DtEntityEditorList_H_ 00221 00222