VR-Forces 4.8 Class Documentation
 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 
29 namespace makVrf
30 {
34  {
35  Q_OBJECT
36 
37  public:
38  //CTOR
39  DtPropertyMapTable(makVrv::DtDe& de, QWidget* parent);
40 
41  //DTOR
42  virtual ~DtPropertyMapTable();
43 
45  virtual bool isValid() const;
46 
48  virtual void init(const DtRwPropertiesMap*,
49  const std::set<DtString>& ignoreColumns = std::set<DtString>());
50 
52  virtual void setToMap(DtRwPropertiesMap*);
53 
54  virtual void resizeColumnsToContents();
55 
56  virtual int minimumWidth() const;
57 
58  protected:
59  virtual double revertValue(int type, int old, QLineEdit* le) const;
60  virtual void columnHeadersFrom(const DtPropertyInterface* prototype, QStringList& columns) const;
61  virtual void fillInAndMapRwItemToTableItems(int row, int& colStart, const DtReaderWriter* rw);
62  virtual QString columnNameFrom(const DtString& str) const;
63  virtual void tableItemCreated(QLineEdit*, const DtReaderWriter*);
64  virtual void fillInKey(const DtReaderWriter* value) const;
65  virtual void setRowToStructure(int row, DtReaderWriter*);
66  virtual void setValueToReaderWriter(QLineEdit*, DtReaderWriter*) const;
67  virtual void addRow(const DtReaderWriter*);
68  virtual int columnOf(const DtString&) const;
69  virtual void resetColumnTitle(const DtString&) const;
70  virtual QString formattedValue(const DtReaderWriter* rw) const;
71  virtual void setColumnType(const DtString&, int);
72  virtual void setOrientationValidatorRange(QLineEdit*);
73  virtual void displayUnitChanged(makVrv::DtUnitConverterCollection::DisplayUnitType, int, int);
74  virtual void decimalsChanged(makVrv::DtUnitConverterCollection::DisplayUnitType);
75  virtual int convertToNative(const DtString& name, int) const;
76  virtual int convertToNative(int type, int) const;
77  virtual double convertToNative(const DtString& name, double) const;
78  virtual double convertToNative(int type, double) const;
79  virtual bool eventFilter(QObject* o, QEvent* e);
80  virtual void cellEntered(QObject*);
81 
82  signals:
83  void modified();
84 
85  protected slots:
86  virtual void onAdd();
87  virtual void onRemove();
88  virtual void onRowSelected();
89  virtual void currentCellChanged(int, int, int, int);
90 
91  public:
93  QVBoxLayout* myMainLayout;
94  QHBoxLayout* myButtonLayout;
97 
98  protected:
103  mutable std::map<DtString, int> myColumnsByRwName;
104  std::map<DtString, int> myColumnTypes;
105  std::set<DtString> myIgnoreColumns;
106  };
107 
109  {
110  public:
111  virtual DtPropertyMapTable* create(makVrv::DtDe& de, QWidget* parent);
112  };
113 
115  {
116  public:
118  virtual ~DtPropertyMapTableCreator();
119 
121  static DtPropertyMapTableCreator& instance(makVrv::DtDe&);
122  static void registerInstance( makVrv::DtDe& de, DtPropertyMapTableCreator* creator );
123 
124  virtual DtPropertyMapTable* create(QWidget* parent, const DtRwPropertiesMap* pm,
125  const std::set<DtString>& ignoreColumns = std::set<DtString>());
126 
130  virtual void registerCreator(const DtString&, DtPropertyMapTableInstanceCreator*);
131 
132  protected:
134  std::map<DtString, DtPropertyMapTableInstanceCreator*> myCreators;
135  };
136 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
QVBoxLayout * myMainLayout
Definition: propertyMapTable.h:93
QPushButton * myAdd
Definition: propertyMapTable.h:95
DtReaderWriter * myPrototype
Definition: propertyMapTable.h:100
makVrv::DtSignalConnectionManager myConnections
Definition: propertyMapTable.h:102
Definition: readerWriter.h:85
std::set< DtString > myIgnoreColumns
Definition: propertyMapTable.h:105
DtReaderWriter * myKey
Definition: propertyMapTable.h:101
Definition: propertyMapTable.h:114
Interface class used to define minimal interface for a property.
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.
Definition: propertyMapTable.h:33
Contains the DtSharedDisplayUnitsSettings class declaration.
std::map< DtString, int > myColumnTypes
Definition: propertyMapTable.h:104
std::map< DtString, int > myColumnsByRwName
Definition: propertyMapTable.h:103
Contains makVrv::DtVirtualBaseClass class.
QPushButton * myRemove
Definition: propertyMapTable.h:96
QHBoxLayout * myButtonLayout
Definition: propertyMapTable.h:94
makVrv::DtDe & myDe
Definition: propertyMapTable.h:133
std::map< DtString, DtPropertyMapTableInstanceCreator * > myCreators
Definition: propertyMapTable.h:134
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Acts as a map for properties.
Definition: rwPropertiesMap.h:41
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:22
Base class to provide boost signal/slot management.
QTableWidget * myTableData
Definition: propertyMapTable.h:92
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.
Definition: DtDe.h:69
DisplayUnitType
Indicates a type of display unit.
Definition: DtUnitConverterCollection.h:36
Definition: propertyMapTable.h:108
makVrv::DtDe & myDe
Definition: propertyMapTable.h:99

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)