![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: terrainFeaturesList.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef TERRAINFEATURESLIST_H_ 00013 #define TERRAINFEATURESLIST_H_ 00014 00015 #include "tmqt/dtTreeWidget.h" 00016 #include <geometry/gdbColor.h> 00017 00018 class DtTerrainDatabase; 00019 class DtSpecification; 00020 class DtSpecificationStringAttribute; 00021 class DtString; 00022 class DtGroup; 00023 class QPainter; 00024 class QColorGroup; 00025 class DtList; 00026 00027 const int DtFeatureListRole = Qt::UserRole; 00028 const int DtFeatureGroupRole = 1; 00029 const int DtFeatureItemRole = 2; 00030 00031 const int DtFeatureEntryRole = Qt::UserRole + 1; 00032 const int DtFeatureCheckRole = Qt::UserRole + 2; 00033 00036 #include "terrainqt/terrainqtDefines.h" 00037 class DT_DLL_terrainqt DtFeatureEntry 00038 { 00039 public: 00040 DtFeatureEntry(); 00041 00042 virtual ~DtFeatureEntry(); 00043 00044 virtual void addSpecification(int i); 00045 virtual int numSpecifications() const; 00046 virtual int specificationAt(int iIndex); 00047 00048 virtual void setVisible(bool b); 00049 virtual bool visible() const; 00050 00051 virtual void setColor(const DtColor& c); 00052 virtual DtColor& color(); 00053 00054 virtual void setDrawOrder(int i); 00055 virtual int drawOrder() const; 00056 virtual bool drawOrderChanged() const; 00057 virtual void commitDrawOrder(); 00058 00059 virtual void setColor(int red, int green, int blue); 00060 00061 virtual void restore(); 00062 virtual void backup(); 00063 00064 virtual void setListItem(QTreeWidgetItem* item); 00065 virtual QTreeWidgetItem* listItem(); 00066 00068 virtual void specToList(DtList* list); 00069 00070 protected: 00071 QVector<int> mySpecifications; 00072 QTreeWidgetItem* myListItem; 00073 bool myIsVisible; 00074 DtColor myColor; 00075 int myDrawOrder; 00076 00077 int myLastUpdatedDrawOrder; 00078 00079 bool myOriginalIsVisible; 00080 DtColor myOriginalColor; 00081 int myOriginalDrawOrder; 00082 }; 00083 00084 class DT_DLL_terrainqt DtTerrainFeaturesList : public DtTreeWidget 00085 { 00086 Q_OBJECT 00087 00088 public: 00089 DtTerrainFeaturesList(QWidget* parent); 00090 virtual ~DtTerrainFeaturesList(); 00091 00092 public: 00095 virtual void setTerrainDatabase(const DtTerrainDatabase* db); 00096 00097 virtual void featureChange(QTreeWidgetItem* item, bool enableItem); 00098 00100 virtual bool init(bool onByDefault = true); 00101 00103 virtual int numSpecifications() const; 00104 00106 virtual void restoreFeatures(); 00107 00109 virtual void selectGroup(QString select); 00110 00115 virtual void getSelectedSpecifications(QHash<QString, QString>& specifications, 00116 bool inverse = false); 00117 00120 virtual void setSelectedSpecifications(const QHash<QString, QString>& dict, 00121 bool inverse = false); 00122 00124 virtual bool allChildrenSelected(QTreeWidgetItem* item) const; 00125 00126 public: 00129 virtual bool showGroup(const QString& group, bool show); 00130 00132 virtual bool setFeatureColor(int fid, const QColor& color); 00133 00135 virtual bool showFeature(int fid, bool b); 00136 00137 signals: 00138 void featureChanged(QTreeWidgetItem* item); 00139 00140 protected slots: 00141 virtual void featureChanged(QTreeWidgetItem* item, int iCol); 00142 00143 protected: 00145 virtual DtFeatureEntry* createFeatureEntry(); 00146 00148 virtual QTreeWidgetItem* addFeatureEntry(const DtSpecificationStringAttribute* group, 00149 const DtSpecificationStringAttribute* groupName, int uniqueIdentifier, int iSpecification, DtSpecification& spec); 00150 00151 virtual QTreeWidgetItem* createFeatureListEntry(QTreeWidget* parent, const QString& title, 00152 DtFeatureEntry* entry, QTreeWidgetItem* after); 00153 virtual QTreeWidgetItem* createFeatureListEntry(QTreeWidgetItem* parent, const QString& title, 00154 DtFeatureEntry* entry, QTreeWidgetItem* after); 00155 00157 virtual void restore(QTreeWidgetItem* item); 00158 00159 protected: 00160 QHash<int, DtFeatureEntry*> myFidList; 00161 QHash<QString, QTreeWidgetItem*> myGroups; 00162 00163 bool myOnByDefault; 00164 }; 00165 00166 #endif