ipsservices/nmipssettings/src/nmipssettingsdeletemailboxop.cpp
author hgs
Thu, 14 Oct 2010 17:33:43 +0300
changeset 76 38bf5461e270
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
76
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 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:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
#include <msvapi.h>
hgs
parents:
diff changeset
    18
#include <msvids.h>
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <QTimer>
hgs
parents:
diff changeset
    21
#include <QServiceManager>
hgs
parents:
diff changeset
    22
#include <QServiceFilter>
hgs
parents:
diff changeset
    23
#include <QServiceInterfaceDescriptor>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include <HbMessageBox>
hgs
parents:
diff changeset
    26
#include <HbProgressDialog>
hgs
parents:
diff changeset
    27
#include <HbAction>
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
#include "nmipssettingsdeletemailboxop.h"
hgs
parents:
diff changeset
    30
#include "nmipssettingsmanagerbase.h"
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
/// CONSTANTS
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
/// How many times the delete is attempted before giving up.
hgs
parents:
diff changeset
    35
const int KDeleteRetryCount = 3;
hgs
parents:
diff changeset
    36
/// How long will the operation wait (ms) for the disconnect event to arrive before timing out
hgs
parents:
diff changeset
    37
const int KDisconnectTimeout = 2500;
hgs
parents:
diff changeset
    38
/// How long will the operation wait (ms) before attempting the delete again if error happened.
hgs
parents:
diff changeset
    39
const int KRetryDelay = 250;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
/*!
hgs
parents:
diff changeset
    43
    \class CMailboxDisconnectWait
hgs
parents:
diff changeset
    44
    \brief Symbian helper class for mailbox delete operation. Used for listening disconnect events
hgs
parents:
diff changeset
    45
           from messaging server.
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
*/
hgs
parents:
diff changeset
    48
class CMailboxDisconnectWait : public CBase, public MMsvSessionObserver
hgs
parents:
diff changeset
    49
{
hgs
parents:
diff changeset
    50
public:
hgs
parents:
diff changeset
    51
    static CMailboxDisconnectWait* NewL(
hgs
parents:
diff changeset
    52
        NmIpsSettingsDeleteMailboxOp& aDeleteOp, const TMsvId& aMailboxId );
hgs
parents:
diff changeset
    53
    ~CMailboxDisconnectWait();
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    TBool IsConnected();
hgs
parents:
diff changeset
    56
    
hgs
parents:
diff changeset
    57
public: // from MMsvSessionObserver
hgs
parents:
diff changeset
    58
    void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
private:
hgs
parents:
diff changeset
    61
    CMailboxDisconnectWait( NmIpsSettingsDeleteMailboxOp& aDeleteOp, const TMsvId& aMailboxId );
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
private: // data
hgs
parents:
diff changeset
    64
    /// Own. Messaging server session
hgs
parents:
diff changeset
    65
    CMsvSession* iMsvSession;
hgs
parents:
diff changeset
    66
    /// Mailbox ID that is observed
hgs
parents:
diff changeset
    67
    TMsvId iMailboxId;
hgs
parents:
diff changeset
    68
    /// Delete operation
hgs
parents:
diff changeset
    69
    NmIpsSettingsDeleteMailboxOp& iDeleteOp;
hgs
parents:
diff changeset
    70
};
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
/*!
hgs
parents:
diff changeset
    73
    Constructor of CMailboxDisconnectWait.
hgs
parents:
diff changeset
    74
*/
hgs
parents:
diff changeset
    75
CMailboxDisconnectWait* CMailboxDisconnectWait::NewL( 
hgs
parents:
diff changeset
    76
    NmIpsSettingsDeleteMailboxOp& aDeleteOp,
hgs
parents:
diff changeset
    77
    const TMsvId& aMailboxId )
hgs
parents:
diff changeset
    78
{
hgs
parents:
diff changeset
    79
    CMailboxDisconnectWait* self = new(ELeave) CMailboxDisconnectWait( aDeleteOp, aMailboxId );
hgs
parents:
diff changeset
    80
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    81
    self->iMsvSession = CMsvSession::OpenSyncL( *self );
hgs
parents:
diff changeset
    82
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    83
    return self;
hgs
parents:
diff changeset
    84
}
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
/*!
hgs
parents:
diff changeset
    87
    Constructor of CMailboxDisconnectWait.
hgs
parents:
diff changeset
    88
*/
hgs
parents:
diff changeset
    89
CMailboxDisconnectWait::CMailboxDisconnectWait( 
hgs
parents:
diff changeset
    90
    NmIpsSettingsDeleteMailboxOp& aDeleteOp, const TMsvId& aMailboxId ) : 
