25 #include <QAbstractItemModel> 26 #include <QItemDelegate> 34 #include "klfpobjeditwidget_p.h" 51 KLFPObjModel::~KLFPObjModel()
82 klfDbg(
"\tindex="<<index<<
"; role="<<role ) ;
92 n < 0 || n >= d->propertyNames.count()) {
100 if (role == Qt::ToolTipRole || role == Qt::DisplayRole) {
102 return d->propertyNames[n];
108 if (role == Qt::ToolTipRole || role == Qt::DisplayRole) {
111 if (role == Qt::EditRole) {
113 return d->pObj->property(d->propertyNames[n]);
124 klfDbg(
"\tindex="<<index ) ;
127 klfDbg(
"Invalid index.") ;
134 n < 0 || n >= d->propertyNames.count()) {
140 if (index.
column() == 0) {
142 return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
145 return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable;
151 bool KLFPObjModel::hasChildren(
const QModelIndex &parent)
const 158 QVariant KLFPObjModel::headerData(
int section, Qt::Orientation orientation,
int role)
const 160 if (orientation == Qt::Horizontal) {
161 if (role == Qt::SizeHintRole) {
163 return QSize(100,30);
165 return QSize(100,30);
168 if (role == Qt::DisplayRole) {
170 return tr(
"Property");
179 bool KLFPObjModel::hasIndex(
int row,
int column,
const QModelIndex &parent)
const 181 if (column < 0 || column > 1)
183 if (row < 0 || row >= d->propertyNames.size())
192 if (!hasIndex(row, column, parent))
195 return createIndex(row, column);
203 int KLFPObjModel::rowCount(
const QModelIndex &parent)
const 207 return d->propertyNames.size();
210 int KLFPObjModel::columnCount(
const QModelIndex &parent)
const 217 bool KLFPObjModel::canFetchMore(
const QModelIndex& )
const 227 void KLFPObjModel::updateData()
236 struct KLFPObjEditWidgetPrivate {
242 KLFPObjModel * model;
243 QItemDelegate * delegate;
254 d->model =
new KLFPObjModel(pobj,
this);
255 d->delegate =
new QItemDelegate(
this);
258 setItemDelegate(d->delegate);
268 d->model =
new KLFPObjModel(NULL,
this);
269 d->delegate =
new QItemDelegate(
this);
272 setItemDelegate(d->delegate);
285 d->model->setPObj(pobj);
KLF_EXPORT QByteArray klfSaveVariantToText(const QVariant &value, bool saveListAndMapsAsXML, QByteArray *savedType, QByteArray *savedListOrMapType)
#define KLF_PRIVATE_HEAD(ClassName)
#define klfDbg(streamableItems)
print debug stream items
#define KLF_DEBUG_BLOCK(msg)
Utility to debug the execution of a block.
#define KLF_DELETE_PRIVATE
An abstract object characterized by properties.
virtual QStringList propertyNameList() const =0
Queries what property are (or can be) set.
#define klfWarning(streamableItems)
#define KLF_DEBUG_TIME_BLOCK(msg)
Utility to time the execution of a block.
#define KLF_INIT_PRIVATE(ClassName)