VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
conditionalMenu.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrvUtil/signalslib.h>
16 
18 
19 #include <QtWidgets/QMenu>
20 
21 class QEvent;
22 class DtSimStatement;
23 class DtRwTriggersList;
24 
25 namespace makVrf
26 {
27  class DtVrfConditionalExpressionCreator;
28  class DtVrfConditionalAction;
29  class DtConditionalMenu;
30 
32  {
33  public:
34  DtVrfConditionalMenu(makVrv::DtDe& de, const QString& title, QWidget* parent);
35 
36  virtual ~DtVrfConditionalMenu();
37 
38  boost::signal<void (const DtSimStatement&)> signal_addConditional;
39  boost::signal<void (const DtSimStatement&)> signal_addTrigger;
40 
41  void setEntitySet(const makVrv::DtSelectionManager::IdSet& i)
42  {
43  myEntitySet = i;
44  }
45 
46  const makVrv::DtSelectionManager::IdSet& entitySet() const
47  {
48  return myEntitySet;
49  }
50 
51  virtual void setPartOfGlobalPlan(bool);
52  virtual bool partOfGlobalPlan() const;
53 
54  virtual void setTriggers(DtRwTriggersList*);
55  DtRwTriggersList* triggers() const { return myTriggers; };
56 
57  virtual void setConditionalMenu(DtConditionalMenu*);
58  DtConditionalMenu* conditionalMenu() { return myConditionalMenu; };
59 
60  protected:
61  virtual void slot_onConditionComplete(const DtSimStatement&);
62 
63  protected:
64  virtual bool eventFilter(QObject *, QEvent *);
65  virtual void actionAdded(QEvent*);
66  virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
67 
68  protected:
70  std::vector<DtVrfConditionalAction*> myDisconnectFrom;
75  };
76 
78  {
79  public:
80 
83 
85  virtual ~DtConditionalMenu();
86 
88  virtual QMenu* createMenu(makVrv::DtDe&, QWidget* parent);
89 
90  static DtConditionalMenu& instance(makVrv::DtDe&);
91 
95  static DtConditionalMenu* menuInstance(makVrv::DtDe&);
96 
97  virtual DtConditionalMenu* newInstance();
98 
99  public:
101  virtual void addCondition(const std::string& p, DtVrfConditionalExpressionCreator* i);
102  virtual void addConditionAfter(const std::string& p, const std::string& after, DtVrfConditionalExpressionCreator* i);
103  virtual void addConditionBefore(const std::string& p, const std::string& before, DtVrfConditionalExpressionCreator* i);
104  virtual void removeCondition(const std::string& r);
105 
106  public:
108  virtual DtSubMenuConfiguration& menuConfiguration();
109 
111  virtual DtConfigurableMenuAssembler& menuAssembler();
112 
113  protected:
115  virtual void createMenuConfiguration(makVrv::DtDe& de);
116 
117  protected:
121  };
122 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)