VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
diGuyConfigurationWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
14 #include "ui_diGuyConfigurationWidgetUi.h"
15 #endif
16 
17 #include <QtWidgets/QWidget>
18 #include <QtCore/QString>
19 #include <QtCore/QHash>
20 
21 #include <vector>
22 
23 
25 class QListWidget;
30 class DtDiGuyInformation;
31 
45 {
46  Q_OBJECT
47 
48 public:
49 
51  DtDiGuyConfigurationWidget(makVrv::DtDe& de, QWidget* parent = 0, const Qt::WindowFlags& flags = 0);
52 
54  virtual ~DtDiGuyConfigurationWidget();
55 
57  virtual bool init();
59  virtual void setUpCharacterTypes();
62  virtual void setAppearancesFromCharacter(const QString & characterType);
65  virtual void setUpRandomAppearancesMap(DtRwNLengthStringVector * randomList, bool checkToSelect = true);
68  virtual void setHandItemsFromCharacter(const QString & characterType);
70  virtual void setUpRandomHandItemsMap(DtRwNLengthStringVector * randomList, bool checkToSelect = true);
73  virtual void setHeadsFromCharacterTypeAndAppearance(const QString & characterType, const QString &appearance);
75  virtual void setUpRandomHeadsMap(DtRwNLengthStringVector * randomList, bool checkToSelect = true);
77  virtual void setUpAnimationsFromCharacter(const QString & character);
78 
81  virtual void setUseRandomAppearances(bool random);
82  virtual bool useRandomAppearances();
83 
84  virtual void setUseRandomHandItems(bool random);
85  virtual bool useRandomHandItems();
86 
87  virtual void setUseRandomHeads(bool random);
88  virtual bool useRandomHeads();
89 
91  virtual void setCurrentCharacter(const QString & characterType);
92  virtual DtString getCurrentCharacter();
93 
98  virtual void setCurrentAppearance(const QString & appearance, bool forceUpdate = false, bool emitChange = true);
100  virtual QString getCurrentAppearance();
102  virtual DtString randomAppearance() const;
103 
107  virtual void setCurrentHandItem(const QString & handItem, bool forceUpdate = false, bool emitChange = true);
109  virtual QString getCurrentHandItem();
111  virtual DtString randomHandItem() const;
112 
116  virtual void setCurrentHead(const QString & head, bool forceUpdate = false, bool emitChange = true);
118  virtual QString getCurrentHead();
120  virtual DtString randomHead() const;
121 
122  virtual void setCurrentAnimation(const QString & action);
123  virtual DtString getCurrentAnimation();
124  virtual AlternateNamesList& getTaskableAnimationList();
125 
128  virtual bool randomAppearancesChanged();
129  virtual void setRandomAppearancesChanged(bool b);
130 
133  virtual void getRandomAppearances(DtRwNLengthStringVector * randomList, bool getAll = false);
134 
137  virtual bool randomHandItemsChanged();
138  virtual void setRandomHandItemsChanged(bool b);
139 
141  virtual void getRandomHandItems(DtRwNLengthStringVector * randomList, bool getAll = false);
142 
145  virtual bool randomHeadsChanged();
146  virtual void setRandomHeadsChanged(bool b);
147 
149  virtual void getRandomHeads(DtRwNLengthStringVector * randomList, bool getAll = false);
150 
152  virtual bool blockSignals(bool block);
153  virtual void preserveCurrentRandomValues(bool preserve);
154 
155 protected:
156 
158 
160  virtual int findIndexFromString(const QString & name, const AlternateNamesList* list);
163  virtual DtString getCurrentOrRandomValue(QComboBox *box, QHash<QString, bool> *map, bool *retWasRandom = NULL);
166  virtual DtString getAllowedRandomValue(const QHash<QString, bool> *map) const;
167  virtual bool isAllowedRandomValue(const QString &value, const QHash<QString, bool> *map);
170  virtual void mergeInOldMap(QHash<QString, bool> *currentMap, const QHash<QString, bool> *oldMap);
171 
172 signals:
173  void characterChanged();
174  void appearanceChanged();
175  void handItemChanged();
176  void headChanged();
177  void defaultAnimationChanged();
178  void randomAppearanceListChanged();
179  void randomHandItemListChanged();
180  void randomHeadListChanged();
181  void appearancesReset();
182  void handItemsReset();
183  void headsReset();
184  void animationsReset();
185  void generateAll();
186  void changeDiGuyData(const DtDiGuyInformation&);
187 
188 public slots:
190  virtual void setDiGuyCharString(int);
191  virtual void setDiGuyCharToolTip(int);
192 
195  virtual void newCharacterTypeSelected(int typeIndex);
197  virtual void newAppearanceSelected(const QString &appearance);
200  virtual void updateRandomAppearancesMap(QListWidget *list);
202  virtual void newHandItemSelected(const QString &);
203  virtual void updateRandomHandItemsMap(QListWidget *);
205  virtual void newHeadSelected(const QString &);
206  virtual void updateRandomHeadsMap(QListWidget *);
207  virtual void setDiGuyAnimationString(int);
208  virtual void setDiGuyAnimationToolTip(int);
209  virtual void updateDefaultAnimation(int);
210 
212  virtual void createRandomAppearancesDialog();
214  virtual void closedRandomAppearancesDialog();
215 
216  virtual void createRandomHandItemsDialog();
218  virtual void closedRandomHandItemsDialog();
219 
220  virtual void createRandomHeadsDialog();
221  virtual void closedRandomHeadsDialog();
222 
224  virtual void createAppearanceFilterDialog();
225 
228  virtual void filterBoxPopulated(const std::vector<DtString>&);
230  virtual void filterItemSelected(int index, QString &val);
231 
233  virtual void reRandomizeCharacter();
234 
236  virtual DtString firstUsableFrom(const QHash<QString, bool>&) const;
237 
238  virtual void resetCharacterTypes();
239 
240 private:
243 
246 
247 public:
249  Ui::DIGuyConfigurationWidgetUi myUiImpl;
250 
251 protected:
252 
253  static QString sQStringRandom;
254 
264 
268  QHash<QString, bool> myRandomAppearancesMap;
269 
272  QHash<QString, bool> myRandomHandItemsMap;
273 
276  QHash<QString, bool> myRandomHeadsMap;
280  //Just the taskable animations
287 
289  static const int numTypeMapFieldCombos = 6;
291  int myTypeMapFieldIndices[numTypeMapFieldCombos];
293  DtString myTypeMapFieldValues[numTypeMapFieldCombos];
294 
297 
300 
303 
305 
307 };
bool myPreserveCurrentRandomValues
Definition: diGuyConfigurationWidget.h:286
Definition: diGuyRandomHeadsDialog.h:20
QHash< QString, bool > myRandomHeadsMap
Definition: diGuyConfigurationWidget.h:276
Ui::DIGuyConfigurationWidgetUi myUiImpl
The code generated from the underlying .ui file.
Definition: diGuyConfigurationWidget.h:249
DtDiGuyDescriptionComboBox * myCharactersBox
Replaces the &quot;Character Type&quot; Qt combo box (found in .ui file)
Definition: diGuyConfigurationWidget.h:285
bool myRandomHandItemsChanged
Definition: diGuyConfigurationWidget.h:271
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
QString myLastHeadSelected
Definition: diGuyConfigurationWidget.h:263
DtString myCurrentHandItem
Definition: diGuyConfigurationWidget.h:258
DtDiGuyRandomHandItemsDialog * myRandomHandItemsDialog
Holds pointer to dialog while it exists, otherwise NULL.
Definition: diGuyConfigurationWidget.h:299
bool myUseRandomHandItems
Definition: diGuyConfigurationWidget.h:270
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:26
Definition: diGuyRandomHandItemsDialog.h:20
bool myUseRandomAppearances
Definition: diGuyConfigurationWidget.h:265
const AlternateNamesList * myCharacterTypesList
Used to match DI-Guy names to user-friendly names.
Definition: diGuyConfigurationWidget.h:278
QString myLastAppearanceSelected
These can be &quot;random&quot;. They indicate the last selections made in the dropdowns.
Definition: diGuyConfigurationWidget.h:261
makVrv::DtDe & myDe
Definition: diGuyConfigurationWidget.h:304
DtDiGuyRandomAppearancesDialog * myRandomAppearancesDialog
Holds pointer to dialog while it exists, otherwise NULL.
Definition: diGuyConfigurationWidget.h:296
bool myRandomAppearancesChanged
Definition: diGuyConfigurationWidget.h:266
bool myUseRandomHeads
Definition: diGuyConfigurationWidget.h:274
DtString myCurrentAppearance
Definition: diGuyConfigurationWidget.h:257
DtString myCurrentHead
Definition: diGuyConfigurationWidget.h:259
AlternateNamesList myTaskableAnimationsList
Definition: diGuyConfigurationWidget.h:281
bool myIsRandom
Definition: diGuyConfigurationWidget.h:306
QHash< QString, bool > myRandomHandItemsMap
Definition: diGuyConfigurationWidget.h:272
DtString myCurrentCharacterType
These will always have specific values or be empty (&quot;&quot;). They won&#39;t be &quot;random&quot;.
Definition: diGuyConfigurationWidget.h:256
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
QHash< QString, bool > myRandomAppearancesMap
The keys are appearances. The value indicates whether the appearance is checked or not...
Definition: diGuyConfigurationWidget.h:268
Definition: diGuyRandomAppearancesDialog.h:32
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains information about the current DI-Guy character instance and some of its available options...
Definition: diGuyInformation.h:20
QString myLastHandItemSelected
Definition: diGuyConfigurationWidget.h:262
This class manages the dialog box that appears when the user modifies a DI-Guy entity in the Simulati...
Definition: diGuyConfigurationWidget.h:44
const AlternateNamesList * myAnimationsList
Definition: diGuyConfigurationWidget.h:279
DtDiGuyRandomHeadsDialog * myRandomHeadDialog
Holds pointer to dialog while it exists, otherwise NULL.
Definition: diGuyConfigurationWidget.h:302
Definition: diGuyDescriptionComboBox.h:16
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:32
static QString sQStringRandom
Definition: diGuyConfigurationWidget.h:253
DtDiGuyDescriptionComboBox * myAnimationsBox
Replaces the &quot;Default Animation&quot; Qt combo box (found in .ui file)
Definition: diGuyConfigurationWidget.h:283
bool myRandomHeadsChanged
Definition: diGuyConfigurationWidget.h:275

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)