hgs
parents:
diff changeset
    91
    iMailboxId( aMailboxId ),
hgs
parents:
diff changeset
    92
    iDeleteOp( aDeleteOp )
hgs
parents:
diff changeset
    93
{
hgs
parents:
diff changeset
    94
}
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
/*!
hgs
parents:
diff changeset
    97
    Destructor of CMailboxDisconnectWait.
hgs
parents:
diff changeset
    98
*/
hgs
parents:
diff changeset
    99
CMailboxDisconnectWait::~CMailboxDisconnectWait()
hgs
parents:
diff changeset
   100
{
hgs
parents:
diff changeset
   101
    delete iMsvSession;
hgs
parents:
diff changeset
   102
}
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
/*!
hgs
parents:
diff changeset
   105
    Check if observed mailbox is connected or not
hgs
parents:
diff changeset
   106
*/
hgs
parents:
diff changeset
   107
TBool CMailboxDisconnectWait::IsConnected()
hgs
parents:
diff changeset
   108
{
hgs
parents:
diff changeset
   109
    TBool connected = EFalse;
hgs
parents:
diff changeset
   110
    TMsvEntry entry;
hgs
parents:
diff changeset
   111
    TMsvId id;
hgs
parents:
diff changeset
   112
    if( iMsvSession->GetEntry( iMailboxId, id, entry ) == KErrNone )
hgs
parents:
diff changeset
   113
        {
hgs
parents:
diff changeset
   114
        connected = entry.Connected();
hgs
parents:
diff changeset
   115
        }
hgs
parents:
diff changeset
   116
    return connected;
hgs
parents:
diff changeset
   117
}
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
/*!
hgs
parents:
diff changeset
   120
    Event handler of Messaging server events
hgs
parents:
diff changeset
   121
*/
hgs
parents:
diff changeset
   122
void CMailboxDisconnectWait::HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* /*aArg3*/)
hgs
parents:
diff changeset
   123
{
hgs
parents:
diff changeset
   124
    // Entry changed event is received when online/offline state has changed
hgs
parents:
diff changeset
   125
    if( EMsvEntriesChanged == aEvent )
hgs
parents:
diff changeset
   126
        {
hgs
parents:
diff changeset
   127
        // mailboxes are only on root level, so check the parent
hgs
parents:
diff changeset
   128
        TMsvId parent = *static_cast<TMsvId*>(aArg2);
hgs
parents:
diff changeset
   129
        if( parent == KMsvRootIndexEntryId )
hgs
parents:
diff changeset
   130
            {
hgs
parents:
diff changeset
   131
            // find the mailbox we're observing
hgs
parents:
diff changeset
   132
            CMsvEntrySelection* selection = static_cast<CMsvEntrySelection*>(aArg1);
hgs
parents:
diff changeset
   133
            TInt count = selection->Count();
hgs
parents:
diff changeset
   134
            for( TInt i = 0; i < count; ++i )
hgs
parents:
diff changeset
   135
                {
hgs
parents:
diff changeset
   136
                if( (*selection)[i] == iMailboxId )
hgs
parents:
diff changeset
   137
                    {
hgs
parents:
diff changeset
   138
                    // if mailbox is not connected -> report to observer
hgs
parents:
diff changeset
   139
                    TMsvEntry entry;
hgs
parents:
diff changeset
   140
                    TMsvId id;
hgs
parents:
diff changeset
   141
                    TInt err = iMsvSession->GetEntry( iMailboxId, id, entry );
hgs
parents:
diff changeset
   142
                    if( !err && !entry.Connected() )
hgs
parents:
diff changeset
   143
                        {
hgs
parents:
diff changeset
   144
                        TInt err; // error code ignored
hgs
parents:
diff changeset
   145
                        QT_TRYCATCH_ERROR( err, iDeleteOp.mailboxDisconnected() );
hgs
parents:
diff changeset
   146
                        Q_UNUSED(err); // remove compile warning
hgs
parents:
diff changeset
   147
                        }
hgs
parents:
diff changeset
   148
                    }
hgs
parents:
diff changeset
   149
                }
hgs
parents:
diff changeset
   150
            }
hgs
parents:
diff changeset
   151
        }
hgs
parents:
diff changeset
   152
}
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
/*!
hgs
parents:
diff changeset
   156
    \class NmIpsSettingsDeleteMailboxOp
hgs
parents:
diff changeset
   157
    \brief Operation that handles the deletion of mailbox
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
*/
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
/*!
hgs
parents:
diff changeset
   164
    Constructor of NmIpsSettingsDeleteMailboxOp.
hgs
parents:
diff changeset
   165
*/
hgs
parents:
diff changeset
   166
