VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
askUserQuestionManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
16 #include <vrvCore/DtUniqueID.h>
18 #include <vrvCore/DtStateView.h>
19 #include <vrvCore/DtEntityState.h>
20 #include <vrfutil/rwUserQuestion.h>
23 
24 #endif
25 
26 #include <QDialog>
27 
28 class QLabel;
29 class DtSimMessage;
30 
31 namespace makVrf
32 {
34  {
35  Q_OBJECT
36 
37  public:
39  DtAskUserQuestionDialog(QWidget*, const DtRwUserQuestion& question);
40 
42  virtual ~DtAskUserQuestionDialog();
43 
45  virtual void modifyDialogForButtonResponse();
46 
48  virtual void modifyDialogForRadioButtonResponse();
49 
51  virtual void modifyDialogForComboBoxResponse();
52 
54  virtual void setMessage(const QString&);
55 
57  {
58  myElementID = id;
59  }
60 
62  {
63  return myElementID;
64  }
65 
66  void setQuestionId(int i)
67  {
68  myQuestionId = i;
69  }
70 
71  int questionId() const
72  {
73  return myQuestionId;
74  }
75 
76  boost::signals2::signal<void (DtAskUserQuestionDialog*, int)> signal_accepted;
77  boost::signals2::signal<void (DtAskUserQuestionDialog*)> signal_rejected;
78 
79  protected:
80  virtual void closeEvent(QCloseEvent* e);
81  virtual void reject();
82  virtual void accept();
83 
84  protected slots:
85  virtual void buttonAccept();
86  virtual void radioButtonAccepted();
87  virtual void comboBoxAccepted();
88 
89  protected:
93 
94  public:
96  int myChoice;
97  };
98 
103  {
104  public:
107 
109  virtual ~DtAskUserQuestionManager();
110 
112  static DtAskUserQuestionManager& instance(makVrv::DtDe& de);
113 
115  static void registerInstance(makVrv::DtDe& de, DtAskUserQuestionManager*);
116 
117  public:
120  virtual void askUserQuestion(makVrv::DtElementID, int questionId);
121 
123  virtual DtAskUserQuestionDialog* createQuestionDialog(const DtRwUserQuestion&, const QString& entityName);
124 
129  virtual void askQuestionsFor(const makVrv::DtSelectionManager::IdSet&);
130 
132  virtual void stopAskingQuestions();
133 
136  virtual void askNextQuestion();
137 
138  protected:
140  virtual DtAskUserQuestionDialog* createDialog(QWidget* parent, const DtRwUserQuestion& question) const;
141 
142  virtual void slot_accepted(DtAskUserQuestionDialog*, int choice);
143  virtual void slot_rejected(DtAskUserQuestionDialog*);
144  virtual void cleanupDialogReference(DtAskUserQuestionDialog*);
145  virtual DtString scriptIdFor(makVrv::DtElementID id, int questionId) const;
146  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
147  virtual void processUserQuestionOperation(DtSimMessage* msg);
148  virtual void cleanupDialogReference(makVrv::DtUniqueID, int questionId, bool deleteDialog = true);
149 
150  protected:
152 
154  {
155  QuestionStruct() : dialog(0) {};
156  QuestionStruct(DtAskUserQuestionDialog* d, const DtIfAskUserQuestion& q) : dialog(d), question(q) {};
157  QuestionStruct(const QuestionStruct& orig) : dialog(orig.dialog), question(orig.question) {};
158 
159  DtAskUserQuestionDialog* dialog;
161  };
162 
163  typedef std::map<int, QuestionStruct> QuestionDialogs;
164  typedef std::map<makVrv::DtElementID, QuestionDialogs> EntityQuestionDialogs;
165 
168 
169  typedef std::map<makVrv::DtElementID, std::vector<int> > PendingQuestionsToAsk;
171  PendingQuestionsToAsk::iterator myEntityAnsweringIterator;
172  };
173 }
PendingQuestionsToAsk myPendingQuestionsToAsk
Definition: askUserQuestionManager.h:170
QuestionStruct()
Definition: askUserQuestionManager.h:155
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
void setQuestionId(int i)
Definition: askUserQuestionManager.h:66
EntityQuestionDialogs myEntityQuestionDialogs
Definition: askUserQuestionManager.h:166
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
boost::signals2::signal< void(DtAskUserQuestionDialog *, int)> signal_accepted
Definition: askUserQuestionManager.h:76
makVrv::DtElementID elementID() const
Definition: askUserQuestionManager.h:61
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
std::map< makVrv::DtElementID, std::vector< int > > PendingQuestionsToAsk
Definition: askUserQuestionManager.h:169
int questionId() const
Definition: askUserQuestionManager.h:71
makVrv::DtElementID myElementID
Definition: askUserQuestionManager.h:91
DtRwUserQuestion myQuestion
Definition: askUserQuestionManager.h:90
The DtAskUserQuestionManager will manage dialogs that will ask user questions based upon messages sen...
Definition: askUserQuestionManager.h:102
Definition: askUserQuestionManager.h:153
makVrv::DtSignalConnectionManager myConnectionManager
Definition: askUserQuestionManager.h:167
boost::signals2::signal< void(DtAskUserQuestionDialog *)> signal_rejected
Definition: askUserQuestionManager.h:77
Contains makVrv::DtVirtualBaseClass class.
QuestionStruct(const QuestionStruct &orig)
Definition: askUserQuestionManager.h:157
DtIfAskUserQuestion question
Definition: askUserQuestionManager.h:160
File: simMsg.h.
Definition: simMessage.h:35
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::map< int, QuestionStruct > QuestionDialogs
Definition: askUserQuestionManager.h:163
Contains makVrv::DtVrlinkSimulatedEntityState class.
QuestionStruct(DtAskUserQuestionDialog *d, const DtIfAskUserQuestion &q)
Definition: askUserQuestionManager.h:156
Base class to provide boost signal/slot management.
PendingQuestionsToAsk::iterator myEntityAnsweringIterator
Definition: askUserQuestionManager.h:171
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Definition: askUserQuestionManager.h:33
int myQuestionId
Definition: askUserQuestionManager.h:92
void setElementID(makVrv::DtElementID id)
Definition: askUserQuestionManager.h:56
makVrv::DtDe & myDe
Definition: askUserQuestionManager.h:151
int myChoice
Definition: askUserQuestionManager.h:96
DtIfAskUserQuestion class will allow the back-end to send a message to the front end to ask the user ...
Definition: ifAskUserQuestion.h:23
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::map< makVrv::DtElementID, QuestionDialogs > EntityQuestionDialogs
Definition: askUserQuestionManager.h:164
QLabel * myMessage
Definition: askUserQuestionManager.h:95
DtRwUserQuestion contains the contents of a question that is asked to the user.
Definition: rwUserQuestion.h:22

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)