phonebookui/cntcommonui/views/cntnamesview_p.h
author hgs
Fri, 15 Oct 2010 12:24:46 +0300
changeset 81 640d30f4fb64
parent 72 6abfb1094884
permissions -rw-r--r--
201041

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

#include <QObject>

#include "cntnamesview.h"
#include "cntactionlauncher.h"
#include "cntactionmenubuilder.h"

#include <hbaction.h>
#include <hbabstractviewitem.h>
#include <qtcontacts.h>
#include <cntlistmodel.h>

class HbView;
class HbListView;
class HbDocumentLoader;
class HbSearchPanel;
class HbShrinkingVkbHost;
class HbMenu;
class CntExtensionManager;
class CntFetchContacts;

QTM_USE_NAMESPACE

class CntNamesViewPrivate : public QObject
{
    Q_OBJECT
    Q_DECLARE_PUBLIC(CntNamesView)
    friend class TestCntNamesView;
    
public:
    CntNamesViewPrivate();
    virtual ~CntNamesViewPrivate();
    
public:
    void activate( const CntViewParameters aArgs );
    void deactivate();
    void setEngine( CntAbstractEngine& aEngine ){ mEngine = &aEngine; }
    QString externalize(QDataStream &stream);
    bool internalize(QDataStream &stream, CntViewParameters &viewParameters);

public slots:
    // Search functions
    void showFinder();
    void hideFinder();
    void setFilter(const QString &filterString);
    
    // Extension action (activity stream toolbar button)
    void handleExtensionAction();
    
    // New contact creation
    void createNewContact();
    
    // Single and multiple contact deletion
    void deleteContact( QContact& aContact );
    void handleDeleteContact( int aAction );
    void deleteMultipleContacts();
    void handleDeleteMultipleContacts( QSet<QContactLocalId> aIds );

    // View switches
    void showPreviousView();
    void showCollectionView();
    void showContactView( const QModelIndex& aIndex );
    void showContactView( QContact& aContact );
    void showContactEditorView( QContact& aContact );
    void showSettingsView();
    void showImportsView();
    
    // FTU import dialog
    void handleImportContacts( HbAction *aAction );
    
    // Context menu actions
    void setShowContextMenu( const QModelIndex& aIndex );
    void showContextMenu(HbAbstractViewItem* aItem, QPointF aPoint); 
    void executeAction( QContact& aContact, QContactDetail aDetail, QString aAction );
    void actionExecuted( CntActionLauncher* aAction );
    
    // Contact database notifications
    void handleContactAddition(const QList<QContactLocalId> & aAddedList);
    void handleContactRemoval(const QList<QContactLocalId> & aRemovedList);
    void handleSelfContactIdChange(const QContactLocalId & aOldId, const QContactLocalId & aNewId);
    
public:
    bool isFinderVisible();

private:
    void changeDeleteActionStatus();
    void focusLineEdit();
    void setScrollPosition(int focusedContact);

public:
    CntNamesView *q_ptr;
    
public:  // lazy initializations
    HbListView *list();
    HbDocumentLoader *document();
    
   
private:
    friend class T_NameListTest;
    CntAbstractViewManager  *mViewManager;
    CntListModel            *mListModel;
    HbView                  *mView;
    HbListView              *mListView;
    HbSearchPanel           *mSearchPanel;
    HbDocumentLoader        *mLoader;
    HbShrinkingVkbHost      *mVirtualKeyboard;
    HbAction                *mSoftkey;
    HbAction                *mNamesAction;
    HbAction                *mMultipleDeleter;
    CntActionMenuBuilder    *mMenuBuilder;
    QActionGroup            *mActionGroup;
    HbMenu                  *mMenu;
    HbMenu                  *mViewMenu;
    CntAbstractEngine       *mEngine;
    QContactLocalId          mHandledContactId;
    bool                     mFilterChanged;

    static bool              mIsFirstTimeUse; // FTU flag
};

#endif /* CNTNAMESVIEWPRIVATE_H */