diff -r 2a11b5b00470 -r fd64c38c277d phonebookui/pbkcommonui/src/cntcollectionlistmodel.cpp --- 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 #include @@ -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 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(); + 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(); - 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 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 groupMemberIds = mContactManager->contactIds(rFilter, sortOrders); - - if (!groupMemberIds.isEmpty()) + QList sortOrders; + sortOrders.append(sortOrderFirstName); + sortOrders.append(sortOrderLastName); + + // group members and their count + QList 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 details = contact.details(); - 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 details = contact.details(); + 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 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(); - 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; }