18 #include <QTableWidget>
19 #include <QHeaderView>
21 #include <QItemDelegate>
49 DtUiTableWidgetItem() : myOriginalValue(0), myModifiedValue(0), myIsKey(false), myIsReadOnly(false), myOwnsValues(false), myIsPropertyValue(true) {};
58 bool isInt()
const {
return dynamic_cast<const DtRwInt*
>(myOriginalValue) != 0; };
59 bool isReal()
const {
return dynamic_cast<const DtRwReal*
>(myOriginalValue) != 0; };
61 bool isKey()
const {
return myIsKey; };
63 virtual QVariant data(
int role)
const
65 if (role == Qt::BackgroundColorRole)
67 if (flags() & Qt::ItemIsEditable)
69 return QTableWidgetItem::data(role);
73 return QColor(Qt::lightGray);
76 else if (role == Qt::FontRole)
78 QFont f = qvariant_cast<QFont>(QTableWidgetItem::data(Qt::FontRole));
82 if (!myOriginalValue && myModifiedValue)
88 same = (myOriginalValue->name() == myModifiedValue->name());
90 else if (myOriginalValue && myModifiedValue)
92 if (myIsPropertyValue)
107 return QTableWidgetItem::data(role);
110 void setReadOnly(
bool b) {
if (b) setFlags((Qt::ItemFlags)(flags() & ~Qt::ItemIsEditable));
else setFlags((Qt::ItemFlags)(flags() | Qt::ItemIsEditable)); };
129 virtual QWidget *createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
130 const QModelIndex &index)
const;
149 virtual void paintEvent(QPaintEvent *);
177 virtual void columnHeadersFrom(
const DtPropertyInterface* prototype, QStringList& columns)
const;
178 virtual QString columnTitleFor(
const QString&)
const;
179 virtual void fillInAndMapRwItemToTableItems(
int row,
int& colStart,
DtReaderWriter*);
183 virtual void flatten(
const DtReaderWriter* prototype, std::vector<const DtReaderWriter*>& list)
const;
187 virtual void updateEnableStatus();
189 virtual QStringList convertToTitles(
const QStringList& cols)
const;
191 virtual bool canHavePrimary()
const;
193 virtual void addPrimaryCheckBox(
int row,
int col);
195 virtual DtString currentPrimary()
const;
196 virtual DtString keyFor(
int col)
const;
197 virtual void updatePrimaryData();
198 virtual void setCurrentPrimary(
const DtString&,
bool,
bool updateData =
true);
200 virtual void clearPrimaryData();
201 virtual void setPrimaryDataFrom(
int);
202 virtual QCheckBox* primaryCheckBox(
int)
const;
204 virtual void setEquipmentAvailable(
const DtString&,
bool);
208 virtual void fixRowTitle(
int row = - 1);
210 virtual QString getContainedName(
const QString& =
"")
const;
214 virtual void updateAddButton();
216 virtual void removeRow(
int);
221 virtual void addRow();
222 virtual void removeRow();
223 virtual void itemSelectionChanged();
224 virtual void valueComboChanged();
225 virtual void primaryChanged();
226 virtual void addNewContainerItem();
227 virtual void editContainerItem();
228 virtual void removeContainerItem();
229 virtual void containedItemSelected();