![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrfTaskSetMenu.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00009 #pragma once 00010 00011 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00012 #include <vrfGuiCoreQt/DtSelectionEnabledMenu.h> 00013 00014 #include <vrvCoreQt/DtMenuItem.h> 00015 #include <vrvCore/DtSelectionManager.h> 00016 00017 #include <QtGui/QAction> 00018 00019 class QEvent; 00020 class DtSetDataRequest; 00021 class DtSimTask; 00022 00023 namespace makVrv 00024 { 00025 class DtSimEntry; 00026 } 00027 00028 namespace makVrf 00029 { 00030 class DtVrfBackendState; 00031 class DtVrfTaskSetMenu; 00032 00039 class DT_DLL_VRFGUICOREQT DtVrfTaskSetMenuItem : public makVrv::DtMenuItem 00040 { 00041 Q_OBJECT 00042 00043 public: 00047 DtVrfTaskSetMenuItem(const std::string&, makVrv::DtDe&); 00048 00050 virtual ~DtVrfTaskSetMenuItem(); 00051 00052 protected: 00063 virtual QAction* registerMenuItem(const QString& title, QWidget* parent, int iAction, const QString& iconBaseName); 00064 00066 virtual void on_triggered(); 00067 00068 protected: 00069 makVrv::DtDe& myDe; 00070 }; 00071 00076 class DT_DLL_VRFGUICOREQT DtVrfTaskSetAction : public QAction 00077 { 00078 Q_OBJECT 00079 00080 public: 00083 DtVrfTaskSetAction(QWidget* parent, makVrv::DtDe&); 00084 00086 virtual ~DtVrfTaskSetAction(); 00087 00090 void setParentMenu(DtVrfTaskSetMenu* p) 00091 { 00092 myParentMenu = p; 00093 } 00094 00097 DtVrfTaskSetMenu* parentMenu() 00098 { 00099 return myParentMenu; 00100 } 00101 00102 public: 00106 virtual void slot_onSendSetRequest(std::vector<std::string> names, const DtSetDataRequest&); 00107 00112 boost::signal<void (std::vector<std::string> names, const DtSetDataRequest&)> signal_sendSetRequest; 00113 00117 virtual void slot_onSendTaskRequest(std::vector<std::string> names, const DtSimTask&); 00118 00123 boost::signal<void (std::vector<std::string> names, const DtSimTask&)> signal_sendTaskRequest; 00124 00132 boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*, 00133 const std::vector<makVrv::DtSimEntry*>&, bool)> signal_createTaskSetDialog; 00134 00135 public: 00138 virtual void on_triggered(); 00139 00140 protected: 00141 makVrv::DtDe& myDe; 00142 DtVrfTaskSetMenu* myParentMenu; 00143 }; 00144 00151 class DT_DLL_VRFGUICOREQT DtVrfTaskSetMenu : public DtSelectionEnabledMenu 00152 { 00153 Q_OBJECT 00154 00155 public: 00156 00158 DtVrfTaskSetMenu(const std::string& className, const QString& title, QWidget* parent, makVrv::DtDe&); 00159 00161 virtual ~DtVrfTaskSetMenu(); 00162 00163 virtual void setValidate(bool b); 00164 virtual void setPartOfPlanDialog(bool b); 00165 virtual void setEntitySet(const makVrv::DtSelectionManager::IdSet& set); 00166 virtual void setMenuItemValidation(bool b); 00167 00170 virtual void setHideDisabledItem(bool yesNo); 00171 00173 virtual void setSignalDialogCreation(bool b); 00174 00175 bool signalDialogCreation() const 00176 { 00177 return mySignalDialogCreation; 00178 } 00179 00182 virtual void setSignalTaskSetRequests(bool b); 00183 00184 bool signalTaskSetRequests() const 00185 { 00186 return mySignalTaskSetRequests; 00187 } 00188 00189 bool partOfPlanDialog() const 00190 { 00191 return myPartOfPlanDialog; 00192 } 00193 00194 const makVrv::DtSelectionManager::IdSet& entitySet() const 00195 { 00196 return myEntitySet; 00197 } 00198 00199 void setParentMenu(DtVrfTaskSetMenu* p) 00200 { 00201 myParentMenu = p; 00202 } 00203 00204 DtVrfTaskSetMenu* parentMenu() 00205 { 00206 return myParentMenu; 00207 } 00208 00209 public: 00210 boost::signal<void (std::vector<std::string> names, const DtSetDataRequest&)> signal_sendSetRequest; 00211 boost::signal<void (std::vector<std::string> names, const DtSimTask&)> signal_sendTaskRequest; 00212 boost::signal<void (QAction*)> signal_validateMenuItem; 00213 00214 virtual void slot_sendSetRequest(std::vector<std::string> names, const DtSetDataRequest& s); 00215 virtual void slot_sendTaskRequest(std::vector<std::string> names, const DtSimTask& s); 00216 00218 virtual void slot_createTaskSetDialog(int menuItemType, QWidget*, DtVrfTaskSetAction*, 00219 const std::vector<makVrv::DtSimEntry*>&, bool); 00220 boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*, 00221 const std::vector<makVrv::DtSimEntry*>&, bool, DtVrfTaskSetMenu*)> signal_createTaskSetDialog; 00222 00223 00225 virtual void signalCommandDialogCreation(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction, 00226 const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan); 00227 boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*, 00228 const std::vector<makVrv::DtSimEntry*>&, bool, DtVrfTaskSetMenu*)> signal_createCommandDialog; 00229 00230 public slots: 00231 virtual void validate(); 00232 00233 protected: 00234 virtual bool eventFilter(QObject *, QEvent *); 00235 virtual void actionAdded(QEvent*); 00236 00237 virtual void validateMenuItems(int terrainPatchOffset); 00238 virtual void slot_backendUpdated(const DtVrfBackendState&, int); 00239 virtual bool available(int menu, std::vector<int>& l) const; 00240 virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const; 00241 00244 virtual std::vector<std::string> whoShouldITask(const std::vector<std::string>& name, const DtSimTask& newTask); 00245 00246 protected: 00247 std::map<int, QAction*> myTaskSetActions; 00248 makVrv::DtSelectionManager::IdSet myEntitySet; 00249 bool myValidate; 00250 bool myMenuItemValidation; 00251 bool myPartOfPlanDialog; 00252 bool mySignalTaskSetRequests; 00253 bool mySignalDialogCreation; 00254 std::vector<DtVrfTaskSetMenu*> myRadioMenus; 00255 DtVrfTaskSetMenu* myParentMenu; 00256 std::string myClassName; 00257 bool myHideDisabledItems; 00258 }; 00259 }