11 #if !defined(Q_MOC_RUN)
21 #include <QtWidgets/QHeaderView>
22 #include <QtGui/QKeyEvent>
23 #include <QtWidgets/QStyledItemDelegate>
24 #include <QtWidgets/QComboBox>
42 : makVrv::DtStyledQTableWidget(parent)
44 setObjectName(
"DtUiPropertiesTableWidget");
48 virtual QSize sizeHint()
const override;
49 virtual void accept();
55 DtUiTableWidgetItem() : myOriginalValue(0), myModifiedValue(0), myIsKey(false), myIsReadOnly(false), myOwnsValues(false), myIsPropertyValue(true) {};
58 {
if (myOwnsValues) {
delete myOriginalValue;
delete myModifiedValue; } };
65 bool isInt()
const {
return dynamic_cast<const DtRwInt*
>(myOriginalValue) != 0; };
66 bool isReal()
const {
return dynamic_cast<const DtRwReal*
>(myOriginalValue) != 0; };
68 bool isKey()
const {
return myIsKey; };
70 virtual QVariant
data(
int role)
const override
72 if (role == Qt::FontRole)
74 QFont f = qvariant_cast<QFont>(QTableWidgetItem::data(Qt::FontRole));
78 if (!myOriginalValue && myModifiedValue)
84 same = (myOriginalValue->name() == myModifiedValue->name());
86 else if (myOriginalValue && myModifiedValue)
88 if (myIsPropertyValue)
103 return DtStyledQTableWidgetItem::data(role);
106 void setReadOnly(
bool b) {
if (b)
setFlags((Qt::ItemFlags)(flags() & ~(Qt::ItemIsEnabled | Qt::ItemIsEditable)));
else setFlags((Qt::ItemFlags)(flags() | (Qt::ItemIsEditable | Qt::ItemIsEnabled))); };
125 virtual QWidget * createEditor(
126 QWidget* parent,
const QStyleOptionViewItem& option,
const QModelIndex& index)
const override;
164 virtual void setFromParameters(
const std::vector<DtReaderWriter*>& parentRw)
override;
170 virtual void columnHeadersFrom(
const DtPropertyInterface* prototype, QStringList& columns)
const;
171 virtual QString columnTitleFor(
const QString&)
const;
172 virtual void fillInAndMapRwItemToTableItems(
int row,
int& colStart,
DtReaderWriter*);
176 virtual void flatten(
const DtReaderWriter* prototype, std::vector<const DtReaderWriter*>& list)
const;
180 virtual void updateEnableStatus();
182 virtual QStringList convertToTitles(
const QStringList& cols)
const;
184 virtual bool canHavePrimary()
const;
186 virtual void addPrimaryCheckBox(
int row,
int col);
188 virtual DtString currentPrimary()
const;
189 virtual DtString keyFor(
int col)
const;
190 virtual void updatePrimaryData();
191 virtual void setCurrentPrimary(
const DtString&,
bool,
bool updateData =
true);
193 virtual void clearPrimaryData();
194 virtual void setPrimaryDataFrom(
int);
195 virtual QCheckBox* primaryCheckBox(
int)
const;
197 virtual void setEquipmentAvailable(
const DtString&,
bool);
201 virtual void fixRowTitle(
int row = - 1);
203 virtual QString getContainedName(
const QString& =
"")
const;
207 virtual void updateAddButton();
209 virtual void removeRow(
int);
214 virtual void addRow();
215 virtual void removeRow();
216 virtual void itemSelectionChanged();
217 virtual void valueComboChanged();
218 virtual void primaryChanged();
219 virtual void addNewContainerItem();
220 virtual void editContainerItem();
221 virtual void removeContainerItem();
222 virtual void containedItemSelected();
bool myRowsAsColumns
Definition: uiPropertiesTable.h:263
Definition: uiPropertiesTable.h:148
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:229
virtual void setFromParameters(DtReaderWriter *parentRw)
Calls setFromParameters with std::vector of parameter.
QToolButton * myEditContainer
Definition: uiPropertiesTable.h:252
QComboBox * myContainedItems
Definition: uiPropertiesTable.h:255
virtual void processUiEvent(const DtUiElementEvent &)
Process ui event. Default does nothing.
Definition: uiElement.h:236
TableWidgetItemMap myTableWidgetItemMap
Definition: uiPropertiesTable.h:261
Definition: readerWriter.h:85
boost::function< DtUiElement *(makVrv::DtDe &)> CreatorFunction
Definition: uiElement.h:190
QLabel * myMapLabel
Definition: uiPropertiesTable.h:257
QWidget * myContainerCanvas
Currently only designed for a single map containing a single map, nothing fancy like a map possibly c...
Definition: uiPropertiesTable.h:249
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:262
bool myInitializing
Definition: uiPropertiesTable.h:230
static DtReaderWriterFactory * factory()
QHBoxLayout * myContainerLayout
Definition: uiPropertiesTable.h:254
DtUiPropertiesTableWidget * myTableWidget
Definition: uiPropertiesTable.h:225
QToolButton * myRemoveContainer
Definition: uiPropertiesTable.h:251
Description: Readable, Writable int.
Definition: rwInt.h:25
QLabel * myContainerLabel
Definition: uiPropertiesTable.h:253
bool myIsMultiMap
Definition: uiPropertiesTable.h:264
QToolButton * myRemove
Definition: uiPropertiesTable.h:227
QVBoxLayout * myLayout
Definition: uiPropertiesTable.h:228
QString myContainedLabel
Definition: uiPropertiesTable.h:256
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:265
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
std::map< DtUiTableWidgetItem *, DtReaderWriter * > TableWidgetItemMap
Definition: uiPropertiesTable.h:260
QToolButton * myAdd
Definition: uiPropertiesTable.h:226
virtual void setEnabled(bool)
If this item is not enabled it cannot be modified.
QToolButton * myAddContainer
Definition: uiPropertiesTable.h:250
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:266
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:76
DtReaderWriter * mySelectedVariable
Definition: uiPropertiesTable.h:267
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:185
static DtReaderWriterPropertyFactory * propertyFactory()
Returns the factory used to create properties. Types are by RW types.