mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.h
author hgs
Wed, 03 Nov 2010 09:52:46 +0530
changeset 79 2981cb3aa489
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2006,2007 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:   CUniEditorLaunchOperation, asynchronous operation for object saving
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef __UNIEDITORLAUNCHOPERATION_H
hgs
parents:
diff changeset
    21
#define __UNIEDITORLAUNCHOPERATION_H
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
// INCLUDES
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include <e32base.h>
hgs
parents:
diff changeset
    26
#include <e32std.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include <unislideloader.h>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include "UniEditorOperation.h"
hgs
parents:
diff changeset
    31
#include "UniEditorDocument.h"
hgs
parents:
diff changeset
    32
#include "UniEditorSendUiOperation.h"
hgs
parents:
diff changeset
    33
#include "UniEditorProcessTextOperation.h"
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
// CONSTANTS
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
// MACROS
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
class MMsgAsyncControlObserver;
hgs
parents:
diff changeset
    42
class MUniDataModelObserver;
hgs
parents:
diff changeset
    43
class CMsgEditorView;
hgs
parents:
diff changeset
    44
class CMsgEditorAppUi;
hgs
parents:
diff changeset
    45
class CUniEditorHeader;
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// DATA TYPES
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
// FUNCTION PROTOTYPES
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
// CLASS DECLARATION
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
/**
hgs
parents:
diff changeset
    54
* CUniEditorLaunchOperation
hgs
parents:
diff changeset
    55
*
hgs
parents:
diff changeset
    56
* @since 3.2
hgs
parents:
diff changeset
    57
*/
hgs
parents:
diff changeset
    58
class CUniEditorLaunchOperation : public CUniEditorOperation,
hgs
parents:
diff changeset
    59
                                  public MUniSlideLoaderObserver,
hgs
parents:
diff changeset
    60
                                  public MUniDataModelObserver
