phonebookui/pbkcommonui/inc/cntbaseview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Mar 2010 09:27:18 +0200
changeset 24 0ba2181d7c28
permissions -rw-r--r--
Revision: 201007 Kit: 201011

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

#include <hbview.h>
#include <hbapplication.h>

#include "cntviewmanager.h"
#include "cntmodelprovider.h"
#include "cntactions.h"
#include "cntcommands.h"
#include "qtpbkglobal.h"
#include "cntdocumentloader.h"

// forward declarations
class HbAbstractViewItem;

QTM_USE_NAMESPACE

class QTPBK_EXPORT CntBaseView : public HbView
{
    Q_OBJECT

public:
    CntBaseView(CntViewManager *viewManager, QGraphicsItem *parent = 0);
    virtual ~CntBaseView();
    virtual void setupView();
    CntActions *actions();
    CntViewManager *viewManager();

public:
    virtual void deActivateView() { }
    virtual void activateView(const CntViewParameters &viewParameters){ Q_UNUSED(viewParameters); }
    virtual CntViewParameters::ViewId viewId() const = 0;

public slots:
    virtual void aboutToCloseView() { }
    virtual void keyPressEvent(QKeyEvent *event);
    virtual void setOrientation(Qt::Orientation orientation) { Q_UNUSED(orientation); }

#ifdef PBK_UNIT_TEST
public:
#else
protected:
#endif

    MobCntModel *contactModel();
    QContactManager *contactManager();

    //toolbar
    virtual void addActionsToToolBar() { }
    void addToolBar();
    void clearToolBar();
    virtual void setToolBarOrientation();

    // top right corner button
    virtual void addSoftkeyAction();

    // menu
    virtual void addMenuItems() { }

    CntCommands *commands();

    // XML related code
    CntDocumentLoader &documentLoader();
    bool loadDocument(const char *aDocument);
    bool loadDocument(const char *aDocument, const char *aSection);
    QGraphicsWidget* findWidget(const QString& aWidget);
    QObject* findObject(const QString& aObject);

#ifdef PBK_UNIT_TEST
public:
#else
private:
#endif
    CntViewManager      *mViewManager;
    CntModelProvider    *mModelProvider;
    CntActions          *mActions;
    CntCommands         *mCommands;
    CntViewParameters   mViewParameters;
    HbAction            *mSoftKeyBackAction;
    CntDocumentLoader    mDocumentLoader;    

};

#endif // CNTBASEVIEW_H