NmIpsSettingsDeleteMailboxOp::NmIpsSettingsDeleteMailboxOp(NmIpsSettingsManagerBase &settingsManager) :
hgs
parents:
diff changeset
   167
    mDisconnectWait(NULL),
hgs
parents:
diff changeset
   168
    mSettingsManager(settingsManager),
hgs
parents:
diff changeset
   169
    mDeleteConfirmationDlg(NULL),
hgs
parents:
diff changeset
   170
    mDeleteProgressDlg(NULL),
hgs
parents:
diff changeset
   171
    mRetryCount(KDeleteRetryCount),
hgs
parents:
diff changeset
   172
    mError(0)
hgs
parents:
diff changeset
   173
{
hgs
parents:
diff changeset
   174
    connect( this, SIGNAL(stateChanged()), this, SLOT(processState()), Qt::QueuedConnection );
hgs
parents:
diff changeset
   175
}
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
/*!
hgs
parents:
diff changeset
   178
    Destructor of NmIpsSettingsDeleteMailboxOp.
hgs
parents:
diff changeset
   179
*/
hgs
parents:
diff changeset
   180
NmIpsSettingsDeleteMailboxOp::~NmIpsSettingsDeleteMailboxOp()
hgs
parents:
diff changeset
   181
{
hgs
parents:
diff changeset
   182
    delete mDeleteConfirmationDlg;
hgs
parents:
diff changeset
   183
    delete mDeleteProgressDlg;
hgs
parents:
diff changeset
   184
    delete mDisconnectWait;
hgs
parents:
diff changeset
   185
}
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
/*!
hgs
parents:
diff changeset
   188
    Starts the operation
hgs
parents:
diff changeset
   189
*/
hgs
parents:
diff changeset
   190
void NmIpsSettingsDeleteMailboxOp::startOperation()
hgs
parents:
diff changeset
   191
{
hgs
parents:
diff changeset
   192
    // reset state
hgs
parents:
diff changeset
   193
    mRetryCount = KDeleteRetryCount;
hgs
parents:
diff changeset
   194
    mResult = DeleteMbResultSuccess;
hgs
parents:
diff changeset
   195
    mError = 0;
hgs
parents:
diff changeset
   196
    
hgs
parents:
diff changeset
   197
    delete mDisconnectWait;
hgs
parents:
diff changeset
   198
    mDisconnectWait = NULL;
hgs
parents:
diff changeset
   199
    TRAPD( err, mDisconnectWait = CMailboxDisconnectWait::NewL( 
hgs
parents:
diff changeset
   200
        *this, mSettingsManager.mailboxId().id32() ) );
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
    if(!err) {
hgs
parents:
diff changeset
   203
        changeState(StateConfirmation);
hgs
parents:
diff changeset
   204
    } else {
hgs
parents:
diff changeset
   205
        // failed
hgs
parents:
diff changeset
   206
        complete(DeleteMbResultFailure, err);
hgs
parents:
diff changeset
   207
    }
hgs
parents:
diff changeset
   208
}
hgs
parents:
diff changeset
   209
hgs
parents:
diff changeset
   210
/*!
hgs
parents:
diff changeset
   211
    Observer method to get notifications when the handled mailbox has disconnected
hgs
parents:
diff changeset
   212
*/
hgs
parents:
diff changeset
   213
void NmIpsSettingsDeleteMailboxOp::mailboxDisconnected()
hgs
parents:
diff changeset
   214
{
hgs
parents:
diff changeset
   215
    if( mState == StateDisconnect )
hgs
parents:
diff changeset
   216
        {
hgs
parents:
diff changeset
   217
        changeState(StateDelete);
hgs
parents:
diff changeset
   218
        }
hgs
parents:
diff changeset
   219
}
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
/*!
hgs
parents:
diff changeset
   222
    Notification method that is called when user has responded to confirmation query
hgs
parents:
diff changeset
   223
*/
hgs
parents:
diff changeset
   224
void NmIpsSettingsDeleteMailboxOp::handleConfimationDlg(HbAction *action)
hgs
parents:
diff changeset
   225
{
hgs
parents:
diff changeset
   226
    if (action == mDeleteConfirmationDlg->actions().at(0)) {
hgs
parents:
diff changeset
   227
        changeState(StateDisconnect);
hgs
parents:
diff changeset
   228
    } else {
hgs
parents:
diff changeset
   229
        complete(DeleteMbResultCanceled, 0);
hgs
parents:
diff changeset
   230
    }
hgs
parents:
diff changeset
   231
}
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
/*!
hgs
parents:
diff changeset
   234
    Notification method that is called when timeout has occured while waiting for disconnect event
hgs
parents:
diff changeset
   235
*/
hgs
parents:
diff changeset
   236
