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();
62 
64  virtual DtVector location() const;
65 
67  virtual DtVector geocentricLocation() const;
68 
70  virtual void setUseInputValidation(bool);
71  virtual bool useInputValidation() const;
72 
73  virtual void setUseHighestLOD(bool);
74  virtual bool useHighestLOD() const;
75 
77  virtual void blockSignals(bool);
78  bool signalsBlocked() const;
79 
81  virtual void setLocation(DtVector, bool resetAltitude = true);
82  virtual void setGeocentricLocation(DtVector, bool resetAltitude = true);
83  virtual void setAltitude(const DtVector& localLocation, bool resetAltitude = true);
84 
86  virtual void setCoordinateSystem(makVrv::DtCoordinateDisplay*);
87 
89  virtual void setHideAltitude(bool b);
90 
92  virtual void setHideLocationZ(bool b);
93 
95  virtual void setXYValidatorsEnabled(bool enabled);
96  virtual bool xyValidatorsEnabled() const;
97 
98  virtual void setAdvancedKeyboardHandling(bool);
99  virtual bool advancedKeyboardHandling() const;
100 
101  virtual void updateLocationLabel();
102 
105  virtual void setCompactMode(bool);
106  bool compactMode() const { return !fixedDisplay(); };
107  virtual bool expanded() const;
108 
109  virtual void setFixedDisplay(bool);
110  virtual bool fixedDisplay() const;
111 
112  virtual void setInitiallyExpand(bool);
113  virtual bool initiallyExpand() const;
114 
116  virtual void setXLabel(const QString&);
117  QString xLabel() const;
118 
119  virtual void setYLabel(const QString&);
120  QString yLabel() const;
121 
122  virtual void setZLabel(const QString&);
123  QString zLabel() const;
124 
126  virtual void setChangeWithDisplaySettings(bool);
127 
129  virtual void setXValue(const QString&);
130  virtual void setYValue(const QString&);
131  virtual void setZValue(const QString&);
132  virtual void clearZValue();
133 
134  virtual QString xValue() const;
135  virtual QString yValue() const;
136  virtual QString zValue() const;
137 
139  {
140  return myAltitude;
141  }
142 
143  virtual const std::set<makVrv::DtUniqueID>& selection() const override;
144 
145  virtual void setAltitudeAboveSeaLevelVisible(bool b);
146  virtual void setAltitudeAboveGroundLevelVisible(bool b);
147 
148  virtual void setCreator(int, DtLocationCSEntryCreatorInterface*);
149 
151  virtual void setLostMapFocus(bool);
152 
154  virtual void giveMapFocusTo();
155 
157  virtual void takeMapFocusFrom();
158 
159  virtual DtGeodeticCoord geodeticLocation() const;
160 
162  virtual void setCoordinateSystem(
165  coordinateSystem() const;
166 
168  virtual void setCoordinateSystemDecimals(int decimals);
169 
175  virtual void setAltitudeSelectionEnabled(bool);
176  virtual bool altitudeSelectionEnabled() const;
177  virtual void setZEnabled(bool);
178  virtual void changeAltitudeEnabledSettings(bool);
179 
181  virtual void setCurrentAltitudeTypeSelection(const DtAltitudeClampType& type);
182 
184  virtual DtAltitudeClampType currentAltitudeTypeSelection() const;
185 
187  virtual double altitudeAboveSeaLevel() const;
188 
190  virtual double altitudeAboveGroundLevel() const;
191 
193  virtual void setAltitudeAboveSeaLevel(double altitude);
194 
196  virtual void setAltitudeAboveGroundLevel(double altitude);
197 
199  virtual void setProcessMouseEvents(bool flag);
200 
202  virtual bool processMouseEvents();
203 
204  virtual void setAltitudeAboveGroundLevelSelected(bool b);
205 
206  virtual void setAltitudeAboveSeaLevelSelected(bool b);
207 
210  virtual void setClampToNearestPolygon(bool);
211  virtual void setShowSelectedLook(bool);
212  bool showSelectedLook() const
213  {
214  return myShowSelectedLook;
215  }
216 
218  virtual void setIgnoreList(const std::vector<makVrv::DtElementID>&);
219  virtual const std::vector<makVrv::DtElementID>& ignoreList() const;
220 
222  virtual DtReaderWriter* createBoundVariable(const std::string& variableName);
223 
225  virtual void setupFromBoundVariable(const DtReaderWriter* variableName);
226 
228  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data);
229 
231  {
232  return makVrv::DtUnicode::tr("Location3D");
233  }
234 
238  virtual bool canTakeMapFocus() const;
239  virtual bool hasMapFocus() const;
241 
243  virtual void setMaintainCurrentAltitude(bool);
244  virtual bool maintainCurrentAltitude() const;
245 
247  virtual void setupBasedOnEntityType(const DtEntityType&);
248 
249  virtual void setProcessAltitudeMouseClicks(bool b);
250 
253  virtual void setSignalLocationSetOnly(bool);
254  virtual bool signalLocationSetOnly() const;
255 
256  boost::signals2::signal<void ()> signal_invalidLocation;
257  boost::signals2::signal<void ()> signal_validLocation;
258 
260  virtual bool validateLocation(bool warn = false);
261 
262  virtual void setInvalid(bool);
263  virtual bool invalid() const;
264 
265  virtual SelectionStatus selectionStatusFor(makVrv::DtUniqueID id, DtMapFocusHandlerInterface::CursorOver) const override;
266 
269  virtual void setUseLabelForLocationEntry(bool);
270  virtual bool useLabelForLocationEntry() const;
271 
272  static std::string designerGroup()
273  {
274  return tr("VR-Forces Entity Manipulation").toUtf8().constData();
275  }
276 
277  static std::string headerFile()
278  {
279  return tr("<vrfGuiDataEntryWidgets/locationEntryWidget.h>").toUtf8().constData();
280  }
281 
282  static std::string variableName()
283  {
284  return tr("location").toUtf8().constData();
285  }
286 
288  virtual makVrv::DtQtCursor cursorForSelectionStatus(SelectionStatus, DtMapFocusHandlerInterface::CursorOver) const;
289 
291  virtual void setDefaultValue(const std::string&);
292 
293  virtual QSize minimumSizeHint() const;
294 
295  virtual void setVariableData(const QString&);
296 
297  virtual void setSelection(const std::set<makVrv::DtUniqueID>& set) override;
298  virtual void setSelection(const std::vector<makVrv::DtSimEntry*>& data) override;
299 
300  protected:
301  virtual void showAllItems();
302 
304  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(QWidget* parent, const Qt::WindowFlags& flags = 0) const override;
305 
306  virtual void updateLocationLook();
307 
309  virtual bool validateDMS(const std::string&, bool northSouth) const;
310 
312  virtual bool validateDDM(const std::string&, bool northSouth) const;
313 
316  virtual void slot_receivedFocus();
317 
319  virtual void setRange(double top, double bottom);
320 
321  public slots:
322  virtual void expand();
323  virtual void collapse();
324  virtual void setHasMapFocus(bool);
325  virtual void setCanTakeMapFocus(bool);
326 
327  signals:
328  void expansionStateChanged(bool expanded);
329 
330  protected slots:
331 
333  virtual void canTakeMapFocusChanged();
334 
336  virtual void slot_onPositionChanged();
337 
339  virtual void slot_onPositionEdited(bool complete);
340 
342  virtual void slot_onAltitudeAboveGroundLevelEdited(double);
343 
345  virtual void slot_onAltitudeAboveSeaLevelEdited(double);
346 
348  virtual void slot_onAltitudeSelectionTypeChanged(const DtAltitudeClampType& );
349 
350  virtual void setupSelectionIcon();
351 
352  protected:
353 
355  virtual void slot_onClampSelectionChanged(int index);
356  virtual void dataEntryWidgetChanged();
357 
358  virtual void selectionChanged(const std::set<makVrv::DtUniqueID>&);
359 
361  virtual void changeEvent(QEvent*) override;
362 
363  public:
366  QVBoxLayout* myMainLayout;
368  QWidget* myWidget;
370  QVBoxLayout* myLocationFrameLayout;
375 
376  protected:
379  bool myShowSelectedLook = true;
387 
390  bool myInvalid;
395  bool myInitiallyExpand = false;
396 
398  std::map<int, DtLocationCSEntryCreatorInterface*> myCreators;
399  };
400 
402  {
403  Q_OBJECT
404 
405  public:
406  DtLocationEntryWidgetExtension(makVrv::DtDe&, QWidget* w, const Qt::WindowFlags& f = 0);
408 
409  protected:
410  virtual void setTo(DtScriptedTaskVariable& v) const override;
411  virtual int setFrom(const DtScriptedTaskVariable& v, QGridLayout* parentLayout, int startRow) override;
412  virtual void setReadOnly(bool b) override;
413 
414  public:
416  };
417 
423  {
424  Q_OBJECT
425 
426  public:
429  QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
430 
431  //DTOR
433 
434  static std::string designerGroup()
435  {
436  return tr("VR-Forces Entity Manipulation").toUtf8().constData();
437  }
438 
439  static std::string headerFile()
440  {
441  return tr("<vrfGuiDataEntryWidgets/locationEntryWidget.h>").toUtf8().constData();
442  }
443 
444  static std::string variableName()
445  {
446  return tr("locationWithoutAltitude").toUtf8().constData();
447  }
448 
449  virtual void setCompactMode(bool b);
450 
451  protected:
452  virtual void updateLocationLabel() override;
453  };
454 
457 }
SelectionStatus
Definition: mapFocusHandler.h:30
static std::string variableName()
Definition: locationEntryWidget.h:282
bool showSelectedLook() const
Definition: locationEntryWidget.h:212
bool myAltitudeSelectionEnabled
Definition: locationEntryWidget.h:382
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:401
boost::signals2::signal< void()> signal_invalidLocation
Definition: locationEntryWidget.h:256
static std::string headerFile()
Definition: locationEntryWidget.h:439
QVBoxLayout * myMainLayout
Definition: locationEntryWidget.h:366
CreationFlags
Definition: taskSetVariableWidget.h:119
Definition: locationCSEntryInterface.h:95
Abstract interface class for all coordinate system displays.
Definition: DtCoordinateDisplay.h:24
bool myUseInputValidation
Definition: locationEntryWidget.h:389
CursorOver
Definition: mapFocusHandler.h:37
bool myUseLabelForLocationEntry
Definition: locationEntryWidget.h:394
static std::string variableName()
Definition: locationEntryWidget.h:444
static makVrv::DtUnicode codeVariableType()
Definition: locationEntryWidget.h:230
Definition: locationCSEntryInterface.h:24
bool myAdvancedKeyboardHandling
Definition: locationEntryWidget.h:385
QWidget * myWidget
Definition: locationEntryWidget.h:368
Definition: readerWriter.h:85
QWidget * myCompactLineWidget
Definition: locationEntryWidget.h:373
Definition: altitudeSelectionWidget.h:44
bool myInvalid
Definition: locationEntryWidget.h:390
DtLocationEntryWidgetLogic * myLogic
Definition: locationEntryWidget.h:378
DtAltitudeSelectionWidget * myAltitude
Definition: locationEntryWidget.h:364
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
QToolButton * myCanTakeMapFocus
Definition: locationEntryWidget.h:365
boost::signals2::signal< void()> signal_validLocation
Definition: locationEntryWidget.h:257
bool myHideZLocation
Definition: locationEntryWidget.h:386
QVBoxLayout * myLocationFrameLayout
Definition: locationEntryWidget.h:370
bool myBoundIsZero
Definition: locationEntryWidget.h:384
Definition: asyncJobServer.h:37
bool myLockAltitude
Definition: locationEntryWidget.h:381
DtLocationCSEntryInterface * myDataEntryWidget
Definition: locationEntryWidget.h:367
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:233
QPixmap mySelectionIcon
Definition: locationEntryWidget.h:377
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:426
static std::string designerGroup()
Definition: locationEntryWidget.h:272
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:372
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:27
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtTaskSetVariableWidgetCreator< DtLocationEntryWithoutAltitudeWidget > DtLocationEntryWithoutAltitudeWidgetCreator
Definition: locationEntryWidget.h:456
DtTaskSetVariableWidgetCreator< DtLocationEntryWidget > DtLocationEntryWidgetCreator
Definition: locationEntryWidget.h:455
DtAltitudeSelectionWidget * altitudeWidget()
Definition: locationEntryWidget.h:138
Base class to provide boost signal/slot management.
static std::string headerFile()
Definition: locationEntryWidget.h:277
bool myTakeMapFocusEnabled
Definition: locationEntryWidget.h:393
std::map< int, DtLocationCSEntryCreatorInterface * > myCreators
Override factory creators with these. If the one being set is currently displayed, replace.
Definition: locationEntryWidget.h:398
QFrame * myLocationFrame
Definition: locationEntryWidget.h:369
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
Definition: locationEntryWidget.h:47
QCheckBox * myInitiallyExpand
Definition: locationEntryWidget.h:415
makVrv::DtCoordinateDisplay * myCoordinateSystem
Definition: locationEntryWidget.h:388
static std::string designerGroup()
Definition: locationEntryWidget.h:434
Extension interface for contents for definition of variables in the scripted task meta data variable ...
Definition: taskSetVariableWidget.h:84
Specialized version of location entry widget used for scripted tasks that will create a location entr...
Definition: locationEntryWidget.h:422
DtVector myOriginalLocation
Definition: locationEntryWidget.h:383
bool myBlockSignals
Definition: locationEntryWidget.h:391
QToolButton * myExpandCollapseButton
Definition: locationEntryWidget.h:371
bool myProcessMouseEvents
Definition: locationEntryWidget.h:380
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:44
QHBoxLayout * myCompactLineWidgetLayout
Definition: locationEntryWidget.h:374
makVrv::DtSignalConnectionManager myConnections
Definition: locationEntryWidget.h:392

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)