--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/cntlistmodel/cntlistmodel_p.cpp Fri Oct 15 12:24:46 2010 +0300
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Private data for CntListModel.
+*
+*/
+
+#include <xqsettingsmanager.h>
+#include <xqsettingskey.h>
+#include <qtcontacts.h>
+#include <cntlistmodel_p.h>
+#include <cntcache.h>
+#include <cntdisplaytextformatter.h>
+#include <cntdebug.h>
+
+/*!
+ \class CntListModel
+ \brief Private data for CntListModel.
+ */
+
+/*!
+ Initializes all data.
+ */
+CntListModelData::CntListModelData(QContactManager *manager, const QContactFilter &filter, bool showMyCard)
+ : mContactManager(manager),
+ mCache(CntCache::createSession(this, manager)),
+ mGroupId(0),
+ mCurrentContact(NULL),
+ mCurrentRow(-1),
+ mShowMyCard(showMyCard),
+ mMyCardId(manager->selfContactId()),
+ mSettings(NULL),
+ mNameListRowSettingkey(NULL),
+ mCurrentRowSetting(0),
+ mFormat(new CntDummyDisplayTextFormatter),
+ mDefaultIcon(HbIcon("qtg_large_avatar")),
+ mDefaultMyCardIcon(HbIcon("qtg_large_avatar_mycard"))
+{
+ CNT_ENTRY
+
+ setFilter(filter);
+
+ CNT_EXIT
+}
+
+/*!
+ Cleans up all data.
+ */
+CntListModelData::~CntListModelData()
+{
+ CNT_ENTRY
+
+ mCache->closeSession(this);
+
+ delete mSettings;
+ delete mNameListRowSettingkey;
+ delete mFormat;
+ delete mCurrentContact;
+
+ CNT_EXIT
+}
+
+/*!
+ Sets the filter for selecting contacts in the list.
+ */
+void CntListModelData::setFilter(const QContactFilter& contactFilter)
+{
+ CNT_ENTRY_ARGS(contactFilter.type())
+
+ mFilter = contactFilter;
+ mCurrentRow = -1;
+ if (contactFilter.type() == QContactFilter::RelationshipFilter) {
+ QContactRelationshipFilter* relationshipFilter = static_cast<QContactRelationshipFilter*>(&mFilter);
+ if (relationshipFilter->relationshipType() == QContactRelationship::HasMember &&
+ relationshipFilter->relatedContactRole() == QContactRelationship::First) {
+ mGroupId = relationshipFilter->relatedContactId().localId();
+ }
+ } else {
+ mGroupId = 0;
+
+ // set proper text formatter for the display name.
+ if (contactFilter.type() == QContactFilter::ContactDetailFilter) {
+ delete mFormat;
+ mFormat = NULL;
+
+ QContactDetailFilter *detailFilter = static_cast<QContactDetailFilter*>(&mFilter);
+ QStringList filter = detailFilter->value().toStringList();
+
+ if (detailFilter->detailDefinitionName() == QContactDisplayLabel::DefinitionName
+ && detailFilter->matchFlags() & QContactFilter::MatchStartsWith
+ && !filter.isEmpty()) {
+ mFormat = new CntHTMLDisplayTextFormatter();
+ } else {
+ mFormat = new CntDummyDisplayTextFormatter();
+ }
+ }
+ }
+
+ CNT_EXIT_ARGS(mGroupId)
+}