phonebookui/pbkcommonui/inc/cntgroupmemberview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:42:23 +0300
changeset 31 2a11b5b00470
parent 27 de1630741fbe
child 37 fd64c38c277d
permissions -rw-r--r--
Revision: 201017 Kit: 201019

/*
* 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 CNTGROUPMEMBERVIEW_H
#define CNTGROUPMEMBERVIEW_H

#include <QObject>
#include <QList>
#include <hbdocumentloader.h>

#include <cntabstractview.h>

class MobCntModel;
class CntAbstractViewManager;
class CntContactCardHeadingItem;
class CntFetchContacts;
class HbView;
class HbAction;
class HbListView;
class HbAbstractViewItem;
class ThumbnailManager;
class QModelIndex;
class CntImageLabel;
class HbDocumentLoader;

QTM_BEGIN_NAMESPACE
class QContact;
QTM_END_NAMESPACE

QTM_USE_NAMESPACE

class CntGroupMemberView : public QObject, public CntAbstractView
{
    friend class TestCntGroupMemberView;
    Q_OBJECT

public:
    CntGroupMemberView();
    ~CntGroupMemberView();
    
public: // From CntAbstractView
    void activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs );
    void deactivate();
    bool isDefault() const { return false; }
    HbView* view() const { return mView; }
    int viewId() const { return groupMemberView; }

public slots:
    void setOrientation(Qt::Orientation orientation);


private slots:
    void showPreviousView();
    void openGroupActions();
    void manageMembers();
    void handleManageMembers();
    void editGroup();
    void deleteGroup();
    void handleDeleteGroup(HbAction *action);
    
    void showContextMenu(HbAbstractViewItem *item, const QPointF &coords);
    void handleMenu(HbAction* action);

    
    void showContactView(const QModelIndex &index);
    void removeFromGroup(const QModelIndex &index);
    void editContact(const QModelIndex &index);
    void thumbnailReady(const QPixmap& pixmap, void *data, int id, int error);
    void openImageEditor();
    
    void drawImageMenu(const QPointF &aCoords);
    void handleImageMenu(HbAction* action);
    
private:    
    void changeImage();
    void removeImage();
    
private:
    QContactManager* getContactManager();
    
private:
    QContact*                   mGroupContact; // own
    CntAbstractViewManager*     mViewManager;
    HbDocumentLoader            mDocumentLoader;
    HbView*                     mView; // own
    HbAction*                   mSoftkey; // owned by view
    CntContactCardHeadingItem*  mHeadingItem; // owned by layout
    ThumbnailManager*           mThumbnailManager; // own
    HbAction*                   mManageAction; // owned by view
    HbAction*                   mDeleteAction; // owned by view
    HbAction*                   mShowActionsAction; // owned by view
    HbAction*                   mEditGroupAction; // owned by view
    MobCntModel*                mModel; // own
    CntImageLabel*              mImageLabel;
    HbListView*                 mListView; // owned by layout
    HbDocumentLoader*           mDocument;
    CntFetchContacts*           mFetchView;
    QList<QContactLocalId>      mOriginalGroupMembers;
    bool                        mIsPreviousImageEditorView;
    QContactAvatar*             mAvatar;
};

#endif // CNTGROUPMEMBERVIEW_H

// EOF