phonebookui/pbkcommonui/inc/cntactionpopup_p.h
changeset 47 7cbcb2896f0e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/pbkcommonui/inc/cntactionpopup_p.h	Tue Jul 06 14:05:47 2010 +0300
@@ -0,0 +1,114 @@
+/*
+* 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 CNTACTIONPOPUP_P_H_
+#define CNTACTIONPOPUP_P_H_
+
+#include <QObject>
+#include <qtcontactsglobal.h>
+#include <hbselectiondialog.h>
+#include <qcontactdetail.h>
+#include "cntglobal.h"
+#include "cntactionpopup.h"
+
+class QStandardItemModel;
+class QStandardItem;
+class HbListView;
+class QModelIndex;
+QTM_BEGIN_NAMESPACE
+class QContact;
+class QContactDetail;
+QTM_END_NAMESPACE
+
+QTM_USE_NAMESPACE
+
+/*
+* Class for showing popup for Call, Message and Email actions if preffered number is not set
+*/
+
+class CntActionPopupPrivate : public HbSelectionDialog
+    {
+    Q_OBJECT
+    Q_DECLARE_PUBLIC(CntActionPopup)
+
+    enum ActionPopupPosition
+    { 
+            EInternalServices = 0,
+            ECallMobile,
+            ECallMobileHome,
+            ECallMobileWork,
+            ECallPhone,
+            ECallPhoneHome,
+            ECallPhoneWork,
+            ECallFax,
+            ECallFaxHome,
+            ECallFaxWork,
+            ECallPager,
+            ECallAssistant,
+            ECallCar,
+            EEmail,
+            EEmailHome,
+            EEmailWork,
+            ENotSupported
+    }; 
+public:
+    CntActionPopupPrivate( QContact *contact, QGraphicsItem *parent = 0 );
+    ~CntActionPopupPrivate();
+    
+    //returns true if the action is supported else false
+    bool showActionPopup(QString action);
+    
+signals:
+    //Emit signal for the perticular action with the detail selected from the popup
+    void executeContactAction( QContact& aContact, QContactDetail contactDetail, QString actionName );
+    void actionPopupCancelPressed();
+
+private slots:
+
+    void listItemSelected( QModelIndex index );
+    void handleUserResponse(HbAction* action);
+    
+private:
+
+    //Populate the call numbers for popup
+    void buildCallActionPopup();
+    //Populate the emails for popup
+    void buildEmailActionPopup();
+    //Populate the message numbers for popup
+    void buildMessageActionPopup();
+    
+    void showPopup();
+    
+    void sortDataItems();
+    
+    int getPosition(const QString& aId, const QString& aContext);
+    
+    bool supportsDetail(const QString &actionName, const QContactDetail &contactDetail);
+
+public:
+    CntActionPopup* q_ptr;
+    
+private:
+    QContact* mContact;
+    QStandardItemModel  *mListModel;
+    HbListView          *mListView;
+    QList<QStandardItem*>  mDataItemList;
+    HbAction *mCancelAction;
+    
+    friend class T_CntActionPopupTest;
+    };
+#endif /* CNTACTIONPOPUP_P_H_ */