--- a/qtcontactsmobility/plugins/contacts/symbian/src/cntdisplaylabel.cpp Fri May 14 15:42:23 2010 +0300
+++ b/qtcontactsmobility/plugins/contacts/symbian/src/cntdisplaylabel.cpp Thu May 27 12:45:19 2010 +0300
@@ -41,13 +41,30 @@
#include "cntdisplaylabel.h"
#include <qtcontacts.h>
+#include <centralrepository.h>
+#include <cntcenrepkeys.h>
+
+const TUint32 KOrderLastFirst = 0x00000000;
+const TUint32 KOrderLastCommaFirst = 0x00000001;
+const TUint32 KOrderFirstLast = 0x00000002;
/*!
* Constructor
*/
-CntDisplayLabel::CntDisplayLabel()
+CntDisplayLabel::CntDisplayLabel() :
+ m_nameOrder(KOrderFirstLast)
{
+#ifdef SYMBIAN_BACKEND_USE_SQLITE
+ CRepository* cenrep;
+ TRAPD(err, cenrep = CRepository::NewL(KCRUiContacts));
+ if (err == KErrNone) {
+ TInt value(-1);
+ if (cenrep->Get(KNameOrdering, value) == KErrNone) {
+ m_nameOrder = static_cast<int>(value);
+ }
+ }
+#endif
setDisplayLabelDetails();
}
@@ -74,8 +91,16 @@
//Contact
//Preferred details
QList<QPair<QLatin1String, QLatin1String> > contactPrefferedDisplayLabelDetails;
- contactPrefferedDisplayLabelDetails.append(qMakePair(QLatin1String(QContactName::DefinitionName), QLatin1String(QContactName::FieldFirstName)));
- contactPrefferedDisplayLabelDetails.append(qMakePair(QLatin1String(QContactName::DefinitionName), QLatin1String(QContactName::FieldLastName)));
+ QLatin1String firstLatin(QContactName::FieldFirstName);
+ QLatin1String secondLatin(QContactName::FieldLastName);
+
+ if (m_nameOrder == KOrderLastFirst || m_nameOrder == KOrderLastCommaFirst) {
+ firstLatin = QLatin1String(QContactName::FieldLastName);
+ secondLatin = QLatin1String(QContactName::FieldFirstName);
+ }
+
+ contactPrefferedDisplayLabelDetails.append(qMakePair(QLatin1String(QContactName::DefinitionName), firstLatin));
+ contactPrefferedDisplayLabelDetails.append(qMakePair(QLatin1String(QContactName::DefinitionName), secondLatin));
m_contactDisplayLabelDetails.append(contactPrefferedDisplayLabelDetails);
//if preferred details doesn't exist use these
@@ -146,9 +171,12 @@
if(!label.isEmpty())
{
- displayLabel.append(delimiter());
+ // Inlcude a comma if needed in the display label
+ if (m_nameOrder == KOrderLastCommaFirst)
+ displayLabel.append(comma());
+ displayLabel.append(delimiter());
displayLabel.append(label);
- }
+ }
}
}
}
@@ -196,3 +224,12 @@
{
return m_groupDisplayLabelDetails.at(0);
}
+
+/*!
+ * Comma to be used in display label
+ * \return comma
+ */
+QString CntDisplayLabel::comma() const
+{
+ return ",";
+}