--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/cntlistmodel/inc/cntlistmodel_p.h Tue Aug 31 15:05:21 2010 +0300
@@ -0,0 +1,129 @@
+/*
+* 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:
+*
+*/
+
+#ifndef MOBCNTMODELPRIVATE_H
+#define MOBCNTMODELPRIVATE_H
+
+#include <QSharedData>
+#include <QMap>
+
+#include <qcontactmanager.h>
+#include <qcontactfilter.h>
+#include <qcontactdetailfilter.h>
+#include <qcontactsortorder.h>
+#include <cntuids.h>
+#include "cntcache.h"
+#include <cntdebug.h>
+#include "cntdisplaytextformatter.h"
+#include <xqsettingsmanager.h>
+#include <xqsettingskey.h>
+
+QTM_USE_NAMESPACE
+
+class CntListModelData : public QSharedData
+{
+public:
+ CntListModelData( const QContactFilter& contactFilter = QContactFilter(),
+ bool showMyCard = true) :
+ m_contactManager(NULL),
+ m_ownedContactManager(false),
+ m_currentRow(-1),
+ m_showMyCard(showMyCard),
+ m_Settings(NULL),
+ m_NameListRowSettingkey(NULL),
+ m_currentRowSetting(0),
+ m_groupId(-1),
+ m_Format( new CntDummyDisplayTextFormatter )
+ {
+ setFilter(contactFilter);
+ }
+
+ ~CntListModelData()
+ {
+ if (m_ownedContactManager)
+ delete m_contactManager;
+ delete m_Settings;
+ delete m_NameListRowSettingkey;
+ delete m_Format;
+ }
+
+ void setFilter(const QContactFilter& contactFilter)
+ {
+ CNT_LOG_ARGS(contactFilter.type())
+
+ m_filter = contactFilter;
+ m_currentRow = -1;
+ if (contactFilter.type() == QContactFilter::RelationshipFilter) {
+ QContactRelationshipFilter* relationshipFilter = static_cast<QContactRelationshipFilter*>(&m_filter);
+ CNT_LOG_ARGS("type:" << relationshipFilter->relationshipType() << "role:" << relationshipFilter->relatedContactRole())
+ if (relationshipFilter->relationshipType() == QContactRelationship::HasMember &&
+ relationshipFilter->relatedContactRole() == QContactRelationship::First)
+ m_groupId = relationshipFilter->relatedContactId().localId();
+ }
+ else {
+ m_groupId = -1;
+
+ // set proper text formatter for the display name.
+ if ( contactFilter.type() == QContactFilter::ContactDetailFilter )
+ {
+ delete m_Format;
+ m_Format = NULL;
+
+ QContactDetailFilter* detailFilter = static_cast<QContactDetailFilter*>( &m_filter );
+ QStringList filter = detailFilter->value().toStringList();
+
+ if ( detailFilter->detailDefinitionName() == QContactDisplayLabel::DefinitionName &&
+ detailFilter->matchFlags() & QContactFilter::MatchStartsWith &&
+ !filter.isEmpty() )
+ {
+ m_Format = new CntHTMLDisplayTextFormatter();
+ }
+ else
+ {
+ m_Format = new CntDummyDisplayTextFormatter();
+ }
+ }
+
+ }
+
+ CNT_LOG_ARGS(m_groupId)
+ }
+
+public:
+ QContactManager* m_contactManager;
+ CntCache* m_cache;
+ bool m_ownedContactManager;
+ mutable CntContactInfo m_currentContact;
+ mutable int m_currentRow;
+
+ QList<QContactLocalId> m_contactIds;
+ QContactFilter m_filter;
+ QList<QContactSortOrder> m_sortOrders;
+ bool m_showMyCard;
+ QContactLocalId m_myCardId;
+ int nameOrder;
+
+ XQSettingsManager* m_Settings;
+ XQSettingsKey *m_NameListRowSettingkey;
+ int m_currentRowSetting;
+ QContactLocalId m_groupId;
+
+ CntDisplayTextFormatter* m_Format;
+};
+
+#endif // QCONTACTMODELPRIVATE_H
+