VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
locationEntryWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
19 #endif
20 #include <boost/signals2.hpp>
21 
23 #include <matrix/vlVector.h>
24 
26 #include <QtWidgets/QWidget>
27 #include <QtGui/QPixmap>
28 
29 class QGroupBox;
30 class QToolButton;
31 class QValidator;
32 class QVBoxLayout;
33 class QFrame;
34 
35 namespace makVrf
36 {
37  class DtAltitudeSelectionWidget;
38  class DtLocationEntryWidgetLogic;
39  class DtLocationCSEntryInterface;
40  class DtLocationCSEntryCreatorInterface;
41 
47  {
48  Q_OBJECT
49 
50  public:
53  QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
54 
55  //DTOR
56  virtual ~DtLocationEntryWidget();
57 
59  virtual DtVector location() const;
60 
62  virtual DtVector geocentricLocation() const;
63 
65  virtual void setUseInputValidation(bool);
66  virtual bool useInputValidation() const;
67 
68  virtual void setUseHighestLOD(bool);
69  virtual bool useHighestLOD() const;
70 
72  virtual void blockSignals(bool);
73  bool signalsBlocked() const;
74 
76  virtual void setLocation(DtVector, bool resetAltitude = true);
77  virtual void setGeocentricLocation(DtVector, bool resetAltitude = true);
78  virtual void setAltitude(const DtVector& localLocation, bool resetAltitude = true);
79 
81  virtual void setCoordinateSystem(makVrv::DtCoordinateDisplay*);
82 
84  virtual void setHideAltitude(bool b);
85 
87  virtual void setHideLocationZ(bool b);
88 
90  virtual void setXYValidatorsEnabled(bool enabled);
91  virtual bool xyValidatorsEnabled() const;
92 
93  virtual void setAdvancedKeyboardHandling(bool);
94  virtual bool advancedKeyboardHandling() const;
95 
97  virtual void setXLabel(const QString&);
98  QString xLabel() const;
99 
100  virtual void setYLabel(const QString&);
101  QString yLabel() const;
102 
103  virtual void setZLabel(const QString&);
104  QString zLabel() const;
105 
107  virtual void setChangeWithDisplaySettings(bool);
108 
110  virtual void setXValue(const QString&);
111  virtual void setYValue(const QString&);
112  virtual void setZValue(const QString&);
113  virtual void clearZValue();
114 
115  virtual QString xValue() const;
116  virtual QString yValue() const;
117  virtual QString zValue() const;
118 
120  {
121  return myAltitude;
122  }
123 
124  virtual void setAltitudeAboveSeaLevelVisible(bool b);
125  virtual void setAltitudeAboveGroundLevelVisible(bool b);
126 
127  virtual void setCreator(int, DtLocationCSEntryCreatorInterface*);
128 
130  virtual void setLostMapFocus(bool);
131 
133  virtual void giveMapFocusTo();
134 
136  virtual void takeMapFocusFrom();
137 
138  virtual DtGeodeticCoord geodeticLocation() const;
139 
141  virtual void setCoordinateSystem(
144  coordinateSystem() const;
145 
147  virtual void setCoordinateSystemDecimals(int decimals);
148 
154  virtual void setAltitudeSelectionEnabled(bool);
155  virtual bool altitudeSelectionEnabled() const;
156  virtual void setZEnabled(bool);
157  virtual void changeAltitudeEnabledSettings(bool);
158 
160  virtual void setCurrentAltitudeTypeSelection(const DtAltitudeClampType& type);
161 
163  virtual DtAltitudeClampType currentAltitudeTypeSelection() const;
164 
166  virtual double altitudeAboveSeaLevel() const;
167 
169  virtual double altitudeAboveGroundLevel() const;
170 
172  virtual void setAltitudeAboveSeaLevel(double altitude);
173 
175  virtual void setAltitudeAboveGroundLevel(double altitude);
176 
178  virtual void setProcessMouseEvents(bool flag);
179 
181  virtual bool processMouseEvents();
182 
183  virtual void setAltitudeAboveGroundLevelSelected(bool b);
184 
185  virtual void setAltitudeAboveSeaLevelSelected(bool b);
186 
189  virtual void setClampToNearestPolygon(bool);
190 
192  virtual void setIgnoreList(const std::vector<makVrv::DtElementID>&);
193  virtual const std::vector<makVrv::DtElementID>& ignoreList() const;
194 
196  virtual DtReaderWriter* createBoundVariable(const std::string& variableName);
197 
199  virtual void setupFromBoundVariable(const DtReaderWriter* variableName);
200 
202  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data);
203 
205  {
206  return makVrv::DtUnicode::tr("Location3D");
207  }
208 
212  virtual void setHasMapFocus(bool);
213  virtual void setCanTakeMapFocus(bool);
214  virtual bool canTakeMapFocus() const;
215  virtual bool hasMapFocus() const;
217 
219  virtual void setMaintainCurrentAltitude(bool);
220  virtual bool maintainCurrentAltitude() const;
221 
223  virtual void setupBasedOnEntityType(const DtEntityType&);
224 
225  virtual void setProcessAltitudeMouseClicks(bool b);
226 
229  virtual void setSignalLocationSetOnly(bool);
230  virtual bool signalLocationSetOnly() const;
231 
232  boost::signals2::signal<void ()> signal_invalidLocation;
233  boost::signals2::signal<void ()> signal_validLocation;
234 
236  virtual bool validateLocation(bool warn = false);
237 
238  virtual void setInvalid(bool);
239  virtual bool invalid() const;
240 
243  virtual void setUseLabelForLocationEntry(bool);
244  virtual bool useLabelForLocationEntry() const;
245 
246  static std::string designerGroup()
247  {
248  return tr("VR-Forces Entity Manipulation").toUtf8().constData();
249  }
250 
251  static std::string headerFile()
252  {
253  return tr("<vrfGuiDataEntryWidgets/locationEntryWidget.h>").toUtf8().constData();
254  }
255 
256  static std::string variableName()
257  {
258  return tr("location").toUtf8().constData();
259  }
260 
262  virtual makVrv::DtQtCursor cursorForSelectionStatus(SelectionStatus) const;
263 
264  protected:
265  virtual void updateLocationLook();
266 
268  virtual bool validateDMS(const std::string&, bool northSouth) const;
269 
271  virtual bool validateDDM(const std::string&, bool northSouth) const;
272 
275  virtual void slot_receivedFocus();
276 
278  virtual void setRange(double top, double bottom);
279 
281  virtual void setDefaultValue(const std::string&);
282 
283  protected slots:
284 
286  virtual void canTakeMapFocusChanged();
287 
289  virtual void slot_onPositionChanged();
290 
292  virtual void slot_onPositionEdited(bool complete);
293 
295  virtual void slot_onAltitudeAboveGroundLevelEdited(double);
296 
298  virtual void slot_onAltitudeAboveSeaLevelEdited(double);
299 
301  virtual void slot_onAltitudeSelectionTypeChanged(const DtAltitudeClampType& );
302 
303  virtual void setupSelectionIcon();
304 
305  protected:
306 
308  virtual void slot_onClampSelectionChanged(int index);
309  virtual void dataEntryWidgetChanged();
310 
311  virtual void selectionChanged(const std::set<makVrv::DtUniqueID>&);
312 
313  virtual bool compactMode() const { return false; };
314 
315  virtual SelectionStatus selectionStatusFor(makVrv::DtUniqueID id) const override;
316 
318  virtual void changeEvent(QEvent*) override;
319 
320  public:
323  QVBoxLayout* myMainLayout;
325  QWidget* myWidget;
327  QVBoxLayout* myLocationFrameLayout;
328 
329  protected:
339 
342  bool myInvalid;
347 
349  std::map<int, DtLocationCSEntryCreatorInterface*> myCreators;
350  };
351 
357  {
358  Q_OBJECT
359 
360  public:
363  QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
364 
365  //DTOR
367 
368  static std::string designerGroup()
369  {
370  return tr("VR-Forces Entity Manipulation").toUtf8().constData();
371  }
372 
373  static std::string headerFile()
374  {
375  return tr("<vrfGuiDataEntryWidgets/locationEntryWidget.h>").toUtf8().constData();
376  }
377 
378  static std::string variableName()
379  {
380  return tr("locationWithoutAltitude").toUtf8().constData();
381  }
382  };
383 
386 }
static std::string variableName()
Definition: locationEntryWidget.h:256
bool myAltitudeSelectionEnabled
Definition: locationEntryWidget.h:334
Definition: locationEntryWidgetInterface.h:33
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
boost::signals2::signal< void()> signal_invalidLocation
Definition: locationEntryWidget.h:232
static std::string headerFile()
Definition: locationEntryWidget.h:373
QVBoxLayout * myMainLayout
Definition: locationEntryWidget.h:323
CreationFlags
Definition: taskSetVariableWidget.h:118
Definition: locationCSEntryInterface.h:95
Abstract interface class for all coordinate system displays.
Definition: DtCoordinateDisplay.h:24
bool myUseInputValidation
Definition: locationEntryWidget.h:341
bool myUseLabelForLocationEntry
Definition: locationEntryWidget.h:346
static std::string variableName()
Definition: locationEntryWidget.h:378
static makVrv::DtUnicode codeVariableType()
Definition: locationEntryWidget.h:204
Definition: locationCSEntryInterface.h:24
bool myAdvancedKeyboardHandling
Definition: locationEntryWidget.h:337
QWidget * myWidget
Definition: locationEntryWidget.h:325
Definition: readerWriter.h:85
Definition: altitudeSelectionWidget.h:44
bool myInvalid
Definition: locationEntryWidget.h:342
DtLocationEntryWidgetLogic * myLogic
Definition: locationEntryWidget.h:331
DtAltitudeSelectionWidget * myAltitude
Definition: locationEntryWidget.h:321
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
QToolButton * myCanTakeMapFocus
Definition: locationEntryWidget.h:322
boost::signals2::signal< void()> signal_validLocation
Definition: locationEntryWidget.h:233
bool myHideZLocation
Definition: locationEntryWidget.h:338
QVBoxLayout * myLocationFrameLayout
Definition: locationEntryWidget.h:327
bool myBoundIsZero
Definition: locationEntryWidget.h:336
Definition: asyncJobServer.h:37
bool myLockAltitude
Definition: locationEntryWidget.h:333
DtLocationCSEntryInterface * myDataEntryWidget
Definition: locationEntryWidget.h:324
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:228
QPixmap mySelectionIcon
Definition: locationEntryWidget.h:330
static DtUnicode tr(const char *ascii)
Ascii translation function, used to be compatible with Qt&#39;s translation tools. This will simply call ...
Definition: DtUnicode.h:92
Definition: taskSetVariableWidget.h:419
static std::string designerGroup()
Definition: locationEntryWidget.h:246
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Private to this class.
Definition: locationEntryWidgetLogic.h:30
#define DT_DLL_VRFGUIDATAENTRYWIDGETS
Definition: vrfGuiDataEntryWidgets.h:22
Qt implementation of the cursor class. Will keep track of the Qt cursor.
Definition: DtQtCursor.h:24
Base class that must be implemented by items that wish to be part of a map focus handler chain...
Definition: mapFocusHandler.h:27
DtTaskSetVariableWidgetCreator< DtLocationEntryWithoutAltitudeWidget > DtLocationEntryWithoutAltitudeWidgetCreator
Definition: locationEntryWidget.h:385
DtTaskSetVariableWidgetCreator< DtLocationEntryWidget > DtLocationEntryWidgetCreator
Definition: locationEntryWidget.h:384
DtAltitudeSelectionWidget * altitudeWidget()
Definition: locationEntryWidget.h:119
virtual bool compactMode() const
Items that are in compact mode will get the map focus button shown regardless.
Definition: locationEntryWidget.h:313
Base class to provide boost signal/slot management.
static std::string headerFile()
Definition: locationEntryWidget.h:251
bool myTakeMapFocusEnabled
Definition: locationEntryWidget.h:345
std::map< int, DtLocationCSEntryCreatorInterface * > myCreators
Override factory creators with these. If the one being set is currently displayed, replace.
Definition: locationEntryWidget.h:349
QFrame * myLocationFrame
Definition: locationEntryWidget.h:326
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: locationEntryWidget.h:45
makVrv::DtCoordinateDisplay * myCoordinateSystem
Definition: locationEntryWidget.h:340
static std::string designerGroup()
Definition: locationEntryWidget.h:368
Specialized version of location entry widget used for scripted tasks that will create a location entr...
Definition: locationEntryWidget.h:356
DtVector myOriginalLocation
Definition: locationEntryWidget.h:335
bool myBlockSignals
Definition: locationEntryWidget.h:343
bool myProcessMouseEvents
Definition: locationEntryWidget.h:332
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:43
makVrv::DtSignalConnectionManager myConnections
Definition: locationEntryWidget.h:344

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)