iaupdate/IAD/ui/inc/iaupdatemainview.h
author hgs
Fri, 20 Aug 2010 11:39:56 +0300
changeset 64 48c14c385b0e
parent 44 329d304c1aa1
child 77 d1838696558c
permissions -rw-r--r--
201033_01

/*
* Copyright (c) 2009-2010 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:   This file contains the header file of the IAUpdateMainView
*                class 
*
*/

#ifndef IAUPDATEMAINVIEW_H_
#define IAUPDATEMAINVIEW_H_

#include <hbview.h>
#include <QItemSelection> 

#include "iaupdatenode.h"
#include "iaupdatefwnode.h"
#include "iaupdatebasenode.h"


class HbListWidget;
class HbAction;
class HbAbstractViewItem;
class HbGroupBox;
class HbDataForm;
class IAUpdateEngine;
class IAUpdateDialogUtil;
class TIAUpdateVersion;
class HbTranslator;


class IAUpdateMainView : public HbView
{
    Q_OBJECT 
    
public:
    IAUpdateMainView(IAUpdateEngine *engine);
    virtual ~IAUpdateMainView();
        
    void refresh(const RPointerArray<MIAUpdateNode> &nodes,
                 const RPointerArray<MIAUpdateFwNode> &fwNodes,
                 int error);
signals:
    void toSettingView();
    
public slots:
    void handleStartUpdate();
 
    void handleSettings();
 
    void handleDisclaimer();
    
    void handleDetails(HbAbstractViewItem *, const QPointF &);
    
    void handleFotaDetails(HbAbstractViewItem *, const QPointF &); 
    
    void handleSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
    
    void handleFwSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
    
    void dialogFinished(HbAction* action);
    
private:
    
    bool fotaSelected() const;
    void markListItem(bool mark, int index);
    void markFotaItem(bool mark);
    bool getMandatoryNodes(RPointerArray<MIAUpdateNode> &mandNodes) const;
    void showUpdateCannotOmitDialog(); 
    void showDependenciesFoundDialog(QString &text);
    void updateSelectionsToNodeArray(MIAUpdateNode &node, bool mark);
    void updateSelectionsToList();
    MIAUpdateNode* getApplicationNode(int index) const;
    void showDetails(MIAUpdateAnyNode& node);
    void constructDetailsText(MIAUpdateAnyNode &node, QString &text);
    void versionText(const TIAUpdateVersion &version, QString &versionText);
    void fileSizeText(int fileSize, QString &text);
    void setImportance(MIAUpdateAnyNode *node, QString &importanceDescription);
    void removeCurrentContentLayout();
    void refreshFirmwareUpdates(const RPointerArray<MIAUpdateFwNode> &fwNodes);
    void refreshFotaUpdate(MIAUpdateFwNode& fwNode);
    void refreshNsuUpdate();
    void refreshApplicationUpdates(const RPointerArray<MIAUpdateNode> &nodes);
    void updateSelectionInfoInDock();
    
private:
    enum DialogState
        {
        NoDialog,
        Dependencies,
        CannotOmit,
        Details
        };
     
    IAUpdateEngine *mEngine;
    IAUpdateDialogUtil *mDialogUtil;
    HbWidget *mContent;
    HbListWidget *mListView;
    HbListWidget *mFwListView;
    HbGroupBox *mApplicationUpdatesGroupBox;
    HbGroupBox *mFwNSUGroupBox;
    HbDataForm *mContentDataForm;
    HbGroupBox *mSelections;
    RPointerArray<MIAUpdateNode> mNodes;
    RPointerArray<MIAUpdateFwNode> mFwNodes;
    DialogState mDialogState; 
    HbAction *mPrimaryAction;
    MIAUpdateNode *mNode; 
    bool mMark;
    bool mSelectionUpdate;
    bool mSelectionConnect;
    HbTranslator *mTranslator;

};

#endif /* IAUPDATEMAINVIEW_H_ */