--- a/qtmobility/src/contacts/qcontactdetail.h Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/src/contacts/qcontactdetail.h Mon May 03 13:18:40 2010 +0300
@@ -57,8 +57,9 @@
{
public:
QContactDetail();
+ QContactDetail(const char* definitionName); // possibly internal
QContactDetail(const QString& definitionName);
- virtual ~QContactDetail();
+ ~QContactDetail();
QContactDetail(const QContactDetail& other);
QContactDetail& operator=(const QContactDetail& other);
@@ -74,19 +75,19 @@
// Predefined attribute names and values
#ifdef Q_QDOC
- const char* FieldContext;
- const char* ContextHome;
- const char* ContextWork;
- const char* ContextOther;
- const char* FieldDetailUri;
- const char* FieldLinkedDetailUris;
+ static const QLatin1Constant FieldContext;
+ static const QLatin1Constant ContextHome;
+ static const QLatin1Constant ContextWork;
+ static const QLatin1Constant ContextOther;
+ static const QLatin1Constant FieldDetailUri;
+ static const QLatin1Constant FieldLinkedDetailUris;
#else
- Q_DECLARE_LATIN1_LITERAL(FieldContext, "Context");
- Q_DECLARE_LATIN1_LITERAL(ContextHome, "Home");
- Q_DECLARE_LATIN1_LITERAL(ContextWork, "Work");
- Q_DECLARE_LATIN1_LITERAL(ContextOther, "Other");
- Q_DECLARE_LATIN1_LITERAL(FieldDetailUri, "DetailUri");
- Q_DECLARE_LATIN1_LITERAL(FieldLinkedDetailUris, "LinkedDetailUris");
+ Q_DECLARE_LATIN1_CONSTANT(FieldContext, "Context");
+ Q_DECLARE_LATIN1_CONSTANT(ContextHome, "Home");
+ Q_DECLARE_LATIN1_CONSTANT(ContextWork, "Work");
+ Q_DECLARE_LATIN1_CONSTANT(ContextOther, "Other");
+ Q_DECLARE_LATIN1_CONSTANT(FieldDetailUri, "DetailUri");
+ Q_DECLARE_LATIN1_CONSTANT(FieldLinkedDetailUris, "LinkedDetailUris");
#endif
bool operator==(const QContactDetail& other) const;
@@ -98,9 +99,6 @@
int key() const;
void resetKey();
- void setPreferredActions(const QList<QContactActionDescriptor>& preferredActions);
- QList<QContactActionDescriptor> preferredActions() const;
-
QString value(const QString& key) const;
bool setValue(const QString& key, const QVariant& value);
bool removeValue(const QString& key);
@@ -113,7 +111,40 @@
return variantValue(key).value<T>();
}
-
+ /* These are probably internal */
+ QString value(const char* key) const;
+ bool setValue(const char* key, const QVariant& value);
+ bool removeValue(const char* key);
+ bool hasValue(const char* key) const;
+ QVariant variantValue(const char *key) const;
+ template<typename T> T value(const char *key) const
+ {
+ return variantValue(key).value<T>();
+ }
+ template<int N> QString value(const QLatin1Constant<N>& key) const
+ {
+ return value(key.latin1());
+ }
+ template<int N> bool setValue(const QLatin1Constant<N>& key, const QVariant& value)
+ {
+ return setValue(key.latin1(), value);
+ }
+ template<int N> bool removeValue(const QLatin1Constant<N>& key)
+ {
+ return removeValue(key.latin1());
+ }
+ template<int N> bool hasValue(const QLatin1Constant<N>& key) const
+ {
+ return hasValue(key.latin1());
+ }
+ template<int N> QVariant variantValue(const QLatin1Constant<N>& key) const
+ {
+ return variantValue(key.latin1());
+ }
+ template<typename T, int N> T value(const QLatin1Constant<N>& key) const
+ {
+ return value<T>(key.latin1());
+ }
void setContexts(const QStringList& contexts)
{
@@ -156,8 +187,10 @@
}
protected:
- QContactDetail(const QContactDetail& other, const QString& expectedDefinitionId);
- QContactDetail& assign(const QContactDetail& other, const QString& expectedDefinitionId);
+ QContactDetail(const QContactDetail &other, const QString& expectedDefinitionId);
+ QContactDetail& assign(const QContactDetail &other, const QString& expectedDefinitionId);
+ QContactDetail(const QContactDetail &other, const char* expectedDefinitionId);
+ QContactDetail& assign(const QContactDetail &other, const char* expectedDefinitionId);
private:
friend class QContact;
@@ -165,17 +198,22 @@
QSharedDataPointer<QContactDetailPrivate> d;
};
+Q_CONTACTS_EXPORT uint qHash(const QContactDetail& key);
+#ifndef QT_NO_DEBUG_STREAM
+Q_CONTACTS_EXPORT QDebug operator<<(QDebug dbg, const QContactDetail& detail);
+#endif
+
Q_DECLARE_OPERATORS_FOR_FLAGS(QContactDetail::AccessConstraints);
#define Q_DECLARE_CUSTOM_CONTACT_DETAIL(className, definitionNameString) \
- className() : QContactDetail(DefinitionName) {} \
- className(const QContactDetail& field) : QContactDetail(field, DefinitionName) {} \
- className& operator=(const QContactDetail& other) {assign(other, DefinitionName); return *this;} \
+ className() : QContactDetail(DefinitionName.latin1()) {} \
+ className(const QContactDetail& field) : QContactDetail(field, DefinitionName.latin1()) {} \
+ className& operator=(const QContactDetail& other) {assign(other, DefinitionName.latin1()); return *this;} \
\
- Q_DECLARE_LATIN1_LITERAL(DefinitionName, definitionNameString);
+ Q_DECLARE_LATIN1_CONSTANT(DefinitionName, definitionNameString);
#define Q_IMPLEMENT_CUSTOM_CONTACT_DETAIL(className, definitionNameString) \
- Q_DEFINE_LATIN1_LITERAL(className::DefinitionName, definitionNameString)
+ Q_DEFINE_LATIN1_CONSTANT(className::DefinitionName, definitionNameString)
QTM_END_NAMESPACE