VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 #include <vrvUtil/signalslib.h>
16 #include "shapeObjectDefinitionWidgetUi.hpp"
20 
21 #include <QtWidgets/QItemDelegate>
22 #include <QtWidgets/QTableWidget>
23 
24 class DtReferenceEllipsoid;
25 class QDialog;
26 class QDoubleValidator;
27 class QRegExpValidator;
28 class DtSetDataRequest;
29 
30 namespace makVrf
31 {
32  class DtOverlayParentEntryWidget;
33  class DtEmbarkationWidget;
34  class DtShapeObjectDefinitionDialog;
35  class DtVrfObjectManipulationHandlerBaseClass;
36  class DtHeadingEntryWidget;
37  class DtExtendedLabelsEntryWidget;
38  class DtForceSelectionEntryWidget;
39  class DtShapeValidatingTableWidget;
40  class DtAltitudeEntryWidget;
41 
46  {
47 
48  public:
49 
52 
55 
57  virtual void createConnections();
58 
60  virtual void terminateConnections();
61 
63  virtual void processLocationEdited(int currentRow=-1);
64 
66  virtual void processSelectLocation(int);
67 
69  virtual void processAddNewPoint();
70 
72  virtual void processRemovePoint(int index);
73 
75  virtual void processObjectCreation();
76 
78  virtual void processObjectUpdate();
79 
81  virtual void processDoneRequest();
82 
84  virtual void processCloseRequest();
85 
87  virtual void processCellEdited(int, int);
88 
90  virtual void processCellEntered(int, int);
91 
93  virtual void processNamePrefixEdited();
94 
96  virtual void processLabelEdited(const std::string& name);
97 
99  virtual void processExtendedLabelsEdited(const std::map<int, DtString>& name);
100 
102  virtual void processItemSelectionChanged();
103 
107  virtual void processPopulateDialog(const makVrv::DtUniqueID& id );
108 
109  virtual void headingChanged();
110 
111  virtual bool inGeocentric() const;
112 
114  virtual void setupGui();
115 
117  virtual void updateLocations(const std::vector<DtGeodeticCoord>& locs);
118 
120  virtual bool isLine() const;
121 
123  virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd);
124 
126  virtual void populateOverlays();
127 
128  virtual void setForce(int);
129 
131  virtual void processAltitudeTypeChanged();
132 
133  virtual void attachToMouseChanged(bool b);
134 
135  virtual DtGeodeticCoord convertToGeodetic(const DtVector&) const;
136  virtual DtVector convertToLocal(const DtGeodeticCoord&) const;
137 
138  virtual void adjustAltitudesBy(double);
139  virtual void setAltitudesTo(DtAltitudeClampType, double);
140 
142  virtual void processItemAdded(int);
143 
146  virtual void showTerrainProfile();
147 
149  virtual void slot_pointSamplingRateChanged(int);
150 
152  virtual void slot_lineWidthChanged(int);
153 
155  virtual void slot_penStyleChanged(int);
156 
158  virtual void slot_arrowDataChanged(const std::string& s);
159 
161  virtual void slot_fillDataChanged(int);
162 
163  virtual int fillStyle() const;
164 
165  virtual void slot_onFloorChanged(double);
166  virtual void slot_onCeilingChanged(double);
167  virtual void slot_onFloorSet(double);
168  virtual void slot_onCeilingSet(double);
169 
171  virtual void reversePoints();
172  virtual void updateButtons();
173 
174  virtual void setActivationTime();
175 
177  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
178 
179  virtual void setupLabels();
180 
181  protected:
182 
184  virtual void closeDialog();
185 
186  virtual void slot_headingChangedByMouse(double headingInDeg);
187 
189  virtual void slot_onMouseLocationChanged(const DtVector& loc);
190 
192  virtual void slot_onMouseAltitudeChanged(double heading);
193 
195  virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler);
196 
198  virtual void slot_onPlacement(const DtVector& loc);
199 
201  virtual void slot_onColorChanged(int);
202 
204  virtual void slot_onLocationAdded(const DtVector& loc);
205 
207  virtual void slot_onOverlayNameChanged(const std::string& name);
208 
210  virtual void slot_onForceChanged(int);
211 
212  virtual void objectCreated();
213 
214  virtual void slot_onCoordinateSystemChanged(
216  virtual void slot_onDisplayUnitDecimalsChanged(int);
217 
218  virtual void slot_onUnitChanged(int attribute, int from);
219 
220  virtual void restoreLocations();
221  virtual void backupLocations();
222 
223 
225  virtual void setupActivationTime(const DtSetDataRequest& setReq);
226 
228  virtual void slot_onPublishObjectChanged(bool);
229 
230  protected:
231 
234  DtReferenceEllipsoid* myReferenceForConversion;
237  std::vector<DtGeodeticCoord> myBackupLocations;
239  };
240 
241 
246  {
247 
248  Q_OBJECT
249 
250  public:
251 
253  DtShapeObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const QString& title="", DtDialogInteractionMode mode=DtCreationMode);
254 
257 
258  virtual void init(const DtEntityType&, const QString& title, bool forPlan,
260 
262  virtual void closeDialog();
263 
265  virtual void setLocationInGridFor(int row, const DtGeodeticCoord&,
268 
270  virtual bool validateDMS(const std::string& str) const;
271 
273  virtual void addLocation(const DtVector& loc, int index = -1);
274 
276  virtual void setEmbarkationAllowed( bool flag );
277 
278  virtual void clear();
279 
281  virtual void removePoint(int);
282 
284  virtual void setUseInputValidation(bool b);
285 
287  virtual void insertLocation(int index, const DtVector& loc);
288 
290  virtual void selectLocation(int index);
291 
293  virtual DtGeodeticCoord getLocation(int index);
294 
296  virtual QString getName();
297 
299  virtual void hideDialog();
300 
302  virtual int selectedPointIndex() const;
303 
305  virtual int rowCount() const;
306 
308  virtual void setAltitudeAboveTerrain(bool);
309 
311  virtual bool altitudeAboveTerrain() const;
312 
314  virtual void setAttachedToMouseVisible(bool);
315 
317  virtual void setName(const QString& name);
318 
320  virtual void setLabel(const QString& name);
321 
323  virtual void setExtendedLabels(const std::map<int, DtString>& lab);
324 
326  virtual void setLabelEntryVisible(bool);
327 
329  virtual void setNameVisible(bool flag);
330 
332  virtual void setSetActivationTimeVisible(bool flag);
333 
335  virtual void setTitle(const QString& title);
336 
338  virtual void setCreateButtonEnabled(bool flag);
339 
340  virtual void setAdjustStyleEnabled(bool);
341 
343  virtual void setCreateButtonText(const QString& text);
344 
346  virtual void setCreateButtonVisible(bool flag);
347 
349  virtual void setUpdateButtonEnabled(bool flag);
350 
352  virtual void setUpdateButtonVisible(bool flag);
353 
355  virtual void setAllowOverlaySelection(bool flag);
356 
358  virtual void setUpdateButtonText(const QString& text);
359 
361  virtual void setDoneButtonEnabled(bool flag);
362 
364  virtual void setDoneButtonVisible(bool flag);
365 
367  virtual void setShowFloorCeiling(bool);
368 
370  virtual void setFloor(double);
371  virtual double floor() const;
372  virtual void setFloorLabel(const QString&);
373  boost::signal<void (double)> signal_floorChanged;
374 
375  virtual void setCeiling(double);
376  virtual double ceiling() const;
377  virtual void setCeilingLabel(const QString&);
378  boost::signal<void (double)> signal_ceilingChanged;
379 
380  virtual void hideForces();
381 
383  virtual void setUpButtonVisible(bool flag);
384 
386  virtual void setDownButtonVisible(bool flag);
387 
389  virtual void setAddPointButtonVisible(bool flag);
390 
392  virtual void setAddPointButtonEnabled(bool flag);
393 
395  virtual void setAdjustAltitudeButtonVisible(bool flag);
396 
398  virtual void setAdjustAltitudeButtonEnabled(bool flag);
399 
401  virtual void setRemovePointButtonVisible(bool flag);
402 
404  virtual void setRemovePointButtonEnabled(bool flag);
405 
407  virtual void setShowStyleButton(bool flag);
408 
410  virtual void setShowColorButton(bool flag);
411 
413  virtual void setControlButtonsVisible(bool flag);
414 
416  virtual void setAttachObjectToMouse(bool);
417 
419  virtual DtDialogInteractionMode interactionMode();
420 
422  virtual void populate(const makVrv::DtUniqueID&);
423 
425  virtual void populate(const DtCreateObjectCommand* cmd);
426 
428  virtual bool blockSignals(bool);
429 
431  virtual void addOverlay(const QString& name, bool translate = true);
432 
434  virtual void removeOverlay(const QString& name);
435 
437  virtual void renameOverlay(const QString& oldName, const QString& newName);
438 
440  virtual void setOverlay(const QString& name);
441 
443  virtual void setPublishObjectVisible(bool);
444 
446  virtual void setPublishObject(bool);
447  virtual bool publishObject() const;
448 
450  virtual void clearOverlays();
451 
453  virtual void populateOverlays();
454 
456  virtual void setAltitudeAboveTerrain(int row, double alt);
457 
458  bool attachedToMouse() const;
459 
462  virtual double altitude(int) const;
463 
465  virtual void setAltitude(int, double, bool blocked = false);
466 
468  virtual void setAltitudeAllowed(bool);
469  bool altitudeAllowed() const
470  {
471  return myAltitudeAllowed;
472  }
473 
474  bool altitudeShown() const
475  {
476  return myAltitudeShown;
477  }
478 
480  virtual void setShowForces(bool);
481 
483  virtual void setReadOnly(bool);
484 
486  virtual void setReadOnly(int, bool);
487 
488  virtual void setColor(unsigned int color);
489 
490  virtual void setXLabel(const QString&);
491  virtual void setYLabel(const QString&);
492  virtual void setZLabel(const QString&);
493  virtual void adjustAltitudeAdjustmentDialogLabels();
494 
495  virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
497 
499  virtual void setAllowHeadingChange(bool);
500 
502  virtual void setHeading(double);
503 
505  virtual double heading() const;
506 
508  virtual void refreshLocs();
509  virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
510 
511  virtual void clearSelection();
512 
514  virtual void setForce(int force);
515 
517  virtual void addExtension(QWidget*);
518 
520  virtual void removeExtension(QWidget*);
521 
523  virtual void showPropertiesDialog(bool);
524 
526  virtual void setTerrainProfileButtonEnabled(bool);
527  virtual void setTerrainProfileButtonVisible(bool);
528 
530  virtual void includeSpacer(bool);
531  virtual bool extendedLabelsValid() const;
532 
534  virtual void setEmbarkationWidgetVisible( bool flag );
535 
536  DtEmbarkationWidget* embarkationWidget()
537  {
538  return myEmbarkationWidget;
539  }
540 
541  virtual QSize minimumSizeHint() const;
542 
543  protected:
544 
548  virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
551 
553  virtual void setupGui();
554 
556  virtual void setupConnections();
557 
559  virtual void closeEvent(QCloseEvent *event);
560 
565  virtual QDialog* createAltitudeAdjustmentDialog();
566 
568  virtual DtShapeObjectDefinitionDialogLogic* createLogic();
569  virtual bool showAlpha() const;
570 
571  virtual void showEvent(QShowEvent*);
572 
573  public slots:
574 
576  virtual void slot_onShapeLocationsCellChanged(int, int);
577 
579  virtual void slot_altitudeTypeChanged();
580 
581  protected slots:
582  virtual void slot_onFloorChanged();
583  virtual void slot_onCeilingChanged();
584  virtual void slot_onReversePoints();
585  virtual void slot_onSetActivationTime();
586  virtual void slot_onLabelEdited();
587  virtual void slot_onExtendedLabelsEdited();
588  virtual void slot_itemSelectionChanged();
589  virtual void slot_onCreateButtonClicked();
590  virtual void slot_onUpdateButtonClicked();
591  virtual void slot_onDoneButtonClicked();
592  virtual void slot_onNamePrefixEdited();
593  virtual void slot_closePressed();
594  virtual void slot_onBtnMoveDownClicked();
595  virtual void slot_onBtnMoveUpClicked();
596  virtual void slot_onBtnAddPointClicked();
597  virtual void slot_onBtnRemovePointClicked();
598  virtual void slot_onShapeLocationsCellEntered( int, int);
599  virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
600  virtual void slot_onForceComboCurrentIndexChanged(int index);
601  virtual void slot_attachedToMouseChanged();
602  virtual void slot_onAdjustAltitudeClicked();
603  virtual void slot_onShowTerrainProfile();
604  virtual void slot_onPublishObjectChanged();
605  virtual void slot_onBtnColorClicked();
606  virtual void slot_onBtnStyleClicked();
607 
608  public:
609 
610  Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
619 
620  protected:
629  unsigned int myBackgroundColor;
630  DtEntityType myEditingType;
631  };
632 
634  {
635  public:
636  virtual DtCreateAndEditObjectDialogInterface* createDialog(makVrv::DtDe& de, QWidget* parent, const QString& title,
638 
639  virtual void initializeDialog(makVrv::DtDe& de, DtCreateAndEditObjectDialogInterface*, const DtEntityType& entityType,
641  const DtEditingType& editType);
642  };
643 
645  {
646  public:
648  virtual ~DtShapeTableValidator();
649 
650  protected:
651  virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
652  const QModelIndex &index) const;
653 
654  protected:
657  QDoubleValidator* myDoubleValidator;
658  QDoubleValidator* myLatValidator;
659  QDoubleValidator* myLonValidator;
661  };
662 
664  {
665  public:
667  virtual ~DtShapeValidatingTableWidget();
668 
670  virtual void commitData(QWidget *editor);
671  virtual bool validateDMS(const std::string&) const;
672 
673  protected:
675  };
676 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)