29 #include <QSharedPointer>
40 namespace qutim_sdk_0_3
43 class DataItemPrivate;
252 QString name()
const;
257 void setName(
const QString &itemName);
271 QVariant data()
const;
277 T data(
const T &def = T())
const;
281 void setData(
const QVariant &itemData);
290 QList<DataItem> subitems()
const;
294 void setSubitems(
const QList<DataItem> &newSubitems);
298 DataItem subitem(
const QString &name,
bool recursive =
false)
const;
300 int removeSubitems(
const QString &name,
bool recursive =
false);
301 bool removeSubitem(
const QString &name,
bool recursive =
false);
302 DataItem takeSubitem(
const QString &name,
bool recursive =
false);
307 void addSubitem(
const DataItem &subitem);
311 bool hasSubitems()
const;
318 void allowModifySubitems(
const DataItem &defaultSubitem,
int maxSubitemsCount = -1);
323 bool isAllowedModifySubitems()
const;
329 int maxSubitemsCount()
const;
339 bool isReadOnly()
const;
344 void setReadOnly(
bool readOnly =
true);
353 void setDataChangedHandler(QObject *receiver,
const char *method);
357 QObject *dataChangedReceiver()
const;
361 const char *dataChangedMethod()
const;
372 QVariant property(
const char *name,
const QVariant &def = QVariant())
const;
379 T property(
const char *name,
const T &def = T())
const
380 {
return qVariantValue<T>(
property(name, qVariantFromValue<T>(def))); }
385 void setProperty(
const char *name,
const QVariant &value);
386 QList<QByteArray> dynamicPropertyNames()
const;
389 friend class DataItemPrivate;
390 QSharedDataPointer<DataItemPrivate> d;
417 const QStringList &data = QStringList(),
418 int maxStringsCount = -1);
421 int maxStringsCount = -1);
428 int minValue = 0,
int maxValue = 100);
435 double minValue = 0,
double maxValue = 100);
442 const QIcon &data = QIcon(),
443 const QSize &imageSize = QSize(32, 32),
444 const QList<QIcon> &alternatives = QList<QIcon>());
451 const QImage &data = QImage(),
452 const QSize &imageSize = QSize(32, 32),
453 const QList<QImage> &alternatives = QList<QImage>());
460 const QPixmap &data = QPixmap(),
461 const QSize &imageSize = QSize(128, 128),
462 const QList<QPixmap> &alternatives = QList<QPixmap>());
469 const QStringList &alternatives,
const QString &data = QString(),
470 bool editable =
false, QValidator *validator = 0);
472 const QStringList &alternatives,
const QString &data,
473 bool editable, QRegExp validator);
477 bool editable =
false, QValidator *validator = 0);
481 bool editable, QRegExp validator);
488 const QString &data = QString());
497 const QString &data = QString(),
498 QValidator *validator = 0,
bool password =
false);
500 const QString &data, QRegExp validator,
501 bool password =
false);
504 bool password =
false);
507 bool password =
false);
528 Q_DECLARE_FLAGS(ButtonRoles, ButtonRole)
530 NoButton = 0x00000000,
533 SaveAll = 0x00001000,
536 YesToAll = 0x00008000,
538 NoToAll = 0x00020000,
544 Discard = 0x00800000,
548 RestoreDefaults = 0x08000000
550 Q_DECLARE_FLAGS(StandardButtons, StandardButton)
565 virtual bool isChanged()
const = 0;
573 virtual bool isComplete()
const = 0;
577 virtual void clearState() = 0;
584 virtual void setData(
const QString &fieldName,
const QVariant &data) = 0;
586 StandardButtons standartButtons = NoButton,
594 void helpRequested();
595 void clicked(
int buttonIndex);
608 void completeChanged(
bool complete);
610 virtual void virtual_hook(
int id,
void *data);
627 return d.canConvert<T>() ? d.value<T>() : def;
631 Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractDataForm::ButtonRoles)
641 #endif // DATAFORMS_H