VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/entityEditorList.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)