![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtMultiMapEditorWidget.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCoreQt/vrvCoreQt.h> 00015 #include <vrvCoreQt/DtMultiMapEditorInterface.h> 00016 #include <QtCore/QStringList> 00017 #include <QtGui/QWidget> 00018 #include <map> 00019 00020 class QHBoxLayout; 00021 class QLabel; 00022 class QLineEdit; 00023 class QPushButton; 00024 class QTreeWidget; 00025 class QTreeWidgetItem; 00026 class QVBoxLayout; 00027 class QAction; 00028 class QMenu; 00029 00030 namespace makVrv 00031 { 00034 class DT_DLL_VRVCOREQT DtMultiMapEditorWidget : public QWidget, 00035 public DtMultiMapEditorInterface 00036 { 00037 Q_OBJECT; 00038 public: 00039 00041 DtMultiMapEditorWidget(DtDe& de, QWidget* parent, Qt::WindowFlags f = 0); 00042 00043 //DTOR 00044 virtual ~DtMultiMapEditorWidget(); 00045 00047 virtual void setColumnTitles( QString keyTitle,QStringList valueTitles); 00048 00050 virtual QString columnTitle(int col) const; 00051 00054 virtual void setPossibleValues(QStringList values,int column = 1); 00055 00057 const QStringList& possibleValues(int column); 00058 00060 virtual void addValue(const std::string& key, const std::string& value, 00061 int index = 1); 00062 00064 virtual void changeValue(const std::string& key, const std::string& oldValue, 00065 const std::string& value, int index = 1); 00066 00068 virtual void deleteValue(const std::string& key, const std::string& value); 00069 00072 virtual void replaceValue(const std::string& key, const std::string& oldValue, 00073 const std::string& newValue); 00074 00076 virtual void clearValues(); 00077 00079 virtual void sortItems(); 00080 00082 virtual void setTitle(const QString&); 00083 00085 virtual void unableToRenameParameter(const std::string& oldName); 00086 00088 virtual void selectValue(const std::string& key,const std::string& value); 00089 00091 virtual void selectFirstValue(const std::string& key); 00092 00096 virtual void renameKey(const std::string& oldkey, const std::string& value, 00097 const std::string& newkey); 00098 00100 virtual QWidget* widget(); 00101 00102 protected slots: 00103 00104 virtual void on_myTreeWidget_itemActivated(QTreeWidgetItem * item, int column); 00105 virtual void on_myTreeWidget_itemClicked(QTreeWidgetItem * item, int column); 00106 virtual void on_myTreeWidget_itemChanged(QTreeWidgetItem * item, int column); 00107 virtual void on_myAddButton_clicked(); 00108 virtual void on_myDeleteButton_clicked(); 00109 virtual void on_keySelected(QAction* action); 00110 00111 virtual void on_myTreeWidget_itemSelectionChanged(); 00112 00113 void editParameterName( QString nameInData ); 00114 00115 protected: 00116 00117 void setupGui(); 00118 00119 QTreeWidgetItem* findItem( const std::string& key, const std::string& value ); 00120 bool selectedInstanceNameAndValue(QString& name,QString& value) const; 00121 00122 virtual void setValid(const std::string& name, const std::string& value, 00123 bool valid, const QString& errorText); 00124 00125 protected: 00126 00127 DtDe& myDe; 00128 QVBoxLayout* myMainLayout; 00129 QHBoxLayout* myButtonLayout; 00130 QTreeWidget* myTreeWidget; 00131 QPushButton* myAddButton; 00132 QPushButton* myDeleteButton; 00133 QMenu* myMenu; 00134 QLabel* myTitle; 00135 00136 typedef std::multimap<std::string,QTreeWidgetItem*> FastTreeLoopkupMap; 00137 FastTreeLoopkupMap myFastItemLookup; 00138 std::map<int,QStringList> myPossibleValueMap; 00139 }; 00140 }