void NmIpsSettingsDeleteMailboxOp::handleDisconnectTimeout()
hgs
parents:
diff changeset
   237
{
hgs
parents:
diff changeset
   238
    if( mState == StateDisconnect )
hgs
parents:
diff changeset
   239
        {
hgs
parents:
diff changeset
   240
        changeState(StateDelete);
hgs
parents:
diff changeset
   241
        }
hgs
parents:
diff changeset
   242
}
hgs
parents:
diff changeset
   243
hgs
parents:
diff changeset
   244
/*!
hgs
parents:
diff changeset
   245
    Operation's state machine. Handles states.
hgs
parents:
diff changeset
   246
*/
hgs
parents:
diff changeset
   247
void NmIpsSettingsDeleteMailboxOp::processState()
hgs
parents:
diff changeset
   248
{
hgs
parents:
diff changeset
   249
    switch( mState ) {
hgs
parents:
diff changeset
   250
    case StateConfirmation: {
hgs
parents:
diff changeset
   251
        // Ask user whether to delete or not
hgs
parents:
diff changeset
   252
        if(!mDeleteConfirmationDlg) {
hgs
parents:
diff changeset
   253
            mDeleteConfirmationDlg =
hgs
parents:
diff changeset
   254
                new HbMessageBox(HbMessageBox::MessageTypeQuestion);
hgs
parents:
diff changeset
   255
            mDeleteConfirmationDlg->setText(
hgs
parents:
diff changeset
   256
                hbTrId("txt_mail_dialog_do_you_want_to_delete_the_mailbox"));
hgs
parents:
diff changeset
   257
            mDeleteConfirmationDlg->setTimeout(HbMessageBox::NoTimeout);
hgs
parents:
diff changeset
   258
            mDeleteConfirmationDlg->setStandardButtons(HbMessageBox::Yes | HbMessageBox::No);
hgs
parents:
diff changeset
   259
        }
hgs
parents:
diff changeset
   260
        mDeleteConfirmationDlg->open(this, SLOT(handleConfimationDlg(HbAction *)));
hgs
parents:
diff changeset
   261
        break;
hgs
parents:
diff changeset
   262
    }
hgs
parents:
diff changeset
   263
    
hgs
parents:
diff changeset
   264
    case StateDisconnect: {
hgs
parents:
diff changeset
   265
        // Disconnect mailbox
hgs
parents:
diff changeset
   266
        emit goOffline(mSettingsManager.mailboxId());
hgs
parents:
diff changeset
   267
hgs
parents:
diff changeset
   268
        // Display the progress note during rest of the operation
hgs
parents:
diff changeset
   269
        if( !mDeleteProgressDlg ) {
hgs
parents:
diff changeset
   270
            mDeleteProgressDlg = new HbProgressDialog(HbProgressDialog::WaitDialog);
hgs
parents:
diff changeset
   271
            mDeleteProgressDlg->removeAction( mDeleteProgressDlg->actions().at(0));
hgs
parents:
diff changeset
   272
            mDeleteProgressDlg->setText(hbTrId("txt_common_info_deleting"));
hgs
parents:
diff changeset
   273
        }
hgs
parents:
diff changeset
   274
        mDeleteProgressDlg->delayedShow();
hgs
parents:
diff changeset
   275
hgs
parents:
diff changeset
   276
        if( mDisconnectWait->IsConnected() ) {
hgs
parents:
diff changeset
   277
            // connected -> wait for disconnect or timeout
hgs
parents:
diff changeset
   278
            QTimer::singleShot(KDisconnectTimeout, this, SLOT(handleDisconnectTimeout()));
hgs
parents:
diff changeset
   279
        } else {
hgs
parents:
diff changeset
   280
            // not connected -> delete mailbox immediately
hgs
parents:
diff changeset
   281
            changeState( StateDelete );
hgs
parents:
diff changeset
   282
        }
hgs
parents:
diff changeset
   283
        break;
hgs
parents:
diff changeset
   284
    }
hgs
parents:
diff changeset
   285
    
hgs
parents:
diff changeset
   286
    case StateDelete: {
hgs
parents:
diff changeset
   287
        // delete mailbox
hgs
parents:
diff changeset
   288
        int error = mSettingsManager.deleteMailbox();
hgs
parents:
diff changeset
   289
        if( !error ) {
hgs
parents:
diff changeset
   290
            changeState(StateUnregisterMailbox);
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
        } else if( mRetryCount-- ) {
hgs
parents:
diff changeset
   293
            // attempt again after small delay
hgs
parents:
diff changeset
   294
            QTimer::singleShot(KRetryDelay, this, SLOT(processState()));
hgs
parents:
diff changeset
   295
        
hgs
parents:
diff changeset
   296
        } else {
hgs
parents:
diff changeset
   297
            // enough failures. give up
hgs
parents:
diff changeset
   298
            complete(DeleteMbResultFailure, error);
hgs
parents:
diff changeset
   299
        }
hgs
parents:
diff changeset
   300
        break;
hgs
parents:
diff changeset
   301
    }
hgs
parents:
diff changeset
   302
    
hgs
parents:
diff changeset
   303
    case StateUnregisterMailbox: {
hgs
parents:
diff changeset
   304
        // Unregister mailbox from application library
hgs
parents:
diff changeset
   305
        QtMobility::QServiceManager manager;
hgs
parents:
diff changeset
   306
        QtMobility::QServiceFilter filter("com.nokia.symbian.IEmailRegisterAccount");
hgs
parents:
diff changeset
   307
        QList<QtMobility::QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter);
hgs
parents:
diff changeset
   308
        QObject *registerInterface = NULL;
hgs
parents:
diff changeset
   309
        if (!interfaces.isEmpty()) {
hgs
parents:
diff changeset
   310
            registerInterface = manager.loadInterface(interfaces.first());
hgs
parents:
diff changeset
   311
        }
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
        if (registerInterface) {
hgs
parents:
diff changeset
   314
            quint64 mailboxId(mSettingsManager.mailboxId().id());
hgs
parents:
diff changeset
   315
            // Try to remove the mailbox from the App Library.
hgs
parents:
diff changeset
   316
            (void)QMetaObject::invokeMethod(registerInterface,
hgs
parents:
diff changeset
   317
                "unregisterMailbox", Q_ARG(quint64, mailboxId));
hgs
parents:
diff changeset
   318
            }
hgs
parents:
diff changeset
   319
        
hgs
parents:
diff changeset
   320
        // All done -> complete
hgs
parents:
diff changeset
   321
        complete(DeleteMbResultSuccess, 0);
hgs
parents:
diff changeset
   322
        break;
hgs
parents:
diff changeset
   323
    }
hgs
parents:
diff changeset
   324
    
hgs
parents:
diff changeset
   325
    case StateDone: // fall through
hgs
parents:
diff changeset
   326
    default: {
hgs
parents:
diff changeset
   327
        // Hide the progress note
hgs
parents:
diff changeset
   328
        if( mDeleteProgressDlg ) {
hgs
parents:
diff changeset
   329
            mDeleteProgressDlg->close();
hgs
parents:
diff changeset
   330
        }
hgs
parents:
diff changeset
   331
        emit operationComplete(mResult, mError);
hgs
parents:
diff changeset
   332
        break;
hgs
parents:
diff changeset
   333
    }
hgs
parents:
diff changeset
   334
    }
