phonebookengines/cntlistmodel/inc/cntlistmodel_p.h
branchRCL_3
changeset 62 5b6f26637ad3
--- /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
+