38 class InfoRequestPrivate;
39 class InfoRequestFactoryPrivate;
40 class InfoObserverPrivate;
54 virtual ~InfoRequestFactory();
55 virtual SupportLevel supportLevel(QObject *
object) = 0;
56 virtual InfoRequest *createrDataFormRequest(QObject *
object) = 0;
57 static InfoRequest *dataFormRequest(QObject *
object);
58 static InfoRequestFactory *factory(QObject *
object);
61 friend class InfoObserver;
63 void setSupportLevel(QObject *
object, SupportLevel level);
64 virtual bool startObserve(QObject *
object) = 0;
65 virtual bool stopObserve(QObject *
object) = 0;
66 virtual void virtual_hook(
int id,
void *data);
86 QObject *object()
const;
90 void requestData(
const QSet<QString> &hints = QSet<QString>());
91 void updateData(
const DataItem &dataItem);
93 QVariant value(
const QString &name,
const QVariant &def = QVariant())
const;
95 T value(
const QString &name,
const T &def = T())
const;
104 virtual QVariant getValue(
const QString &name)
const;
105 virtual void doRequest(
const QSet<QString> &hints) = 0;
106 virtual void doUpdate(
const DataItem &dataItem) = 0;
107 virtual void doCancel() = 0;
108 virtual void virtual_hook(
int id,
void *data);
110 QScopedPointer<InfoRequestPrivate> d_ptr;
113 template <
typename T>
116 QVariant val =
value(name);
117 return val.isNull() ? def : qVariantValue<T>(val);
123 Q_DECLARE_PRIVATE(InfoObserver)
125 InfoObserver(QObject *
object);
126 virtual ~InfoObserver();
127 QObject *object()
const;
134 void onObjectDestroyed(QObject *
object);
138 QScopedPointer<InfoObserverPrivate> d_ptr;
145 #endif // INFOREQUEST_H