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 
447  virtual void addOverlay(const QString& name, bool translate = true);
448 
450  virtual void removeOverlay(const QString& name);
451 
453  virtual void renameOverlay(const QString& oldName, const QString& newName);
454 
456  virtual void setOverlay(const QString& name);
457 
459  virtual void setPublishObjectVisible(bool);
460 
462  virtual void setPublishObject(bool);
463  virtual bool publishObject() const;
464 
466  virtual void clearOverlays();
467 
469  virtual void populateOverlays();
470 
472  virtual void setAltitudeAboveTerrain(int row, double alt);
473 
474  bool attachedToMouse() const;
475 
478  virtual double altitude(int) const;
479 
481  virtual void setAltitude(int, double, bool blocked = false);
482 
484  virtual void setAltitudeAllowed(bool);
485  virtual bool disallowsAltitudeAdjustmentBasedOnObjectCharacteristics() const;
486  bool altitudeAllowed() const
487  {
488  return myAltitudeAllowed;
489  }
490 
491  bool altitudeShown() const
492  {
493  return myAltitudeShown;
494  }
495 
497  virtual void setShowForces(bool);
498 
500  virtual void setReadOnly(bool);
501 
503  virtual void setReadOnly(int, bool);
504 
505  virtual void setColor(unsigned int color);
506 
507  virtual void setXLabel(const QString&);
508  virtual void setYLabel(const QString&);
509  virtual void setZLabel(const QString&);
510  virtual void adjustAltitudeAdjustmentDialogLabels();
511 
512  virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
514 
516  virtual void setAllowHeadingChange(bool);
517 
519  virtual void setHeading(double);
520 
522  virtual double heading() const;
523 
525  virtual void refreshLocs();
526  virtual void refreshAltitudes();
527  virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
528 
529  virtual void clearSelection();
530 
532  virtual void setForce(int force);
533 
535  virtual void addExtension(QWidget*);
536 
538  virtual void removeExtension(QWidget*);
539 
541  virtual void showPropertiesDialog(bool, bool showAttachObjectToMouse = true);
542 
544  virtual void setTerrainProfileButtonEnabled(bool);
545  virtual void setTerrainProfileButtonVisible(bool);
546 
548  virtual void includeSpacer(bool);
549  virtual bool extendedLabelsValid() const;
550 
552  virtual void setEmbarkationWidgetVisible( bool flag );
553 
555  {
556  return myEmbarkationWidget;
557  }
558 
559  virtual QSize minimumSizeHint() const;
560 
561  protected:
562 
566  virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
569 
571  virtual void setupGui();
572 
574  virtual void setupConnections();
575 
577  virtual void closeEvent(QCloseEvent *event);
578 
583  virtual QDialog* createAltitudeAdjustmentDialog();
584 
586  virtual DtShapeObjectDefinitionDialogLogic* createLogic();
587  virtual bool showAlpha() const;
588 
589  virtual void showEvent(QShowEvent*);
590 
591  virtual void getDistanceAndAltitudeDecimals(int& decimals, int& altDecimals);
592 
594  virtual DtSimpleDoubleVariableWidget* floorVariable() const;
595 
596  public slots:
597 
599  virtual void slot_onShapeLocationsCellChanged(int, int);
600 
602  virtual void slot_altitudeTypeChanged();
603 
604  protected slots:
605  virtual void slot_onFloorChanged();
606  virtual void slot_onCeilingChanged();
607  virtual void slot_onReversePoints();
608  virtual void slot_onSetActivationTime();
609  virtual void slot_onLabelEdited();
610  virtual void slot_onExtendedLabelsEdited();
611  virtual void slot_onObjectSpecificLabelsEdited(int, QString marker, QString value);
612  virtual void slot_itemSelectionChanged();
613  virtual void slot_onCreateButtonClicked();
614  virtual void slot_onUpdateButtonClicked();
615  virtual void slot_onDoneButtonClicked();
616  virtual void slot_onNamePrefixEdited();
617  virtual void slot_closePressed();
618  virtual void slot_onBtnMoveDownClicked();
619  virtual void slot_onBtnMoveUpClicked();
620  virtual void slot_onBtnAddPointClicked();
621  virtual void slot_onBtnRemovePointClicked();
622  virtual void slot_onShapeLocationsCellEntered( int, int);
623  virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
624  virtual void slot_onForceComboCurrentIndexChanged(int index);
625  virtual void slot_attachedToMouseChanged();
626  virtual void slot_onAdjustAltitudeClicked();
627  virtual void slot_onShowTerrainProfile();
628  virtual void slot_onPublishObjectChanged();
629  virtual void slot_onBtnColorClicked();
630  virtual void slot_onBtnStyleClicked();
631 
632  public:
633 
634  Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
644 
645  protected:
653  QWidget* myParent;
654  unsigned int myBackgroundColor;
655  DtEntityType myEditingType;
657  };
658 
660  {
661  public:
662  virtual DtCreateAndEditObjectDialogInterface* createDialog(makVrv::DtDe& de, QWidget* parent, const QString& title,
664 
665  virtual void initializeDialog(makVrv::DtDe& de, DtCreateAndEditObjectDialogInterface*, const DtEntityType& entityType,
667  const DtEditingType& editType);
668  };
669 
671  {
672  public:
674  virtual ~DtShapeTableValidator();
675 
676  protected:
677  virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
678  const QModelIndex &index) const;
679 
680  protected:
683  QDoubleValidator* myDoubleValidator;
684  QDoubleValidator* myLatValidator;
685  QDoubleValidator* myLonValidator;
687  };
688 
690  {
691  public:
693  virtual ~DtShapeValidatingTableWidget();
694 
696  virtual void commitData(QWidget *editor);
697  virtual bool validateDMS(const std::string&) const;
698 
699  protected:
701  };
702 }
DtEntityType myEditingType
Definition: shapeObjectDefinitionDialog.h:655
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:700
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:61
bool myShowCeilingFloor
Definition: shapeObjectDefinitionDialog.h:656
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:646
Definition: shapeObjectDefinitionDialog.h:689
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:654
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:635
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:652
bool altitudeShown() const
Definition: shapeObjectDefinitionDialog.h:491
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
DtDialogInteractionMode myInteractionMode
Definition: shapeObjectDefinitionDialog.h:648
QDoubleValidator * myLatValidator
Definition: shapeObjectDefinitionDialog.h:684
bool myAltitudeShown
Definition: shapeObjectDefinitionDialog.h:651
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:681
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:554
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:637
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:643
bool myBlockSignals
Definition: shapeObjectDefinitionDialog.h:649
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Ui_ShapeObjectDefinitionWidgetUi myUiImpl
Definition: shapeObjectDefinitionDialog.h:634
makVrv::DtSignalConnectionManager myConnectionManager
Definition: shapeObjectDefinitionDialog.h:250
DtAltitudeEntryWidget * myCeiling
Definition: shapeObjectDefinitionDialog.h:641
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:650
QDoubleValidator * myLonValidator
Definition: shapeObjectDefinitionDialog.h:685
Definition: shapeObjectDefinitionDialog.h:659
Base class to provide boost signal/slot management.
DtForceSelectionEntryWidget * myForces
Definition: shapeObjectDefinitionDialog.h:636
DtSmallRangeEntryWidget * myFloorAsWidth
Definition: shapeObjectDefinitionDialog.h:640
DtShapeObjectDefinitionDialogLogic * myLogic
Definition: shapeObjectDefinitionDialog.h:647
DtEmbarkationWidget * myEmbarkationWidget
Definition: shapeObjectDefinitionDialog.h:642
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:682
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:638
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:683
DtReferenceEllipsoid * myReferenceForConversion
Definition: shapeObjectDefinitionDialog.h:246
DtAltitudeEntryWidget * myFloorAsAltitude
Definition: shapeObjectDefinitionDialog.h:639
Definition: shapeObjectDefinitionDialog.h:670
Definition: DtDisplayUnitsSettingsRecord.h:69
DtCreationSignalType
Option to supply to the createObject method.
Definition: vrfObjectManipulationHandlerBaseClass.h:73
bool altitudeAllowed() const
Definition: shapeObjectDefinitionDialog.h:486
QWidget * myParent
Definition: shapeObjectDefinitionDialog.h:653
DtShapeObjectDefinitionDialog * myParent
Definition: shapeObjectDefinitionDialog.h:686
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:44

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)