11 #if !defined(Q_MOC_RUN)
21 #include <QtWidgets/QHeaderView>
22 #include <QtGui/QKeyEvent>
23 #include <QtWidgets/QStyledItemDelegate>
24 #include <QtWidgets/QComboBox>
41 DtUiPropertiesTableWidget(QWidget * parent = 0) : makVrv::DtStyledQTableWidget(parent) { setObjectName(
"DtUiPropertiesTableWidget"); }
44 virtual QSize sizeHint()
const;
45 virtual void accept();
51 DtUiTableWidgetItem() : myOriginalValue(0), myModifiedValue(0), myIsKey(false), myIsReadOnly(false), myOwnsValues(false), myIsPropertyValue(true) {};
60 bool isInt()
const {
return dynamic_cast<const DtRwInt*
>(myOriginalValue) != 0; };
61 bool isReal()
const {
return dynamic_cast<const DtRwReal*
>(myOriginalValue) != 0; };
63 bool isKey()
const {
return myIsKey; };
65 virtual QVariant
data(
int role)
const
67 if (role == Qt::FontRole)
69 QFont f = qvariant_cast<QFont>(QTableWidgetItem::data(Qt::FontRole));
73 if (!myOriginalValue && myModifiedValue)
79 same = (myOriginalValue->name() == myModifiedValue->name());
81 else if (myOriginalValue && myModifiedValue)
83 if (myIsPropertyValue)
98 return DtStyledQTableWidgetItem::data(role);
101 void setReadOnly(
bool b) {
if (b)
setFlags((Qt::ItemFlags)(flags() & ~(Qt::ItemIsEnabled | Qt::ItemIsEditable)));
else setFlags((Qt::ItemFlags)(flags() | (Qt::ItemIsEditable | Qt::ItemIsEnabled))); };
120 virtual QWidget *createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
121 const QModelIndex &index)
const;
165 virtual void columnHeadersFrom(
const DtPropertyInterface* prototype, QStringList& columns)
const;
166 virtual QString columnTitleFor(
const QString&)
const;
167 virtual void fillInAndMapRwItemToTableItems(
int row,
int& colStart,
DtReaderWriter*);
171 virtual void flatten(
const DtReaderWriter* prototype, std::vector<const DtReaderWriter*>& list)
const;
175 virtual void updateEnableStatus();
177 virtual QStringList convertToTitles(
const QStringList& cols)
const;
179 virtual bool canHavePrimary()
const;
181 virtual void addPrimaryCheckBox(
int row,
int col);
183 virtual DtString currentPrimary()
const;
184 virtual DtString keyFor(
int col)
const;
185 virtual void updatePrimaryData();
186 virtual void setCurrentPrimary(
const DtString&,
bool,
bool updateData =
true);
188 virtual void clearPrimaryData();
189 virtual void setPrimaryDataFrom(
int);
190 virtual QCheckBox* primaryCheckBox(
int)
const;
192 virtual void setEquipmentAvailable(
const DtString&,
bool);
196 virtual void fixRowTitle(
int row = - 1);
198 virtual QString getContainedName(
const QString& =
"")
const;
202 virtual void updateAddButton();
204 virtual void removeRow(
int);
209 virtual void addRow();
210 virtual void removeRow();
211 virtual void itemSelectionChanged();
212 virtual void valueComboChanged();
213 virtual void primaryChanged();
214 virtual void addNewContainerItem();
215 virtual void editContainerItem();
216 virtual void removeContainerItem();
217 virtual void containedItemSelected();
bool myRowsAsColumns
Definition: uiPropertiesTable.h:258
Definition: uiPropertiesTable.h:143
virtual void createControls(QWidget *parent)
If additional widgets or connections need to be made do it here. The parent is the myWidget member...
QHBoxLayout * myButtonLayout
Definition: uiPropertiesTable.h:224
virtual void setFromParameters(DtReaderWriter *parentRw)
Calls setFromParameters with std::vector of parameter.
QToolButton * myEditContainer
Definition: uiPropertiesTable.h:247
QComboBox * myContainedItems
Definition: uiPropertiesTable.h:250
virtual void processUiEvent(const DtUiElementEvent &)
Process ui event. Default does nothing.
Definition: uiElement.h:234
TableWidgetItemMap myTableWidgetItemMap
Definition: uiPropertiesTable.h:256
Definition: readerWriter.h:85
boost::function< DtUiElement *(makVrv::DtDe &)> CreatorFunction
Definition: uiElement.h:188
QLabel * myMapLabel
Definition: uiPropertiesTable.h:252
QWidget * myContainerCanvas
Currently only designed for a single map containing a single map, nothing fancy like a map possibly c...
Definition: uiPropertiesTable.h:244
virtual void elementChanged()
virtual void decorateElement()
Sets element decoration depending on the isModified state of the element. This version changes myLabe...
Interface class used to define minimal interface for a property. The DtPropertyInterface class provid...
Definition: propertyInterface.h:53
DtRwPropertiesList * myPropertyTable
Definition: uiPropertiesTable.h:257
bool myInitializing
Definition: uiPropertiesTable.h:225
static DtReaderWriterFactory * factory()
QHBoxLayout * myContainerLayout
Definition: uiPropertiesTable.h:249
DtUiPropertiesTableWidget * myTableWidget
Definition: uiPropertiesTable.h:220
QToolButton * myRemoveContainer
Definition: uiPropertiesTable.h:246
Description: Readable, Writable int.
Definition: rwInt.h:25
QLabel * myContainerLabel
Definition: uiPropertiesTable.h:248
bool myIsMultiMap
Definition: uiPropertiesTable.h:259
QToolButton * myRemove
Definition: uiPropertiesTable.h:222
QVBoxLayout * myLayout
Definition: uiPropertiesTable.h:223
QString myContainedLabel
Definition: uiPropertiesTable.h:251
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
DtPropertyInterface * myPrototype
Definition: uiPropertiesTable.h:260
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
std::map< DtUiTableWidgetItem *, DtReaderWriter * > TableWidgetItemMap
Definition: uiPropertiesTable.h:255
QToolButton * myAdd
Definition: uiPropertiesTable.h:221
virtual void setEnabled(bool)
If this item is not enabled it cannot be modified.
QToolButton * myAddContainer
Definition: uiPropertiesTable.h:245
Acts as a DtRwList for properties. Only real difference between this class and a DtRwProperties class...
Definition: rwPropertiesList.h:38
DtRwPropertiesList * myModifiedVariable
Definition: uiPropertiesTable.h:261
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
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
DtReaderWriter * mySelectedVariable
Definition: uiPropertiesTable.h:262
virtual bool compareReaderWriter(const DtReaderWriter *sourceRw, const DtReaderWriter *destRw) const
Uses the operator== method on the RW objects to check for equality.
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
Base class of the ui element class chain. Properties available through designer for all ui elements a...
Definition: uiElement.h:183
static DtReaderWriterPropertyFactory * propertyFactory()
Returns the factory used to create properties. Types are by RW types.