homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsbaseviewstate.cpp
author hgs
Fri, 25 Jun 2010 19:19:22 +0300
changeset 62 341166945d65
child 63 52b0f64eeb51
child 77 4b195f3bea29
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: Base for menu view states.
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <hbmessagebox.h>
hgs
parents:
diff changeset
    19
#include <HbParameterLengthLimiter>
hgs
parents:
diff changeset
    20
#include <hbaction.h>
hgs
parents:
diff changeset
    21
#include <canotifier.h>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "hsbaseviewstate.h"
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
/*!
hgs
parents:
diff changeset
    26
 Constructor.
hgs
parents:
diff changeset
    27
 */
hgs
parents:
diff changeset
    28
HsBaseViewState::HsBaseViewState(
hgs
parents:
diff changeset
    29
    QState *parent):
hgs
parents:
diff changeset
    30
    QState(parent),
hgs
parents:
diff changeset
    31
    mNotifier(0),
hgs
parents:
diff changeset
    32
    mMessageRelatedItemId(0),
hgs
parents:
diff changeset
    33
    mApplicationLaunchFailMessage(0)    
hgs
parents:
diff changeset
    34
{
hgs
parents:
diff changeset
    35
    construct();
hgs
parents:
diff changeset
    36
}
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
/*!
hgs
parents:
diff changeset
    39
 Constructs contained objects.
hgs
parents:
diff changeset
    40
 */
hgs
parents:
diff changeset
    41
void HsBaseViewState::construct()
hgs
parents:
diff changeset
    42
{
hgs
parents:
diff changeset
    43
}
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
/*!
hgs
parents:
diff changeset
    46
 Creates and open application launch fail message.
hgs
parents:
diff changeset
    47
 \param errorCode eroor code to display.
hgs
parents:
diff changeset
    48
 */
hgs
parents:
diff changeset
    49
void HsBaseViewState::createApplicationLaunchFailMessage(int errorCode,int itemId)
hgs
parents:
diff changeset
    50
{
hgs
parents:
diff changeset
    51
    QString message;
hgs
parents:
diff changeset
    52
    message.append(
hgs
parents:
diff changeset
    53
        HbParameterLengthLimiter("txt_applib_info_launching_the_application_failed").arg(
hgs
parents:
diff changeset
    54
            errorCode));
hgs
parents:
diff changeset
    55
    
hgs
parents:
diff changeset
    56
    mMessageRelatedItemId = itemId;
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
    // create and show message box
hgs
parents:
diff changeset
    59
    mApplicationLaunchFailMessage = new HbMessageBox(HbMessageBox::MessageTypeInformation);
hgs
parents:
diff changeset
    60
    mApplicationLaunchFailMessage->setAttribute(Qt::WA_DeleteOnClose);
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
    mApplicationLaunchFailMessage->setText(message);
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    mApplicationLaunchFailMessage->clearActions();
hgs
parents:
diff changeset
    65
    HbAction *mClosemAction = new HbAction(hbTrId("txt_common_button_close"),
hgs
parents:
diff changeset
    66
        mApplicationLaunchFailMessage);
hgs
parents:
diff changeset
    67
    mApplicationLaunchFailMessage->addAction(mClosemAction);
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    mApplicationLaunchFailMessage->open(this, SLOT(applicationLaunchFailMessageFinished(HbAction*)));
hgs
parents:
diff changeset
    70
    
hgs
parents:
diff changeset
    71
    subscribeForMemoryCardRemove();
hgs
parents:
diff changeset
    72
}
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
/*!
hgs
parents:
diff changeset
    75
 Subscribe for memory card remove.
hgs
parents:
diff changeset
    76
 */
hgs
parents:
diff changeset
    77
void HsBaseViewState::subscribeForMemoryCardRemove()
hgs
parents:
diff changeset
    78
{
hgs
parents:
diff changeset
    79
    if (mMessageRelatedItemId !=0 ) {
hgs
parents:
diff changeset
    80
        CaNotifierFilter filter;
hgs
parents:
diff changeset
    81
        filter.setIds(QList<int>() << mMessageRelatedItemId);
hgs
parents:
diff changeset
    82
        mNotifier = CaService::instance()->createNotifier(filter);
hgs
parents:
diff changeset
    83
        mNotifier->setParent(this);
hgs
parents:
diff changeset
    84
        connect(mNotifier,
hgs
parents:
diff changeset
    85
            SIGNAL(entryChanged(CaEntry,ChangeType)),
hgs
parents:
diff changeset
    86
            SLOT(cleanUpApplicationLaunchFailMessage()));
hgs
parents:
diff changeset
    87
    }
hgs
parents:
diff changeset
    88
}
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
/*!
hgs
parents:
diff changeset
    91
 Clean up application launch fail message box.
hgs
parents:
diff changeset
    92
 \retval void
hgs
parents:
diff changeset
    93
 */
hgs
parents:
diff changeset
    94
void HsBaseViewState::cleanUpApplicationLaunchFailMessage()
hgs
parents:
diff changeset
    95
{
hgs
parents:
diff changeset
    96
    if (mApplicationLaunchFailMessage) {
hgs
parents:
diff changeset
    97
        mApplicationLaunchFailMessage->close();
hgs
parents:
diff changeset
    98
        mApplicationLaunchFailMessage = NULL;
hgs
parents:
diff changeset
    99
    }
hgs
parents:
diff changeset
   100
    if (mNotifier) {
hgs
parents:
diff changeset
   101
        delete mNotifier;
hgs
parents:
diff changeset
   102
        mNotifier = NULL;
hgs
parents:
diff changeset
   103
    }
hgs
parents:
diff changeset
   104
    mMessageRelatedItemId = 0;
hgs
parents:
diff changeset
   105
}
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
/*!
hgs
parents:
diff changeset
   108
 Action after closed application launch fail dialog.
hgs
parents:
diff changeset
   109
 \param finishedAction chosen action.
hgs
parents:
diff changeset
   110
 \retval void
hgs
parents:
diff changeset
   111
 */
hgs
parents:
diff changeset
   112
void HsBaseViewState::applicationLaunchFailMessageFinished(HbAction*)
hgs
parents:
diff changeset
   113
{
hgs
parents:
diff changeset
   114
    mApplicationLaunchFailMessage = NULL;
hgs
parents:
diff changeset
   115
    cleanUpApplicationLaunchFailMessage();
hgs
parents:
diff changeset
   116
}
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
/*!
hgs
parents:
diff changeset
   119
 Slot invoked when a state is exited.
hgs
parents:
diff changeset
   120
 */
hgs
parents:
diff changeset
   121
void HsBaseViewState::stateExited()
hgs
parents:
diff changeset
   122
{
hgs
parents:
diff changeset
   123
    HSMENUTEST_FUNC_ENTRY("HsBaseViewState::stateExited");
hgs
parents:
diff changeset
   124
    cleanUpApplicationLaunchFailMessage();
hgs
parents:
diff changeset
   125
    HSMENUTEST_FUNC_EXIT("HsBaseViewState::stateExited");
hgs
parents:
diff changeset
   126
}
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
/*!
hgs
parents:
diff changeset
   129
 Destructor.
hgs
parents:
diff changeset
   130
 */
hgs
parents:
diff changeset
   131
HsBaseViewState::~HsBaseViewState()
hgs
parents:
diff changeset
   132
{
hgs
parents:
diff changeset
   133
}