--- a/phonebookui/pbkcommonui/src/cntcollectionlistmodel.cpp Fri May 14 15:42:23 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntcollectionlistmodel.cpp Thu May 27 12:45:19 2010 +0300
@@ -17,6 +17,8 @@
#include "cntcollectionlistmodel.h"
#include "cntextensionmanager.h"
+#include "cntfavourite.h"
+
#include <cntuiextensionfactory.h>
#include <cntuigroupsupplier.h>
@@ -149,20 +151,10 @@
QVariantList dataList;
QStringList displayList;
displayList.append(hbTrId("txt_phob_dblist_favorites"));
- if(!isFavoriteGroupCreated())
- {
- displayList.append(hbTrId("txt_phob_dblist_favorites_val_no_favorites_selecte")); // as this isn't supported yet
-
- //Create Fav grp
- QContact favoriteGroup;
- favoriteGroup.setType(QContactType::TypeGroup);
- QContactName favoriteGroupName;
- favoriteGroupName.setCustomLabel("Favorites");
- favoriteGroup.saveDetail(&favoriteGroupName);
- mContactManager->saveContact(&favoriteGroup);
- mFavoriteGroupId = favoriteGroup.localId();
- }
- else
+
+ mFavoriteGroupId = CntFavourite::createFavouriteGroup( mContactManager );
+
+ if(mFavoriteGroupId != -1)
{
QContact favoriteGroup = mContactManager->contact(mFavoriteGroupId);
QContactRelationshipFilter rFilter;
@@ -208,8 +200,12 @@
{
displayList.append(hbTrId("txt_phob_dblist_favorites_val_no_favorites_selecte"));
}
-
}
+ else
+ {
+ displayList.append(hbTrId("txt_phob_dblist_favorites_val_no_favorites_selecte"));
+ }
+
dataList.append(displayList);
dataList.append(QStringList("qtg_large_favourites"));
dataList.append(mFavoriteGroupId);
@@ -274,134 +270,100 @@
groupsOrder.append(sortOrderGroupName);
QList<QContactLocalId> groupContactIds = mContactManager->contactIds(groupFilter, groupsOrder);
- if (!groupContactIds.isEmpty())
+
+ for(int i = 0;i < groupContactIds.count();i++)
{
- for(int i = 0;i < groupContactIds.count();i++)
+ QVariantList dataList;
+
+ // group name
+ QStringList displayList;
+
+ QContact contact = mContactManager->contact(groupContactIds.at(i));
+ QContactName contactName = contact.detail<QContactName>();
+ QString groupName = contactName.customLabel();
+ if(groupContactIds.at(i) != mFavoriteGroupId )
{
- QVariantList dataList;
-
- // group name
- QStringList displayList;
-
- QContact contact = mContactManager->contact(groupContactIds.at(i));
- QContactName contactName = contact.detail<QContactName>();
- QString groupName = contactName.customLabel();
- if(groupContactIds.at(i) != mFavoriteGroupId )
+ if (groupName.isNull())
{
- if (groupName.isNull())
- {
- QString unnamed(hbTrId("Unnamed"));
- displayList.append(unnamed);
- }
- else
- {
- displayList.append(groupName);
- }
-
- QContactRelationshipFilter rFilter;
- rFilter.setRelationshipType(QContactRelationship::HasMember);
- rFilter.setRelatedContactRole(QContactRelationship::First);
- rFilter.setRelatedContactId(contact.id());
-
- QContactSortOrder sortOrderFirstName;
- sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
- QContactName::FieldFirst);
- sortOrderFirstName.setCaseSensitivity(Qt::CaseInsensitive);
+ QString unnamed(hbTrId("Unnamed"));
+ displayList.append(unnamed);
+ }
+ else
+ {
+ displayList.append(groupName);
+ }
- QContactSortOrder sortOrderLastName;
- sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
- QContactName::FieldLast);
- sortOrderLastName.setCaseSensitivity(Qt::CaseInsensitive);
+ QContactRelationshipFilter rFilter;
+ rFilter.setRelationshipType(QContactRelationship::HasMember);
+ rFilter.setRelatedContactRole(QContactRelationship::First);
+ rFilter.setRelatedContactId(contact.id());
- QList<QContactSortOrder> sortOrders;
- sortOrders.append(sortOrderFirstName);
- sortOrders.append(sortOrderLastName);
+ QContactSortOrder sortOrderFirstName;
+ sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
+ QContactName::FieldFirst);
+ sortOrderFirstName.setCaseSensitivity(Qt::CaseInsensitive);
+
+ QContactSortOrder sortOrderLastName;
+ sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
+ QContactName::FieldLast);
+ sortOrderLastName.setCaseSensitivity(Qt::CaseInsensitive);
- // group members and their count
- QList<QContactLocalId> groupMemberIds = mContactManager->contactIds(rFilter, sortOrders);
-
- if (!groupMemberIds.isEmpty())
+ QList<QContactSortOrder> sortOrders;
+ sortOrders.append(sortOrderFirstName);
+ sortOrders.append(sortOrderLastName);
+
+ // group members and their count
+ QList<QContactLocalId> groupMemberIds = mContactManager->contactIds(rFilter, sortOrders);
+
+ if (!groupMemberIds.isEmpty())
+ {
+ QStringList nameList;
+ for(int i = 0;i < groupMemberIds.count();i++)
{
- QStringList nameList;
- for(int i = 0;i < groupMemberIds.count();i++)
+ QContact contact = mContactManager->contact(groupMemberIds.at(i));
+ QString memberName = contact.displayLabel();
+ nameList << memberName;
+ if (nameList.join(", ").length() > 30)
{
- QContact contact = mContactManager->contact(groupMemberIds.at(i));
- QString memberName = contact.displayLabel();
- nameList << memberName;
- if (nameList.join(", ").length() > 30)
- {
- break;
- }
- }
- QString names = nameList.join(", ");
- displayList.append(names);
- displayList.append(hbTrId("(%1)").arg(groupMemberIds.count()));
- }
- else
- {
- displayList.append(hbTrId("No members selected"));
- }
- dataList.append(displayList);
-
- // Default if no image for group
- bool icon = false;
- QList<QContactAvatar> details = contact.details<QContactAvatar>();
- for (int i = 0;i < details.count();i++)
- {
- if (details.at(i).imageUrl().isValid())
- {
- dataList.append(QStringList(details.at(i).imageUrl().toString()));
- icon = true;
break;
}
}
- if(!icon)
+ QString names = nameList.join(", ");
+ displayList.append(names);
+ displayList.append(hbTrId("(%1)").arg(groupMemberIds.count()));
+ }
+ else
+ {
+ displayList.append(hbTrId("No members selected"));
+ }
+ dataList.append(displayList);
+
+ // Default if no image for group
+ bool icon = false;
+ QList<QContactAvatar> details = contact.details<QContactAvatar>();
+ for (int i = 0;i < details.count();i++)
+ {
+ if (details.at(i).imageUrl().isValid())
{
- dataList.append(QStringList("qtg_large_custom"));
+ dataList.append(QStringList(details.at(i).imageUrl().toString()));
+ icon = true;
+ break;
}
-
- // contact Id for identification
- dataList.append(groupContactIds.at(i));
-
- mDataPointer->mDataList.append(dataList);
+ }
+ if(!icon)
+ {
+ dataList.append(QStringList("qtg_large_custom"));
}
+
+ // contact Id for identification
+ dataList.append(groupContactIds.at(i));
+
+ mDataPointer->mDataList.append(dataList);
}
}
}
-bool CntCollectionListModel::isFavoriteGroupCreated()
-{
- bool favoriteGroupCreated = false;
- QContactDetailFilter groupFilter;
- groupFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
- groupFilter.setValue(QString(QLatin1String(QContactType::TypeGroup)));
-
- QList<QContactLocalId> groupContactIds = mContactManager->contactIds(groupFilter);
-
- if (!groupContactIds.isEmpty())
- {
- for(int i = 0;i < groupContactIds.count();i++)
- {
- QContact contact = mContactManager->contact(groupContactIds.at(i));
- QContactName contactName = contact.detail<QContactName>();
- QString groupName = contactName.customLabel();
- if(groupName.compare("Favorites") == 0)
- {
- favoriteGroupCreated = true;
- mFavoriteGroupId = groupContactIds.at(i);
- break;
- }
- }
- }
- return favoriteGroupCreated;
-}
-
-int CntCollectionListModel::favoriteGroupId()
-{
- return mFavoriteGroupId;
-}
-
bool CntCollectionListModel::isExtensionGroup(const QModelIndex &index)
{
int row = index.row();
@@ -425,7 +387,7 @@
CntViewParameters params;
for(int i = 0;i < mDataPointer->mExtensions.value(row)->groupCount();i++)
{
- const CntUiExtensionGroup& group = mDataPointer->mExtensions.value(row)->groupAt(i);
+ CntUiExtensionGroup& group = mDataPointer->mExtensions.value(row)->groupAt(i);
if (group.serviceId() == mDataPointer->mDataList.at(row)[2].toInt())
{
group.activated(params);
@@ -435,18 +397,16 @@
return params;
}
-CntViewParameters CntCollectionListModel::extensionGroupLongPressed(int row, const QPointF& coords)
+void CntCollectionListModel::extensionGroupLongPressed(int row, const QPointF& coords, CntExtensionGroupCallback* interface)
{
- CntViewParameters params;
for(int i = 0;i < mDataPointer->mExtensions.value(row)->groupCount();i++)
{
- const CntUiExtensionGroup& group = mDataPointer->mExtensions.value(row)->groupAt(i);
+ CntUiExtensionGroup& group = mDataPointer->mExtensions.value(row)->groupAt(i);
if (group.serviceId() == mDataPointer->mDataList.at(row)[2].toInt())
{
- group.longPressed(coords, params);
+ group.longPressed(coords, interface);
break;
}
}
- return params;
}