VR-Forces 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 class QLabel;
35 class QCheckBox;
36 
37 namespace makVrf
38 {
39  class DtAltitudeSelectionWidget;
40  class DtLocationEntryWidgetLogic;
41  class DtLocationCSEntryInterface;
42  class DtLocationCSEntryCreatorInterface;
43 
49  {
50  Q_OBJECT
51 
52  Q_PROPERTY(bool fixeddisplay READ fixedDisplay WRITE setFixedDisplay)
53  Q_PROPERTY(bool initiallyExpand READ initiallyExpand WRITE setInitiallyExpand)
54 
55  public:
57  DtLocationEntryWidget(makVrv::DtDe& de,
58  QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
59 
60  //DTOR
61  virtual ~DtLocationEntryWidget() override;
62 
64  virtual DtVector location() const override;
65 
67  virtual DtVector geocentricLocation() const;
68 
70  virtual void setUseInputValidation(bool);
71  virtual bool useInputValidation() const;
72 
73  virtual QString generatedDescription() const override;
74 
75  virtual void setUseHighestLOD(bool);
76  virtual bool useHighestLOD() const;
77 
79  virtual void blockSignals(bool);
80  bool signalsBlocked() const;
81 
83  virtual void setLocation(DtVector, bool resetAltitude = true) override;
84  virtual void setGeocentricLocation(DtVector, bool resetAltitude = true);
85  virtual void setAltitude(const DtVector& localLocation, bool resetAltitude = true) override;
86 
88  virtual void setCoordinateSystem(makVrv::DtCoordinateDisplay*) override;
89 
91  virtual void setHideAltitude(bool b);
92 
94  virtual void setHideLocationZ(bool b) override;
95 
97  virtual void setXYValidatorsEnabled(bool enabled) override;
98  virtual bool xyValidatorsEnabled() const override;
99 
100  virtual void setAdvancedKeyboardHandling(bool);
101  virtual bool advancedKeyboardHandling() const;
102 
103  virtual void updateLocationLabel();
104 
107  virtual void setCompactMode(bool);
108  bool compactMode() const { return !fixedDisplay(); };
109  virtual bool expanded() const;
110 
111  virtual void setFixedDisplay(bool);
112  virtual bool fixedDisplay() const;
113 
114  virtual void setInitiallyExpand(bool);
115  virtual bool initiallyExpand() const;
116 
118  virtual void setXLabel(const QString&) override;
119  QString xLabel() const;
120 
121  virtual void setYLabel(const QString&) override;
122  QString yLabel() const;
123 
124  virtual void setZLabel(const QString&) override;
125  QString zLabel() const;
126 
128  virtual void setChangeWithDisplaySettings(bool);
129 
131  virtual void setXValue(const QString&) override;
132  virtual void setYValue(const QString&) override;
133  virtual void setZValue(const QString&) override;
134  virtual void clearZValue();
135 
136  virtual QString xValue() const override;
137  virtual QString yValue() const override;
138  virtual QString zValue() const override;
139 
141  {
142  return myAltitude;
143  }
144 
145  virtual const std::set<makVrv::DtUniqueID>& selection() const override;
146 
147  virtual void setAltitudeAboveSeaLevelVisible(bool b);
148  virtual void setAltitudeAboveGroundLevelVisible(bool b);
149 
150  virtual void setCreator(int, DtLocationCSEntryCreatorInterface*);
151 
153  virtual void setLostMapFocus(bool);
154 
156  virtual void giveMapFocusTo();
157 
159  virtual void takeMapFocusFrom();
160 
161  virtual DtGeodeticCoord geodeticLocation() const override;
162 
164  virtual void setCoordinateSystem(const makArchives::DtDisplayUnitsSettingsRecord::CoordSys& coordSys) override;
166  coordinateSystem() const;
167 
169  virtual void setCoordinateSystemDecimals(int decimals) override;
170 
176  virtual void setAltitudeSelectionEnabled(bool) override;
177  virtual bool altitudeSelectionEnabled() const override;
178  virtual void setZEnabled(bool) override;
179  virtual void changeAltitudeEnabledSettings(bool) override;
180 
182  virtual void setCurrentAltitudeTypeSelection(const DtAltitudeClampType& type);
183 
185  virtual DtAltitudeClampType currentAltitudeTypeSelection() const;
186 
188  virtual double altitudeAboveSeaLevel() const override;
189 
191  virtual double altitudeAboveGroundLevel() const override;
192 
194  virtual void setAltitudeAboveSeaLevel(double altitude) override;
195 
197  virtual void setAltitudeAboveGroundLevel(double altitude);
198 
200  virtual void setProcessMouseEvents(bool flag);
201 
203  virtual bool processMouseEvents();
204 
205  virtual void setAltitudeAboveGroundLevelSelected(bool b);
206 
207  virtual void setAltitudeAboveSeaLevelSelected(bool b);
208 
211  virtual void setClampToNearestPolygon(bool);
212  virtual void setShowSelectedLook(bool);
213  bool showSelectedLook() const
214  {
215  return myShowSelectedLook;
216  }
217 
219  virtual void setIgnoreList(const std::vector<makVrv::DtElementID>&);
220  virtual const std::vector<makVrv::DtElementID>& ignoreList() const;
221 
223  virtual DtReaderWriter* createBoundVariable(const std::string& variableName) override;
224 
226  virtual void setupFromBoundVariable(const DtReaderWriter* variableName) override;
227 
229  virtual void setupFrom(const std::set<makVrv::DtUniqueID>& data) override;
230 
232  {
233  return makVrv::DtUnicode::tr("Location3D");
234  }
235 
239  virtual bool canTakeMapFocus() const override;
240  virtual bool hasMapFocus() const override;
242 
244  virtual void setMaintainCurrentAltitude(bool);
245  virtual bool maintainCurrentAltitude() const;
246 
248  virtual void setupBasedOnEntityType(const DtEntityType&);
249 
250  virtual void setProcessAltitudeMouseClicks(bool b);
251 
254  virtual void setSignalLocationSetOnly(bool);
255  virtual bool signalLocationSetOnly() const;
256 
257  boost::signals2::signal<void ()> signal_invalidLocation;
258  boost::signals2::signal<void ()> signal_validLocation;
259 
261  virtual bool validateLocation(bool warn = false);
262 
263  virtual void setInvalid(bool);
264  virtual bool invalid() const override;
265 
266  virtual SelectionStatus selectionStatusFor(makVrv::DtUniqueID id, DtMapFocusHandlerInterface::CursorOver) const override;
267 
270  virtual void setUseLabelForLocationEntry(bool);
271  virtual bool useLabelForLocationEntry() const;
272 
273  static std::string designerGroup()
274  {
275  return tr("VR-Forces Entity Manipulation").toUtf8().constData();
276  }
277 
278  static std::string headerFile()
279  {
280  return tr("<vrfGuiDataEntryWidgets/locationEntryWidget.h>").toUtf8().constData();
281  }
282 
283  static std::string variableName()
284  {
285  return tr("location").toUtf8().constData();
286  }
287 
289  virtual makVrv::DtQtCursor cursorForSelectionStatus(
290  SelectionStatus, DtMapFocusHandlerInterface::CursorOver) const override;
291 
293  virtual void setDefaultValue(const std::string&) override;
294 
295  virtual QSize minimumSizeHint() const override;
296 
297  virtual void setVariableData(const QString&) override;
298 
299  virtual void setSelection(const std::set<makVrv::DtUniqueID>& set) override;
300 
301  protected:
302  virtual void showAllItems();
303 
305  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(QWidget* parent, const Qt::WindowFlags& flags = 0) const override;
306 
307  virtual void updateLocationLook();
308 
310  virtual bool validateDMS(const std::string&, bool northSouth) const;
311 
313  virtual bool validateDDM(const std::string&, bool northSouth) const;
314 
317  virtual void slot_receivedFocus();
318 
320  virtual void setRange(double top, double bottom) override;
321 
322  public slots:
323  virtual void expand();
324  virtual void collapse();
325  virtual void setHasMapFocus(bool) override;
326  virtual void setCanTakeMapFocus(bool) override;
327 
328  signals:
329  void expansionStateChanged(bool expanded);
330 
331  protected slots:
332 
334  virtual void canTakeMapFocusChanged();
335 
337  virtual void slot_onPositionChanged();
338 
340  virtual void slot_onPositionEdited(bool complete);
341 
343  virtual void slot_onAltitudeAboveGroundLevelEdited(double);
344 
346  virtual void slot_onAltitudeAboveSeaLevelEdited(double);
347 
349  virtual void slot_onAltitudeSelectionTypeChanged(const DtAltitudeClampType& );
350 
351  virtual void setupSelectionIcon();
352 
353  protected:
354 
356  virtual void slot_onClampSelectionChanged(int index);
357  virtual void dataEntryWidgetChanged();
358 
359  virtual void selectionChanged(const std::set<makVrv::DtUniqueID>&) override;
360 
362  virtual void changeEvent(QEvent*) override;
363 
364  public:
367  QVBoxLayout* myMainLayout;
369  QWidget* myWidget;
371  QVBoxLayout* myLocationFrameLayout;
376 
377  protected:
380  bool myShowSelectedLook = true;
388 
391  bool myInvalid;
396  bool myInitiallyExpand = false;
397 
399  std::map<int, DtLocationCSEntryCreatorInterface*> myCreators;
400  };
401 
403  {
404  Q_OBJECT
405 
406  public:
407  DtLocationEntryWidgetExtension(makVrv::DtDe&, QWidget* w, const Qt::WindowFlags& f = 0);
408  virtual ~DtLocationEntryWidgetExtension() override;
409 
410  protected:
411  virtual void setTo(DtScriptedTaskVariable& v) const override;
412  virtual int setFrom(const DtScriptedTaskVariable& v, QGridLayout* parentLayout, int startRow) override;
413  virtual void setReadOnly(bool b) override;
414 
415  public:
417  };
418 
424  {
425  Q_OBJECT
426 
427  public:
430  QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
431 
432  //DTOR
433  virtual ~DtLocationEntryWithoutAltitudeWidget() override;
434 
435  static std::string designerGroup()
436  {
437  return tr("VR-Forces Entity Manipulation").toUtf8().constData();
438  }
439 
440  static std::string headerFile()
441  {
442  return tr("<vrfGuiDataEntryWidgets/locationEntryWidget.h>").toUtf8().constData();
443  }
444 
445  static std::string variableName()
446  {
447  return tr("locationWithoutAltitude").toUtf8().constData();
448  }
449 
450  virtual void setCompactMode(bool b) override;
451 
452  protected:
453  virtual void updateLocationLabel() override;
454  };
455 
458 }
SelectionStatus
Definition: mapFocusHandler.h:34
static std::string variableName()
Definition: locationEntryWidget.h:283
bool showSelectedLook() const
Definition: locationEntryWidget.h:213
bool myAltitudeSelectionEnabled
Definition: locationEntryWidget.h:383
Definition: locationEntryWidgetInterface.h:33
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Definition: locationEntryWidget.h:402
boost::signals2::signal< void()> signal_invalidLocation
Definition: locationEntryWidget.h:257
static std::string headerFile()
Definition: locationEntryWidget.h:440
QVBoxLayout * myMainLayout
Definition: locationEntryWidget.h:367
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:390
CursorOver
Definition: mapFocusHandler.h:41
bool myUseLabelForLocationEntry
Definition: locationEntryWidget.h:395
static std::string variableName()
Definition: locationEntryWidget.h:445
static makVrv::DtUnicode codeVariableType()
Definition: locationEntryWidget.h:231
Definition: locationCSEntryInterface.h:24
bool myAdvancedKeyboardHandling
Definition: locationEntryWidget.h:386
QWidget * myWidget
Definition: locationEntryWidget.h:369
Definition: readerWriter.h:85
QWidget * myCompactLineWidget
Definition: locationEntryWidget.h:374
Definition: altitudeSelectionWidget.h:44
bool myInvalid
Definition: locationEntryWidget.h:391
DtLocationEntryWidgetLogic * myLogic
Definition: locationEntryWidget.h:379
DtAltitudeSelectionWidget * myAltitude
Definition: locationEntryWidget.h:365
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
QToolButton * myCanTakeMapFocus
Definition: locationEntryWidget.h:366
boost::signals2::signal< void()> signal_validLocation
Definition: locationEntryWidget.h:258
bool myHideZLocation
Definition: locationEntryWidget.h:387
QVBoxLayout * myLocationFrameLayout
Definition: locationEntryWidget.h:371
bool myBoundIsZero
Definition: locationEntryWidget.h:385
Definition: asyncJobServer.h:37
bool myLockAltitude
Definition: locationEntryWidget.h:382
DtLocationCSEntryInterface * myDataEntryWidget
Definition: locationEntryWidget.h:368
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:231
QPixmap mySelectionIcon
Definition: locationEntryWidget.h:378
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:422
static std::string designerGroup()
Definition: locationEntryWidget.h:273
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Private to this class.
Definition: locationEntryWidgetLogic.h:30
QLabel * myLocationLabel
Definition: locationEntryWidget.h:373
A class for keeping track of meta data for variables of scripted tasks. The information is currently ...
Definition: scriptedTaskVariable.h:34
#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:31
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtTaskSetVariableWidgetCreator< DtLocationEntryWithoutAltitudeWidget > DtLocationEntryWithoutAltitudeWidgetCreator
Definition: locationEntryWidget.h:457
DtTaskSetVariableWidgetCreator< DtLocationEntryWidget > DtLocationEntryWidgetCreator
Definition: locationEntryWidget.h:456
DtAltitudeSelectionWidget * altitudeWidget()
Definition: locationEntryWidget.h:140
Base class to provide boost signal/slot management.
static std::string headerFile()
Definition: locationEntryWidget.h:278
bool myTakeMapFocusEnabled
Definition: locationEntryWidget.h:394
std::map< int, DtLocationCSEntryCreatorInterface * > myCreators
Override factory creators with these. If the one being set is currently displayed, replace.
Definition: locationEntryWidget.h:399
QFrame * myLocationFrame
Definition: locationEntryWidget.h:370
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:76
Definition: locationEntryWidget.h:47
QCheckBox * myInitiallyExpand
Definition: locationEntryWidget.h:416
makVrv::DtCoordinateDisplay * myCoordinateSystem
Definition: locationEntryWidget.h:389
static std::string designerGroup()
Definition: locationEntryWidget.h:435
Extension interface for contents for definition of variables in the scripted task meta data variable ...
Definition: taskSetVariableWidget.h:83
Specialized version of location entry widget used for scripted tasks that will create a location entr...
Definition: locationEntryWidget.h:423
DtVector myOriginalLocation
Definition: locationEntryWidget.h:384
bool myBlockSignals
Definition: locationEntryWidget.h:392
QToolButton * myExpandCollapseButton
Definition: locationEntryWidget.h:372
bool myProcessMouseEvents
Definition: locationEntryWidget.h:381
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:43
QHBoxLayout * myCompactLineWidgetLayout
Definition: locationEntryWidget.h:375
makVrv::DtSignalConnectionManager myConnections
Definition: locationEntryWidget.h:393

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)