cpsecplugins/cpadvancedsecplugin/src/advsecsettingsviewbase.cpp
author hgs
Thu, 14 Oct 2010 13:56:11 +0300
changeset 63 989397f9511c
permissions -rw-r--r--
201039_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
989397f9511c 201039_03
hgs
parents:
diff changeset
     1
/*
989397f9511c 201039_03
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
989397f9511c 201039_03
hgs
parents:
diff changeset
     3
* All rights reserved.
989397f9511c 201039_03
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
989397f9511c 201039_03
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0""
989397f9511c 201039_03
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
989397f9511c 201039_03
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
989397f9511c 201039_03
hgs
parents:
diff changeset
     8
*
989397f9511c 201039_03
hgs
parents:
diff changeset
     9
* Initial Contributors:
989397f9511c 201039_03
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
989397f9511c 201039_03
hgs
parents:
diff changeset
    11
*
989397f9511c 201039_03
hgs
parents:
diff changeset
    12
* Contributors:
989397f9511c 201039_03
hgs
parents:
diff changeset
    13
*
989397f9511c 201039_03
hgs
parents:
diff changeset
    14
* Description:  Base class for advanced security settings views
989397f9511c 201039_03
hgs
parents:
diff changeset
    15
*
989397f9511c 201039_03
hgs
parents:
diff changeset
    16
*/
989397f9511c 201039_03
hgs
parents:
diff changeset
    17
989397f9511c 201039_03
hgs
parents:
diff changeset
    18
#include "advsecsettingsviewbase.h"
989397f9511c 201039_03
hgs
parents:
diff changeset
    19
#include <HbMainWindow>
989397f9511c 201039_03
hgs
parents:
diff changeset
    20
#include <HbAction>
989397f9511c 201039_03
hgs
parents:
diff changeset
    21
#include <HbMenu>
989397f9511c 201039_03
hgs
parents:
diff changeset
    22
#include <HbMessageBox>
989397f9511c 201039_03
hgs
parents:
diff changeset
    23
989397f9511c 201039_03
hgs
parents:
diff changeset
    24
989397f9511c 201039_03
hgs
parents:
diff changeset
    25
// ======== MEMBER FUNCTIONS ========
989397f9511c 201039_03
hgs
parents:
diff changeset
    26
989397f9511c 201039_03
hgs
parents:
diff changeset
    27
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    28
// AdvSecSettingsViewBase::AdvSecSettingsViewBase()
989397f9511c 201039_03
hgs
parents:
diff changeset
    29
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    30
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    31
AdvSecSettingsViewBase::AdvSecSettingsViewBase(QGraphicsWidget *widget,
989397f9511c 201039_03
hgs
parents:
diff changeset
    32
    QGraphicsItem *parent) : CpBaseSettingView(widget, parent), mPreviousView(0),
989397f9511c 201039_03
hgs
parents:
diff changeset
    33
    mItemSpecificMenu(0), mDeleteOnClose(false)
989397f9511c 201039_03
hgs
parents:
diff changeset
    34
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    35
    connect(this, SIGNAL(aboutToClose()), this, SLOT(displayPreviousView()));
989397f9511c 201039_03
hgs
parents:
diff changeset
    36
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    37
989397f9511c 201039_03
hgs
parents:
diff changeset
    38
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    39
// AdvSecSettingsViewBase::AdvSecSettingsViewBase()
989397f9511c 201039_03
hgs
parents:
diff changeset
    40
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    41
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    42
AdvSecSettingsViewBase::~AdvSecSettingsViewBase()
989397f9511c 201039_03
hgs
parents:
diff changeset
    43
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    44
    delete mItemSpecificMenu;
989397f9511c 201039_03
hgs
parents:
diff changeset
    45
    mItemSpecificMenu = 0;
