QContactDetail Proxy Page

Macros

Macro Documentation

Q_DECLARE_CUSTOM_CONTACT_DETAIL

Macro for simplifying declaring custom (leaf) detail classes.

The first argument is the detail type of the class.

If you are creating a convenience class for a type of QContactDetail, you should use this macro when declaring your class to ensure that it interoperates with other contact functionality.

Here is an example of a custom extension class using this macro. Note that the class provides some predefined constants and some convenience methods that return values associated with schema fields.

 #include <QContactDetail>
 class ContactVehicle : public QContactDetail
 {
 public:
     Q_DECLARE_CUSTOM_CONTACT_DETAIL(ContactVehicle)

     enum VehicleField {
       FieldRegistration = 0,
       FieldMake,
       FieldModel,
       FieldColor
     };

     QString registration() const { return value(FieldRegistration).toString(); }
     void setRegistration(const QString& _registration) { setValue(FieldRegistration, _registration);

     QString make() const { return value(FieldMake).toString(); }
     void setMake(const QString& _make) { setValue(FieldMake, _make); }

     QString model() const { return value(FieldModel).toString(); }
     void setModel(const QString& _model) { setValue(FieldModel, _model); }

     QString color() const { return value(FieldColor).toString(); }
     void setColor(const QString &_color) { setValue(FieldColor, _color); }
 };