VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
propertyMapTable.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
8 #if !defined(Q_MOC_RUN)
12 #include <vlutil/vlString.h>
14 #endif
15 
16 #include <QtWidgets/QWidget>
17 #include <set>
18 
19 class DtRwPropertiesMap;
20 class QTableWidget;
21 class QVBoxLayout;
22 class QPushButton;
23 class QHBoxLayout;
25 class DtString;
26 class DtReaderWriter;
27 class QLineEdit;
28 class QToolButton;
29 
30 namespace makVrf
31 {
35  {
36  Q_OBJECT
37 
38  public:
39  //CTOR
40  DtPropertyMapTable(makVrv::DtDe& de, QWidget* parent);
41 
42  //DTOR
43  virtual ~DtPropertyMapTable();
44 
46  virtual bool isValid() const;
47 
49  virtual void init(const DtRwPropertiesMap*,
50  const std::set<DtString>& ignoreColumns = std::set<DtString>());
51 
53  virtual void setToMap(DtRwPropertiesMap*);
54 
55  virtual void resizeColumnsToContents();
56 
57  virtual int minimumWidth() const;
58 
59  protected:
60  virtual double revertValue(const makVrv::DtUnicode& type, int old, QLineEdit* le) const;
61  virtual void columnHeadersFrom(const DtPropertyInterface* prototype, QStringList& columns) const;
62  virtual void fillInAndMapRwItemToTableItems(int row, int& colStart, const DtReaderWriter* rw);
63  virtual QString columnNameFrom(const DtString& str) const;
64  virtual void tableItemCreated(QLineEdit*, const DtReaderWriter*);
65  virtual void fillInKey(const DtReaderWriter* value) const;
66  virtual void setRowToStructure(int row, DtReaderWriter*);
67  virtual void setValueToReaderWriter(QLineEdit*, DtReaderWriter*) const;
68  virtual void addRow(const DtReaderWriter*);
69  virtual int columnOf(const DtString&) const;
70  virtual void resetColumnTitle(const DtString&) const;
71  virtual QString formattedValue(const DtReaderWriter* rw) const;
72  virtual void setColumnType(const DtString&, const std::string&);
73  virtual void setOrientationValidatorRange(QLineEdit*);
74  virtual void displayUnitChanged(const makVrv::DtUnicode& type, int, int);
75  virtual void decimalsChanged(const makVrv::DtUnicode& type);
76  virtual int convertToNative(const makVrv::DtUnicode& name, int) const;
77  virtual int convertToNativeFromType(const makVrv::DtUnicode& type, int) const;
78  virtual double convertToNative(const makVrv::DtUnicode& name, double) const;
79  virtual double convertToNativeFromType(const makVrv::DtUnicode& type, double) const;
80  virtual bool eventFilter(QObject* o, QEvent* e);
81  virtual void cellEntered(QObject*);
82 
83  signals:
84  void modified();
85 
86  protected slots:
87  virtual void onAdd();
88  virtual void onRemove();
89  virtual void onRowSelected();
90  virtual void currentCellChanged(int, int, int, int);
91 
92  public:
94  QVBoxLayout* myMainLayout;
95  QHBoxLayout* myButtonLayout;
98 
99  protected:
104  mutable std::map<DtString, int> myColumnsByRwName;
105  std::map<DtString, std::string> myColumnTypes;
106  std::set<DtString> myIgnoreColumns;
107  };
108 
110  {
111  public:
112  virtual DtPropertyMapTable* create(makVrv::DtDe& de, QWidget* parent);
113  };
114 
116  {
117  public:
119  virtual ~DtPropertyMapTableCreator();
120 
122  static DtPropertyMapTableCreator& instance(makVrv::DtDe&);
123  static void registerInstance( makVrv::DtDe& de, DtPropertyMapTableCreator* creator );
124 
125  virtual DtPropertyMapTable* create(QWidget* parent, const DtRwPropertiesMap* pm,
126  const std::set<DtString>& ignoreColumns = std::set<DtString>());
127 
131  virtual void registerCreator(const DtString&, DtPropertyMapTableInstanceCreator*);
132 
133  protected:
135  std::map<DtString, DtPropertyMapTableInstanceCreator*> myCreators;
136  };
137 }
QToolButton * myRemove
Definition: propertyMapTable.h:97
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
QToolButton * myAdd
Definition: propertyMapTable.h:96
QVBoxLayout * myMainLayout
Definition: propertyMapTable.h:94
DtReaderWriter * myPrototype
Definition: propertyMapTable.h:101
makVrv::DtSignalConnectionManager myConnections
Definition: propertyMapTable.h:103
Definition: readerWriter.h:85
std::set< DtString > myIgnoreColumns
Definition: propertyMapTable.h:106
DtReaderWriter * myKey
Definition: propertyMapTable.h:102
Definition: propertyMapTable.h:115
Interface class used to define minimal interface for a property. The DtPropertyInterface class provid...
Definition: propertyInterface.h:48
The DtPropertyMapTable will be a widget that can display a table for a DtRwPropertyMap, allow entry to that table and also removval from that table. It will ensure that the keys are unique and non-empty.
Definition: propertyMapTable.h:34
Contains the DtSharedDisplayUnitsSettings class declaration.
std::map< DtString, int > myColumnsByRwName
Definition: propertyMapTable.h:104
Contains makVrv::DtVirtualBaseClass class.
QHBoxLayout * myButtonLayout
Definition: propertyMapTable.h:95
makVrv::DtDe & myDe
Definition: propertyMapTable.h:134
std::map< DtString, DtPropertyMapTableInstanceCreator * > myCreators
Definition: propertyMapTable.h:135
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Acts as a map for properties. A map is a definition that has a key and a prototype, with values being the key and prototype pair. The key can only be a string (DtRwStringType), int (DtRwIntType, DtRwInt8Type, DtRwInt16Type, DtRwInt32Type), or real (DtRwRealType, DtRwReal32Type, DtRwReal64Type).
Definition: rwPropertiesMap.h:41
std::map< DtString, std::string > myColumnTypes
Definition: propertyMapTable.h:105
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
Base class to provide boost signal/slot management.
QTableWidget * myTableData
Definition: propertyMapTable.h:93
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
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: propertyMapTable.h:109
makVrv::DtDe & myDe
Definition: propertyMapTable.h:100

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)