989397f9511c 201039_03
hgs
parents:
diff changeset
    46
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    47
989397f9511c 201039_03
hgs
parents:
diff changeset
    48
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    49
// AdvSecSettingsViewBase::displayPreviousView()
989397f9511c 201039_03
hgs
parents:
diff changeset
    50
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    51
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    52
void AdvSecSettingsViewBase::displayPreviousView()
989397f9511c 201039_03
hgs
parents:
diff changeset
    53
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    54
    if (mPreviousView) {
989397f9511c 201039_03
hgs
parents:
diff changeset
    55
        HbMainWindow &window = *mainWindow();
989397f9511c 201039_03
hgs
parents:
diff changeset
    56
        HbView *currentView = window.currentView();
989397f9511c 201039_03
hgs
parents:
diff changeset
    57
        window.setCurrentView(mPreviousView);
989397f9511c 201039_03
hgs
parents:
diff changeset
    58
        mPreviousView = 0;
989397f9511c 201039_03
hgs
parents:
diff changeset
    59
        if (mDeleteOnClose) {
989397f9511c 201039_03
hgs
parents:
diff changeset
    60
            window.removeView(currentView);
989397f9511c 201039_03
hgs
parents:
diff changeset
    61
            currentView->deleteLater();
989397f9511c 201039_03
hgs
parents:
diff changeset
    62
        }
989397f9511c 201039_03
hgs
parents:
diff changeset
    63
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
    64
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    65
989397f9511c 201039_03
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    67
// AdvSecSettingsViewBase::displayError()
989397f9511c 201039_03
hgs
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    69
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    70
void AdvSecSettingsViewBase::displayError(int error)
989397f9511c 201039_03
hgs
parents:
diff changeset
    71
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    72
    HbMessageBox *messageBox = new HbMessageBox(HbMessageBox::MessageTypeWarning);
989397f9511c 201039_03
hgs
parents:
diff changeset
    73
    messageBox->setAttribute(Qt::WA_DeleteOnClose);
989397f9511c 201039_03
hgs
parents:
diff changeset
    74
    messageBox->setStandardButtons(HbMessageBox::Ok);
989397f9511c 201039_03
hgs
parents:
diff changeset
    75
989397f9511c 201039_03
hgs
parents:
diff changeset
    76
    // TODO: proper error texts, localised UI texts needed
989397f9511c 201039_03
hgs
parents:
diff changeset
    77
    QString text = tr("Error %1").arg(error);
989397f9511c 201039_03
hgs
parents:
diff changeset
    78
    messageBox->setText(text);
989397f9511c 201039_03
hgs
parents:
diff changeset
    79
    messageBox->open();
989397f9511c 201039_03
hgs
parents:
diff changeset
    80
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    81
989397f9511c 201039_03
hgs
parents:
diff changeset
    82
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    83
// AdvSecSettingsViewBase::displayView()
989397f9511c 201039_03
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    85
//
989397f9511c 201039_03
hgs
parents:
diff changeset
    86
void AdvSecSettingsViewBase::displayView(AdvSecSettingsViewBase *view)
989397f9511c 201039_03
hgs
parents:
diff changeset
    87
{
989397f9511c 201039_03
hgs
parents:
diff changeset
    88
    HbMainWindow &window = *mainWindow();
989397f9511c 201039_03
hgs
parents:
diff changeset
    89
    QList<HbView *> addedViews = window.views();
989397f9511c 201039_03
hgs
parents:
diff changeset
    90
    if (!addedViews.contains(view)) {
989397f9511c 201039_03
hgs
parents:
diff changeset
    91
        window.addView(view);
989397f9511c 201039_03
hgs
parents:
diff changeset
    92
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
    93
    view->mPreviousView = window.currentView();
989397f9511c 201039_03
hgs
parents:
diff changeset
    94
    window.setCurrentView(view);
989397f9511c 201039_03
hgs
parents:
diff changeset
    95
}
989397f9511c 201039_03
hgs
parents:
diff changeset
    96
989397f9511c 201039_03
hgs
parents:
diff changeset
    97
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
    98
// AdvSecSettingsViewBase::hasPreviousView()
989397f9511c 201039_03
hgs
parents:
diff changeset
    99
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   100
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   101
bool AdvSecSettingsViewBase::hasPreviousView() const
989397f9511c 201039_03
hgs
parents:
diff changeset
   102
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   103
    return (mPreviousView != 0);
989397f9511c 201039_03
hgs
parents:
diff changeset
   104
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   105
989397f9511c 201039_03
hgs
parents:
diff changeset
   106
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   107
// AdvSecSettingsViewBase::setDeleteOnClose()
989397f9511c 201039_03
hgs
parents:
diff changeset
   108
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   109
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   110
void AdvSecSettingsViewBase::setDeleteOnClose(bool deleteOnClose)
989397f9511c 201039_03
hgs
parents:
diff changeset
   111
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   112
    mDeleteOnClose = deleteOnClose;
989397f9511c 201039_03
hgs
parents:
diff changeset
   113
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   114
989397f9511c 201039_03
hgs
parents:
diff changeset
   115
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   116
// AdvSecSettingsViewBase::clearItemSpecificMenu()
989397f9511c 201039_03
hgs
parents:
diff changeset
   117
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   118
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   119
void AdvSecSettingsViewBase::clearItemSpecificMenu()
989397f9511c 201039_03
hgs
parents:
diff changeset
   120
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   121
    if (!mItemSpecificMenu) {
989397f9511c 201039_03
hgs
parents:
diff changeset
   122
        mItemSpecificMenu = new HbMenu;
989397f9511c 201039_03
hgs
parents:
diff changeset
   123
    } else {
989397f9511c 201039_03
hgs
parents:
diff changeset
   124
        mItemSpecificMenu->clearActions();
989397f9511c 201039_03
hgs
parents:
diff changeset
   125
    }
989397f9511c 201039_03
hgs
parents:
diff changeset
   126
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   127
989397f9511c 201039_03
hgs
parents:
diff changeset
   128
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   129
// AdvSecSettingsViewBase::addItemSpecificMenuAction()
989397f9511c 201039_03
hgs
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   131
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   132
void AdvSecSettingsViewBase::addItemSpecificMenuAction(const QString &text,
989397f9511c 201039_03
hgs
parents:
diff changeset
   133
    const QObject *receiver, const char *member)
989397f9511c 201039_03
hgs
parents:
diff changeset
   134
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   135
    HbAction *action = new HbAction(text);
989397f9511c 201039_03
hgs
parents:
diff changeset
   136
    connect(action, SIGNAL(triggered()), receiver, member);
989397f9511c 201039_03
hgs
parents:
diff changeset
   137
    mItemSpecificMenu->addAction(action);
989397f9511c 201039_03
hgs
parents:
diff changeset
   138
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   139
989397f9511c 201039_03
hgs
parents:
diff changeset
   140
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   141
// AdvSecSettingsViewBase::displayItemSpecificMenu()
989397f9511c 201039_03
hgs
parents:
diff changeset
   142
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   143
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   144
void AdvSecSettingsViewBase::displayItemSpecificMenu(const QPointF &position)
989397f9511c 201039_03
hgs
parents:
diff changeset
   145
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   146
    mItemSpecificMenu->setPreferredPos(position);
989397f9511c 201039_03
hgs
parents:
diff changeset
   147
    mItemSpecificMenu->open();
989397f9511c 201039_03
hgs
parents:
diff changeset
   148
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   149
989397f9511c 201039_03
hgs
parents:
diff changeset
   150
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   151
// AdvSecSettingsViewBase::displayQuestionNote()
989397f9511c 201039_03
hgs
parents:
diff changeset
   152
// ---------------------------------------------------------------------------
989397f9511c 201039_03
hgs
parents:
diff changeset
   153
//
989397f9511c 201039_03
hgs
parents:
diff changeset
   154
void AdvSecSettingsViewBase::displayQuestionNote(const QString &text,
989397f9511c 201039_03
hgs
parents:
diff changeset
   155
    const QObject *receiver, const char *accepedMember)
989397f9511c 201039_03
hgs
parents:
diff changeset
   156
{
989397f9511c 201039_03
hgs
parents:
diff changeset
   157
    HbMessageBox *messageBox = new HbMessageBox;
989397f9511c 201039_03
hgs
parents:
diff changeset
   158
    messageBox->setAttribute(Qt::WA_DeleteOnClose);
989397f9511c 201039_03
hgs
parents:
diff changeset
   159
989397f9511c 201039_03
hgs
parents:
diff changeset
   160
    messageBox->clearActions();
989397f9511c 201039_03
hgs
parents:
diff changeset
   161
    HbAction *yesAction = new HbAction(hbTrId("txt_common_button_yes"));
989397f9511c 201039_03
hgs
parents:
diff changeset
   162
    connect(yesAction, SIGNAL(triggered()), receiver, accepedMember);
989397f9511c 201039_03
hgs
parents:
diff changeset
   163
    messageBox->addAction(yesAction);
989397f9511c 201039_03
hgs
parents:
diff changeset
   164
    HbAction *noAction = new HbAction(hbTrId("txt_common_button_no"));
989397f9511c 201039_03
hgs
parents:
diff changeset
   165
    messageBox->addAction(noAction);
989397f9511c 201039_03
hgs
parents:
diff changeset
   166
989397f9511c 201039_03
hgs
parents:
diff changeset
   167
    messageBox->setText(text);
989397f9511c 201039_03
hgs
parents:
diff changeset
   168
    messageBox->open();
989397f9511c 201039_03
hgs
parents:
diff changeset
   169
}
989397f9511c 201039_03
hgs
parents:
diff changeset
   170