hgs
parents:
diff changeset
   335
}
hgs
parents:
diff changeset
   336
hgs
parents:
diff changeset
   337
/*!
hgs
parents:
diff changeset
   338
    Changes the operation state
hgs
parents:
diff changeset
   339
*/
hgs
parents:
diff changeset
   340
void NmIpsSettingsDeleteMailboxOp::changeState(DeleteOpStates nextState)
hgs
parents:
diff changeset
   341
{
hgs
parents:
diff changeset
   342
    mState = nextState;
hgs
parents:
diff changeset
   343
    emit stateChanged();
hgs
parents:
diff changeset
   344
}
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
/*!
hgs
parents:
diff changeset
   347
    Completes the operation by setting the result values and changing the state to [done]
hgs
parents:
diff changeset
   348
*/
hgs
parents:
diff changeset
   349
void NmIpsSettingsDeleteMailboxOp::complete(int result, int error)
hgs
parents:
diff changeset
   350
{
hgs
parents:
diff changeset
   351
    mError = error;
hgs
parents:
diff changeset
   352
    mResult = result;
hgs
parents:
diff changeset
   353
    mState = StateDone;
hgs
parents:
diff changeset
   354
    emit stateChanged();
hgs
parents:
diff changeset
   355
}
hgs
parents:
diff changeset
   356
hgs
parents:
diff changeset
   357