![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2004 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: selectionWidget.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DTSELECTIONWIDGET_H_ 00013 #define DTSELECTIONWIDGET_H_ 00014 00015 #include "tmqt/ui_selectionWidgetUi.h" 00016 #include "tmqt/filteredListView.h" 00017 #include "symbolMapper/modelData.h" 00018 00019 #include <QtCore/QHash> 00020 00021 class DtTMMapArea; 00022 class DtFilter; 00023 00031 00032 #include "tmqt/tmqtDefines.h" 00033 class DT_DLL_tmqt DtSelectionWidget : public QWidget 00034 { 00035 00036 Q_OBJECT 00037 00038 public: 00039 00041 DtSelectionWidget(QWidget* parent = NULL, const Qt::WindowFlags& f = 0); 00042 00044 virtual ~DtSelectionWidget(); 00045 00047 virtual bool init(DtTMMapArea* map, int iNumListBoxes = 1); 00048 00050 virtual QVector<DtModelKey> selectedObjects(int iListBox = -1) const; 00051 00052 virtual QString selectedName(unsigned int iListBox = 0); 00053 virtual bool selectedNames(QString& name1, QString& name2); 00054 00055 virtual DtFilter* addFilter(const QString& name, const DtEntityMapperKey& key, unsigned int iForListBox = 0, bool executeForFilter = false); 00056 virtual DtFilter* addFilter(DtFilter* filter, unsigned int iForListBox = 0, bool executeForFilter = false); 00057 00059 virtual void watchDictionary(const DtModelDataDict* dict, unsigned int iListBox = 0); 00060 virtual void stopWatching(const DtModelDataDict* dict, unsigned int iListBox = 0); 00061 00064 virtual void addForceLevelItem(int iForce, unsigned int iForListBox = 0); 00065 00066 virtual DtFilteredListView* filteredListView(unsigned int iListBox = 0); 00067 00068 virtual void clearAllSelections(); 00069 virtual QString filterFor(const QString& windowTitle, const QString& listTitle); 00070 00073 virtual void addFinalFilter(const DtFilter& f); 00074 virtual void removeFinalFilter(); 00075 00077 virtual void removeButtons(); 00078 virtual void showButtons(); 00079 00081 virtual void makeConnections(bool connectMap = true); 00082 virtual void disconnectConnections(); 00083 00084 void setContinueAccept(bool); 00085 bool continueAccept() const; 00086 00088 virtual void setSelectedName(const QString& name, int iListBox = 0); 00089 00090 protected: 00091 virtual bool initConnections(); 00092 virtual bool initConnections(DtFilteredListView*); 00093 00094 virtual bool disconnectConnections(DtFilteredListView*); 00095 00098 virtual DtFilteredListView* createFilteredListView(unsigned int iForListBox); 00099 00100 virtual bool initFilters(unsigned int iForListBox = 0); 00101 virtual QString listTitle(unsigned int iForListBox = 0) const; 00102 virtual QString listCaption(unsigned int iForListBox = 0) const; 00103 00104 virtual bool initSelectionMode(); 00105 virtual QString windowTitle() const; 00106 00107 virtual DtFilteredListView* createFilteredListView(); 00108 00109 signals: 00110 00111 void selectionUpdated(const QVector<DtModelKey>& d); 00112 void selectionChanged(const QVector<DtModelKey>& d); 00113 void cancelActivated(); 00114 void accepted(); 00115 00116 public slots: 00117 00118 virtual void accept(); 00119 virtual void cancelAndClose(); 00120 00121 virtual void listSelectionUpdated(const QVector<DtModelKey>& d); 00122 virtual void listSelectionChanged(const QVector<DtModelKey>& d); 00123 00124 virtual void mapAreaSelectionUpdated(const QVector<DtModelKey>&); 00125 00129 virtual void mapAreaSelectionChanged(const QVector<DtModelKey>&); 00130 00132 virtual void filterChanged(DtFilteredListView* view, const QString& filter); 00133 00135 virtual void comboTextChanged(DtFilteredListView* view, const QString& filter); 00136 00137 protected: 00138 00139 virtual void keyPressEvent(QKeyEvent *e); 00140 virtual void closeEvent(QCloseEvent *e); 00141 00142 public: 00143 Ui::SelectionWidgetUi myUiImpl; 00144 00145 protected: 00146 DtTMMapArea* myMapArea; 00147 QList<DtFilteredListView*> myFilteredListViews; 00148 bool myClosing; 00149 00150 static DtEntityMapperKey gForceLevel; 00151 static QHash<QString, QString> gCurrentFilter; 00152 00153 bool myReflectingToMap; 00154 00156 bool mySelectedOne; 00157 bool myContinueAccept; 00158 }; 00159 00160 inline void DtSelectionWidget::setContinueAccept(bool b) 00161 { 00162 myContinueAccept = b; 00163 } 00164 00165 inline bool DtSelectionWidget::continueAccept() const 00166 { 00167 return myContinueAccept; 00168 } 00169 00170 #endif