cpsecplugins/cpadvancedsecplugin/src/advsecsettingssecuritymoduledetailview.cpp
author hgs
Wed, 20 Oct 2010 14:51:23 +0300
changeset 66 67b3e3c1fc87
parent 63 989397f9511c
permissions -rw-r--r--
201041

/*
* Copyright (c) 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:  Security module detail view in advanced security settings
*
*/

#include "advsecsettingssecuritymoduledetailview.h"
#include "advsecsettingssecuritymodulemodel.h"
#include <QGraphicsLinearLayout>
#include <HbGroupBox>
#include <HbScrollArea>
#include <HbMenu>
#include <HbAction>
#include <HbLabel>


// ======== MEMBER FUNCTIONS ========

// ---------------------------------------------------------------------------
// AdvSecSettingsSecurityModuleDetailView::AdvSecSettingsSecurityModuleDetailView()
// ---------------------------------------------------------------------------
//
AdvSecSettingsSecurityModuleDetailView::AdvSecSettingsSecurityModuleDetailView(
    AdvSecSettingsSecurityModuleModel &model, QGraphicsItem *parent) :
    AdvSecSettingsViewBase(0, parent), mModel(model), mModuleIndex(0),
    mViewLabel(0), mDetailsText(0)
{
    QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);

    mViewLabel = new HbGroupBox;
    layout->addItem(mViewLabel);

    HbScrollArea *scrollArea = new HbScrollArea;
    mDetailsText = new HbLabel;
    mDetailsText->setTextWrapping(Hb::TextWordWrap);
    scrollArea->setContentWidget(mDetailsText);
    scrollArea->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOn);
    layout->addItem(scrollArea);

    setLayout(layout);

    connect(&mModel, SIGNAL(detailsCompleted(QMap<int,QString>)),
        this, SLOT(detailsCompleted(QMap<int,QString>)));
    connect(&mModel, SIGNAL(deleteCompleted()),
        this, SLOT(displayPreviousView()));
}

// ---------------------------------------------------------------------------
// AdvSecSettingsSecurityModuleDetailView::~AdvSecSettingsSecurityModuleDetailView()
// ---------------------------------------------------------------------------
//
AdvSecSettingsSecurityModuleDetailView::~AdvSecSettingsSecurityModuleDetailView()
{
}

// ---------------------------------------------------------------------------
// AdvSecSettingsSecurityModuleDetailView::setSecurityModule()
// ---------------------------------------------------------------------------
//
void AdvSecSettingsSecurityModuleDetailView::setSecurityModule(int index)
{
    mModuleIndex = index;
    // TODO: remove
    mDetailsText->setPlainText(tr("TODO: Add info for module %1").arg(index));

    menu()->clearActions();
    if (mModel.isDeletable(index)) {
        HbAction *deleteAction = new HbAction(hbTrId("txt_common_menu_delete"));
        connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteSecurityModule()));
        menu()->addAction(deleteAction);
    }
}

// ---------------------------------------------------------------------------
// AdvSecSettingsSecurityModuleDetailView::detailsCompleted()
// ---------------------------------------------------------------------------
//
void AdvSecSettingsSecurityModuleDetailView::detailsCompleted(QMap<int,QString> /*details*/)
{
    // TODO: implement
}

// ---------------------------------------------------------------------------
// AdvSecSettingsSecurityModuleDetailView::deleteSecurityModule()
// ---------------------------------------------------------------------------
//
void AdvSecSettingsSecurityModuleDetailView::deleteSecurityModule()
{
    Q_ASSERT(mViewLabel != 0);
    // TODO: localized UI string needed
    QString confirmText(tr("Delete %1?").arg(mViewLabel->heading()));
    displayQuestionNote(confirmText, this, SLOT(deleteConfirmationAccepted()));
}

// ---------------------------------------------------------------------------
// AdvSecSettingsSecurityModuleDetailView::deleteConfirmationAccepted()
// ---------------------------------------------------------------------------
//
void AdvSecSettingsSecurityModuleDetailView::deleteConfirmationAccepted()
{
    mModel.deleteModule(mModuleIndex);
}