VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
shapeObjectDefinitionDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
13 
17 #include "shapeObjectDefinitionWidgetUi.hpp"
22 #endif
23 #include <boost/signals2.hpp>
24 
25 #include <QtWidgets/QItemDelegate>
26 #include <QtWidgets/QTableWidget>
27 
28 class DtReferenceEllipsoid;
29 class QDialog;
30 class QDoubleValidator;
31 class QRegExpValidator;
32 class DtSetDataRequest;
33 
34 namespace makVrf
35 {
36  class DtOverlayParentEntryWidget;
37  class DtEmbarkationWidget;
38  class DtShapeObjectDefinitionDialog;
39  class DtVrfObjectManipulationHandlerBaseClass;
40  class DtAngleEntryWidget;
41  class DtExtendedLabelsEntryWidget;
42  class DtForceSelectionEntryWidget;
43  class DtShapeValidatingTableWidget;
44  class DtAltitudeEntryWidget;
45  class DtSmallRangeEntryWidget;
46  class DtSimpleDoubleVariableWidget;
47 
52  {
53 
54  public:
55 
58 
61 
63  virtual void createConnections();
64 
66  virtual void terminateConnections();
67 
69  virtual void processLocationEdited(int currentRow=-1);
70 
72  virtual void processSelectLocation(int);
73 
75  virtual void processAddNewPoint();
76 
78  virtual void processRemovePoint(int index);
79 
81  virtual void processObjectCreation();
82 
84  virtual void processObjectUpdate();
85 
87  virtual void processDoneRequest();
88 
90  virtual void processCloseRequest();
91 
93  virtual void processCellEdited(int, int);
94 
95  virtual void onAltitudeSet(int, int);
96 
98  virtual void processCellEntered(int, int);
99 
101  virtual void processNamePrefixEdited();
102 
104  virtual void processLabelEdited(const std::string& name);
105 
107  virtual void processExtendedLabelsEdited(const std::map<int, DtString>& name);
108  virtual void processObjectSpecificLabelEdited(int index, QString marker, QString value);
109 
111  virtual void processItemSelectionChanged();
112 
116  virtual void processPopulateDialog(const makVrv::DtUniqueID& id );
117 
118  virtual void headingChanged();
119 
120  virtual bool inGeocentric() const;
121 
123  virtual void setupGui();
124 
126  virtual void updateLocations(const std::vector<DtGeodeticCoord>& locs);
127 
129  virtual bool isLine() const;
130 
132  virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd);
133 
135  virtual void populateOverlays();
136 
137  virtual void setForce(int);
138 
140  virtual void processAltitudeTypeChanged();
141 
142  virtual void attachToMouseChanged(bool b);
143 
144  virtual DtGeodeticCoord convertToGeodetic(const DtVector&) const;
145  virtual DtVector convertToLocal(const DtGeodeticCoord&) const;
146 
147  virtual void adjustAltitudesBy(double);
148  virtual void setAltitudesTo(DtAltitudeClampType, double);
149 
151  virtual void processItemAdded(int);
152 
155  virtual void showTerrainProfile();
156 
158  virtual void slot_pointSamplingRateChanged(int);
159 
161  virtual void slot_lineWidthChanged(int);
162 
164  virtual void slot_penStyleChanged(int);
165 
167  virtual void slot_arrowDataChanged(const std::string& s);
168 
170  virtual void slot_arrowSizeChanged(double);
171 
173  virtual void slot_fillDataChanged(int);
174 
175  virtual int fillStyle() const;
176 
177  virtual void slot_onFloorChanged(double);
178  virtual void slot_onCeilingChanged(double);
179  virtual void slot_onFloorSet(double);
180  virtual void slot_onCeilingSet(double);
181 
183  virtual void reversePoints();
184  virtual void updateButtons();
185 
186  virtual void setActivationTime();
187 
189  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
190 
191  virtual void setupLabels();
192 
193  protected:
194 
196  virtual void closeDialog();
197 
198  virtual void slot_headingChangedByMouse(double headingInDeg);
199 
201  virtual void slot_onMouseLocationChanged(const DtVector& loc);
202 
204  virtual void slot_onMouseAltitudeChanged(double heading);
205 
207  virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler);
208 
210  virtual void slot_onPlacement(const DtVector& loc);
211 
213  virtual void slot_onColorChanged(int);
214 
216  virtual void slot_onLocationAdded(const DtVector& loc);
217 
219  virtual void slot_onOverlayNameChanged(const std::string& name);
220 
222  virtual void slot_onForceChanged(int);
223 
224  virtual void objectCreated();
225 
226  virtual void slot_onCoordinateSystemChanged(
228  virtual void slot_onDisplayUnitDecimalsChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int newUnit);
229 
230  virtual void slot_onUnitChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int newUnit, int oldUnit);
231 
232  virtual void restoreLocations();
233  virtual void backupLocations();
234 
235 
237  virtual void setupActivationTime(const DtSetDataRequest& setReq);
238 
240  virtual void slot_onPublishObjectChanged(bool);
241 
242  protected:
243 
246  DtReferenceEllipsoid* myReferenceForConversion;
249  std::vector<DtGeodeticCoord> myBackupLocations;
251  };
252 
253 
258  {
259 
260  Q_OBJECT
261 
262  public:
263 
265  DtShapeObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const QString& title="", DtDialogInteractionMode mode=DtCreationMode);
266 
269 
270  virtual void init(const DtEntityType&, const QString& title, bool forPlan,
272 
274  virtual void closeDialog();
275 
277  virtual void setLocationInGridFor(int row, const DtGeodeticCoord&,
280 
282  virtual bool validateDMS(const std::string& str) const;
283 
285  virtual void addLocation(const DtVector& loc, int index = -1);
286 
288  virtual void setEmbarkationAllowed( bool flag );
289 
290  virtual void clear();
291 
293  virtual void removePoint(int);
294 
296  virtual void setUseInputValidation(bool b);
297 
299  virtual void insertLocation(int index, const DtVector& loc);
300 
302  virtual void selectLocation(int index);
303 
305  virtual DtGeodeticCoord getLocation(int index);
306 
308  virtual QString getName();
309 
311  virtual void hideDialog();
312 
314  virtual int selectedPointIndex() const;
315 
317  virtual int rowCount() const;
318 
320  virtual void setAltitudeAboveTerrain(bool);
321 
323  virtual bool altitudeAboveTerrain() const;
324 
326  virtual void setAttachedToMouseVisible(bool);
327 
329  virtual void setName(const QString& name);
330 
332  virtual void setLabel(const QString& name);
333 
335  virtual void setExtendedLabels(const std::map<int, DtString>& lab);
336 
338  virtual void setLabelEntryVisible(bool);
339 
341  virtual void setNameVisible(bool flag);
342 
344  virtual void setSetActivationTimeVisible(bool flag);
345 
347  virtual void setTitle(const QString& title);
348 
350  virtual void setCreateButtonEnabled(bool flag);
351 
352  virtual void setAdjustStyleEnabled(bool);
353 
355  virtual void setCreateButtonText(const QString& text);
356 
358  virtual void setCreateButtonVisible(bool flag);
359 
361  virtual void setUpdateButtonEnabled(bool flag);
362 
364  virtual void setUpdateButtonVisible(bool flag);
365 
367  virtual void setAllowOverlaySelection(bool flag);
368 
370  virtual void setUpdateButtonText(const QString& text);
371 
373  virtual void setDoneButtonEnabled(bool flag);
374 
376  virtual void setDoneButtonVisible(bool flag);
377 
379  virtual void setShowFloorCeiling(bool);
380 
382  virtual void setFloor(double);
383  virtual double floor() const;
384  virtual void setFloorLabel(const QString&);
385 
387  virtual void setFloorIsDistance(bool);
388 
389  boost::signals2::signal<void (double)> signal_floorChanged;
390 
391  virtual void setCeiling(double);
392  virtual double ceiling() const;
393  virtual void setCeilingLabel(const QString&);
394  boost::signals2::signal<void (double)> signal_ceilingChanged;
395 
396  virtual void hideForces();
397 
399  virtual void setUpButtonVisible(bool flag);
400 
402  virtual void setDownButtonVisible(bool flag);
403 
405  virtual void setAddPointButtonVisible(bool flag);
406 
408  virtual void setAddPointButtonEnabled(bool flag);
409 
411  virtual void setAdjustAltitudeButtonVisible(bool flag);
412 
414  virtual void setAdjustAltitudeButtonEnabled(bool flag);
415 
417  virtual void setRemovePointButtonVisible(bool flag);
418 
420  virtual void setRemovePointButtonEnabled(bool flag);
421 
423  virtual void setShowStyleButton(bool flag);
424 
426  virtual void setShowColorButton(bool flag);
427 
429  virtual void setControlButtonsVisible(bool flag);
430 
432  virtual void setAttachObjectToMouse(bool);
433 
435  virtual DtDialogInteractionMode interactionMode();
436 
438  virtual void populate(const makVrv::DtUniqueID&);
439 
441  virtual void populate(const DtCreateObjectCommand* cmd);
442 
444  virtual bool blockSignals(bool);
445  bool signalsBlocked() const
446  {
447  return myBlockSignals;
448  }
449 
451  virtual void addOverlay(const QString& name, bool translate = true);
452 
454  virtual void removeOverlay(const QString& name);
455 
457  virtual void renameOverlay(const QString& oldName, const QString& newName);
458 
460  virtual void setOverlay(const QString& name);
461 
463  virtual void setPublishObjectVisible(bool);
464 
466  virtual void setPublishObject(bool);
467  virtual bool publishObject() const;
468 
470  virtual void clearOverlays();
471 
473  virtual void populateOverlays();
474 
476  virtual void setAltitudeAboveTerrain(int row, double alt);
477 
478  bool attachedToMouse() const;
479 
482  virtual double altitude(int) const;
483 
485  virtual void setAltitude(int, double, bool blocked = false);
486 
488  virtual void setAltitudeAllowed(bool);
489  virtual bool disallowsAltitudeAdjustmentBasedOnObjectCharacteristics() const;
490  bool altitudeAllowed() const
491  {
492  return myAltitudeAllowed;
493  }
494 
495  bool altitudeShown() const
496  {
497  return myAltitudeShown;
498  }
499 
501  virtual void setShowForces(bool);
502 
504  virtual void setReadOnly(bool);
505 
507  virtual void setReadOnly(int, bool);
508 
509  virtual void setColor(unsigned int color);
510 
511  virtual void setXLabel(const QString&);
512  virtual void setYLabel(const QString&);
513  virtual void setZLabel(const QString&);
514  virtual void adjustAltitudeAdjustmentDialogLabels();
515 
516  virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
518 
520  virtual void setAllowHeadingChange(bool);
521 
523  virtual void setHeading(double);
524 
526  virtual double heading() const;
527 
529  virtual void refreshLocs();
530  virtual void refreshAltitudes();
531  virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
532 
533  virtual void clearSelection();
534 
536  virtual void setForce(int force);
537 
539  virtual void addExtension(QWidget*);
540 
542  virtual void removeExtension(QWidget*);
543 
545  virtual void showPropertiesDialog(bool, bool showAttachObjectToMouse = true);
546 
548  virtual void setTerrainProfileButtonEnabled(bool);
549  virtual void setTerrainProfileButtonVisible(bool);
550 
552  virtual void includeSpacer(bool);
553  virtual bool extendedLabelsValid() const;
554 
556  virtual void setEmbarkationWidgetVisible( bool flag );
557 
559  {
560  return myEmbarkationWidget;
561  }
562 
563  virtual QSize minimumSizeHint() const;
564 
565  protected:
566 
570  virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
573 
575  virtual void setupGui();
576 
578  virtual void setupConnections();
579 
581  virtual void closeEvent(QCloseEvent *event);
582 
587  virtual QDialog* createAltitudeAdjustmentDialog();
588 
590  virtual DtShapeObjectDefinitionDialogLogic* createLogic();
591  virtual bool showAlpha() const;
592 
593  virtual void showEvent(QShowEvent*);
594 
595  virtual void getDistanceAndAltitudeDecimals(int& decimals, int& altDecimals);
596 
598  virtual DtSimpleDoubleVariableWidget* floorVariable() const;
599 
600  public slots:
601 
603  virtual void slot_onShapeLocationsCellChanged(int, int);
604 
606  virtual void slot_altitudeTypeChanged();
607 
608  protected slots:
609  virtual void slot_onFloorChanged();
610  virtual void slot_onCeilingChanged();
611  virtual void slot_onReversePoints();
612  virtual void slot_onSetActivationTime();
613  virtual void slot_onLabelEdited();
614  virtual void slot_onExtendedLabelsEdited();
615  virtual void slot_onObjectSpecificLabelsEdited(int, QString marker, QString value);
616  virtual void slot_itemSelectionChanged();
617  virtual void slot_onCreateButtonClicked();
618  virtual void slot_onUpdateButtonClicked();
619  virtual void slot_onDoneButtonClicked();
620  virtual void slot_onNamePrefixEdited();
621  virtual void slot_closePressed();
622  virtual void slot_onBtnMoveDownClicked();
623  virtual void slot_onBtnMoveUpClicked();
624  virtual void slot_onBtnAddPointClicked();
625  virtual void slot_onBtnRemovePointClicked();
626  virtual void slot_onShapeLocationsCellEntered( int, int);
627  virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
628  virtual void slot_onForceComboCurrentIndexChanged(int index);
629  virtual void slot_attachedToMouseChanged();
630  virtual void slot_onAdjustAltitudeClicked();
631  virtual void slot_onShowTerrainProfile();
632  virtual void slot_onPublishObjectChanged();
633  virtual void slot_onBtnColorClicked();
634  virtual void slot_onBtnStyleClicked();
635 
636  public:
637 
638  Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
648 
649  protected:
657  QWidget* myParent;
658  unsigned int myBackgroundColor;
659  DtEntityType myEditingType;
661  };
662 
664  {
665  public:
666  virtual DtCreateAndEditObjectDialogInterface* createDialog(makVrv::DtDe& de, QWidget* parent, const QString& title,
668 
669  virtual void initializeDialog(makVrv::DtDe& de, DtCreateAndEditObjectDialogInterface*, const DtEntityType& entityType,
671  const DtEditingType& editType);
672  };
673 
675  {
676  public:
678  virtual ~DtShapeTableValidator();
679 
680  protected:
681  virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
682  const QModelIndex &index) const;
683 
684  protected:
687  QDoubleValidator* myDoubleValidator;
688  QDoubleValidator* myLatValidator;
689  QDoubleValidator* myLonValidator;
691  };
692 
694  {
695  public:
697  virtual ~DtShapeValidatingTableWidget();
698 
700  virtual void commitData(QWidget *editor);
701  virtual bool validateDMS(const std::string&) const;
702 
703  protected:
705  };
706 }
DtEntityType myEditingType
Definition: shapeObjectDefinitionDialog.h:659
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:704
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:61
bool myShowCeilingFloor
Definition: shapeObjectDefinitionDialog.h:660
Definition: createAndEditObjectDialogInterface.h:124
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: shapeObjectDefinitionDialog.h:394
bool myActivationTimeVisible
Definition: shapeObjectDefinitionDialog.h:650
Definition: shapeObjectDefinitionDialog.h:693
Represents a new kind of dock widget: it has a &quot;pin&quot; button that allows the widget to pin/unpin from ...
Definition: autoHideDock.h:35
makVrv::DtSharedDisplayUnitsSettings::CoordSys myCoordSys
Definition: shapeObjectDefinitionDialog.h:248
Simple line text entry widget that will allow the user to enter an altitude value.
Definition: altitudeEntryWidget.h:26
DtShapeObjectDefinitionDialog * myInterface
Definition: shapeObjectDefinitionDialog.h:245
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
unsigned int myBackgroundColor
Definition: shapeObjectDefinitionDialog.h:658
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:247
Simple line text entry widget that will allow the user to enter a small range value.
Definition: smallRangeEntryWidget.h:27
DtAngleEntryWidget * myHeading
Definition: shapeObjectDefinitionDialog.h:639
DtSimCommand subclass for creating a new VrfObjects. Used for both single and multi-point objects...
Definition: createObjectCommand.h:36
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:42
This class implements the logic behind the DtShapeObjectDefinitionDialog.
Definition: shapeObjectDefinitionDialog.h:51
Definition: createAndEditObjectDialogInterface.h:29
QDialog * myAltitudeAdjustmentDialog
Definition: shapeObjectDefinitionDialog.h:656
bool altitudeShown() const
Definition: shapeObjectDefinitionDialog.h:495
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
DtDialogInteractionMode myInteractionMode
Definition: shapeObjectDefinitionDialog.h:652
QDoubleValidator * myLatValidator
Definition: shapeObjectDefinitionDialog.h:688
bool myAltitudeShown
Definition: shapeObjectDefinitionDialog.h:655
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:685
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:57
A styled version of the QTableWidget. Cells in this table widget can be styled when enabled or disabl...
Definition: DtStyledQTableWidget.h:33
Definition: simpleVariableWidget.h:316
Contains the DtSharedDisplayUnitsSettings class declaration.
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:244
DtEmbarkationWidget * embarkationWidget()
Definition: shapeObjectDefinitionDialog.h:558
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
DtShapeValidatingTableWidget * myShapeLocations
Definition: shapeObjectDefinitionDialog.h:641
bool signalsBlocked() const
Definition: shapeObjectDefinitionDialog.h:445
Widget that allows the selection of an overlay.
Definition: overlayParentEntryWidget.h:35
Simple widget that, if a location is set, will see if there is an entity under that location...
Definition: embarkationWidget.h:36
Simple line text entry widget that will allow the user to enter a heading value.
Definition: angleEntryWidget.h:26
std::vector< DtGeodeticCoord > myBackupLocations
Definition: shapeObjectDefinitionDialog.h:249
Definition: vrfObjectManipulationHandlerBaseClass.h:90
DtOverlayParentEntryWidget * myOverlaysCombo
Definition: shapeObjectDefinitionDialog.h:647
bool myBlockSignals
Definition: shapeObjectDefinitionDialog.h:653
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Ui_ShapeObjectDefinitionWidgetUi myUiImpl
Definition: shapeObjectDefinitionDialog.h:638
makVrv::DtSignalConnectionManager myConnectionManager
Definition: shapeObjectDefinitionDialog.h:250
DtAltitudeEntryWidget * myCeiling
Definition: shapeObjectDefinitionDialog.h:645
boost::signals2::signal< void(double)> signal_floorChanged
Definition: shapeObjectDefinitionDialog.h:389
DtDialogInteractionMode
Definition: createAndEditObjectDialogInterface.h:34
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: DtDisplayUnitsSettingsRecord.h:42
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:654
QDoubleValidator * myLonValidator
Definition: shapeObjectDefinitionDialog.h:689
Definition: shapeObjectDefinitionDialog.h:663
Base class to provide boost signal/slot management.
DtForceSelectionEntryWidget * myForces
Definition: shapeObjectDefinitionDialog.h:640
DtSmallRangeEntryWidget * myFloorAsWidth
Definition: shapeObjectDefinitionDialog.h:644
DtShapeObjectDefinitionDialogLogic * myLogic
Definition: shapeObjectDefinitionDialog.h:651
DtEmbarkationWidget * myEmbarkationWidget
Definition: shapeObjectDefinitionDialog.h:646
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const char int mode
Definition: ioapi.h:38
QRegExpValidator * myRegValidator
Definition: shapeObjectDefinitionDialog.h:686
Widget that will allow for entry of label and any extended labels.
Definition: extendedLabelsEntryWidget.h:30
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:72
DtExtendedLabelsEntryWidget * myExtendedLabelsEntryWidget
Definition: shapeObjectDefinitionDialog.h:642
Contains the DtDisplayUnitsSettingsRecord class declaration.
This class defines the dialog that allows the creation/update of point objects in the scenario (entit...
Definition: shapeObjectDefinitionDialog.h:257
QDoubleValidator * myDoubleValidator
Definition: shapeObjectDefinitionDialog.h:687
DtReferenceEllipsoid * myReferenceForConversion
Definition: shapeObjectDefinitionDialog.h:246
DtAltitudeEntryWidget * myFloorAsAltitude
Definition: shapeObjectDefinitionDialog.h:643
Definition: shapeObjectDefinitionDialog.h:674
Definition: DtDisplayUnitsSettingsRecord.h:69
DtCreationSignalType
Option to supply to the createObject method.
Definition: vrfObjectManipulationHandlerBaseClass.h:73
bool altitudeAllowed() const
Definition: shapeObjectDefinitionDialog.h:490
QWidget * myParent
Definition: shapeObjectDefinitionDialog.h:657
DtShapeObjectDefinitionDialog * myParent
Definition: shapeObjectDefinitionDialog.h:690
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:44

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)