hgs
parents:
diff changeset
    61
    {
hgs
parents:
diff changeset
    62
    public:  // New methods
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
        /**
hgs
parents:
diff changeset
    65
        * Factory method that creates this object.
hgs
parents:
diff changeset
    66
        *
hgs
parents:
diff changeset
    67
        * @param    aObserver
hgs
parents:
diff changeset
    68
        * @return   Pointer to instance in cleanup stack
hgs
parents:
diff changeset
    69
        */
hgs
parents:
diff changeset
    70
        static CUniEditorLaunchOperation* NewL(
hgs
parents:
diff changeset
    71
            MMsgAsyncControlObserver& aControlObserver,
hgs
parents:
diff changeset
    72
            MUniEditorOperationObserver& aOperationObserver,
hgs
parents:
diff changeset
    73
            CUniEditorDocument& aDocument,
hgs
parents:
diff changeset
    74
            CMsgEditorView& aView,
hgs
parents:
diff changeset
    75
            CMsgEditorAppUi& aAppUi,
hgs
parents:
diff changeset
    76
            RFs& aFs );
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
        /**
hgs
parents:
diff changeset
    79
        * Destructor
hgs
parents:
diff changeset
    80
        */
hgs
parents:
diff changeset
    81
        virtual ~CUniEditorLaunchOperation();
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
        /**
hgs
parents:
diff changeset
    84
        * Start launch process
hgs
parents:
diff changeset
    85
        */
hgs
parents:
diff changeset
    86
        void Launch();
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
        /**
hgs
parents:
diff changeset
    89
        * Detach header object
hgs
parents:
diff changeset
    90
        */
hgs
parents:
diff changeset
    91
        inline CUniEditorHeader* DetachHeader();
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
        /**
hgs
parents:
diff changeset
    94
        * Detach slide loader object
hgs
parents:
diff changeset
    95
        */
hgs
parents:
diff changeset
    96
        inline CUniSlideLoader* DetachSlideLoader();
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
        /**
hgs
parents:
diff changeset
    99
        * Return parse result
hgs
parents:
diff changeset
   100
        */
hgs
parents:
diff changeset
   101
        TInt ParseResult();
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
        * From MUniDataModelObserver
hgs
parents:
diff changeset
   105
        */
hgs
parents:
diff changeset
   106
        void RestoreReady( TInt aParseResult, TInt aError );
hgs
parents:
diff changeset
   107
            
hgs
parents:
diff changeset
   108
		/**
hgs
parents:
diff changeset
   109
        * check Is optimized flow
hgs
parents:
diff changeset
   110
        */  
hgs
parents:
diff changeset
   111
        TBool IsOptimizedFlagSet();
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    protected: 
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
        /**
hgs
parents:
diff changeset
   116
        * From CActive
hgs
parents:
diff changeset
   117
        */
hgs
parents:
diff changeset
   118
        void RunL();
hgs
parents:
diff changeset
   119
        
hgs
parents:
diff changeset
   120
        /**
hgs
parents:
diff changeset
   121
        * From CActive
hgs
parents:
diff changeset
   122
        */
hgs
parents:
diff changeset
   123
        TInt RunError( TInt aError );
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
        /**
hgs
parents:
diff changeset
   126
        * From MUniSlideLoaderObserver
hgs
parents:
diff changeset
   127
        */
hgs
parents:
diff changeset
   128
        void SlideLoadReady( TInt aError );
hgs
parents:
diff changeset
   129
        
hgs
parents:
diff changeset
   130
        /**
hgs
parents:
diff changeset
   131
        * From CUniEditorOperation
hgs
parents:
diff changeset
   132
        */
hgs
parents:
diff changeset
   133
        void DoCancelCleanup();
hgs
parents:
diff changeset
   134
        
hgs
parents:
diff changeset
   135
        /**
hgs
parents:
diff changeset
   136
        * From CUniEditorOperation
hgs
parents:
diff changeset
   137
        */
hgs
parents:
diff changeset
   138
        void HandleOperationEvent( TUniEditorOperationType aOperation,
hgs
parents:
diff changeset
   139
                                   TUniEditorOperationEvent aEvent );
hgs
parents:
diff changeset
   140
        
hgs
parents:
diff changeset
   141
    private: 
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
        /**
hgs
parents:
diff changeset
   144
        * C++ constructor.
hgs
parents:
diff changeset
   145
        */
hgs
parents:
diff changeset
   146
        CUniEditorLaunchOperation( MMsgAsyncControlObserver& aControlObserver,
hgs
parents:
diff changeset
   147
                                   MUniEditorOperationObserver& aOperationObserver,
hgs
parents:
diff changeset
   148
                                   CUniEditorDocument& aDocument,
hgs
parents:
diff changeset
   149
                                   CMsgEditorView& aView,
hgs
parents:
diff changeset
   150
                                   CMsgEditorAppUi& aAppUi,
hgs
parents:
diff changeset
   151
                                   RFs& aFs );
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
        /**
hgs
parents:
diff changeset
   154
        * 2nd phase constructor.
hgs
parents:
diff changeset
   155
        */
hgs
parents:
diff changeset
   156
        void ConstructL();
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
        /**
hgs
parents:
diff changeset
   159
        * Performs lauch step
hgs
parents:
diff changeset
   160
        */
hgs
parents:
diff changeset
   161
        void DoLaunchStepL();
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
        /**
hgs
parents:
diff changeset
   164
        * Initializes document.
hgs
parents:
diff changeset
   165
        */
hgs
parents:
diff changeset
   166
        void DoInitializeDocL();
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
        /**
hgs
parents:
diff changeset
   169
        * Initializes data model
hgs
parents:
diff changeset
   170
        */
hgs
parents:
diff changeset
   171
        void DoInitializeModelL();
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
        /**
hgs
parents:
diff changeset
   174
        * Processes message 
hgs
parents:
diff changeset
   175
        */
hgs
parents:
diff changeset
   176
        void DoHandleMessageL();
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
        /**
hgs
parents:
diff changeset
   179
        * Prepares header
hgs
parents:
diff changeset
   180
        */
hgs
parents:
diff changeset
   181
        void DoPrepareHeaderL();
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
        /**
hgs
parents:
diff changeset
   184
        * Prepares body
hgs
parents:
diff changeset
   185
        */
hgs
parents:
diff changeset
   186
        void DoPrepareBodyL();
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
        /**
hgs
parents:
diff changeset
   189
        * Prepares 3GPP body
hgs
parents:
diff changeset
   190
        */
hgs
parents:
diff changeset
   191
        void DoPrepare3GPPBodyL();
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
        /**
hgs
parents:
diff changeset
   194
        * Add subject prefix ("Re:" or "Fw:")
hgs
parents:
diff changeset
   195
        * @param ETrue, for reply -> "Re:"
hgs
parents:
diff changeset
   196
        *        EFalse, for forward -> "Fw:"
hgs
parents:
diff changeset
   197
        */
hgs
parents:
diff changeset
   198
        void AddSubjectPrefixL( TBool aReply );
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
    protected: // data
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
        // assigned to iOperationState in base class
hgs
parents:
diff changeset
   203
        enum TUniLaunchState
hgs
parents:
diff changeset
   204
            {
hgs
parents:
diff changeset
   205
            EUniLaunchInitializeDoc = 0,
hgs
parents:
diff changeset
   206
            EUniLaunchInitializeModel,
hgs
parents:
diff changeset
   207
            EUniLaunchHandleMessage,
hgs
parents:
diff changeset
   208
            EUniLaunchPrepareHeader,
hgs
parents:
diff changeset
   209
            EUniLaunchPrepareBody,
hgs
parents:
diff changeset
   210
            EUniLaunchEnd
hgs
parents:
diff changeset
   211
            };
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
        MMsgAsyncControlObserver&       iControlObserver;
hgs
parents:
diff changeset
   214
        CMsgEditorView&                 iView;
hgs
parents:
diff changeset
   215
        CMsgEditorAppUi&                iAppUi;
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
        CUniEditorSendUiOperation*      iSendUiOperation;
hgs
parents:
diff changeset
   218
        CUniEditorHeader*               iHeader;
hgs
parents:
diff changeset
   219
        CUniSlideLoader*                iSlideLoader;
hgs
parents:
diff changeset
   220
        
hgs
parents:
diff changeset
   221
        CUniEditorProcessTextOperation* iTextOperation;
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
        TInt                            iError;
hgs
parents:
diff changeset
   224
        TBool                           iSmilEditorSupported;
hgs
parents:
diff changeset
   225
        // count of failed image operations
hgs
parents:
diff changeset
   226
        TInt                            iParseResultTemp;
hgs
parents:
diff changeset
   227
		// sendui+jepg optimization changes
hgs
parents:
diff changeset
   228
        TBool 							iOptimizedFlow;
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
    };
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
#include "UniEditorLaunchOperation.inl"
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
#endif // __UNIEDITORLAUNCHOPERATION_H
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
// End of file
hgs
parents:
diff changeset
   237